vendor: 9,514 bytes, lines 1-205
1/******/ (function(modules) { // webpackBootstrap 2/******/ // install a JSONP callback for chunk loading 3/******/ function webpackJsonpCallback(data) { 4/******/ var chunkIds = data[0]; 5/******/ var moreModules = data[1]; 6/******/ 7/******/ 8/******/ // add "moreModules" to the modules object, 9/******/ // then flag all "chunkIds" as loaded and fire callback 10/******/ var moduleId, chunkId, i = 0, resolves = []; 11/******/ for(;i < chunkIds.length; i++) { 12/******/ chunkId = chunkIds[i]; 13/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { 14/******/ resolves.push(installedChunks[chunkId][0]); 15/******/ } 16/******/ installedChunks[chunkId] = 0; 17/******/ } 18/******/ for(moduleId in moreModules) { 19/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { 20/******/ modules[moduleId] = moreModules[moduleId]; 21/******/ } 22/******/ } 23/******/ if(parentJsonpFunction) parentJsonpFunction(data); 24/******/ 25/******/ while(resolves.length) { 26/******/ resolves.shift()(); 27/******/ } 28/******/ 29/******/ }; 30/******/ 31/******/ 32/******/ // The module cache 33/******/ var installedModules = {}; 34/******/ 35/******/ // object to store loaded and loading chunks 36/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched 37/******/ // Promise = chunk loading, 0 = chunk loaded 38/******/ var installedChunks = { 39/******/ "app_brand_alamos": 0 40/******/ }; 41/******/ 42/******/ 43/******/ 44/******/ // script path function 45/******/ function jsonpScriptSrc(chunkId) { 46/******/ return __webpack_require__.p + "" + ({"account.widgets~cart.widgets~checkout.widgets":"account.widgets~cart.widgets~checkout.widgets","account.widgets~checkout.widgets":"account.widgets~checkout.widgets","account.widgets":"account.widgets","checkout.widgets":"checkout.widgets","cart.widgets":"cart.widgets","content.widgets":"content.widgets","harmony.account":"harmony.account","harmony.cart":"harmony.cart","harmony.checkout":"harmony.checkout","harmony.minicart":"harmony.minicart","harmony.search.widgets":"harmony.search.widgets","inputmask":"inputmask","minicart.widgets":"minicart.widgets","orderconfirmation.widgets":"orderconfirmation.widgets","product.widgets":"product.widgets","search.widgets":"search.widgets","storelocator.widgets":"storelocator.widgets","toolkit":"toolkit","vendors~dynamic-render":"vendors~dynamic-render","vendors~fetch":"vendors~fetch","vendors~smoothscroll":"vendors~smoothscroll","wishlist.widgets":"wishlist.widgets","vendors~photoswipe":"vendors~photoswipe","simplecountdown":"simplecountdown","vendors~cleave":"vendors~cleave"}[chunkId]||chunkId) + ".bundle.js" 47/******/ } 48/******/ 49/******/ // The require function 50/******/ function __webpack_require__(moduleId) { 51/******/ 52/******/ // Check if module is in cache 53/******/ if(installedModules[moduleId]) { 54/******/ return installedModules[moduleId].exports; 55/******/ } 56/******/ // Create a new module (and put it into the cache) 57/******/ var module = installedModules[moduleId] = { 58/******/ i: moduleId, 59/******/ l: false, 60/******/ exports: {} 61/******/ }; 62/******/ 63/******/ // Execute the module function 64/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 65/******/ 66/******/ // Flag the module as loaded 67/******/ module.l = true; 68/******/ 69/******/ // Return the exports of the module 70/******/ return module.exports; 71/******/ } 72/******/ 73/******/ // This file contains only the entry chunk. 74/******/ // The chunk loading function for additional chunks 75/******/ __webpack_require__.e = function requireEnsure(chunkId) { 76/******/ var promises = []; 77/******/ 78/******/ 79/******/ // JSONP chunk loading for javascript 80/******/ 81/******/ var installedChunkData = installedChunks[chunkId]; 82/******/ if(installedChunkData !== 0) { // 0 means "already installed". 83/******/ 84/******/ // a Promise means "currently loading". 85/******/ if(installedChunkData) { 86/******/ promises.push(installedChunkData[2]); 87/******/ } else { 88/******/ // setup Promise in chunk cache 89/******/ var promise = new Promise(function(resolve, reject) { 90/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; 91/******/ }); 92/******/ promises.push(installedChunkData[2] = promise); 93/******/ 94/******/ // start chunk loading 95/******/ var script = document.createElement('script'); 96/******/ var onScriptComplete; 97/******/ 98/******/ script.charset = 'utf-8'; 99/******/ script.timeout = 120; 100/******/ if (__webpack_require__.nc) { 101/******/ script.setAttribute("nonce", __webpack_require__.nc); 102/******/ } 103/******/ script.src = jsonpScriptSrc(chunkId); 104/******/ if (script.src.indexOf(window.location.origin + '/') !== 0) { 105/******/ script.crossOrigin = "anonymous"; 106/******/ } 107/******/ // create error before stack unwound to get useful stacktrace later 108/******/ var error = new Error(); 109/******/ onScriptComplete = function (event) { 110/******/ // avoid mem leaks in IE. 111/******/ script.onerror = script.onload = null; 112/******/ clearTimeout(timeout); 113/******/ var chunk = installedChunks[chunkId]; 114/******/ if(chunk !== 0) { 115/******/ if(chunk) { 116/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); 117/******/ var realSrc = event && event.target && event.target.src; 118/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; 119/******/ error.name = 'ChunkLoadError'; 120/******/ error.type = errorType; 121/******/ error.request = realSrc; 122/******/ chunk[1](error); 123/******/ } 124/******/ installedChunks[chunkId] = undefined; 125/******/ } 126/******/ }; 127/******/ var timeout = setTimeout(function(){ 128/******/ onScriptComplete({ type: 'timeout', target: script }); 129/******/ }, 120000); 130/******/ script.onerror = script.onload = onScriptComplete; 131/******/ document.head.appendChild(script); 132/******/ } 133/******/ } 134/******/ return Promise.all(promises); 135/******/ }; 136/******/ 137/******/ // expose the modules object (__webpack_modules__) 138/******/ __webpack_require__.m = modules; 139/******/ 140/******/ // expose the module cache 141/******/ __webpack_require__.c = installedModules; 142/******/ 143/******/ // define getter function for harmony exports 144/******/ __webpack_require__.d = function(exports, name, getter) { 145/******/ if(!__webpack_require__.o(exports, name)) { 146/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 147/******/ } 148/******/ }; 149/******/ 150/******/ // define __esModule on exports 151/******/ __webpack_require__.r = function(exports) { 152/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 153/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 154/******/ } 155/******/ Object.defineProperty(exports, '__esModule', { value: true }); 156/******/ }; 157/******/ 158/******/ // create a fake namespace object 159/******/ // mode & 1: value is a module id, require it 160/******/ // mode & 2: merge all properties of value into the ns 161/******/ // mode & 4: return value when already ns object 162/******/ // mode & 8|1: behave like require 163/******/ __webpack_require__.t = function(value, mode) { 164/******/ if(mode & 1) value = __webpack_require__(value); 165/******/ if(mode & 8) return value; 166/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 167/******/ var ns = Object.create(null); 168/******/ __webpack_require__.r(ns); 169/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 170/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 171/******/ return ns; 172/******/ }; 173/******/ 174/******/ // getDefaultExport function for compatibility with non-harmony modules 175/******/ __webpack_require__.n = function(module) { 176/******/ var getter = module && module.__esModule ? 177/******/ function getDefault() { return module['default']; } : 178/******/ function getModuleExports() { return module; }; 179/******/ __webpack_require__.d(getter, 'a', getter); 180/******/ return getter; 181/******/ }; 182/******/ 183/******/ // Object.prototype.hasOwnProperty.call 184/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 185/******/ 186/******/ // __webpack_public_path__ 187/******/ __webpack_require__.p = "https://127.0.0.1:9080/"; 188/******/ 189/******/ // on error function for async loading 190/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; 191/******/ 192/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; 193/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); 194/******/ jsonpArray.push = webpackJsonpCallback; 195/******/ jsonpArray = jsonpArray.slice(); 196/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); 197/******/ var parentJsonpFunction = oldJsonpFunction; 198/******/ 199/******/ 200/******/ // Load entry module and return exports 201/******/ return __webpack_require__(__webpack_require__.s = "./cartridges/app_brand_alamos/cartridge/client/default/js/app_brand_alamos.js"); 202/******/ }) 203/************************************************************************/ 204/******/ ({ 205
206/***/ "./cartridges/app_brand_alamos/cartridge/client/default/js/app_brand_alamos.js": 207/*!*************************************************************************************!*\ 208 !*** ./cartridges/app_brand_alamos/cartridge/client/default/js/app_brand_alamos.js ***! 209 \*************************************************************************************/ 210/*! no exports provided */ 211/***/ (function(module, __webpack_exports__, __webpack_require__) { 212 213"use strict"; 214__webpack_require__.r(__webpack_exports__); 215/* WEBPACK VAR INJECTION */(function(module) {/* harmony import */ var widgets_widgetsList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/widgetsList */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsList.js"); 216/* harmony import */ var core_widgetsList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/widgetsList */ "./cartridges/app_custom_core/cartridge/client/default/js/widgets/widgetsList.js"); 217/* harmony import */ var harmony_widgetsList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! harmony/widgetsList */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/widgetsList.js"); 218/* harmony import */ var flagship_tasting_room_widgetsList__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! flagship_tasting_room/widgetsList */ "./cartridges/app_flagship_tasting_room/cartridge/client/default/js/widgets/widgetsList.js"); 219/* harmony import */ var widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! widgets/widgetsMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js"); 220/* harmony import */ var widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! widgets/toolbox/cookie */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js"); 221 222 223 224 225 226 227 228function initWidgets(module) { 229 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_4__["default"].run(); // @ts-ignore 230 231 if (module.hot) { 232 // @ts-ignore 233 module.hot.accept(['widgets/widgetsList', 'core/widgetsList', 'harmony/widgetsList', 'flagship_tasting_room/widgetsList'], () => widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_4__["default"].restartWidgets()); 234 } 235} 236 237const acceptCookie = Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_5__["getCookie"])('dw_accept_cookie'); 238const consentCookie = Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_5__["getCookie"])('dw_consent_cookie'); 239 240if (window.monetateQ) { 241 if (!acceptCookie || acceptCookie && consentCookie) { 242 __webpack_require__.e(/*! import() */ 9).then(__webpack_require__.bind(null, /*! monetate/clientMonetate */ "./cartridges/int_monetate_w/cartridge/client/default/js/clientMonetate.js")); 243 } 244} 245 246if (window.isGtmEnabled) { 247 const isGtmInited = window.google_tag_manager; 248 249 if (!acceptCookie || acceptCookie && consentCookie) { 250 if (isGtmInited) { 251 __webpack_require__.e(/*! import() */ 0).then(__webpack_require__.bind(null, /*! harmony/clientGTM */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/clientGTM.js")).then(initWidgets.bind(module)); 252 } else { 253 document.addEventListener('gtm_loaded', function () { 254 __webpack_require__.e(/*! import() */ 0).then(__webpack_require__.bind(null, /*! harmony/clientGTM */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/clientGTM.js")).then(initWidgets.bind(module)); 255 }); 256 } 257 } else { 258 initWidgets(module); 259 } 260} else { 261 initWidgets(module); 262} 263/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../node_modules/webpack/buildin/harmony-module.js */ "./node_modules/webpack/buildin/harmony-module.js")(module))) 264 265/***/ }), 266
267/***/ "./cartridges/app_custom_core/cartridge/client/default/js/widgets/widgetsList.js": 268/*!***************************************************************************************!*\ 269 !*** ./cartridges/app_custom_core/cartridge/client/default/js/widgets/widgetsList.js ***! 270 \***************************************************************************************/ 271/*! no exports provided */ 272/***/ (function(module, __webpack_exports__, __webpack_require__) { 273 274"use strict"; 275__webpack_require__.r(__webpack_exports__); 276/* harmony import */ var widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/widgetsMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js"); 277 278widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_0__["default"].addWidgetsList('app_custom_core', () => []); 279 280/***/ }), 281
282/***/ "./cartridges/app_flagship_tasting_room/cartridge/client/default/js/widgets/widgetsList.js": 283/*!*************************************************************************************************!*\ 284 !*** ./cartridges/app_flagship_tasting_room/cartridge/client/default/js/widgets/widgetsList.js ***! 285 \*************************************************************************************************/ 286/*! no exports provided */ 287/***/ (function(module, __webpack_exports__, __webpack_require__) { 288 289"use strict"; 290__webpack_require__.r(__webpack_exports__); 291/* harmony import */ var widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/widgetsMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js"); 292 293widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_0__["default"].addWidgetsList('app_flagship_tasting_room', () => []); 294 295/***/ }), 296
297/***/ "./cartridges/app_harmony/cartridge/client/default/js/config/breakpoints.js": 298/*!**********************************************************************************!*\ 299 !*** ./cartridges/app_harmony/cartridge/client/default/js/config/breakpoints.js ***! 300 \**********************************************************************************/ 301/*! exports provided: default */ 302/***/ (function(module, __webpack_exports__, __webpack_require__) { 303 304"use strict"; 305__webpack_require__.r(__webpack_exports__); 306/* harmony default export */ __webpack_exports__["default"] = ({ 307 md: 768, 308 lg: 1200, 309 xl: 1440 310}); 311 312/***/ }), 313
314/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/GeolocationConsent.js": 315/*!******************************************************************************************!*\ 316 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/GeolocationConsent.js ***! 317 \******************************************************************************************/ 318/*! exports provided: default */ 319/***/ (function(module, __webpack_exports__, __webpack_require__) { 320 321"use strict"; 322__webpack_require__.r(__webpack_exports__); 323/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 324/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 325 326 327/** 328 * @typedef {typeof import('widgets/Widget').default} Widget 329 */ 330 331/** 332 * @description Asks the user to share geolocation. 333 * @param {Widget} Widget Base widget for extending 334 * @returns {typeof GeolocationConsent} GeolocationConsent class 335 */ 336 337/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 338 /** 339 * @class GeolocationConsent 340 * @augments Widget 341 * @property {string} data-stateselectedbyuser - Has user already selected his state. 342 * @property {string} data-geolocation-url - Action URL. 343 */ 344 class GeolocationConsent extends Widget { 345 init() { 346 super.init(); 347 this.locateUser(); 348 } 349 /** 350 * Show prompt for user. 351 */ 352 353 354 locateUser() { 355 if (navigator.geolocation) { 356 navigator.geolocation.getCurrentPosition(() => { 357 this.sendLocation(true); 358 }, () => { 359 this.sendLocation(false); 360 }); 361 } 362 } 363 /** 364 * handle state change 365 */ 366 367 368 handleStateChange(response) { 369 const stateID = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["get"])(response, 'stateID'); 370 const basketItems = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["get"])(response, 'basket.numItems'); // trigger events if 'stateID' is not empty 371 372 if (stateID) { 373 this.eventBus().emit('shipto.title.redraw'); 374 this.eventBus().emit('shipto.state.changed', stateID); 375 this.eventBus().emit('shipto.restrictions.updated', stateID); 376 } // refresh basket items if it includes items 377 378 379 if (basketItems) { 380 this.eventBus().emit('cart.items.refresh'); 381 } 382 } 383 /** 384 * Send location data. 385 * 386 * @param {Boolean} allowed 387 */ 388 389 390 sendLocation(allowed) { 391 const geolocationUrl = this.ref('self').data('geolocation-url'); 392 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["submitFormJson"])(String(geolocationUrl), { 393 allowed: String(allowed) 394 }, 'POST', true).then(res => { 395 this.handleStateChange(res); 396 }); 397 } 398 399 } 400 401 return GeolocationConsent; 402}); 403 404/***/ }), 405
406/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/ProductPositionMapping.js": 407/*!**********************************************************************************************!*\ 408 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/ProductPositionMapping.js ***! 409 \**********************************************************************************************/ 410/*! exports provided: default */ 411/***/ (function(module, __webpack_exports__, __webpack_require__) { 412 413"use strict"; 414__webpack_require__.r(__webpack_exports__); 415/** 416 * @typedef {ReturnType<typeof import('widgets/Widget').default>} Widget 417 */ 418 419/** 420 * @description ProductPositionMapping widget implementation 421 * @param {Widget} Widget Base widget for extending 422 * @returns {typeof ProductPositionMapping} - ProductPositionMapping instance 423 */ 424/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 425 class ProductPositionMapping extends Widget { 426 init() { 427 const positionKey = this.data('positionKey'); 428 var positionMap = this.data('positionMapping'); 429 var currentPositions = window[positionKey] || {}; 430 window[positionKey] = Object.assign(currentPositions, positionMap); 431 } 432 433 } 434 435 return ProductPositionMapping; 436}); 437 438/***/ }), 439
440/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/ShipToStates.js": 441/*!************************************************************************************!*\ 442 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/ShipToStates.js ***! 443 \************************************************************************************/ 444/*! exports provided: default */ 445/***/ (function(module, __webpack_exports__, __webpack_require__) { 446 447"use strict"; 448__webpack_require__.r(__webpack_exports__); 449/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 450/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 451/* harmony import */ var harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! harmony/toolbox/shipToUtils */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js"); 452 453 454 455/** 456 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 457 * @typedef {ReturnType<typeof import('widgets/forms/InputRadio').default>} InputRadio 458 */ 459 460/** 461 * @description ShipToStates widget implementation 462 * @param {AjaxForm} AjaxForm Base widget for extending 463 * @returns {typeof ShipToStates} - ShipToStates instance 464 */ 465 466/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 467 class ShipToStates extends AjaxForm { 468 init() { 469 super.init(); 470 this.headerType = this.ref('self').data('headerType') || ''; 471 this.eventBus().on('shiptostate.submit', 'handleSubmit'); 472 this.eventBus().on('shipttostate.setstate', 'setInputValue'); 473 this.handleBrowsingOnlyModal(); 474 } 475 /** 476 * Set radio input value 477 * 478 * @param {string} stateID - state code 479 */ 480 481 482 setInputValue(stateID) { 483 this.getById('dwfrm_states_stateCode', inputRadio => { 484 inputRadio.setValue(stateID); 485 this.stateID = stateID; 486 }); 487 } 488 /** 489 * Handle ship to state from submit 490 * @returns {boolean} - false to match super implementation 491 */ 492 493 494 handleSubmit() { 495 // submit form 496 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["submitFormJson"])(this.getFormUrl(), this.getFormFields(), 'POST', true) // emit event to redraw header value 497 .then(res => { 498 this.handleStateChange(res); 499 }); 500 this.eventBus().emit('loader.start', promise); 501 return false; 502 } 503 /** 504 * handle state change 505 */ 506 507 508 handleStateChange(response) { 509 const stateID = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["get"])(response, 'stateID') || this.stateID; 510 const basketItems = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["get"])(response, 'basket.numItems'); 511 this.eventBus().emit('shipto.title.redraw'); 512 this.eventBus().emit('shipto.state.changed', stateID); 513 this.eventBus().emit('shipto.restrictions.updated', stateID); // refresh basket items if it includes items 514 515 if (basketItems) { 516 this.eventBus().emit('cart.items.refresh'); 517 } 518 519 if (response.basket) { 520 this.eventBus().emit('product.added.to.cart', response.basket, this); 521 } // store internal value 522 523 524 this.getById('dwfrm_states_stateCode', inputRadio => { 525 this.stateID = inputRadio.getValue(); 526 }); // pushing monetate data for custom variables (state_eligible, state_name) 527 528 if (response.stateJSON) { 529 var isStateEligible = response.stateJSON.isStateEligible ? 'yes' : 'no'; 530 window.monetateData.ship_eligible = isStateEligible; 531 window.monetateData.ship_state = response.stateJSON.shipToState; // eslint-disable-next-line max-len 532 533 window.monetateQ.push(['setCustomVariables', [{ 534 name: 'ship_eligible', 535 value: monetateData.ship_eligible 536 }, { 537 name: 'ship_state', 538 value: monetateData.ship_state 539 }]]); 540 } 541 } 542 /** 543 * handle browsing only dialog open 544 */ 545 546 547 handleModalOpen() { 548 // emit event to notify that specific dialog was opened
549 this.emit('browsingonlymodalopen', this); 550 } 551 /** 552 * Handle radio input select 553 * 554 * @param {InputRadio} inputRadio - input radio widget 555 */ 556 557 558 handleChange(inputRadio) { 559 var dataSet = inputRadio.getDataSet(); 560 var isBrowsingOnly = dataSet.browsingOnly; 561 562 if (isBrowsingOnly) { 563 this.eventBus().emit('sidebar.close'); // display confirmation modal 564 565 var modalTitle = dataSet.modalTitle; 566 this.getById('browsingOnlyModal', BrowsingOnlyModal => BrowsingOnlyModal.showModal({ 567 modalTitle 568 }, () => { 569 this.handleModalOpen(); 570 BrowsingOnlyModal.afterShowModal(); 571 })); 572 } else { 573 // submit form 574 this.handleSubmit(); 575 } 576 } 577 /** 578 * handle browsing only state modal cancel 579 */ 580 581 582 handleModalCancel() { 583 // emit event that state should be selected 584 this.emit('selectstate', this); // emit event to notify that specific dialog was closed 585 586 this.emit('browsingonlymodalclose', this); 587 } 588 /** 589 * handle browsing only by auto 590 */ 591 592 593 handleBrowsingOnlyModal() { 594 if (this.headerType && Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__["getHeaderType"])() !== this.headerType) { 595 return; 596 } 597 598 const self = this.ref('self'); 599 const inputRadio = self.data('initialState') ? document.querySelector('input[data-id="dwfrm_states_stateCode-' + self.data('initialState') + '"]') : null; 600 601 if (inputRadio && self.data('showBrowsingOnlyModal')) { 602 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["submitFormJson"])(self.data('disableBrowsingOnlyUrl'), {}, 'POST', true).then(() => { 603 const modalTitle = inputRadio.dataset.modalTitle; 604 this.getById('browsingOnlyModal', BrowsingOnlyModal => BrowsingOnlyModal.showModal({ 605 modalTitle 606 }, this.handleModalOpen.bind(this))); 607 }); 608 } 609 } 610 611 } 612 613 return ShipToStates; 614}); 615 616/***/ }), 617
618/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/ShipToTitle.js": 619/*!***********************************************************************************!*\ 620 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/ShipToTitle.js ***! 621 \***********************************************************************************/ 622/*! exports provided: default */ 623/***/ (function(module, __webpack_exports__, __webpack_require__) { 624 625"use strict"; 626__webpack_require__.r(__webpack_exports__); 627/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 628 629/* harmony default export */ __webpack_exports__["default"] = (function (EmitBusEvent) { 630 class ShipToTitle extends EmitBusEvent { 631 init() { 632 super.init(); 633 this.eventBus().on('shipto.title.redraw', 'redraw'); 634 } 635 /** 636 * Makes an ajax call to get new view for itself. 637 */ 638 639 640 redraw() { 641 // exit if 'data-ref-url' is empty 642 if (!this.config.refUrl) { 643 return; 644 } 645 646 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["getContentByUrl"])(this.config.refUrl, {}).then(content => { 647 if (this.refs && this.refs.innerTitle) { 648 this.render('', {}, this.ref('innerTitle'), content); 649 } 650 651 this.eventBus().emit('sidebar.close'); 652 }); 653 } 654 655 } 656 657 return ShipToTitle; 658}); 659 660/***/ }), 661
662/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/ProfileDetailsForm.js": 663/*!**************************************************************************************************!*\ 664 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/account/ProfileDetailsForm.js ***! 665 \**************************************************************************************************/ 666/*! exports provided: default */ 667/***/ (function(module, __webpack_exports__, __webpack_require__) { 668 669"use strict"; 670__webpack_require__.r(__webpack_exports__); 671/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 672 673/** 674 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 675 */ 676 677/** 678 * @description Base Profile details form implementation 679 * @param {AjaxForm} AjaxForm Base widget for extending 680 * @returns {typeof ProfileDetailsForm} 681 */ 682 683/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 684 class ProfileDetailsForm extends AjaxForm { 685 init() { 686 super.init(); 687 this.eventBus().on('cognito.hook.updateprofiledetails.then', 'updateProfileDetailsSubmitted'); 688 this.eventBus().on('cognito.hook.updateprofiledetails.error', 'updateProfileDetailsError'); 689 } 690 /** 691 * Overridden default handleSubmit for handle Cognito API 692 * call with updating profile data. 693 * 694 * @returns {boolean} 695 */ 696 697 698 handleSubmit() { 699 if (this.isChildrenValid() && !this.submitting) { 700 this.submitting = true; 701 this.getById(this.prefs().submitButton, submitButton => submitButton.busy()); 702 this.ref(this.prefs().errorMessageLabel).hide(); 703 const fields = this.getFormFields(); 704 const isSubscribed = fields.dwfrm_profile_customer_newsletterSubscription === 'true'; 705 let fieldsObject = { 706 firstName: fields.dwfrm_profile_customer_firstname, 707 lastName: fields.dwfrm_profile_customer_lastname, 708 phoneNumber: fields.dwfrm_profile_customer_phone, 709 currentPassword: fields.dwfrm_profile_login_currentpassword, 710 birthDate: fields.dwfrm_profile_customer_birthday, 711 username: fields.dwfrm_profile_customer_email, 712 newsletterSubscription: fields.dwfrm_profile_customer_newsletterSubscription || 'false' 713 }; 714 715 if (fields.dwfrm_profile_customer_state) { 716 fieldsObject['state'] = fields.dwfrm_profile_customer_state; 717 } 718 719 this.eventBus().emit('cognito.hook.updateprofiledetails', fieldsObject); 720 this.eventBus().emit('loader.start', new Promise(resolve => { 721 this.resolve = resolve; 722 })); 723 724 if (isSubscribed) { 725 this.eventBus().emit('gtm.subscribe.success'); 726 this.eventBus().emit('monetate.track.newsletter.signup'); 727 } 728 } 729 730 return false; 731 } 732 /** 733 * Called after cognito updated profile details. 734 */ 735 736 737 updateProfileDetailsSubmitted() { 738 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["submitFormJson"])(this.getFormUrl(), this.getFormFields(), this.ref('self').attr('method') === 'GET' ? 'GET' : 'POST').then(this.onSubmitted.bind(this)).catch(this.onError.bind(this)); 739 } 740 /** 741 * Called after cognito thrown exception while updating 742 * profile details. 743 * 744 * @param {object} data 745 * @param {string} data.message - occurred error message 746 */ 747 748 749 updateProfileDetailsError(data) { 750 this.onError(data); 751 this.afterSubmission(); 752 } 753 /** 754 * @description when submitting has been done. 755 */ 756 757 758 afterSubmission() { 759 super.afterSubmission(); 760 this.resolveLoader(); 761 } 762 /** 763 * @description resolve loader promise for hide overlay. 764 * @returns {void} 765 */ 766 767 768 resolveLoader() { 769 if (typeof this.resolve === 'function') { 770 this.resolve(); 771 } 772 } 773 774 } 775 776 return ProfileDetailsForm; 777}); 778 779/***/ }), 780
781/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js": 782/*!****************************************************************************************************!*\ 783 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js ***! 784 \****************************************************************************************************/ 785/*! exports provided: default */ 786/***/ (function(module, __webpack_exports__, __webpack_require__) { 787 788"use strict"; 789__webpack_require__.r(__webpack_exports__); 790/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 791 return class VerificationCodeForm extends AjaxForm { 792 init() { 793 super.init(); 794 this.defineItems(); 795 this.state = {}; 796 /** 797 * -- cognito.hook.resendconfirmemail.catch -- 798 * When cognito resent thrown an exception, for example limit of request was reached. 799 */ 800 801 this.eventBus().on('cognito.hook.resendconfirmemail.catch', 'onError'); 802 /** 803 * -- cognito.hook.confirmsignup.catch -- 804 * When any exception was thrown by cognito "verify account" 805 * For example: Invalid verification code was provided. 806 */ 807 808 this.eventBus().on('cognito.hook.confirmsignup.catch', 'onError'); 809 /** 810 * -- harmonyloginform.signin.confirmation.exception -- 811 * When cognito sign-in thrown an exception that customer not confirmed. 812 */ 813 814 this.eventBus().on('harmonyloginform.signin.confirmation.exception', 'showLoginState'); 815 /** 816 * -- registrationform.submitted -- 817 * When registration form was submitted. 818 */ 819 820 this.eventBus().on('registrationform.submitted', 'showRegistrationState'); 821 /** 822 * -- harmonytab.change -- 823 * When tab view was change. 824 */ 825 826 this.eventBus().on('harmonytab.change', 'hide'); 827 /** 828 * -- confirmation.create.account -- 829 * When customer creates account via order confirmation page. 830 */ 831 832 this.eventBus().on('confirmation.create.account', 'showConfirmationCreateAccountState'); 833 /** 834 * -- cognito.hook.signin.silent-- 835 * When we need to hide verification code form widget 836 */ 837 838 this.eventBus().on('cognito.hook.signin.silent', 'onSilentSignIn'); 839 } 840 841 prefs() { 842 return { ...super.prefs(), 843 submitButton: 'verifyButton' 844 }; 845 } 846 /** 847 * @description Initializes default widget instance state and view state. 848 * @param {object} data 849 * @param {string} data.email - customer email which needs to be verified and will be used for sign-in. 850 * @param {string} data.password - customer password for sign-in it after verification. 851 * @returns {void} 852 */ 853 854 855 initState(data) { 856 this.state = {}; // init state with the given customer 857 858 this.state.username = data.email; 859 this.state.password = data.password; // This flag used from order confirmation page to 860 // not login customer and not redirect to any page. 861 862 this.state.silent = !!data.silent; // clear component error messages 863 864 this.clearError(); // clear from previous input 865 866 this.getById('dwfrm_login_verificationCode', input => { 867 input.setValue('', true); 868 input.clearError(); 869 }); // hide all block which are hidden by default 870 871 this.ref('backButton').hide(); 872 this.ref('registrationInfo').hide(); 873 } 874 /** 875 * @description Emits when customer creates account at order confirmation page. 876 * @param {object} data 877 * @param {string} data.email - customer email which needs to be verified and will be used for sign-in. 878 * @param {string} data.password - customer password for sign-in it after verification. 879 * @returns {void} 880 */ 881 882 883 showConfirmationCreateAccountState(data) { 884 this.initState(data); 885 this.ref('confirmationCreateAccountInfo').show(); 886 this.show(); 887 } 888 /** 889 * @description Emits when verification code was triggered from login state. 890 * For confirm customer account if it has NOT CONFIRMED status. 891 * @param {object} data 892 * @param {string} data.email - customer email which needs to be verified and will be used for sign-in. 893 * @param {string} data.password - customer password for sign-in it after verification. 894 * @returns {void} 895 */ 896 897 898 showLoginState(data) { 899 this.initState(data); 900 this.ref(this.prefs().errorMessageLabel).setText(data.message).show(); 901 this.eventBus().emit('verificationcodeform.show', 'login'); 902 this.show(); 903 } 904 /** 905 * @param data 906 */ 907 908 909 showRegistrationState(data) { 910 this.initState(data); 911 this.ref('registrationInfo').show(); 912 this.eventBus().emit('verificationcodeform.show', 'register'); 913 this.show(); 914 } 915 /**
916 * @description Emites when "Verify account" CTA was triggered. 917 * @returns {void} 918 */ 919 920 921 handleSubmit() { 922 const fields = this.getFormFields(); 923 924 if (!this.isChildrenValid() || this.submitting) { 925 return; 926 } 927 928 this.beforeSubmission(); 929 this.eventBus().emit('cognito.hook.confirmsignup', { 930 code: fields.dwfrm_login_verificationCode, 931 username: this.state.username, 932 password: this.state.password, 933 silent: this.state.silent 934 }); 935 } 936 /** 937 * @description Hide verification form and show login form back. 938 * @returns {void} 939 */ 940 941 942 backToLogin() { 943 this.hide(); 944 this.eventBus().emit('verificationcodeform.backtologin'); 945 } 946 /** 947 * @description Resend button was clicked. 948 * @returns {void} 949 */ 950 951 952 handleResend() { 953 var accessibilityAlert = this.prefs().accessibilityAlerts.confirmationCodeSent; 954 955 if (this.submitting) { 956 return; 957 } 958 959 this.eventBus().emit('cognito.hook.resendconfirmemail', { 960 username: this.state.username 961 }, accessibilityAlert); 962 } 963 /** 964 * @description Action which needs to be done before submit handleSubmit function. 965 * @returns {void} 966 */ 967 968 969 beforeSubmission() { 970 this.getById(this.prefs().submitButton, submitButton => submitButton.busy()); 971 this.clearError(); 972 this.submitting = true; 973 this.eventBus().emit('loader.start', new Promise(resolve => { 974 this.resolve = resolve; 975 })); 976 } 977 /** 978 * @description Handles an error, which happens during request (for ex. 500 response) 979 * @param {object} error 980 */ 981 982 983 onError(error) { 984 super.onError(error); 985 this.ref('backButton').show(); 986 this.afterSubmission(); 987 } 988 /** 989 * @description when form needs to be just hidden without any other actions. 990 */ 991 992 993 onSilentSignIn() { 994 this.hide(); 995 this.afterSubmission(); 996 } 997 /** 998 * @description when submitting has been done. 999 */ 1000 1001 1002 afterSubmission() { 1003 super.afterSubmission(); 1004 this.resolveLoader(); 1005 } 1006 /** 1007 * @description resolve loader promise for hide overlay. 1008 * @returns {void} 1009 */ 1010 1011 1012 resolveLoader() { 1013 if (typeof this.resolve === 'function') { 1014 this.resolve(); 1015 } 1016 } 1017 1018 show() { 1019 super.show(); 1020 this.setFocusToFirstItem(); 1021 } 1022 1023 }; 1024}); 1025 1026/***/ }), 1027
1028/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/aws/Cognito.js": 1029/*!***********************************************************************************!*\ 1030 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/aws/Cognito.js ***! 1031 \***********************************************************************************/ 1032/*! exports provided: default */ 1033/***/ (function(module, __webpack_exports__, __webpack_require__) { 1034 1035"use strict"; 1036__webpack_require__.r(__webpack_exports__); 1037/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 1038/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 1039/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); 1040/* harmony import */ var _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-amplify/auth */ "./node_modules/@aws-amplify/auth/lib-esm/index.js"); 1041/* harmony import */ var widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/cookie */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js"); 1042/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 1043/* harmony import */ var harmony_aws_CustomStorage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! harmony/aws/CustomStorage */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/aws/CustomStorage.js"); 1044/* harmony import */ var harmony_toolbox_format__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! harmony/toolbox/format */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/format.js"); 1045 1046 1047 1048 1049 1050 1051 1052/** 1053 * @typedef {typeof import('widgets/Widget').default} Widget 1054 */ 1055 1056/** 1057 * @description Amazon Cognito implementation 1058 * @param {Widget} Widget Base widget for extending 1059 * @returns {typeof Cognito} Cognito class 1060 */ 1061 1062/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 1063 class Cognito extends Widget { 1064 init() { 1065 super.init(); 1066 this.configure(); 1067 this.hooks(); 1068 this.isAuth(); 1069 } 1070 1071 get constants() { 1072 return { 1073 HOOK_SIGN_IN_THEN: 'cognito.hook.signin.then', 1074 HOOK_SIGN_IN_CATCH: 'cognito.hook.signin.catch', 1075 HOOK_UPDATE_PROFILE_ERROR: 'cognito.hook.updateprofiledetails.error' 1076 }; 1077 } 1078 /** 1079 * Amazon Cognito initialization. 1080 * 1081 * https://docs.amplify.aws/lib/auth/start/q/platform/js#re-use-existing-authentication-resource 1082 * 1083 * Config for initialization places in cognito.isml and values of it comes from BM. 1084 * Expected object for ...this.prefs().config the next one: 1085 * { 1086 * "region": <string>, 1087 * "userPoolId": <string>, 1088 * "userPoolWebClientId": <string>, 1089 * "oauth": { 1090 * domain: 'your_cognito_domain', 1091 * scope: ['phone', 'email', 'profile', 'openid', 'aws.cognito.signin.user.admin'], 1092 * redirectSignIn: 'http://localhost:3000/', 1093 * redirectSignOut: 'http://localhost:3000/', 1094 * responseType: 'code' // or 'token', note that REFRESH token will only be generated when the responseType is code 1095 * } 1096 * } 1097 */ 1098 1099 1100 configure() { 1101 try { 1102 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Amplify"].configure({ 1103 Auth: { 1104 mandatorySignIn: true, 1105 ...this.prefs().config, 1106 storage: new harmony_aws_CustomStorage__WEBPACK_IMPORTED_MODULE_5__["default"](this.prefs().storageUrl) 1107 } 1108 }); 1109 } catch (e) { 1110 console.error(e); 1111 } 1112 /** 1113 * Social login Hub. After provider will return customer to the site 1114 * (url will have params with token and state) this Hub will be initialized 1115 * and listen auth trigger. 1116 * 1117 * Description of the API https://docs.amplify.aws/lib/auth/social/q/platform/js#setup-frontend 1118 */ 1119 1120 1121 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Hub"].listen('auth', async data => { 1122 var _data$payload; 1123 1124 if (!this.prefs().isOauth) { 1125 return; 1126 } 1127 1128 const failureUrl = this.prefs().failureProvider.concat('&provider=').concat(window.sessionStorage.getItem('triggeredProvider')); 1129 window.sessionStorage.removeItem('triggeredProvider'); 1130 1131 switch (data === null || data === void 0 ? void 0 : (_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.event) { 1132 case 'signIn': 1133 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].currentAuthenticatedUser().then(userData => { 1134 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_4__["submitFormJson"])(window.location.href, userData.attributes, 'POST', true).then(res => { 1135 window.location.assign(res.redirectUrl); 1136 }); 1137 }).catch(() => { 1138 window.location.assign(failureUrl); 1139 }); 1140 break; 1141 1142 case 'cognitoHostedUI': 1143 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].currentAuthenticatedUser().then(userData => { 1144 this.updateSessionStorage(userData).then(res => { 1145 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_4__["submitFormJson"])(res.redirectUrl, { 1146 formData: userData.attributes 1147 }, 'POST', true); 1148 }); 1149 }).catch(() => { 1150 window.location.assign(failureUrl); 1151 }); 1152 break; 1153 1154 case 'signIn_failure': 1155 window.location.assign(failureUrl); 1156 break; 1157 1158 default: 1159 break; 1160 } 1161 }); 1162 } 1163 1164 hooks() { 1165 /** 1166 * Used for start Cognito signup process. 1167 * 1168 * Object which expects as parameter. 1169 * { 1170 * username: fields.username, 1171 * password: fields.password, 1172 * attributes: { 1173 * email: fields.email, 1174 * name: fields.firstName, 1175 * family_name: fields.lastName, 1176 * phone_number: fields.phoneNumber, 1177 * birthdate: fields.birthDate 1178 * } 1179 * } 1180 */ 1181 this.eventBus().on('cognito.hook.signup', 'signup'); 1182 /** 1183 * Used for start Cognito signin process. 1184 * 1185 * Object which expects as parameter. 1186 * { 1187 * username, 1188 * password 1189 * } 1190 */ 1191 1192 this.eventBus().on('cognito.hook.signin', 'signin'); 1193 /** 1194 * Used for start Cognito forgot password process. 1195 * This method will emit email to the customer with verification code. 1196 * 1197 * Object which expects as parameter. 1198 * { 1199 * username 1200 * } 1201 * 1202 * username -- it is email address of the customer. 1203 */ 1204 1205 this.eventBus().on('cognito.hook.forgotpassword', 'forgotpassword'); 1206 /** 1207 * Used for submit customer forgot password process, 1208 * with verification code which was sent on email. 1209 * 1210 * Object which expects as parameter. 1211 * { 1212 * username, 1213 * code, 1214 * new_password 1215 * } 1216 */ 1217 1218 this.eventBus().on('cognito.hook.forgotpassword.confirmationcodesubmit', 'confirmationCodeSubmit'); 1219 /** 1220 * Used to change password to the specific customer on Cognito side. 1221 * 1222 * Object which expects as parameter. 1223 * { 1224 * oldPassword, 1225 * newPassword 1226 * } 1227 */ 1228 1229 this.eventBus().on('cognito.hook.changepassword', 'changePassword'); 1230 /** 1231 * Used to emit email with new verification code. 1232 * 1233 * Object which expects as parameter. 1234 * { 1235 * username 1236 * } 1237 */ 1238 1239 this.eventBus().on('cognito.hook.resendconfirmemail', 'reSendConfirmationEmail'); 1240 /** 1241 * Used to confirm sign up process with verification code which was sent to the email address. 1242 * 1243 * Object which expects as parameter. 1244 * { 1245 * username, 1246 * code, 1247 * password 1248 * } 1249 */ 1250 1251 this.eventBus().on('cognito.hook.confirmsignup', 'confirmSignUp'); 1252 /** 1253 * Used to call social login process. Will redirect customer on specific provider. 1254 * Cognito in this case behave like a proxy between SFCC and provider. 1255 * 1256 * Provider - any social network: facebook, google. 1257 */ 1258 1259 this.eventBus().on('cognito.hook.sociallogin', 'socialLogin'); 1260 /**
1261 * @description when update profile was triggered (on my account dashboard). 1262 */ 1263 1264 this.eventBus().on('cognito.hook.updateprofiledetails', 'updateProfileDetails'); 1265 /** 1266 * @description when subscription flag needs to be synced on cognito. 1267 */ 1268 1269 this.eventBus().on('cognito.hook.syncsubscription', 'syncNewsletterSubscription'); 1270 } 1271 /** 1272 * @param {object} data -- facebook or google and isCheckout tag. 1273 * @description Will make a redirect to the specific provider. 1274 * API https://docs.amplify.aws/lib/auth/social/q/platform/js#setup-frontend 1275 */ 1276 1277 1278 socialLogin(data) { 1279 let providerLabel = ''; 1280 1281 if (data.isCheckout) { 1282 Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_3__["setCookie"])('socialSignOn_cookie', 'checkout', 365, true); 1283 } else if (data.isWCSignUp) { 1284 var isWCSignUp = '"' + data.isWCSignUp + '"'; 1285 Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_3__["setCookie"])('socialSignOn_cookie', isWCSignUp, 365, true); 1286 } else { 1287 Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_3__["setCookie"])('socialSignOn_cookie', '', 365, true); 1288 } 1289 1290 if (data.socialNetwork === 'facebook') { 1291 providerLabel = 'Facebook'; 1292 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].federatedSignIn({ 1293 provider: providerLabel 1294 }); 1295 } 1296 1297 if (data.socialNetwork === 'google') { 1298 providerLabel = 'Google'; 1299 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].federatedSignIn({ 1300 provider: providerLabel 1301 }); 1302 } 1303 1304 window.sessionStorage.setItem('triggeredProvider', providerLabel); 1305 } 1306 /** 1307 * @description Used for sync backend and cognito session states. If on backend session lost 1308 * we need to logout on cognito side and if we logout (lost) session on cognito 1309 * we need to logout on SFCC side. 1310 */ 1311 1312 1313 isAuth() { 1314 if (this.prefs().isOauth || this.prefs().isExternalAuth) { 1315 return; 1316 } // Trying to get auth customer from Cognito. 1317 1318 1319 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].currentAuthenticatedUser({ 1320 bypassCache: false 1321 }).catch(() => { 1322 // Logout customer on our end if the session was expired on AWS 1323 // side and we still in logged in state on our end. 1324 if (this.prefs().isAuth) { 1325 window.location.assign(this.prefs().logoutUrl); 1326 } 1327 }); 1328 } 1329 /** 1330 * @description This function makes a change password request to the Amazon Cognito. 1331 * 1332 * https://docs.amplify.aws/lib/auth/manageusers/q/platform/js#change-password 1333 * 1334 * @param {object} fields - object with new and old password. 1335 * @param {string} fields.oldPassword - an old password 1336 * @param {string} fields.newPassword - new password 1337 */ 1338 1339 1340 changePassword(fields) { 1341 // Getting the current authenticated user object. 1342 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].currentAuthenticatedUser().then(user => { 1343 // If customer exists we can change a password. 1344 return _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].changePassword(user, fields.oldPassword, fields.newPassword); 1345 }).then(data => { 1346 // Password was changed emit an event to go further. 1347 this.eventBus().emit('cognito.hook.changepassword.then', data); 1348 }).catch(error => { 1349 this.eventBus().emit('cognito.hook.changepassword.catch', this.getError(error)); 1350 }); 1351 } 1352 /** 1353 * @description This function make a registration request to the Amazon. 1354 * 1355 * https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#sign-up 1356 * 1357 * @param {object} fields 1358 * @param {string} fields.username - customer username 1359 * @param {string} fields.password - customer password 1360 * @param {string} fields.email - customer email (it will be login name) 1361 * @param {string} fields.firstName - customer first name 1362 * @param {string} fields.lastName - customer last name 1363 * @param {string} fields.birthdate - the birthday customer date 1364 * @param {string} fields.phoneNumber - customer phone number in E.164 number convention 1365 */ 1366 1367 1368 signup(fields) { 1369 let attributesObject = { 1370 email: fields.email, 1371 name: fields.firstName, 1372 family_name: fields.lastName, 1373 phone_number: fields.phoneNumber ? Object(harmony_toolbox_format__WEBPACK_IMPORTED_MODULE_6__["formatPhoneNumber"])(fields.phoneNumber) : '', 1374 birthdate: fields.birthDate, 1375 'custom:newsSubscription': fields.newsletterSubscription 1376 }; 1377 1378 if (fields.state) { 1379 attributesObject['name'] = fields.firstName + ' ' + fields.lastName; 1380 attributesObject['given_name'] = fields.firstName; 1381 attributesObject['birthdate'] = Object(harmony_toolbox_format__WEBPACK_IMPORTED_MODULE_6__["formatDate"])(fields.birthDate); 1382 attributesObject['custom:state'] = fields.state; 1383 } 1384 1385 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].signUp({ 1386 username: fields.username, 1387 password: fields.password, 1388 attributes: attributesObject 1389 }).then(data => { 1390 this.eventBus().emit('cognito.hook.signup.then', data); 1391 }).catch(error => { 1392 this.eventBus().emit('cognito.hook.signup.catch', this.getError(error, 'signup')); 1393 }); 1394 } 1395 /**
1396 * @description Sign in customer on Cognito by username and password. 1397 * In case of challenge (customer was created in Cognito console) complete needs to be called, 1398 * for now it completes with the same password. 1399 * 1400 * Description of the API https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#sign-in 1401 * 1402 * @param {object} fields object with username and password data 1403 * @param {string} fields.username - customer user name 1404 * @param {string} fields.password - customer password 1405 */ 1406 1407 1408 signin(fields) { 1409 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].signIn(fields.username, fields.password).then(data => { 1410 this.updateSessionStorage(data).then(() => { 1411 if ((data === null || data === void 0 ? void 0 : data.challengeName) === 'NEW_PASSWORD_REQUIRED') { 1412 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].completeNewPassword(data, fields.password).then(user => { 1413 this.eventBus().emit(this.constants.HOOK_SIGN_IN_THEN, { ...user, 1414 ...fields 1415 }); 1416 }).catch(error => { 1417 this.eventBus().emit(this.constants.HOOK_SIGN_IN_CATCH, this.getError(error)); 1418 }); 1419 } else { 1420 this.eventBus().emit(this.constants.HOOK_SIGN_IN_THEN, { ...data, 1421 ...fields 1422 }); 1423 } 1424 }); 1425 }).catch(error => { 1426 this.eventBus().emit(this.constants.HOOK_SIGN_IN_CATCH, this.getError(error, 'signin')); 1427 }); 1428 } 1429 /** 1430 * @description Forgot password request to the Cognito, called from Login page -> forgot password popup. 1431 * 1432 * Description of the API https://docs.amplify.aws/lib/auth/manageusers/q/platform/js#forgot-password 1433 * 1434 * @param {object} fields - object with username 1435 * @param {string} fields.username - customer user name. 1436 */ 1437 1438 1439 forgotpassword(fields) { 1440 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].forgotPassword(fields.username).then(data => { 1441 this.eventBus().emit('cognito.hook.forgotpassword.then', { ...data, 1442 ...fields 1443 }); 1444 }).catch(error => { 1445 this.eventBus().emit('cognito.hook.forgotpassword.catch', { ...this.getError(error), 1446 ...fields 1447 }); 1448 }); 1449 } 1450 /** 1451 * @description This confirmationcodesubmit function used for submit password with code which was 1452 * sent by Cognito to the customer email address. 1453 * 1454 * Description of the API https://docs.amplify.aws/lib/auth/manageusers/q/platform/js#forgot-password 1455 * 1456 * @param {object} fields - object with code and new password 1457 * @param {string} fields.code - code from Amazon, like a token. 1458 * @param {string} fields.newPassword - customer new password string. 1459 * @param {string} fields.userName - customer new password string. 1460 */ 1461 1462 1463 confirmationCodeSubmit(fields) { 1464 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].forgotPasswordSubmit(fields.userName, fields.code, fields.newPassword).then(() => { 1465 this.eventBus().emit('cognito.hook.forgotpassword.confirmationcodesubmit.then'); 1466 }).catch(error => { 1467 this.eventBus().emit('cognito.hook.forgotpassword.confirmationcodesubmit.catch', this.getError(error)); 1468 }); 1469 } 1470 /** 1471 * @description Used for resend confirmation code to the customer. 1472 * 1473 * Description of the API https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#re-send-confirmation-code 1474 * @param {object} fields - object with code and username. 1475 * @param accessibilityAlert 1476 * @param {string} fields.username - customer new password string. 1477 */ 1478 1479 1480 reSendConfirmationEmail(fields, accessibilityAlert) { 1481 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].resendSignUp(fields.username).then(data => { 1482 this.eventBus().emit('cognito.hook.resendconfirmemail.then', { 1483 data, 1484 ...fields 1485 }); 1486 this.eventBus().emit('alert.show', { 1487 accessibilityAlert 1488 }); 1489 }).catch(error => { 1490 this.eventBus().emit('cognito.hook.resendconfirmemail.catch', { ...this.getError(error), 1491 ...fields 1492 }); 1493 }); 1494 } 1495 /**
1496 * @description Confirm customer verification with code and username. 1497 * 1498 * Description of the API https://docs.amplify.aws/lib/auth/emailpassword/q/platform/js#confirm-sign-up 1499 * 1500 * @param {object} fields - object with code and username. 1501 * @param {string} fields.code - confirmation code from email which was sent by Amazon Cognito. 1502 * @param {string} fields.username - customer username string. 1503 * @param {string} fields.password - customer password string. 1504 */ 1505 1506 1507 confirmSignUp(fields) { 1508 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].confirmSignUp(fields.username, fields.code).then(() => { 1509 // Used in case we don't need to signin customer immediately 1510 if (!!fields.silent) { 1511 // eslint-disable-line no-extra-boolean-cast 1512 this.eventBus().emit('cognito.hook.signin.silent'); 1513 return; 1514 } 1515 1516 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].signIn(fields.username, fields.password).then(data => { 1517 this.updateSessionStorage(data).then(() => { 1518 this.eventBus().emit(this.constants.HOOK_SIGN_IN_THEN, { ...data, 1519 ...fields 1520 }); 1521 }); 1522 }).catch(error => { 1523 this.eventBus().emit(this.constants.HOOK_SIGN_IN_CATCH, { ...this.getError(error), 1524 ...fields 1525 }); 1526 }); 1527 }).catch(error => { 1528 this.eventBus().emit('cognito.hook.confirmsignup.catch', { ...this.getError(error), 1529 ...fields 1530 }); 1531 }); 1532 } 1533 /** 1534 * @description update customer profile data on cognito side 1535 * and emit action for update it on SFCC side. 1536 * @param {object} fields 1537 * @param {string} fields.username - customer email 1538 * @param {string} fields.currentPassword - customer current password 1539 * @param {string} fields.firstName - customer first name 1540 * @param {string} fields.lastName - customer last name 1541 * @param {string} fields.phoneNumber - customer phone number in E.164 number convention format 1542 */ 1543 1544 1545 updateProfileDetails(fields) { 1546 var _document$getElementB; 1547 1548 // If it is external customer we don't need to check password. 1549 if (this.prefs().isExternalAuth || (_document$getElementB = document.getElementById('captureDobAndPhone')) !== null && _document$getElementB !== void 0 && _document$getElementB.getAttribute('data-sso-account')) { 1550 this.updateUserProfile(fields); 1551 return; 1552 } // Check provided customer username and password. 1553 1554 1555 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].signIn(fields.username, fields.currentPassword).then(data => { 1556 this.updateSessionStorage(data).then(() => { 1557 this.updateUserProfile(fields); 1558 }); 1559 }).catch(error => { 1560 this.eventBus().emit(this.constants.HOOK_UPDATE_PROFILE_ERROR, this.getError(error)); 1561 }); 1562 } 1563 /** 1564 * Internally used function which updates customer profile on cognito side. 1565 * 1566 * @param {object} fields - an object with data described below 1567 * @param {string} fields.username - customer email 1568 * @param {string} fields.currentPassword - customer current password 1569 * @param {string} fields.firstName - customer first name 1570 * @param {string} fields.lastName - customer last name 1571 * @param {string} fields.phoneNumber - customer phone number in E.164 number convention format 1572 */ 1573 1574 1575 updateUserProfile(fields) { 1576 // Get current auth user. 1577 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].currentAuthenticatedUser().then(user => { 1578 // Update user attributes 1579 let fieldsObject = { 1580 name: fields.firstName, 1581 family_name: fields.lastName, 1582 phone_number: Object(harmony_toolbox_format__WEBPACK_IMPORTED_MODULE_6__["formatPhoneNumber"])(fields.phoneNumber), 1583 birthdate: fields.birthDate, 1584 'custom:newsSubscription': fields.newsletterSubscription 1585 }; 1586 1587 if (fields.state) { 1588 fieldsObject['name'] = fields.firstName + ' ' + fields.lastName; 1589 fieldsObject['given_name'] = fields.firstName; 1590 fieldsObject['birthdate'] = Object(harmony_toolbox_format__WEBPACK_IMPORTED_MODULE_6__["formatDate"])(fields.birthDate); 1591 fieldsObject['custom:state'] = fields.state; 1592 } 1593 1594 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].updateUserAttributes(user, fieldsObject).then(data => { 1595 this.eventBus().emit('cognito.hook.updateprofiledetails.then', data); 1596 }).catch(error => { 1597 this.eventBus().emit(this.constants.HOOK_UPDATE_PROFILE_ERROR, this.getError(error)); 1598 }); 1599 }).catch(error => { 1600 this.eventBus().emit(this.constants.HOOK_UPDATE_PROFILE_ERROR, this.getError(error)); 1601 }); 1602 } 1603 /**
1604 * @description store cognito local storage to the backend session storage. 1605 * @param data - data to be stored. 1606 * @returns {Promise<object>} 1607 */ 1608 1609 1610 updateSessionStorage(data) { 1611 var _data$storage; 1612 1613 return Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_4__["submitFormJson"])(this.config.storageUrl, { 1614 storage: JSON.stringify(data === null || data === void 0 ? void 0 : (_data$storage = data.storage) === null || _data$storage === void 0 ? void 0 : _data$storage.dataMemory) 1615 }, 'POST', true); 1616 } 1617 /** 1618 * @description sync service newsletter subscription with cognito. 1619 * @param {object} response 1620 * @param {string} svcStatus - status which was passed to the newsletter subscription service. 1621 * @returns {Promise<T | void>} 1622 */ 1623 1624 1625 syncNewsletterSubscription(response) { 1626 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].currentAuthenticatedUser().then(user => { 1627 const userNewsletterSubscription = String(user.attributes['custom:newsSubscription']); 1628 const svcNewsletterSubscription = String(response.newsletterSubscription); 1629 1630 if (userNewsletterSubscription !== svcNewsletterSubscription) { 1631 _aws_amplify_auth__WEBPACK_IMPORTED_MODULE_2__["default"].updateUserAttributes(user, { 1632 'custom:newsSubscription': svcNewsletterSubscription 1633 }); 1634 } 1635 }).catch(error => { 1636 console.warn(error); 1637 }).finally(() => { 1638 this.eventBus().emit('sync.newsletter.subscription.then', response); 1639 }); 1640 } 1641 /** 1642 * @description Get error message object according to the error mapping with Amazon Cognito. 1643 * 1644 * @param {object} error - data from Amazon Cognito which code will be mapped to the message on SFCC side. 1645 * @param {string} error.code - error code from Amazon Cognito. 1646 * @param {string} type - deternime hwo called error function to get proper default error message. 1647 * 1648 * @returns {object} object with error message data. 1649 */ 1650 1651 1652 getError(error, type = 'default') { 1653 var errors = this.prefs().errors; 1654 var confirmException = error.code === 'UserNotConfirmedException'; 1655 var message = ''; // Identify default error message 1656 1657 switch (type) { 1658 case 'signin': 1659 message = errors.SignInException; 1660 break; 1661 1662 case 'signup': 1663 message = errors.SignUpException; 1664 break; 1665 1666 default: 1667 message = errors.InternalError; 1668 break; 1669 } // If an error has some specific code try to find another error message 1670 // otherwise will be default which was determined above 1671 1672 1673 if (error.code in errors) { 1674 message = errors[error.code]; 1675 } else if (confirmException) { 1676 message = errors.UnconfirmedCustomerAccount; 1677 } 1678 1679 return { 1680 message: message, 1681 confirmException: confirmException 1682 }; 1683 } 1684 1685 } 1686 1687 return Cognito; 1688}); 1689 1690/***/ }), 1691
1692/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/aws/CustomStorage.js": 1693/*!*****************************************************************************************!*\ 1694 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/aws/CustomStorage.js ***! 1695 \*****************************************************************************************/ 1696/*! exports provided: default */ 1697/***/ (function(module, __webpack_exports__, __webpack_require__) { 1698 1699"use strict"; 1700__webpack_require__.r(__webpack_exports__); 1701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Storage; }); 1702/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 1703/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__); 1704/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 1705 1706 1707/** 1708 * @class 1709 * @description This class used for change place where Amazon Cognito will store session data. 1710 * By default it is localStorage in browser. Here it was changed to the backend session. 1711 * See for more details: https://docs.amplify.aws/lib/auth/manageusers/q/platform/js#managing-security-tokens 1712 * 1713 * As well here was done mapping in localStorage for Amazon Cognito keys. Due to it has length over 50 symbols, 1714 * thus we are getting quote limit on back-end side. 1715 */ 1716 1717class Storage { 1718 /** 1719 * @param {string} storageUrl - where to get requests. 1720 */ 1721 constructor(storageUrl) { 1722 /** 1723 * @type {object} 1724 */ 1725 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "syncPromise", {}); 1726 1727 this.storageUrl = storageUrl; 1728 this.dataMemory = {}; 1729 } 1730 1731 /** 1732 * This is used to set a specific item in storage 1733 * 1734 * @param {string} key 1735 * @param {string} value 1736 * @returns {string} 1737 */ 1738 setItem(key, value) { 1739 this.dataMemory[key] = value; 1740 return this.dataMemory[key]; 1741 } 1742 /** 1743 * This is used to get a specific key from storage 1744 * 1745 * @param {string} key 1746 * @returns {string|undefined} 1747 */ 1748 1749 1750 getItem(key) { 1751 return Object.prototype.hasOwnProperty.call(this.dataMemory, key) ? this.dataMemory[key] : undefined; 1752 } 1753 /** 1754 * This is used to remove an item from storage 1755 * 1756 * @param {string} key 1757 * @returns {boolean} 1758 */ 1759 1760 1761 removeItem(key) { 1762 return delete this.dataMemory[key]; 1763 } 1764 /** 1765 * This is used to clear the storage 1766 * 1767 * @returns {object} 1768 */ 1769 1770 1771 clear() { 1772 this.dataMemory = {}; 1773 return this.dataMemory; 1774 } 1775 /** 1776 * Will sync the Storage data from server session to object storage. 1777 * And will sync mapping to Cognito session key. 1778 * 1779 * @returns {Promise<object>} 1780 */ 1781 1782 1783 sync() { 1784 if (!Storage.syncPromise) { 1785 Storage.syncPromise = new Promise((res, rej) => { 1786 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(this.storageUrl, {}, 'GET', true).then(data => { 1787 this.clear(); 1788 Object.assign(this.dataMemory, data.items); 1789 res(); 1790 }).catch(() => { 1791 rej(); 1792 }); 1793 }); 1794 } 1795 1796 return Storage.syncPromise; 1797 } 1798 1799} 1800 1801/***/ }), 1802
1803/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cancelOrderModal.js": 1804/*!****************************************************************************************!*\ 1805 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/cancelOrderModal.js ***! 1806 \****************************************************************************************/ 1807/*! exports provided: default */ 1808/***/ (function(module, __webpack_exports__, __webpack_require__) { 1809 1810"use strict"; 1811__webpack_require__.r(__webpack_exports__); 1812/* harmony default export */ __webpack_exports__["default"] = (function (HarmonyModal) { 1813 class cancelOrderModal extends HarmonyModal { 1814 init() { 1815 super.init(); 1816 } 1817 1818 closeModal() { 1819 super.closeModal(); 1820 } 1821 1822 show() { 1823 this.getById('cancelOrder', 1824 /** @type {modal} */ 1825 cancelOrder => cancelOrder.showModal({ 1826 attributes: { 1827 'data-tau-unique': 'open_cancelorder_dialog' 1828 } 1829 })); 1830 } 1831 1832 cancelOrder() { 1833 const cancelReason = $('#cancelreason').val() === '' ? 'none' : $('#cancelreason').val(); 1834 const url = $('#confirmCancelOrderUrl').val(); 1835 const CancelOrderDetails = { 1836 cancelReason: cancelReason 1837 }; 1838 $('body').addClass('m-panel-open'); 1839 $('.b-loader').removeClass('h-hidden'); 1840 $.ajax({ 1841 url: url, 1842 type: 'get', 1843 dataType: 'json', 1844 data: CancelOrderDetails, 1845 success: function (res) { 1846 var transactionId = res.transactionID; 1847 var gtmData = { 1848 event: 'orderHistory', 1849 orderHistoryAction: 'Cancel Order', 1850 canceledTransactionId: transactionId 1851 }; 1852 var isOrderDetailPage = $('.b-order_short_summary-status').parents('.b-order_details').length; 1853 dataLayer.push(gtmData); 1854 1855 if (res.success === false) { 1856 $('.renderTemplate').html(res.renderedTemplate); 1857 $('.b-loader').addClass('h-hidden'); 1858 } else if (res.guest === true || isOrderDetailPage) { 1859 $('body').removeClass('m-has_dialog'); 1860 $('.b-loader').addClass('h-hidden'); 1861 $('.b-order_short_summary-status').addClass('deleted'); 1862 $('.b-order_short_summary-status').html('Your order is cancelled'); 1863 $('.cancelorder-modal').hide(); 1864 } else { 1865 window.location.reload(); 1866 } 1867 }, 1868 error: function (error) { 1869 $('body').removeClass('m-panel-open'); 1870 $('.b-loader').addClass('h-hidden'); 1871 console.log(error); 1872 } 1873 }); 1874 } 1875 1876 } 1877 1878 return cancelOrderModal; 1879}); 1880 1881/***/ }), 1882
1883/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/MixMiniCart.js": 1884/*!****************************************************************************************!*\ 1885 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/MixMiniCart.js ***! 1886 \****************************************************************************************/ 1887/*! exports provided: default */ 1888/***/ (function(module, __webpack_exports__, __webpack_require__) { 1889 1890"use strict"; 1891__webpack_require__.r(__webpack_exports__); 1892/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 1893 1894/** 1895 * @typedef {typeof import('widgets/Widget').default} Widget 1896 */ 1897 1898/** 1899 * @description Base MixMiniCart implementation 1900 * @param {Widget} Widget Modal widget for extending 1901 * @returns {typeof MixMiniCart} MixMiniCart class 1902 */ 1903 1904/* harmony default export */ __webpack_exports__["default"] = (function (Minicart) { 1905 /** 1906 * @class MixMiniCart 1907 * @augments Widget 1908 * @classdesc MixMiniCart widget, that contains all needed logic to display/update MixMiniCart component and extends MixMiniCart widget. 1909 * @property {string} data-widget - Widget name `MixMiniCart` 1910 * URL to be used for updating MixMiniCart widget (for ex. in case of removing products from MixMiniCart) 1911 * @property {string} data-ref Known reference to be available in widget as a `RefElement` object. 1912 * Known elements for MixMiniCart are: `minicartContent`, `template` 1913 * @property {object} data-accessibility-alerts - Accessibility alerts per MixMiniCart action 1914 * Possible values are: `quantitychanged`, `productremoved` 1915 * @example 1916 * // use this code to display widget 1917 * <div 1918 * class="b-minicart_popup" 1919 * data-widget="mixMiniCart" 1920 * data-action-url="${URLUtils.url('Cart-MiniCartShow')}" 1921 * > 1922 * <div 1923 * data-ref="minicartContent" 1924 * data-count="${pdict.quantityTotal}" 1925 * > 1926 * .... minicart content 1927 * </div> 1928 * </div> 1929 */ 1930 class MixMiniCart extends Minicart { 1931 /** 1932 * This method was overriden with parent widget. 1933 * 1934 * @description Called when needs to re-render minicart (for ex. when cart / product in a cart was updated) 1935 * @param {object} cart cartModel 1936 * @returns {Promise} Promise 1937 */ 1938 reRenderMinicartWrapper(cart) { 1939 const isShownQtyTotal = parseInt(cart.numItems, 10); 1940 const quantityTotal = cart.numItems > this.prefs().maxItemsValue ? this.prefs().maxItemsStr : cart.numItems; 1941 return this.render('template', { 1942 quantityTotal: quantityTotal, 1943 isShownQtyTotal: isShownQtyTotal >= 0, 1944 isOpen: cart.isOpen 1945 }, this.ref(this.prefs().refMinicartContent)).then(() => { 1946 // do not show minicart if disabled or mobile (small view port) 1947 if (cart.showMinicart) { 1948 this.showMinicart(); 1949 } 1950 }); 1951 } 1952 1953 } 1954 1955 return MixMiniCart; 1956}); 1957 1958/***/ }), 1959
1960/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/SecureCheckoutButton.js": 1961/*!*************************************************************************************************!*\ 1962 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/SecureCheckoutButton.js ***! 1963 \*************************************************************************************************/ 1964/*! exports provided: default */ 1965/***/ (function(module, __webpack_exports__, __webpack_require__) { 1966 1967"use strict"; 1968__webpack_require__.r(__webpack_exports__); 1969/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 1970 1971/** 1972 * @description Base SecureCheckoutButton implementation 1973 * @param {ReturnType<typeof import('widgets/global/Button').default>} Button widget for extending 1974 * @returns {typeof SecureCheckoutButton} SecureCheckoutButton class 1975 * 1976 */ 1977 1978/* harmony default export */ __webpack_exports__["default"] = (function (Button) { 1979 class SecureCheckoutButton extends Button { 1980 /** 1981 * @description Sends GTM events, when secure checkout button clicked 1982 * @returns {void} 1983 */ 1984 handleSubmit() { 1985 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["submitFormJson"])(this.config.basketValidationUrl, {}).then(response => { 1986 if (response.error) { 1987 if (this.config.context === 'minicart') { 1988 this.eventBus().emit('gtm.cart.updated', response); 1989 this.eventBus().emit('minicart.show'); 1990 } else { 1991 this.eventBus().emit('secure.checkout.clicked', response.cartModel); 1992 this.eventBus().emit('cart.items.refresh'); 1993 } 1994 } else { 1995 window.location.href = this.config.checkoutUrl; 1996 } 1997 }); 1998 this.eventBus().emit('loader.start', promise); 1999 this.eventBus().emit('gtm.button.click'); 2000 } 2001 2002 } 2003 2004 return SecureCheckoutButton; 2005}); 2006 2007/***/ }), 2008
2009/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/ShippingSelector.js": 2010/*!*********************************************************************************************!*\ 2011 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/ShippingSelector.js ***! 2012 \*********************************************************************************************/ 2013/*! exports provided: default */ 2014/***/ (function(module, __webpack_exports__, __webpack_require__) { 2015 2016"use strict"; 2017__webpack_require__.r(__webpack_exports__); 2018/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 2019 2020/** 2021 * @description Base ShippingSelector implementation 2022 * @param {Widget} Widget Modal widget for extending 2023 * @returns {typeof ShippingSelector} ShippingSelector class 2024 */ 2025 2026/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 2027 class ShippingSelector extends Widget { 2028 selectShippingMethod() { 2029 var methodID = this.ref('field').val(); 2030 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["submitFormJson"])(this.config.actionUrl, { 2031 methodID: methodID 2032 }, 'POST').then(res => { 2033 // res - basketModel 2034 this.eventBus().emit('shipping.method.selected', res); 2035 }); 2036 this.eventBus().emit('loader.start', promise); 2037 } 2038 2039 } 2040 2041 return ShippingSelector; 2042}); 2043 2044/***/ }), 2045
2046/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cocktailList.js": 2047/*!************************************************************************************!*\ 2048 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/cocktailList.js ***! 2049 \************************************************************************************/ 2050/*! no static exports found */ 2051/***/ (function(module, exports, __webpack_require__) { 2052 2053window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 2054var cocktailList = { 2055 currentFilters: { 2056 search: '' 2057 }, 2058 availableFilterTypes: [], 2059 filterConfig: { 2060 type: { 2061 multiSelect: false 2062 }, 2063 flavor: { 2064 multiSelect: true 2065 }, 2066 complexity: { 2067 multiSelect: false 2068 }, 2069 category: { 2070 multiSelect: false 2071 } 2072 }, 2073 start: 0, 2074 isLoading: false, 2075 2076 /** 2077 * Initialize cocktail list functionality 2078 */ 2079 init: function () { 2080 var self = this; 2081 var $cocktailList = $('.b-cocktail-list'); 2082 2083 if ($cocktailList.length === 0) { 2084 return; 2085 } // Get initial configuration 2086 2087 2088 this.$cocktailList = $cocktailList; 2089 this.ajaxUrl = $cocktailList.data('ajax-url'); 2090 this.basePageSize = parseInt($cocktailList.data('page-size'), 10) || 6; 2091 this.customObjectTypeId = $cocktailList.data('custom-object-type-id'); 2092 this.enableBorderRadius = $cocktailList.data('enable-border-radius') === 'true'; 2093 this.borderRadius = $cocktailList.css('--border-radius') || '4px'; 2094 this.useCompactLayout = $cocktailList.data('use-compact-layout') === 'true'; 2095 this.showTypeAboveName = $cocktailList.data('show-type-above-name') === 'true'; // Detect available filter types from rendered filter groups or horizontal tabs 2096 2097 this.availableFilterTypes = []; // Check for horizontal tabs first 2098 2099 var $horizontalTabs = $('.b-cocktail-list__horizontal-tab-btn'); 2100 2101 if ($horizontalTabs.length > 0) { 2102 $horizontalTabs.first().each(function () { 2103 var filterType = $(this).data('filter'); 2104 2105 if (filterType && self.availableFilterTypes.indexOf(filterType) === -1) { 2106 self.availableFilterTypes.push(filterType); 2107 } 2108 }); 2109 } else { 2110 // Check for regular filter dropdowns 2111 $('.b-cocktail-list__filter-category-btn').each(function () { 2112 var filterType = $(this).data('filter-category'); 2113 2114 if (filterType && self.availableFilterTypes.indexOf(filterType) === -1) { 2115 self.availableFilterTypes.push(filterType); 2116 } 2117 }); 2118 } // Initialize filters based on available filter types 2119 2120 2121 this.initializeFilters(); // Adjust page size for mobile (2 columns) to ensure even number of tiles 2122 2123 this.pageSize = this.getAdjustedPageSize(); // Check if we're using horizontal tabs (single filter) 2124 2125 this.useHorizontalTabs = $('.b-cocktail-list__horizontal-tabs').length > 0; // Initialize horizontal tabs if applicable 2126 2127 if (this.useHorizontalTabs) { 2128 this.initHorizontalTabs(); 2129 } else { 2130 // Initialize filter toggle 2131 this.initFilterToggle(); // Initialize filter categories 2132 2133 this.initFilterCategories(); 2134 } // Initialize search toggle 2135 2136 2137 this.initSearchToggle(); // Initialize reset filters 2138 2139 this.initResetFilters(); // Initialize load more 2140 2141 this.initLoadMore(); // Initialize search input 2142 2143 this.initSearchInput(); // Update selected filters display on init 2144 2145 this.updateSelectedFilters(); // Adjust page size on window resize 2146 2147 var self = this; 2148 $(window).on('resize', function () { 2149 var newPageSize = self.getAdjustedPageSize(); 2150 2151 if (newPageSize !== self.pageSize) { 2152 self.pageSize = newPageSize; 2153 } 2154 }); 2155 }, 2156 2157 /** 2158 * Initialize filters based on available filter types 2159 */ 2160 initializeFilters: function () { 2161 var self = this; 2162 self.currentFilters = { 2163 search: '' 2164 }; // Handle horizontal tabs case 2165 2166 if (self.useHorizontalTabs) { 2167 var $firstTab = $('.b-cocktail-list__horizontal-tab-btn').first(); 2168 2169 if ($firstTab.length > 0) { 2170 var filterType = $firstTab.data('filter'); 2171 var $activeTab = $('.b-cocktail-list__horizontal-tab-btn.is-active').first(); 2172 2173 if ($activeTab.length > 0) { 2174 self.currentFilters[filterType] = $activeTab.data('value'); 2175 } else { 2176 // No tab selected, show all 2177 self.currentFilters[filterType] = 'all'; 2178 } 2179 } 2180 } else {
2181 self.availableFilterTypes.forEach(function (filterType) { 2182 var config = self.filterConfig[filterType]; 2183 2184 if (config) { 2185 if (config.multiSelect) { 2186 self.currentFilters[filterType + 's'] = []; // e.g., flavors 2187 } else { 2188 self.currentFilters[filterType] = 'all'; // e.g., type, complexity, category 2189 } 2190 } 2191 }); 2192 } 2193 }, 2194 2195 /** 2196 * Get adjusted page size based on screen size and layout 2197 * Compact layout: 2 columns desktop, 1 column mobile 2198 * Default layout: 3 columns desktop, 2 columns mobile 2199 */ 2200 getAdjustedPageSize: function () { 2201 var baseSize = this.basePageSize; 2202 var isMobile = window.matchMedia('(max-width: 767px)').matches; 2203 2204 if (this.useCompactLayout) { 2205 if (isMobile) { 2206 // Mobile: 1 column - any number is fine 2207 return baseSize; 2208 } else { 2209 // Desktop: 2 columns - round to nearest even number 2210 return Math.ceil(baseSize / 2) * 2; 2211 } 2212 } else { 2213 if (isMobile) { 2214 // Mobile: 2 columns - round to nearest even number 2215 return Math.ceil(baseSize / 2) * 2; 2216 } else { 2217 // Desktop: 3 columns - round to nearest multiple of 3 2218 return Math.ceil(baseSize / 3) * 3; 2219 } 2220 } 2221 }, 2222 2223 /** 2224 * Initialize filter toggle button (mobile only) 2225 */ 2226 initFilterToggle: function () { 2227 var self = this; 2228 var $filterToggleBtn = $('.b-cocktail-list__filter-toggle-btn'); 2229 var $filterMenu = $('.b-cocktail-list__filters-menu'); 2230 var $filterIcon = $('.b-cocktail-list__filter-toggle-icon--filter'); 2231 var $closeIcon = $('.b-cocktail-list__filter-toggle-icon--close'); // Check if we're on mobile or desktop 2232 2233 function isMobile() { 2234 return window.matchMedia && window.matchMedia('(max-width: 767px)').matches; 2235 } // On desktop, always show menu 2236 2237 2238 if (!isMobile()) { 2239 $filterMenu.show(); 2240 } 2241 2242 $filterToggleBtn.on('click', function (e) { 2243 e.preventDefault(); 2244 e.stopPropagation(); // Only toggle on mobile 2245 2246 if (!isMobile()) { 2247 return; 2248 } 2249 2250 var isOpen = $filterMenu.is(':visible'); 2251 2252 if (isOpen) { 2253 $filterMenu.slideUp(); 2254 $filterIcon.show(); 2255 $closeIcon.hide(); 2256 $filterToggleBtn.removeClass('is-active'); // Close all filter value panels 2257 2258 $('.b-cocktail-list__filter-values').slideUp(); 2259 $('.b-cocktail-list__filter-category-arrow').removeClass('is-open'); 2260 } else { 2261 $filterMenu.slideDown(); 2262 $filterIcon.hide(); 2263 $closeIcon.show(); 2264 $filterToggleBtn.addClass('is-active'); 2265 } 2266 }); // Close filter menu when clicking outside (mobile only) 2267 2268 $(document).on('click', function (e) { 2269 if (isMobile() && !$(e.target).closest('.b-cocktail-list__filters-wrapper').length && !$(e.target).closest('.b-cocktail-list__selected-filters').length) { 2270 if ($filterMenu.is(':visible')) { 2271 $filterMenu.slideUp(); 2272 $filterIcon.show(); 2273 $closeIcon.hide(); 2274 $filterToggleBtn.removeClass('is-active'); 2275 $('.b-cocktail-list__filter-values').slideUp(); 2276 $('.b-cocktail-list__filter-category-arrow').removeClass('is-open'); 2277 } 2278 } 2279 }); // Close filter value dropdowns when clicking outside 2280 2281 $(document).on('click', function (e) { 2282 if (!$(e.target).closest('.b-cocktail-list__filter-group').length) { 2283 $('.b-cocktail-list__filter-values').slideUp(); 2284 $('.b-cocktail-list__filter-category-arrow').removeClass('is-open'); 2285 } 2286 }); // Handle window resize 2287 2288 $(window).on('resize', function () { 2289 if (!isMobile()) { 2290 // On desktop, always show menu 2291 $filterMenu.show(); 2292 } 2293 }); 2294 }, 2295 2296 /** 2297 * Initialize filter category buttons (PROSECCO, FLAVOR, COMPLEXITY) 2298 */ 2299 initFilterCategories: function () { 2300 var self = this; // Handle remove icon clicks (X icon) for all filter types 2301 2302 $(document).on('click', '.b-cocktail-list__filter-category-remove', function (e) { 2303 e.preventDefault(); 2304 e.stopPropagation(); 2305 var $btn = $(this).closest('.b-cocktail-list__filter-category-btn'); 2306 var category = $btn.data('filter-category'); 2307 var isMultiSelect = $btn.data('multi-select') === 'true'; 2308 var config = self.filterConfig[category]; 2309 2310 if (config) { 2311 if (config.multiSelect || isMultiSelect) { 2312 // Clear multi-select filter 2313 self.currentFilters[category + 's'] = []; 2314 $('.b-cocktail-list__filter-value-btn[data-filter="' + category + '"]').removeClass('is-selected'); 2315 2316 if (category === 'flavor') { 2317 self.updateFlavorButtonState(); 2318 } 2319 } else { 2320 // Clear single-select filter 2321 self.currentFilters[category] = 'all'; 2322 self.updateCategoryButtonText(category, 'all'); 2323 $('.b-cocktail-list__filter-value-btn[data-filter="' + category + '"]').removeClass('is-selected'); 2324 } 2325 2326 self.updateSelectedFilters(); 2327 self.applyFilters(); 2328 } 2329 }); // Handle category button clicks to show/hide values 2330 2331 $(document).on('click', '.b-cocktail-list__filter-category-btn', function (e) { 2332 // Don't toggle if clicking on the remove icon (handled separately) 2333 if ($(e.target).closest('.b-cocktail-list__filter-category-remove').length > 0) { 2334 return; 2335 } 2336 2337 e.preventDefault(); 2338 e.stopPropagation(); 2339 var $btn = $(this); 2340 var category = $btn.data('filter-category'); 2341 var $values = $('.b-cocktail-list__filter-values[data-filter-values="' + category + '"]'); 2342 var $arrow = $btn.find('.b-cocktail-list__filter-category-arrow'); 2343 var isVisible = $values.is(':visible'); // Close all other value panels 2344 2345 $('.b-cocktail-list__filter-values').not($values).slideUp(); 2346 $('.b-cocktail-list__filter-category-arrow').not($arrow).removeClass('is-open'); // Toggle current panel 2347 2348 if (isVisible) { 2349 $values.slideUp(); 2350 $arrow.removeClass('is-open'); 2351 } else { 2352 $values.slideDown(); 2353 $arrow.addClass('is-open'); 2354 } 2355 }); // Handle filter value button clicks 2356 2357 $(document).on('click', '.b-cocktail-list__filter-value-btn', function (e) { 2358 e.preventDefault(); 2359 e.stopPropagation(); 2360 var $btn = $(this); 2361 var filterType = $btn.data('filter'); 2362 var filterValue = $btn.data('value'); 2363 var isActive = $btn.hasClass('is-selected'); 2364 var config = self.filterConfig[filterType]; 2365 2366 if (config) { 2367 if (config.multiSelect) { 2368 // Multi-select (e.g., flavor) 2369 if (isActive) { 2370 $btn.removeClass('is-selected'); 2371 var filterKey = filterType + 's'; 2372 var index = self.currentFilters[filterKey].indexOf(filterValue); 2373 2374 if (index > -1) { 2375 self.currentFilters[filterKey].splice(index, 1); 2376 } 2377 } else { 2378 $btn.addClass('is-selected'); 2379 var filterKey = filterType + 's'; 2380 2381 if (self.currentFilters[filterKey].indexOf(filterValue) === -1) { 2382 self.currentFilters[filterKey].push(filterValue); 2383 } 2384 } // Update button state (show/hide cross) 2385 2386 2387 if (filterType === 'flavor') { 2388 self.updateFlavorButtonState(); 2389 } 2390 } else { 2391 // Single select - remove other selections 2392 $('.b-cocktail-list__filter-value-btn[data-filter="' + filterType + '"]').removeClass('is-selected'); 2393 2394 if (!isActive) { 2395 $btn.addClass('is-selected'); 2396 self.currentFilters[filterType] = filterValue; // Update button text to show selected value 2397 2398 self.updateCategoryButtonText(filterType, filterValue); 2399 } else { 2400 // Deselect 2401 self.currentFilters[filterType] = 'all'; 2402 self.updateCategoryButtonText(filterType, 'all'); 2403 } 2404 } 2405 } 2406 2407 self.updateSelectedFilters(); 2408 self.applyFilters(); 2409 }); 2410 }, 2411 2412 /** 2413 * Initialize horizontal tabs (for single filter type) 2414 */ 2415 initHorizontalTabs: function () { 2416 var self = this; // Get the filter type from the first tab 2417 2418 var $firstTab = $('.b-cocktail-list__horizontal-tab-btn').first(); 2419 2420 if ($firstTab.length === 0) { 2421 return; 2422 } 2423 2424 var filterType = $firstTab.data('filter'); // Initialize filter to 'all' (show all items by default) 2425 2426 self.currentFilters[filterType] = 'all'; // Handle tab clicks 2427 2428 $(document).on('click', '.b-cocktail-list__horizontal-tab-btn', function (e) { 2429 e.preventDefault(); 2430 var $tab = $(this); 2431 var value = $tab.data('value'); 2432 var isActive = $tab.hasClass('is-active'); 2433 2434 if (isActive) { 2435 // If clicking the active tab, deselect it (show all) 2436 $tab.removeClass('is-active'); 2437 self.currentFilters[filterType] = 'all'; 2438 } else { 2439 // Select the clicked tab 2440 $('.b-cocktail-list__horizontal-tab-btn').removeClass('is-active'); 2441 $tab.addClass('is-active'); 2442 self.currentFilters[filterType] = value; 2443 } // Apply filters only on user interaction 2444 2445 2446 self.applyFilters(); 2447 }); // Don't call applyFilters() on init - keep server-side rendered content 2448 }, 2449 2450 /** 2451 * Initialize search toggle - expands button to show input 2452 */ 2453 initSearchToggle: function () { 2454 var self = this;
2455 var $searchWrapper = $('.b-cocktail-list__search-wrapper'); 2456 var $searchBtn = $('.b-cocktail-list__search-btn'); 2457 var $searchInput = $('.b-cocktail-list__search-input'); 2458 var $searchIcon = $searchBtn.find('.b-cocktail-list__search-icon'); 2459 var $searchText = $searchBtn.find('.b-cocktail-list__search-text'); 2460 $searchBtn.on('click', function (e) { 2461 // Don't toggle if clicking inside the input field 2462 if ($(e.target).closest('.b-cocktail-list__search-input').length > 0) { 2463 return; 2464 } 2465 2466 e.preventDefault(); // Check if search is already expanded 2467 2468 var isExpanded = $searchWrapper.hasClass('is-expanded'); 2469 2470 if (isExpanded) { 2471 // Collapse search 2472 $searchWrapper.removeClass('is-expanded'); 2473 $searchInput.blur(); // Delay to allow collapse animation 2474 2475 setTimeout(function () { 2476 if (!$searchWrapper.hasClass('is-expanded')) { 2477 $searchIcon.show(); 2478 $searchText.show(); 2479 } 2480 }, 300); 2481 } else { 2482 // Expand search 2483 $searchIcon.hide(); 2484 $searchText.hide(); // Use requestAnimationFrame to ensure DOM is ready for animation 2485 2486 requestAnimationFrame(function () { 2487 $searchWrapper.addClass('is-expanded'); 2488 setTimeout(function () { 2489 $searchInput.focus(); 2490 }, 150); 2491 }); 2492 } 2493 }); // Close search when clicking outside 2494 2495 $(document).on('click', function (e) { 2496 if (!$(e.target).closest('.b-cocktail-list__search').length) { 2497 if ($searchWrapper.hasClass('is-expanded')) { 2498 var searchValue = $searchInput.val().trim(); 2499 2500 if (!searchValue) { 2501 // Only close if there's no search value 2502 $searchWrapper.removeClass('is-expanded'); 2503 $searchInput.blur(); // Delay to allow collapse animation 2504 2505 setTimeout(function () { 2506 if (!$searchWrapper.hasClass('is-expanded')) { 2507 $searchIcon.show(); 2508 $searchText.show(); 2509 } 2510 }, 300); 2511 } 2512 } 2513 } 2514 }); 2515 }, 2516 2517 /** 2518 * Initialize reset filters button 2519 */ 2520 initResetFilters: function () { 2521 var self = this; 2522 $(document).on('click', '.b-cocktail-list__reset-filter-btn', function (e) { 2523 e.preventDefault(); 2524 self.resetFilters(); 2525 }); 2526 }, 2527 2528 /** 2529 * Update category button text to show selected value 2530 */ 2531 updateCategoryButtonText: function (filterType, value) { 2532 var $categoryBtn = $('.b-cocktail-list__filter-category-btn[data-filter-category="' + filterType + '"]'); 2533 var $textSpan = $categoryBtn.find('.b-cocktail-list__filter-category-text'); 2534 var $arrow = $categoryBtn.find('.b-cocktail-list__filter-category-arrow'); 2535 var $remove = $categoryBtn.find('.b-cocktail-list__filter-category-remove'); 2536 var defaultLabel = $categoryBtn.data('default-label') || ''; // Check if value matches the default label (reset case) 2537 2538 if (value === defaultLabel || value === 'all' || value === 'PROSECCO' || value === 'COMPLEXITY') { 2539 // Reset to default text 2540 $textSpan.text(defaultLabel); 2541 $arrow.show(); 2542 $remove.hide(); 2543 $categoryBtn.removeClass('is-selected'); 2544 } else { 2545 // Show selected value 2546 $textSpan.text(value); 2547 $arrow.hide(); 2548 $remove.show(); 2549 $categoryBtn.addClass('is-selected'); 2550 } 2551 }, 2552 2553 /** 2554 * Update flavor button state (show/hide cross and add/remove selected class) 2555 */ 2556 updateFlavorButtonState: function () { 2557 var self = this; 2558 var $flavorBtn = $('.b-cocktail-list__filter-category-btn[data-filter-category="flavor"]'); 2559 var $arrow = $flavorBtn.find('.b-cocktail-list__filter-category-arrow'); 2560 var $remove = $flavorBtn.find('.b-cocktail-list__filter-category-remove'); 2561 2562 if (self.currentFilters.flavors && self.currentFilters.flavors.length > 0) { 2563 // Flavors are selected - show cross, hide arrow, add selected class 2564 $arrow.hide(); 2565 $remove.show(); 2566 $flavorBtn.addClass('is-selected'); 2567 } else { 2568 // No flavors selected - show arrow, hide cross, remove selected class 2569 $arrow.show(); 2570 $remove.hide(); 2571 $flavorBtn.removeClass('is-selected'); 2572 } 2573 }, 2574 2575 /**
2576 * Update selected filters display 2577 */ 2578 updateSelectedFilters: function () { 2579 var self = this; 2580 var $selectedFilters = $('.b-cocktail-list__selected-filters'); 2581 $selectedFilters.empty(); // Update filter value button states 2582 2583 $('.b-cocktail-list__filter-value-btn').removeClass('is-selected'); // Process each available filter type 2584 2585 self.availableFilterTypes.forEach(function (filterType) { 2586 var config = self.filterConfig[filterType]; 2587 2588 if (config) { 2589 if (config.multiSelect) { 2590 // Multi-select filters (e.g., flavor) 2591 var filterKey = filterType + 's'; 2592 var selectedValues = self.currentFilters[filterKey] || []; 2593 2594 if (selectedValues.length > 0) { 2595 selectedValues.forEach(function (value) { 2596 var $chip = $('<button>').addClass('b-cocktail-list__selected-filter-chip').attr('data-filter-type', filterType).attr('data-filter-value', value).html('<span>' + value + '</span><span class="b-cocktail-list__chip-remove">â</span>'); // Apply border radius if enabled 2597 2598 if (self.enableBorderRadius && self.borderRadius) { 2599 $chip.css('border-radius', self.borderRadius); 2600 } 2601 2602 $selectedFilters.append($chip); 2603 $('.b-cocktail-list__filter-value-btn[data-filter="' + filterType + '"][data-value="' + value + '"]').addClass('is-selected'); 2604 }); 2605 } // Update button state for flavor 2606 2607 2608 if (filterType === 'flavor') { 2609 self.updateFlavorButtonState(); 2610 } 2611 } else { 2612 // Single-select filters (e.g., type, complexity, category) 2613 var filterValue = self.currentFilters[filterType]; 2614 2615 if (filterValue && filterValue !== 'all') { 2616 self.updateCategoryButtonText(filterType, filterValue); 2617 $('.b-cocktail-list__filter-value-btn[data-filter="' + filterType + '"][data-value="' + filterValue + '"]').addClass('is-selected'); 2618 } else { 2619 self.updateCategoryButtonText(filterType, 'all'); 2620 } 2621 } 2622 } 2623 }); // Handle chip removal for multi-select filters 2624 2625 $(document).off('click', '.b-cocktail-list__selected-filter-chip'); 2626 $(document).on('click', '.b-cocktail-list__selected-filter-chip', function (e) { 2627 e.preventDefault(); 2628 var filterType = $(this).data('filter-type'); 2629 var filterValue = $(this).data('filter-value'); 2630 var config = self.filterConfig[filterType]; 2631 2632 if (config && config.multiSelect) { 2633 var filterKey = filterType + 's'; 2634 var index = self.currentFilters[filterKey].indexOf(filterValue); 2635 2636 if (index > -1) { 2637 self.currentFilters[filterKey].splice(index, 1); 2638 } 2639 2640 $('.b-cocktail-list__filter-value-btn[data-filter="' + filterType + '"][data-value="' + filterValue + '"]').removeClass('is-selected'); 2641 2642 if (filterType === 'flavor') { 2643 self.updateFlavorButtonState(); 2644 } 2645 } 2646 2647 self.updateSelectedFilters(); 2648 self.applyFilters(); 2649 }); 2650 }, 2651 2652 /** 2653 * Initialize search input handler 2654 */ 2655 initSearchInput: function () { 2656 var self = this; 2657 var searchTimeout; 2658 $('.b-cocktail-list__search-input').on('input', function () { 2659 clearTimeout(searchTimeout); 2660 var searchValue = $(this).val().trim(); 2661 searchTimeout = setTimeout(function () { 2662 self.currentFilters.search = searchValue; 2663 self.applyFilters(); 2664 }, 300); // Debounce search 2665 }); 2666 }, 2667 2668 /** 2669 * Apply filters and reload cocktails 2670 */ 2671 applyFilters: function () { 2672 var self = this; 2673 2674 if (self.isLoading) { 2675 return; 2676 } 2677 2678 self.start = 0; // Reset to first page 2679 // Adjust page size before loading 2680 2681 self.pageSize = self.getAdjustedPageSize(); 2682 self.loadCocktails(true); 2683 }, 2684 2685 /** 2686 * Reset all filters 2687 */ 2688 resetFilters: function () { 2689 var self = this; // Reset filters dynamically 2690 2691 self.initializeFilters(); // Reset UI 2692 2693 $('.b-cocktail-list__filter-value-btn').removeClass('is-selected'); 2694 $('.b-cocktail-list__filter-category-btn').removeClass('is-selected'); 2695 $('.b-cocktail-list__search-input').val(''); // Handle horizontal tabs reset 2696 2697 if (self.useHorizontalTabs) { 2698 var $firstTab = $('.b-cocktail-list__horizontal-tab-btn').first(); 2699 2700 if ($firstTab.length > 0) { 2701 $('.b-cocktail-list__horizontal-tab-btn').removeClass('is-active'); 2702 var filterType = $firstTab.data('filter'); 2703 self.currentFilters[filterType] = 'all'; 2704 } 2705 } else { 2706 // Reset button text to default for all filter types
2707 self.availableFilterTypes.forEach(function (filterType) { 2708 var config = self.filterConfig[filterType]; 2709 2710 if (config && !config.multiSelect) { 2711 self.updateCategoryButtonText(filterType, 'all'); 2712 } else if (filterType === 'flavor') { 2713 self.updateFlavorButtonState(); 2714 } 2715 }); 2716 } 2717 2718 self.updateSelectedFilters(); 2719 self.applyFilters(); 2720 }, 2721 2722 /** 2723 * Load cocktails via AJAX 2724 */ 2725 loadCocktails: function (replace) { 2726 var self = this; 2727 2728 if (self.isLoading) { 2729 return; 2730 } 2731 2732 self.isLoading = true; 2733 var $grid = $('.b-cocktail-list__grid'); 2734 var $loadMore = $('.b-cocktail-list__load-more'); 2735 var $noResults = $('.b-cocktail-list__no-results'); // Show loading state 2736 2737 if (replace) { 2738 $grid.html('<div class="b-cocktail-list__loading">Loading...</div>'); 2739 } else { 2740 $loadMore.find('.b-cocktail-list__load-more-btn').text('Loading...').prop('disabled', true); 2741 } // Build request parameters dynamically 2742 2743 2744 var params = { 2745 customObjectTypeId: self.customObjectTypeId, 2746 pageSize: self.pageSize, 2747 start: self.start, 2748 search: self.currentFilters.search || '' 2749 }; // Add filter parameters for each available filter type 2750 2751 self.availableFilterTypes.forEach(function (filterType) { 2752 var config = self.filterConfig[filterType]; 2753 2754 if (config) { 2755 if (config.multiSelect) { 2756 var filterKey = filterType + 's'; 2757 var filterValues = self.currentFilters[filterKey] || []; 2758 2759 if (filterValues.length > 0) { 2760 params[filterKey] = filterValues.join(','); 2761 } 2762 } else { 2763 var filterValue = self.currentFilters[filterType]; 2764 2765 if (filterValue && filterValue !== 'all') { 2766 params[filterType] = filterValue; 2767 } 2768 } 2769 } 2770 }); // Make AJAX request 2771 2772 $.ajax({ 2773 url: self.ajaxUrl, 2774 method: 'GET', 2775 data: params, 2776 dataType: 'json', 2777 success: function (response) { 2778 if (response.success) { 2779 if (replace) { 2780 $grid.empty(); 2781 } 2782 2783 if (response.cocktails && response.cocktails.length > 0) { 2784 // Render cocktails 2785 response.cocktails.forEach(function (cocktail) { 2786 var $tile = self.renderCocktailTile(cocktail); 2787 $grid.append($tile); 2788 }); // Update load more button 2789 2790 if (response.hasNext) { 2791 $loadMore.show(); 2792 $loadMore.find('.b-cocktail-list__load-more-btn').text('LOAD MORE').prop('disabled', false).data('load-more-url', response.loadMoreUrl); 2793 } else { 2794 $loadMore.hide(); 2795 } 2796 2797 $noResults.hide(); 2798 } else { 2799 if (replace) { 2800 $noResults.show(); 2801 } 2802 2803 $loadMore.hide(); 2804 } // Update filter options if provided 2805 2806 2807 if (response.filterOptions) { 2808 self.updateFilterOptions(response.filterOptions); 2809 } // Update selected filters display 2810 2811 2812 self.updateSelectedFilters(); 2813 } else { 2814 console.error('Error loading cocktails:', response); 2815 2816 if (replace) { 2817 $grid.html('<div class="b-cocktail-list__error">Error loading cocktails. Please try again.</div>'); 2818 } 2819 } 2820 }, 2821 error: function (xhr, status, error) { 2822 console.error('AJAX error loading cocktails:', error); 2823 2824 if (replace) { 2825 $grid.html('<div class="b-cocktail-list__error">Error loading cocktails. Please try again.</div>'); 2826 } 2827 }, 2828 complete: function () { 2829 self.isLoading = false; 2830 2831 if (!replace) { 2832 $loadMore.find('.b-cocktail-list__load-more-btn').text('LOAD MORE').prop('disabled', false); 2833 } 2834 } 2835 }); 2836 }, 2837 2838 /** 2839 * Render a single cocktail tile 2840 */ 2841 renderCocktailTile: function (cocktail) { 2842 var self = this; 2843 var $tile; 2844 2845 if (cocktail.detailUrl) { 2846 $tile = $('<a>').attr('href', cocktail.detailUrl).addClass('b-cocktail-tile'); 2847 } else { 2848 $tile = $('<div>').addClass('b-cocktail-tile'); 2849 } 2850 2851 var $content = $('<div>').addClass('b-cocktail-tile__content'); 2852 2853 if (cocktail.imageUrl) { 2854 var $image = $('<div>').addClass('b-cocktail-tile__image'); 2855 $image.append($('<img>').attr('src', cocktail.imageUrl).attr('alt', cocktail.name).attr('loading', 'lazy')); 2856 $tile.append($image); 2857 } // Add type first (above name) - CSS will control visibility based on data attribute 2858 2859 2860 if (cocktail.type) { 2861 $content.append($('<p>').addClass('b-cocktail-tile__type').text(cocktail.type)); 2862 } 2863
2864 var $name = $('<h3>').addClass('b-cocktail-tile__name').text(cocktail.name); // Apply cocktail name styling from component configuration 2865 // CSS variables are already set on the parent .b-cocktail-list, so they'll be inherited 2866 // Just need to handle italic style via data attribute 2867 2868 if (self.$cocktailList && self.$cocktailList.length > 0) { 2869 var itemNameItalic = self.$cocktailList.data('item-name-italic'); 2870 2871 if (itemNameItalic === 'false') { 2872 $name.css('font-style', 'normal'); 2873 } 2874 } 2875 2876 $content.append($name); 2877 2878 if (cocktail.complexity) { 2879 $content.append($('<p>').addClass('b-cocktail-tile__complexity').text(cocktail.complexity)); 2880 } 2881 2882 $tile.append($content); 2883 return $tile; 2884 }, 2885 2886 /** 2887 * Update filter options in UI 2888 */ 2889 updateFilterOptions: function (filterOptions) {// This could be used to dynamically update filter dropdowns 2890 // For now, we'll keep the initial options from server-side render 2891 }, 2892 2893 /** 2894 * Initialize load more button 2895 */ 2896 initLoadMore: function () { 2897 var self = this; 2898 $(document).on('click', '.b-cocktail-list__load-more-btn', function (e) { 2899 e.preventDefault(); 2900 2901 if (self.isLoading) { 2902 return; 2903 } 2904 2905 self.start += self.pageSize; 2906 self.loadCocktails(false); 2907 }); 2908 } 2909}; // Initialize on document ready 2910 2911$(document).ready(function () { 2912 cocktailList.init(); 2913}); 2914 2915/***/ }), 2916
2917/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/collapsibleItem.js": 2918/*!***************************************************************************************!*\ 2919 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/collapsibleItem.js ***! 2920 \***************************************************************************************/ 2921/*! no static exports found */ 2922/***/ (function(module, exports, __webpack_require__) { 2923 2924window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 2925$(document).ready(function () { 2926 $('body').on('click', '.title.contactus-generalinfo', function (e) { 2927 e.preventDefault(); 2928 $(this).parents('.customer-service').toggleClass('active'); 2929 $('.customer-service-content').toggleClass('h-sm-hidden'); 2930 2931 if ($(this).parents('.customer-service').hasClass('active')) { 2932 $(this).attr('aria-expanded', true); 2933 } else { 2934 $(this).attr('aria-expanded', false); 2935 } 2936 }); 2937}); 2938window.addEventListener("load", event => { 2939 if (window.location.href.includes('COPlaceOrder-Submit')) { 2940 window.sessionStorage.setItem("order", window.location.href); 2941 } 2942}); 2943window.addEventListener("beforeunload", event => { 2944 if (window.location.href.includes('COPlaceOrder-Submit')) { 2945 if (window.sessionStorage.getItem("order")) { 2946 window.sessionStorage.removeItem("order"); 2947 window.setTimeout(function () { 2948 window.location = document.getElementsByClassName('b-logo')[0].getAttribute('href'); 2949 }, 1000); 2950 } else { 2951 window.sessionStorage.setItem("order", window.location.href); 2952 } 2953 } 2954 2955 window.onbeforeunload = null; 2956}); 2957 2958/***/ }), 2959
2960/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/corporatePayment.js": 2961/*!****************************************************************************************!*\ 2962 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/corporatePayment.js ***! 2963 \****************************************************************************************/ 2964/*! no exports provided */ 2965/***/ (function(module, __webpack_exports__, __webpack_require__) { 2966 2967"use strict"; 2968__webpack_require__.r(__webpack_exports__); 2969/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 2970/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 2971/* harmony import */ var core_js_modules_web_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.url */ "./node_modules/core-js/modules/web.url.js"); 2972/* harmony import */ var core_js_modules_web_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url__WEBPACK_IMPORTED_MODULE_1__); 2973 2974 2975window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 2976 2977const parseQueryString = str => Object.fromEntries(new URLSearchParams(str).entries()); 2978 2979const handleCommunicationAction = (action, params) => { 2980 const actions = { 2981 "transactResponse": () => { 2982 $('#paymentIframe').remove(); 2983 $('.gift-payment-msg').show(); 2984 }, 2985 "cancel": () => { 2986 window.location.href = "/"; 2987 } 2988 }; 2989 2990 if (actions[action]) { 2991 actions[action](params); 2992 } 2993}; 2994 2995$(document).ready(() => { 2996 window.AuthorizeNetIFrame = window.AuthorizeNetIFrame || {}; 2997 2998 window.AuthorizeNetIFrame.onReceiveCommunication = querystr => { 2999 const params = parseQueryString(querystr); 3000 handleCommunicationAction(params.action, params); 3001 }; 3002 3003 $('#paymentIframe').show(); 3004 $('#paymentForm').submit(); 3005}); 3006 3007/***/ }), 3008
3009/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/corporatepaymentlink.js": 3010/*!********************************************************************************************!*\ 3011 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/corporatepaymentlink.js ***! 3012 \********************************************************************************************/ 3013/*! no static exports found */ 3014/***/ (function(module, exports, __webpack_require__) { 3015 3016window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 3017$(document).ready(function () { 3018 const secretKey = 'G7s*9v!Q@lPz&8JdKm#T2bR^X4WpE$hM'; 3019 3020 function createSignature(data, key) { 3021 let hash = 0; 3022 const str = data + key; 3023 3024 for (let i = 0; i < str.length; i++) { 3025 const char = str.charCodeAt(i); 3026 hash = (hash << 5) - hash + char; 3027 hash |= 0; // Convert to 32bit integer 3028 } 3029 3030 return hash.toString(16); 3031 } 3032 3033 function obfuscateAndEncodeAmount(amount) { 3034 const obfuscatedAmount = amount.toString().split('').reverse().join(''); // Simple obfuscation 3035 3036 const encodedAmount = btoa(obfuscatedAmount); // Base64 encoding using btoa 3037 3038 const signature = createSignature(encodedAmount, secretKey); 3039 return `amount=${encodedAmount}&sig=${signature}`; 3040 } 3041 3042 function generateSecureLink() { 3043 const amount = $('#amount').val(); 3044 const baseUrl = $('#hiddenUrlPart').text(); 3045 3046 if (amount) { 3047 const queryParams = obfuscateAndEncodeAmount(amount); 3048 const secureLink = `${baseUrl}?${queryParams}`; 3049 $('#result').html(`<strong>Generated Link:</strong> ${secureLink}`).show(); 3050 } else { 3051 alert('Please enter an amount.'); 3052 } 3053 } // Bind the click event to a button with id "generateLinkButton" 3054 3055 3056 $('#generateLinkButton').on('click', generateSecureLink); 3057}); 3058 3059/***/ }), 3060
3061/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/accordion.js": 3062/*!********************************************************************************************!*\ 3063 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/accordion.js ***! 3064 \********************************************************************************************/ 3065/*! exports provided: default */ 3066/***/ (function(module, __webpack_exports__, __webpack_require__) { 3067 3068"use strict"; 3069__webpack_require__.r(__webpack_exports__); 3070/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 3071/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 3072/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 3073/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1__); 3074 3075 3076 3077/** 3078 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 3079 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 3080 */ 3081/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 3082 return class PDAccordionMgr extends Widget { 3083 constructor(...args) { 3084 super(...args); 3085 3086 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(this, "init", async () => { 3087 this.accordionOpenOnLoad(); 3088 this.ev('click', (titleEl, event) => { 3089 event.preventDefault(); 3090 this.accordionClick(titleEl); 3091 }, '.experience-commerce_assets-accordionItem .title', false); 3092 }); 3093 3094 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(this, "accordionClick", accordion => { 3095 const parent = accordion.parentElement; 3096 3097 if (parent.classList.contains('active')) { 3098 parent.classList.remove('active'); 3099 return; 3100 } else { 3101 const root = this.ref('self').get(); 3102 3103 if (!root) { 3104 return; 3105 } 3106 3107 root.querySelectorAll('.experience-commerce_assets-accordionItem').forEach(child => { 3108 child.classList.remove('active'); 3109 }); 3110 } 3111 3112 parent.classList.add('active'); 3113 }); 3114 3115 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_1___default()(this, "accordionOpenOnLoad", () => { 3116 if (window.location.hash) { 3117 const hash = window.location.hash; 3118 const accordionItem = document.querySelector(hash); 3119 const root = this.ref('self').get(); 3120 3121 if (accordionItem && root && root.contains(accordionItem)) { 3122 accordionItem.classList.add('active'); 3123 const title = accordionItem.querySelector('.title'); 3124 3125 if (title) { 3126 title.scrollIntoView({ 3127 behavior: 'smooth', 3128 block: 'center' 3129 }); 3130 } 3131 } 3132 } 3133 }); 3134 } 3135 3136 prefs() { 3137 return { ...super.prefs() // extend preferences from parent widget class 3138 3139 }; 3140 } 3141 3142 }; 3143}); 3144 3145/***/ }), 3146
3147/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/filters.js": 3148/*!******************************************************************************************!*\ 3149 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/filters.js ***! 3150 \******************************************************************************************/ 3151/*! exports provided: default */ 3152/***/ (function(module, __webpack_exports__, __webpack_require__) { 3153 3154"use strict"; 3155__webpack_require__.r(__webpack_exports__); 3156/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 3157/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 3158/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 3159/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 3160/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 3161/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__); 3162 3163 3164 3165 3166/** 3167 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 3168 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 3169 */ 3170/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 3171 return class PDFiltersMgr extends Widget { 3172 constructor(...args) { 3173 super(...args); 3174 3175 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "init", async () => { 3176 console.log('init filters widget 3'); 3177 this.initFilterGrid(); 3178 console.log('loaded'); 3179 document.addEventListener("DOMContentLoaded", event => {// this.loadFilterLibrary() 3180 }); 3181 }); 3182 3183 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "filterClick", event => { 3184 console.log('click clack', event.get(), event.data('filter').replace(/\s/g, "")); 3185 let filterValue = event.data('filter').replace(/\s/g, ""); 3186 3187 if (filterValue == 'ViewAll' || filterValue == 'all') { 3188 this.iso.arrange({ 3189 filter: '*' 3190 }); 3191 } else { 3192 this.iso.arrange({ 3193 filter: '.' + filterValue 3194 }); 3195 } 3196 }); 3197 3198 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "loadFilterLibrary", () => { 3199 const url = "https://unpkg.com/isotope-layout@3/dist/isotope.pkgd.min.js"; 3200 const scripts = document.getElementsByTagName('script'); 3201 3202 for (var i = scripts.length; i--;) { 3203 if (scripts[i].src == url) { 3204 return true; 3205 } 3206 } 3207 3208 const script = document.createElement('script'); 3209 script.src = url; 3210 script.async = false; 3211 document.head.appendChild(script); 3212 }); 3213 3214 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "initFilterGrid", () => { 3215 console.log('init grid'); 3216 var elem = document.querySelector('.experience-filterContent'); 3217 elem.querySelectorAll('.experience-commerce_assets-filterCard .filterItem').forEach(element => { 3218 console.log('test', element); 3219 const classes = element.getAttribute('data-filtername').split(','); 3220 classes.forEach(className => { 3221 element.parentNode.classList.add(className.replace(/\s/g, "")); 3222 }); 3223 }); 3224 this.iso = new window.Isotope(elem, { 3225 itemSelector: '.experience-commerce_assets-filterCard', 3226 percentPosition: true, 3227 masonry: { 3228 // use element for option 3229 columnWidth: '.experience-commerce_assets-filterCard', 3230 gutter: 16 3231 } 3232 }); 3233 }); 3234 } 3235 3236 prefs() { 3237 return { ...super.prefs() //extend preferences from parent widget class 3238 3239 }; 3240 } 3241 3242 }; 3243}); 3244 3245/***/ }), 3246
3247/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/productHero.js": 3248/*!**********************************************************************************************!*\ 3249 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/productHero.js ***! 3250 \**********************************************************************************************/ 3251/*! exports provided: default */ 3252/***/ (function(module, __webpack_exports__, __webpack_require__) { 3253 3254"use strict"; 3255__webpack_require__.r(__webpack_exports__); 3256/** 3257 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 3258 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 3259 */ 3260/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 3261 return class ProductHero extends Widget { 3262 init() { 3263 const hero = this.ref('self').get(); 3264 3265 if (!hero) { 3266 return; 3267 } // Check content width and apply mobile class if needed 3268 3269 3270 this.handleNarrowContent(hero); // Initialize tiles navigation 3271 3272 this.initTilesNavigation(hero); // Initialize accordions 3273 3274 this.initAccordions(hero); // Initialize videos 3275 3276 this.initVideos(hero); 3277 } 3278 3279 handleNarrowContent(hero) { 3280 const style = getComputedStyle(hero); 3281 const contentWidth = style.getPropertyValue('--component-width').trim(); // Check if width is 50% or 30% 3282 3283 if (contentWidth === '50%' || contentWidth === '30%') { 3284 hero.classList.add('b-product_hero--narrow'); 3285 } else { 3286 hero.classList.remove('b-product_hero--narrow'); 3287 } 3288 } 3289 3290 initTilesNavigation(hero) { 3291 const tiles = hero.querySelectorAll('.experience-commerce_assets-productHeroTile'); 3292 const buttonContainer = hero.querySelector('.hero-buttons'); 3293 3294 if (!buttonContainer) { 3295 return; 3296 } // Always rebuild buttons from scratch. 3297 3298 3299 buttonContainer.innerHTML = ''; // Reset active state and choose the default active tile (first visible button-enabled tile). 3300 3301 tiles.forEach(t => t.classList.remove('active')); 3302 const defaultActiveTile = Array.from(tiles).find(tile => { 3303 const innerTile = tile.querySelector('.b-product_hero-tile'); 3304 const showButton = innerTile && innerTile.dataset.showButton; 3305 if (showButton === 'false') return false; 3306 const title = (innerTile && innerTile.dataset.buttonTitle || '').trim(); 3307 return Boolean(title); 3308 }) || tiles[0]; 3309 3310 if (defaultActiveTile) { 3311 defaultActiveTile.classList.add('active'); 3312 } 3313 3314 let createdButtons = 0; 3315 tiles.forEach(tile => { 3316 const wrapper = document.createElement('li'); 3317 const button = document.createElement('button'); 3318 button.setAttribute('type', 'button'); 3319 const innerTile = tile.querySelector('.b-product_hero-tile'); 3320 const showButton = innerTile && innerTile.dataset.showButton; 3321 3322 if (showButton === 'false') { 3323 return; 3324 } 3325 3326 const buttonTitle = (innerTile && innerTile.dataset.buttonTitle || '').trim(); 3327 3328 if (!buttonTitle) { 3329 return; 3330 } 3331 3332 button.innerText = buttonTitle; 3333 button.setAttribute('data-tile-target', buttonTitle); 3334 button.setAttribute('style', buttonContainer.dataset.styles || ''); 3335 button.setAttribute('class', buttonContainer.dataset.classes || ''); 3336 3337 if (tile === defaultActiveTile) { 3338 button.classList.add('active'); 3339 } 3340 3341 button.addEventListener('click', this.handleTileButtonClick.bind(this, hero, tiles)); 3342 wrapper.appendChild(button); 3343 buttonContainer.appendChild(wrapper); 3344 createdButtons += 1; 3345 }); 3346 3347 if (createdButtons === 0) { 3348 buttonContainer.style.display = 'none'; 3349 } else { 3350 buttonContainer.style.display = ''; 3351 } 3352 } 3353 3354 handleTileButtonClick(hero, tiles, event) { 3355 const buttons = hero.querySelectorAll('.hero-buttons button'); 3356 const target = event.currentTarget; 3357 3358 if (!target || !target.dataset) { 3359 return; 3360 } 3361 3362 const targetTitle = target.dataset.tileTarget; // Reset active states 3363
3364 tiles.forEach(t => { 3365 t.classList.remove('active'); // Pause any playing videos in the current tile 3366 3367 const video = t.querySelector('video'); 3368 3369 if (video && !video.paused) { 3370 video.pause(); // Show play button 3371 3372 const playButton = t.querySelector('.b-product_hero-video-play'); 3373 3374 if (playButton) { 3375 playButton.classList.remove('hidden'); 3376 } 3377 } 3378 }); 3379 buttons.forEach(b => b.classList.remove('active')); // Set new active states 3380 3381 target.classList.add('active'); 3382 const targetTile = Array.from(tiles).find(t => { 3383 const tileEl = t.querySelector('.b-product_hero-tile'); 3384 return tileEl && tileEl.dataset.buttonTitle === targetTitle; 3385 }); 3386 3387 if (targetTile) { 3388 targetTile.classList.add('active'); 3389 } 3390 } 3391 3392 initAccordions(hero) { 3393 const accordionSelector = '.b-product_hero-accordion-trigger'; 3394 const accordionTriggers = hero.querySelectorAll(accordionSelector); 3395 3396 if (!accordionTriggers.length) { 3397 return; 3398 } 3399 3400 this.ev('click', (trigger, event) => { 3401 event.preventDefault(); 3402 const isExpanded = trigger.getAttribute('aria-expanded') === 'true'; 3403 const content = trigger.nextElementSibling; 3404 trigger.setAttribute('aria-expanded', String(!isExpanded)); 3405 3406 if (content) { 3407 content.setAttribute('aria-hidden', String(isExpanded)); 3408 } // Close other accordions 3409 3410 3411 if (!isExpanded) { 3412 hero.querySelectorAll(accordionSelector).forEach(otherTrigger => { 3413 if (otherTrigger !== trigger) { 3414 otherTrigger.setAttribute('aria-expanded', 'false'); 3415 3416 if (otherTrigger.nextElementSibling) { 3417 otherTrigger.nextElementSibling.setAttribute('aria-hidden', 'true'); 3418 } 3419 } 3420 }); 3421 } 3422 }, accordionSelector, false); 3423 } 3424 3425 initVideos(hero) { 3426 const videoWrappers = hero.querySelectorAll('.b-product_hero-video-wrapper'); 3427 videoWrappers.forEach(wrapper => { 3428 const playButton = wrapper.querySelector('.b-product_hero-video-play'); 3429 const video = wrapper.querySelector('video'); 3430 3431 if (video && playButton) { 3432 // Store initial state 3433 video.currentTime = 0; 3434 playButton.classList.remove('hidden'); 3435 this.ev('click', (_btn, e) => { 3436 e.preventDefault(); 3437 3438 if (video.paused) { 3439 // Pause all other videos first 3440 videoWrappers.forEach(otherWrapper => { 3441 const otherVideo = otherWrapper.querySelector('video'); 3442 const otherButton = otherWrapper.querySelector('.b-product_hero-video-play'); 3443 3444 if (otherVideo && otherVideo !== video && !otherVideo.paused) { 3445 otherVideo.pause(); 3446 3447 if (otherButton) { 3448 otherButton.classList.remove('hidden'); 3449 } 3450 } 3451 }); 3452 video.play(); 3453 } else { 3454 video.pause(); 3455 } 3456 }, playButton, false); 3457 this.ev('play', () => { 3458 playButton.classList.add('hidden'); 3459 }, video); 3460 this.ev('pause', () => { 3461 playButton.classList.remove('hidden'); 3462 }, video); 3463 this.ev('ended', () => { 3464 playButton.classList.remove('hidden'); 3465 video.currentTime = 0; 3466 }, video); 3467 } 3468 }); 3469 } 3470 3471 }; 3472}); 3473 3474/***/ }), 3475
3476/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAjaxForm.js": 3477/*!*********************************************************************************************!*\ 3478 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAjaxForm.js ***! 3479 \*********************************************************************************************/ 3480/*! exports provided: default */ 3481/***/ (function(module, __webpack_exports__, __webpack_require__) { 3482 3483"use strict"; 3484__webpack_require__.r(__webpack_exports__); 3485/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 3486/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 3487/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 3488 3489 3490/** 3491 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 3492 */ 3493 3494/** 3495 * @description HarmonyAjaxForm implementation 3496 * @param {AjaxForm} AjaxForm Base widget for extending 3497 * @returns {typeof HarmonyAjaxForm} Harmony Basic Input class 3498 */ 3499 3500/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 3501 /** 3502 * @class HarmonyAjaxForm 3503 * @augments AjaxForm 3504 */ 3505 class HarmonyAjaxForm extends AjaxForm { 3506 /** 3507 * @description Handles submit Form 3508 * @returns {void|boolean} return bolean value if Form fields doen't valid 3509 */ 3510 handleSubmit() { 3511 if (this.isChildrenValid() && !this.submitting) { 3512 this.submitting = true; 3513 this.showProgressBar(); 3514 this.getById(this.prefs().submitButton, submitButton => submitButton.busy()); 3515 this.ref(this.prefs().errorMessageLabel).hide(); 3516 this.formFeild = Object.keys(this.getFormFields()).join(' > '); 3517 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(this.getFormUrl(), this.getFormFields(), this.ref('self').attr('method') === 'GET' ? 'GET' : 'POST').then(this.onSubmitted.bind(this)).catch(this.onError.bind(this)).finally(this.afterSubmission.bind(this)); 3518 this.eventBus().emit('loader.start', promise); 3519 } 3520 3521 return false; 3522 } 3523 /** 3524 * @description After form submit function. Saves submitted forms, reloads onbeforeunload, sends gtm.form.submit event 3525 * @param {any} data Response 3526 * @returns {void} return bolean value if Form fields doesn't valid 3527 */ 3528 3529 3530 onSubmitted(data) { 3531 this.formFeild = Object.keys(this.getFormFields()).join(' > '); 3532 const gtmData = this.prepareGtmData(data); 3533 this.eventBus().emit('gtm.form.submit', gtmData); 3534 super.onSubmitted(data); 3535 } 3536 /** 3537 * @description Sends GTM error event 3538 * @param {Error} e - error, which happend during request 3539 * @returns {void} 3540 */ 3541 3542 3543 onError(e) { 3544 super.onError(e); 3545 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["writeErrorInBackendErrorLogs"])(e); 3546 this.eventBus().emit('gtm.error.occurred', e); 3547 } 3548 /** 3549 * Prepare data to be passed to gtm 3550 * 3551 * @param {any} data Response from form submission 3552 * @returns {object} data form gtm event 3553 */ 3554 3555 3556 prepareGtmData(data) { 3557 /** 3558 * @description gtm Object 3559 * @type {any} 3560 */ 3561 const gtmData = { 3562 formStatus: 'Success', 3563 formId: this.id || this.formId, 3564 formName: this.formName, 3565 fieldEngagement: this.formFeild 3566 }; 3567 3568 if (data) { 3569 // store customer id if available 3570 if (data.externalId) { 3571 gtmData.customerId = data.externalId; 3572 } 3573 3574 if (data.success === false) { 3575 gtmData.formStatus = 'Error: Failed Form Submission'; 3576 3577 if (data.fields && data.fields.length) { 3578 gtmData.formStatus = 'Error: Form Validation'; 3579 /**
3580 * @description Array of error messages 3581 * @type {string[]} 3582 */ 3583 3584 const errorMessages = []; 3585 Object.keys(data.fields).forEach(fieldKey => { 3586 errorMessages.push(data.fields[fieldKey]); 3587 }); 3588 this.errorMessage = errorMessages.join('|'); 3589 gtmData.errorMessage = this.errorMessage; 3590 } 3591 } 3592 } 3593 3594 return gtmData; 3595 } 3596 3597 dummySubmit() { 3598 const self = this; // Set time out used to call this function after BrandSDK script will have validate form 3599 3600 setTimeout(function () { 3601 // Updates error message based on French Locale 3602 if (window.location.href.includes('fr_CA')) { 3603 $('#firstName').siblings('ul').children('li')[0].innerText = "Le prénom est requis."; 3604 $('#lastName').siblings('ul').children('li')[0].innerText = "Le nom de famille est requis."; 3605 $('#dobMonth').siblings('ul').children('li')[0].innerText = "Le mois est requis."; 3606 $('#dobDay').siblings('ul').children('li')[0].innerText = "Le jour est requis."; 3607 $('#dobYear').siblings('ul').children('li')[0].innerText = "L'année est requise."; 3608 $('#email').siblings('ul').children('li')[0].innerText = "Le courriel est requis."; 3609 $('#country').siblings('ul').children('li')[0].innerText = "Le pays est requis."; 3610 $('#zip').siblings('ul').children('li')[0].innerText = "Le code postal est requis."; 3611 $('#userCommentLabel').siblings('ul').children('li')[0].innerText = "Des commentaires sont requis."; 3612 } 3613 3614 if (self.formName === 'contactUsForm') { 3615 const errorContainer = self.ref('self').get().querySelector('.parsley-errors-list.filled'); 3616 const valid = !errorContainer; 3617 let error; 3618 3619 if (errorContainer) { 3620 error = errorContainer.innerText.trim(); 3621 } 3622 3623 if (!valid) { 3624 // report gtm data 3625 self.eventBus().emit('gtm.form.error', { 3626 formName: self.formName, 3627 errorMessage: error 3628 }); 3629 } 3630 } 3631 }, 100); 3632 } 3633 3634 } 3635 3636 return HarmonyAjaxForm; 3637}); 3638 3639/***/ }), 3640
3641/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAjaxFormResponseContainer.js": 3642/*!**************************************************************************************************************!*\ 3643 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAjaxFormResponseContainer.js ***! 3644 \**************************************************************************************************************/ 3645/*! exports provided: default */ 3646/***/ (function(module, __webpack_exports__, __webpack_require__) { 3647 3648"use strict"; 3649__webpack_require__.r(__webpack_exports__); 3650/** 3651 * @description Base HarmonyAjaxFormResponseContainer implementation 3652 * @param {ReturnType<typeof import('widgets/forms/AjaxFormResponseContainer').default>} AjaxFormResponseContainer Base widget for extending 3653 * @returns {typeof HarmonyAjaxFormResponseContainer} 3654 */ 3655/* harmony default export */ __webpack_exports__["default"] = (function (AjaxFormResponseContainer) { 3656 /** 3657 * @class HarmonyAjaxFormResponseContainer 3658 * @augments Modal 3659 */ 3660 class HarmonyAjaxFormResponseContainer extends AjaxFormResponseContainer { 3661 /** 3662 * @description Added possibility for redirect customer on a "Set New Password" page 3663 * when "Sent Code" popup appeared (requirement from FSD). 3664 */ 3665 cancel() { 3666 this.getById('harmonyPasswordResetForm', harmonyPasswordResetForm => { 3667 // Submit Account-ForgotPassword form only in case if 3668 // "Sent Code" popup was opened. 3669 if (!harmonyPasswordResetForm.ref('sentCode').get().hidden) { 3670 harmonyPasswordResetForm.superHandleSubmit(); 3671 } else { 3672 super.cancel(); 3673 } 3674 }); 3675 } 3676 3677 } 3678 3679 return HarmonyAjaxFormResponseContainer; 3680}); 3681 3682/***/ }), 3683
3684/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyBasicInput.js": 3685/*!***********************************************************************************************!*\ 3686 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyBasicInput.js ***! 3687 \***********************************************************************************************/ 3688/*! exports provided: default */ 3689/***/ (function(module, __webpack_exports__, __webpack_require__) { 3690 3691"use strict"; 3692__webpack_require__.r(__webpack_exports__); 3693/** 3694 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 3695 */ 3696 3697/** 3698 * @description Harmony BasicInput implementation 3699 * @param {BasicInput} BasicInput Base widget for extending 3700 * @returns {typeof HarmonyBasicInput} Harmony Basic Input class 3701 */ 3702/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 3703 /** 3704 * @class HarmonyBasicInput 3705 * @augments BasicInput 3706 */ 3707 class HarmonyBasicInput extends BasicInput { 3708 /** 3709 * field focus handler 3710 */ 3711 focus() { 3712 const basicInput = this.ref('self').get(); 3713 let parentForm = null; 3714 3715 if (basicInput) { 3716 parentForm = basicInput.closest('form'); 3717 } 3718 /** 3719 * @description field 3720 * @type {any} 3721 */ 3722 3723 3724 const field = this.ref('field').get(); 3725 3726 if (field && parentForm && parentForm.dataset.widget) { 3727 this.eventBus().emit('interacted.field', { 3728 formId: parentForm.id || parentForm.dataset.widget, 3729 fieldName: field.name, 3730 formName: parentForm.name 3731 }); 3732 } 3733 3734 super.focus(); 3735 } 3736 /** 3737 * helper handle if field need additional validation on blur 3738 */ 3739 3740 3741 blurAndValidate() { 3742 this.blur(); 3743 this.validate(); 3744 } 3745 /** 3746 * Do validation on input only in case field was validated before (form submit or field validation on blur) 3747 */ 3748 3749 3750 validateOnInput() { 3751 if (this.validated) { 3752 this.validate(); 3753 } 3754 } 3755 /** 3756 * @description Triggers input validation process 3757 * overloaded to tirgger gtm event 3758 * @returns {boolean} input validation result 3759 */ 3760 3761 3762 validate() { 3763 this.validated = true; 3764 const valid = super.validate(); 3765 3766 if (!valid) { 3767 // report gtm data 3768 this.eventBus().emit('gtm.form.error', { 3769 formName: this.formName, 3770 errorMessage: this.error 3771 }); 3772 } 3773 3774 return valid; 3775 } 3776 3777 } 3778 3779 return HarmonyBasicInput; 3780}); 3781 3782/***/ }), 3783
3784/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyInputPassword.js": 3785/*!**************************************************************************************************!*\ 3786 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyInputPassword.js ***! 3787 \**************************************************************************************************/ 3788/*! exports provided: default */ 3789/***/ (function(module, __webpack_exports__, __webpack_require__) { 3790 3791"use strict"; 3792__webpack_require__.r(__webpack_exports__); 3793/** 3794 * @typedef {ReturnType<typeof import('widgets/forms/InputPassword').default>} InputPassword 3795 */ 3796 3797/** 3798 * @description Base HarmonyInputPassword implementation 3799 * @param {BasicInput} InputPassword Base widget for extending 3800 * @returns {typeof HarmonyInputPassword} Harmony Input Password class 3801 */ 3802/* harmony default export */ __webpack_exports__["default"] = (function (InputPassword) { 3803 return class HarmonyInputPassword extends InputPassword { 3804 prefs() { 3805 return { ...super.prefs(), 3806 specialCharsList: '~`!@#$%^&*()_+-=[]{}|;:\'"<>,.', 3807 allowedLettersRegExp: '[a-zA-Z]' 3808 }; 3809 } 3810 3811 init() { 3812 super.init(); 3813 this.eventBus().on('update.cvv.validation', 'updateCvvValidation'); 3814 } 3815 /** 3816 * @description Checks if entered data is simple character (not a number or special character) 3817 * @param {string} val - entered password 3818 * @returns {boolean} check result 3819 */ 3820 3821 3822 isSimpleChar(val) { 3823 return !this.isNumber(val) && !this.prefs().specialCharsList.includes(val) && this.isAllowedLetter(val); 3824 } 3825 /** 3826 * @description check if entered value has special letter. In implementation scope: latin letters. Could be 3827 * extented by prefs.allowedLettersRegExp 3828 * @param {string} val 3829 * @returns {boolean} check result 3830 */ 3831 3832 3833 isAllowedLetter(val) { 3834 if (!this.prefs().allowedLettersRegExp) { 3835 return true; 3836 } 3837 3838 return new RegExp(this.prefs().allowedLettersRegExp, 'g').test(val); 3839 } 3840 /** 3841 * Updates validation rules of CVV field based on credit card type 3842 * @param {string|undefined} cardType 3843 */ 3844 3845 3846 updateCvvValidation(cardType) { 3847 const inputElement = this.ref('field').get(); // 3848 // default values will be used if cardType is not defined 3849 // 3850 3851 let { 3852 minLength, 3853 maxLength 3854 } = this.config.validationConfig; // set default values from config to avoid an errors like: The maxLength provided (3) is less than the minimum bound (4) 3855 // in case when visa replaced with amex 3856 3857 inputElement.minLength = minLength; 3858 inputElement.maxLength = maxLength; 3859 3860 if (cardType) { 3861 const length = cardType === 'Visa' || cardType === 'Master' || cardType === 'Discover' ? 3 : 4; 3862 minLength = length; 3863 maxLength = length; 3864 } // 3865 // update length attributes 3866 // 3867 3868 3869 inputElement.minLength = minLength; 3870 inputElement.maxLength = maxLength; // 3871 // if element has some entered value 3872 // need to validate it using new length params 3873 // 3874 3875 if (this.getValue()) { 3876 this.validate(); 3877 } 3878 } 3879 3880 }; 3881}); 3882 3883/***/ }), 3884
3885/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyQuantityStepper.js": 3886/*!****************************************************************************************************!*\ 3887 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyQuantityStepper.js ***! 3888 \****************************************************************************************************/ 3889/*! exports provided: default */ 3890/***/ (function(module, __webpack_exports__, __webpack_require__) { 3891 3892"use strict"; 3893__webpack_require__.r(__webpack_exports__); 3894/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 3895/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 3896/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 3897/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_1__); 3898/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 3899/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 3900/* harmony import */ var harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! harmony/toolbox/shipToUtils */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js"); 3901 3902 3903 3904 3905 3906/** 3907 * @description Base HarmonyQuantityStepper implementation. It is used for the quanity's stepper, etc. 3908 * @param {InputNumber} InputNumber widget for extending 3909 * @returns {typeof HarmonyQuantityStepper} HarmonyQuantityStepper class 3910 */ 3911 3912/* harmony default export */ __webpack_exports__["default"] = (function (InputNumber) { 3913 /** 3914 * @class HarmonyQuantityStepper 3915 * @augments InputNumber 3916 */ 3917 class HarmonyQuantityStepper extends InputNumber { 3918 prefs() { 3919 return { 3920 accessibilityAlerts: {}, 3921 disabledClass: 'm-disabled', 3922 shipToRestrictedStates: [], 3923 isHandledRestrictedStates: false, 3924 isDisabled: false, 3925 wineclub: false, 3926 ...super.prefs() 3927 }; 3928 } 3929 3930 get constants() { 3931 return { 3932 ALERT_SHOW: 'alert.show' 3933 }; 3934 } 3935 3936 init() { 3937 super.init(); 3938 this.updateStepsButtons(); 3939 this.eventBus().on('product.quantity.disable', 'toggleDisable'); 3940 this.eventBus().on('product.qty.disabled', 'setQtyDisabled'); 3941 this.eventBus().on('product.quantity.updated', 'updateStepsButtons'); 3942 this.eventBus().on('addtocart.button.clicked', 'setAddToCartClicked'); // handle shipping restrictions 3943 3944 this.eventBus().on('shipto.restrictions.updated', 'handleStateRestrictions'); 3945 this.eventBus().on('shipto.restrictions.updated.quantity', 'handleStateRestrictions'); 3946 this.handleStateRestrictions(); 3947 } 3948 3949 addToCartProductId() { 3950 let pid = document.getElementById('add-to-cart-product-id'); 3951 let productId; 3952 3953 if (this.prefs().pid) { 3954 productId = this.prefs().pid; 3955 } else { 3956 productId = pid === null || pid === void 0 ? void 0 : pid.getAttribute('data-pid'); 3957 } 3958 3959 return productId; 3960 } 3961 /** 3962 * @param {string} incomingValue - set this value to input 3963 * @param {boolean} silent - if set to `true` - input should not be validated against a new value 3964 * @param {boolean} skipAddToCartDisable - skip disabling add to cart button 3965 */ 3966 3967 3968 setValue(incomingValue, silent = false, skipAddToCartDisable) { 3969 if (!incomingValue) { 3970 this.processSelectedValue(incomingValue, silent); 3971 return; 3972 } // update 'data-qty-url' attribute with incoming value 3973 3974
3975 this.updateQunatityInDataAttrURL('qtyUrl', incomingValue); 3976 const qtyUrl = this.ref('field').data('qtyUrl'); // in case if 'data-qty-url' is not set just proceed with initial min max thresholds 3977 3978 if (!qtyUrl) { 3979 this.processSelectedValue(incomingValue, silent); 3980 return; 3981 } // in case if current focus is not on qty input field skipAddToCartDisable should be false or not set at all 3982 3983 3984 if (!skipAddToCartDisable) { 3985 this.emit('togglebusy', true); 3986 } // ajax call to receive actual quntity thresholds from DB 3987 3988 3989 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_3__["getJSONByUrl"])(qtyUrl).then(response => { 3990 if (!(response !== null && response !== void 0 && response.product)) { 3991 let element = document.getElementById('add-to-cart-' + this.addToCartProductId()); 3992 element === null || element === void 0 ? void 0 : element.setAttribute('data-add-to-cart-success', 'false'); 3993 return; 3994 } 3995 3996 const previousValue = this.getValue(); 3997 this.step = response.product.qtyStep; 3998 this.qtyInCart = response.product.qtyInCart; 3999 this.config.minValue = response.product.minOrderQuantity; 4000 this.config.maxValue = response.product.maxOrderQuantity; 4001 this.availability = response.product.availability; 4002 this.available = response.product.available; 4003 this.processSelectedValue(incomingValue, silent); 4004 4005 if (!this.hasError && this.getValue() !== previousValue) { 4006 this.showQuantityChangedAlert(this.getValue()); 4007 } 4008 }).finally(() => { 4009 // allow to click add to cart button after receiveing quantity responce from DB 4010 if (!skipAddToCartDisable) { 4011 this.emit('togglebusy', false); 4012 } 4013 /** 4014 * in case directly after losing focus from qty input and add to cart btn has been clicked and 4015 * selected quantity applicable to be added to cart, add to cart event triggered to avoid double click 4016 */ 4017 4018 4019 if (this.isAddToCartClicked && !this.hasError) { 4020 this.emit('triggerclick'); 4021 } 4022 4023 this.setAddToCartClicked(false); 4024 let element = document.getElementById('add-to-cart-' + this.addToCartProductId()); 4025 element === null || element === void 0 ? void 0 : element.setAttribute('data-add-to-cart-success', 'false'); 4026 }); 4027 this.eventBus().emit('loader.start', promise); 4028 } 4029 /** 4030 * @description Update button enable/disable stage based on incoming value 4031 */ 4032 4033 4034 updateStepsButtons() { 4035 // if the elements were disabled on backend then isn't need any additional actions 4036 if (this.isQuantityBlockDisabled()) { 4037 return; 4038 } 4039 4040 this.ref('moreBtn').enable(); 4041 this.ref('lessBtn').enable(); 4042 const value = parseInt(this.getValue(), 10); 4043 4044 if (this.prefs().minValue > value - this.step && !this.prefs().informAttemptDecreaseMinVal) { 4045 this.ref('lessBtn').disable(); 4046 } 4047 4048 if (this.prefs().maxValue < value + this.step) { 4049 this.ref('moreBtn').disable(); 4050 } 4051 } 4052 /** 4053 * @description Update `data-attr-url` which is used for update of the product 4054 * @param {string} attrName - data attr name 4055 * @param {string} val - qty value 4056 */ 4057 4058 4059 updateQunatityInDataAttrURL(attrName, val) { 4060 let url = this.ref('field').data(attrName); 4061 4062 if (!url) { 4063 return; 4064 } 4065 4066 url = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__["removeParamFromURL"])(url, 'quantity'); 4067 url = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__["appendParamToURL"])(url, 'quantity', val); 4068 this.ref('field').data(attrName, url); 4069 } 4070 /** 4071 * @description Return the field of RefElement 4072 * @returns {RefElement} - selected qty option (field) 4073 */ 4074 4075 4076 getSelectedOptions() { 4077 return this.ref('field'); 4078 } 4079 /** 4080 * @description Toggle disable attr of input and +/- buttons 4081 * @param {any} isDisabled - is disabled flag 4082 */ 4083 4084 4085 toggleDisable(isDisabled) { 4086 if (isDisabled) { 4087 this.ref('self').addClass(this.prefs().disabledClass); 4088 this.ref('field').disable(); 4089 this.ref('lessBtn').disable(); 4090 this.ref('moreBtn').disable(); 4091 } else { 4092 this.ref('self').removeClass(this.prefs().disabledClass); 4093 this.ref('field').enable(); 4094 const value = parseInt(this.getValue(), 10); 4095 4096 if (value - this.step > this.prefs().minValue) { 4097 this.ref('lessBtn').enable(); 4098 } 4099 4100 if (value + this.step < this.prefs().maxValue) { 4101 this.ref('moreBtn').enable(); 4102 } 4103 } 4104 } 4105 /**
4106 * @description Check `disabled` attribute of field and increment/decrement buttons 4107 * @returns {boolean} - is quantity block disabled flag 4108 */ 4109 4110 4111 isQuantityBlockDisabled() { 4112 return this.ref('moreBtn').attr('disabled') === 'disabled' && this.ref('lessBtn').attr('disabled') === 'disabled' && this.ref('field').attr('disabled') === 'disabled'; 4113 } 4114 /** 4115 * @description Handle `decrement` button 4116 */ 4117 4118 4119 decrement() { 4120 const newVal = parseInt(this.getValue(), 10) - this.step; 4121 4122 if (newVal >= this.prefs().minValue) { 4123 this.setValue(newVal.toString(), false, true); 4124 this.eventBus().emit('product.changed.quantity', 'Remove'); 4125 } else if (this.prefs().informAttemptDecreaseMinVal) { 4126 this.emit('attemptdecreaseminval'); 4127 } 4128 } 4129 /** 4130 * @description Handle increment button 4131 */ 4132 4133 4134 increment() { 4135 const newVal = parseInt(this.getValue(), 10) + this.step; 4136 4137 if (newVal <= this.prefs().maxValue) { 4138 this.setValue(newVal.toString(), false, true); 4139 this.eventBus().emit('product.changed.quantity', 'Add'); 4140 } else { 4141 this.emit('attemptincreasemaxval'); 4142 } 4143 } 4144 /** 4145 * @description Show Quantity Exceed alert 4146 */ 4147 4148 4149 showQuantityExceedAlert() { 4150 const accessibilityAlerts = this.prefs().accessibilityAlerts; 4151 const isWcInculded = this.prefs().wineclub; 4152 let accessibilityAlert = null; 4153 4154 if (this.availability.stock > this.data('max-value')) { 4155 accessibilityAlert = !isWcInculded ? accessibilityAlerts.exceededmaxvaluewithinventory.replace('{0}', this.config.maxValue) : ''; 4156 } else { 4157 accessibilityAlert = !isWcInculded ? accessibilityAlerts.exceededmaxvaluewithcart.replace('{maxOrderQuantity}', this.config.maxValue) : ''; 4158 } 4159 4160 this.eventBus().emit(this.constants.ALERT_SHOW, { 4161 accessibilityAlert, 4162 errorClass: true 4163 }); 4164 } 4165 /** 4166 * @description Show Quantity Changed alert 4167 * @param {string} value - changed value 4168 */ 4169 4170 4171 showQuantityChangedAlert(value) { 4172 const isWcInculded = this.prefs().wineclub; 4173 const accessibilityAlert = !isWcInculded ? `${this.prefs().accessibilityAlerts.quantitychanged} ${value}` : ''; 4174 this.eventBus().emit(this.constants.ALERT_SHOW, { 4175 accessibilityAlert 4176 }); 4177 } 4178 /** 4179 * @description Process selected value 4180 * @param {string} incomingValue - set this value to input 4181 * @param {boolean} silent - if set to `true` - input should not be validated against a new value 4182 */ 4183 4184 4185 processSelectedValue(incomingValue, silent) { 4186 let value = null; 4187 4188 if (incomingValue === '' && this.prefs().allowEmpty) { 4189 value = incomingValue; 4190 } else { 4191 const intValue = typeof incomingValue !== 'number' ? parseInt(incomingValue, 10) : incomingValue; 4192 4193 if (intValue >= this.prefs().minValue && intValue <= this.prefs().maxValue) { 4194 this.prevVal = intValue; 4195 this.hasError = false; 4196 value = intValue.toString(); 4197 } else if (intValue > this.prefs().maxValue) { 4198 // show exceed quantity flyout 4199 var _this = this; 4200 4201 let element = document.getElementById('add-to-cart-' + this.addToCartProductId()); 4202 const addToCartSuccess = element === null || element === void 0 ? void 0 : element.getAttribute('data-add-to-cart-success'); 4203 4204 if (addToCartSuccess == 'false') { 4205 setTimeout(function () { 4206 _this.showQuantityExceedAlert(); 4207 }, 2000); 4208 } 4209 4210 this.hasError = true; 4211 value = String(this.prefs().maxValue); 4212 this.setValue(value, silent, false); 4213 return; 4214 } else if (intValue < this.prefs().minValue || Number.isNaN(intValue)) { 4215 this.hasError = false; 4216 value = String(this.prevVal || this.prefs().minValue); 4217 } else { 4218 this.hasError = false; 4219 value = ''; 4220 } 4221 4222 if (intValue < 1) { 4223 incomingValue = value; 4224 } 4225 } 4226 4227 if (value) { 4228 // set 'data-attr-url' that is used for update variation products on pdp
4229 this.updateQunatityInDataAttrURL('attrUrl', incomingValue || value); 4230 super.setValue(value, silent); 4231 4232 if (this.availability) { 4233 this.eventBus().emit('availability.update', { 4234 pid: this.prefs().pid, 4235 availability: this.availability, 4236 available: this.available 4237 }); 4238 } 4239 } // disable quantity block 4240 4241 4242 if (this.isQtyDisabled) { 4243 this.toggleDisable(this.isQtyDisabled); 4244 this.setQtyDisabled(false); 4245 } // update increment/decrement buttons enabled/disabled state based on selected qty value 4246 4247 4248 this.updateStepsButtons(); 4249 } 4250 /** 4251 * @description vlaidate input legacy 4252 * @returns {boolean} - validation status 4253 */ 4254 4255 4256 validate() { 4257 if (this.prefs().skipValidation) { 4258 return true; 4259 } 4260 4261 return super.validate(); 4262 } 4263 /** 4264 * @description Set isAddToCartClicked attribute 4265 * @param {boolean} isClicked - is add to cart clicked flag 4266 */ 4267 4268 4269 setAddToCartClicked(isClicked) { 4270 this.isAddToCartClicked = isClicked; 4271 } 4272 /** 4273 * @description Handle shipping restrictions 4274 * @param {string} stateID - state id 4275 */ 4276 4277 4278 handleStateRestrictions(stateID) { 4279 if (this.prefs().isDisabled || !this.prefs().isHandledRestrictedStates) { 4280 return; 4281 } 4282 4283 stateID = Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_4__["getStateID"])(stateID); 4284 4285 if (!stateID) { 4286 return; 4287 } 4288 4289 this.toggleDisable(Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_4__["isStateRestricted"])(stateID, this.prefs().shipToRestrictedStates)); 4290 } 4291 /** 4292 * @description Set isQtyDisabled attribute 4293 * @param {boolean} isDisabled - is quantity disabled flag 4294 */ 4295 4296 4297 setQtyDisabled(isDisabled) { 4298 this.isQtyDisabled = isDisabled; 4299 } 4300 4301 } 4302 4303 return HarmonyQuantityStepper; 4304}); 4305 4306/***/ }), 4307
4308/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/InputBirthdayDate.js": 4309/*!***********************************************************************************************!*\ 4310 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/InputBirthdayDate.js ***! 4311 \***********************************************************************************************/ 4312/*! exports provided: default */ 4313/***/ (function(module, __webpack_exports__, __webpack_require__) { 4314 4315"use strict"; 4316__webpack_require__.r(__webpack_exports__); 4317/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 4318/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 4319/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 4320/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 4321 4322 4323 4324/** 4325 * @typedef {ReturnType<typeof import('widgets/forms/InputText').default>} InputText 4326 */ 4327 4328/** 4329 * @description Base InputBirthdayDate implementation 4330 * @param {InputText} InputText Base widget for extending 4331 * @returns {typeof InputBirthdayDate} Input Birthday Date class 4332 */ 4333/* harmony default export */ __webpack_exports__["default"] = (function (InputText) { 4334 class InputBirthdayDate extends InputText { 4335 init() { 4336 super.init(); 4337 this.setLabel(); 4338 } 4339 /** 4340 * @description Validate input value 4341 * @returns {boolean} is input valid or not 4342 */ 4343 4344 4345 isValid() { 4346 var field = this.ref('field'); 4347 var validation = this.prefs().validationConfig; 4348 var value = this.getValue(); 4349 var reg = new RegExp(field.attr('pattern') || '', 'g'); 4350 4351 if (!(value !== null && value !== void 0 && value.length)) { 4352 this.error = validation.errors.required; 4353 return false; 4354 } // check regExp 4355 4356 4357 if (!value.match(reg)) { 4358 this.error = validation.errors.parse; 4359 return false; 4360 } // check min value 4361 4362 4363 var inputDate = new Date(value.replace(/-/g, '/')); 4364 var min = field.data('min') ? new Date(field.data('min').replace(/-/g, '/')) : null; // eslint-disable-next-line no-restricted-globals 4365 4366 if (inputDate instanceof Date && !isNaN(inputDate) && min instanceof Date && !isNaN(min) && !(min >= inputDate)) { 4367 this.error = validation.errors.parse; 4368 return false; 4369 } 4370 4371 return true; 4372 } 4373 4374 onInput(...args) { 4375 super.onInput(...args); 4376 this.setLabel(); 4377 } 4378 4379 setValue(...args) { 4380 super.setValue(...args); 4381 this.setLabel(); 4382 } 4383 4384 setLabel() { 4385 this.has('label', el => { 4386 el.attr('aria-label', this.ref('field').val()); 4387 }); 4388 } 4389 4390 ageGateEntrance(birth_day, birth_month, birth_year) { 4391 let age = 0; 4392 let today_date = new Date(); 4393 let today_year = today_date.getFullYear(); 4394 let today_month = today_date.getMonth(); 4395 let today_day = today_date.getDate(); 4396 4397 if (!birth_day || !birth_month || !birth_year) { 4398 age = 0; 4399 } else { 4400 age = today_year - birth_year; 4401 4402 if (today_month < birth_month - 1) { 4403 age--; 4404 } 4405 4406 if (birth_month - 1 == today_month && today_day < birth_day) { 4407 age--; 4408 } 4409 } 4410 4411 return age; 4412 } 4413 4414 onBirthdayChange(ele, event) { 4415 let selectedDate = new Date(event.target.value); 4416 let month = selectedDate.getMonth() + 1; 4417 let date = selectedDate.getDate(); 4418 let year = selectedDate.getFullYear(); 4419 let cartError = JSON.parse(document.querySelector("[data-widget='cartMgr']").dataset.valid).error; 4420 4421 if (cartError) { 4422 document.getElementsByClassName('apple-pay-cart')[0].classList.add('inactive'); 4423 } else { 4424 let regExp = "^19|20[0-9]{2}[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$"; 4425 let userDOB = event.target.value; 4426 let res = userDOB.match(regExp); 4427 4428 if (res && this.ageGateEntrance(date, month, year) >= 21) { 4429 document.getElementById('dwfrm_shipping_shippingAddress_addressFields_birthday-error').classList.add('h-hidden'); 4430 document.getElementsByClassName('apple-pay-cart')[0].classList.remove('inactive'); 4431 document.getElementsByClassName('apple-pay-cart')[0].removeAttribute("tabIndex"); 4432 } else { 4433 document.getElementById('dwfrm_shipping_shippingAddress_addressFields_birthday-error').classList.remove('h-hidden'); 4434 document.getElementsByClassName('apple-pay-cart')[0].classList.add('inactive'); 4435 document.getElementsByClassName('apple-pay-cart')[0].setAttribute("tabIndex", "-1"); 4436 } 4437 } 4438 } 4439 4440 } 4441 4442 return InputBirthdayDate; 4443}); 4444 4445/***/ }), 4446
4447/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/StatesInputRadio.js": 4448/*!**********************************************************************************************!*\ 4449 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/StatesInputRadio.js ***! 4450 \**********************************************************************************************/ 4451/*! exports provided: default */ 4452/***/ (function(module, __webpack_exports__, __webpack_require__) { 4453 4454"use strict"; 4455__webpack_require__.r(__webpack_exports__); 4456/** 4457 * @typedef {ReturnType<typeof import('widgets/forms/InputRadio').default>} InputRadio 4458 */ 4459const DATA_FIELD = '[data-ref="field"]'; 4460const KEY_ENTER = 13; 4461const KEY_SPACE = 32; 4462/** 4463 * @description Harmony InputRadio implementation 4464 * @param {InputRadio} InputRadio Base widget for extending 4465 * @returns {typeof StatesInputRadio} Harmony Basic Input class 4466 */ 4467 4468/* harmony default export */ __webpack_exports__["default"] = (function (InputRadio) { 4469 /** 4470 * @class StatesInputRadio 4471 * @augments InputRadio 4472 */ 4473 class StatesInputRadio extends InputRadio { 4474 handleLabelKeydown(_, event) { 4475 const { 4476 keyCode, 4477 currentTarget 4478 } = event; 4479 4480 if (keyCode === KEY_SPACE || keyCode === KEY_ENTER) { 4481 event.preventDefault(); 4482 currentTarget.click(); 4483 } 4484 } 4485 /** 4486 * @description Method to select radio input 4487 * @param {string} value - value to be set to radio button 4488 * @returns {void} 4489 */ 4490 4491 4492 setValue(value) { 4493 const el = this.ref('self').get(); 4494 4495 if (el) { 4496 Array.from(el.querySelectorAll(DATA_FIELD)).forEach(elField => { 4497 const tmpEl = 4498 /** @type {HTMLInputElement} */ 4499 elField; 4500 const isChecked = tmpEl.value === value; 4501 const label = tmpEl.labels[0] || tmpEl; 4502 const parentEle = tmpEl.closest('.b-shipping_states-item'); 4503 4504 if (isChecked) { 4505 tmpEl.checked = true; 4506 tmpEl.setAttribute('checked', 'checked'); 4507 el.setAttribute('aria-label', `Selected: ${label.textContent.trim()}.`); 4508 } else { 4509 tmpEl.checked = false; 4510 tmpEl.removeAttribute('checked'); 4511 } 4512 4513 parentEle.setAttribute('aria-checked', isChecked); 4514 }); 4515 } 4516 } 4517 4518 } 4519 4520 return StatesInputRadio; 4521}); 4522 4523/***/ }), 4524
4525/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/ChangePasswordForm.js": 4526/*!*****************************************************************************************************!*\ 4527 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/ChangePasswordForm.js ***! 4528 \*****************************************************************************************************/ 4529/*! exports provided: default */ 4530/***/ (function(module, __webpack_exports__, __webpack_require__) { 4531 4532"use strict"; 4533__webpack_require__.r(__webpack_exports__); 4534/** 4535 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 4536 */ 4537 4538/** 4539 * @description Base ChangePasswordForm implementation 4540 * @param {AjaxForm} AjaxForm Base widget for extending 4541 * @returns {typeof ChangePasswordForm} Change Password Form class 4542 */ 4543/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 4544 /** 4545 * @class ChangePasswordForm 4546 * @augments AjaxForm 4547 * @property {string} data-widget - Widget name `changePasswordForm` 4548 * @property {string} data-event-submit - Event listener for form submission 4549 */ 4550 class ChangePasswordForm extends AjaxForm { 4551 init() { 4552 super.init(); 4553 this.eventBus().on('cognito.hook.changepassword.then', 'onChangePasswordSubmitted'); 4554 this.eventBus().on('cognito.hook.changepassword.catch', 'onError'); 4555 } 4556 /** 4557 * Overrides default handle submit form to call Cognito API with change password. 4558 * 4559 * @returns {boolean} 4560 */ 4561 4562 4563 handleSubmit() { 4564 var fields = this.getFormFields(); 4565 4566 if (!this.isChildrenValid() || this.submitting) { 4567 return false; 4568 } 4569 4570 this.submitting = true; 4571 this.eventBus().emit('cognito.hook.changepassword', { 4572 oldPassword: fields.dwfrm_changePassword_currentpassword, 4573 newPassword: fields.dwfrm_changePassword_newpassword 4574 }); 4575 return false; 4576 } 4577 /** 4578 * Used to reload page when password was changed. 4579 */ 4580 4581 4582 onChangePasswordSubmitted() { 4583 const accessibilityAlert = this.prefs().accessibilityAlerts.passwordChanged; 4584 this.afterSubmission(); 4585 this.eventBus().emit('alert.show', { 4586 accessibilityAlert 4587 }); 4588 window.location.assign(this.prefs().action); 4589 } 4590 4591 } 4592 4593 return ChangePasswordForm; 4594}); 4595 4596/***/ }), 4597
4598/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyEmailSubscribe.js": 4599/*!********************************************************************************************************!*\ 4600 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyEmailSubscribe.js ***! 4601 \********************************************************************************************************/ 4602/*! exports provided: default */ 4603/***/ (function(module, __webpack_exports__, __webpack_require__) { 4604 4605"use strict"; 4606__webpack_require__.r(__webpack_exports__); 4607/** 4608 * @description HarmonyEmailSubscribe implementation 4609 * @param {ReturnType<typeof import('widgets/forms/ajax/EmailSubscribe').default>} EmailSubscribe Base widget for extending 4610 * @returns {typeof HarmonyEmailSubscribe} HarmonyEmailSubscribe class 4611 */ 4612/* harmony default export */ __webpack_exports__["default"] = (function (EmailSubscribe) { 4613 class HarmonyEmailSubscribe extends EmailSubscribe { 4614 showAgreeToPrivacy() {} 4615 /** 4616 * @param {any} data Server JSON response once form submitted 4617 */ 4618 4619 4620 onSubmitted(data) { 4621 const gtmData = this.prepareGtmData(data); 4622 this.eventBus().emit('gtm.form.submit', gtmData); 4623 4624 if (data.success) { 4625 this.eventBus().emit('monetate.track.newsletter.signup'); 4626 } 4627 4628 super.onSubmitted(data); 4629 } 4630 4631 } 4632 4633 return HarmonyEmailSubscribe; 4634}); 4635 4636/***/ }), 4637
4638/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyLoginForm.js": 4639/*!***************************************************************************************************!*\ 4640 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyLoginForm.js ***! 4641 \***************************************************************************************************/ 4642/*! exports provided: default */ 4643/***/ (function(module, __webpack_exports__, __webpack_require__) { 4644 4645"use strict"; 4646__webpack_require__.r(__webpack_exports__); 4647/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 4648/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 4649/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 4650 4651 4652/** 4653 * @typedef {ReturnType<typeof import('widgets/forms/ajax/LoginForm').default>} LoginForm 4654 */ 4655 4656/** 4657 * @description Base LoginForm implementation 4658 * @param {LoginForm} LoginForm Base widget for extending 4659 * @returns {LoginForm} Harmony Login Form class 4660 */ 4661 4662/* harmony default export */ __webpack_exports__["default"] = (function (LoginForm) { 4663 /** 4664 * @class LoginForm 4665 * @augments LoginForm 4666 * @property {string} data-widget - Widget name `harmonyLoginForm` 4667 * @property {string} data-event-submit - Event listener for form submission 4668 */ 4669 class HarmonyLoginForm extends LoginForm { 4670 prefs() { 4671 return { ...super.prefs(), 4672 errorMessageLabel: 'errorMessageLabel', 4673 submitButton: 'submitLoginButton', 4674 scope: 'login' 4675 }; 4676 } 4677 4678 init() { 4679 super.init(); 4680 this.defineItems(this); 4681 4682 if ($('#event-enquiry-form').length) { 4683 this.setEventEnquiryForm(); 4684 } 4685 /** 4686 * -- cognito.hook.signin.then -- 4687 * When cognito sign-in process has been successfully done. 4688 */ 4689 4690 4691 this.eventBus().on('cognito.hook.signin.then', 'signInSubmitted'); 4692 /** 4693 * -- cognito.hook.signin.catch -- 4694 * When cognito sign-in process has been failed. 4695 */ 4696 4697 this.eventBus().on('cognito.hook.signin.catch', 'signInCatch'); 4698 /** 4699 * -- verificationcodeform.backtologin -- 4700 * When "Back to login" (on login form) was triggered. 4701 */ 4702 4703 this.eventBus().on('verificationcodeform.backtologin', 'show'); 4704 /** 4705 * -- harmonytab.change -- 4706 * When Login/Registration tabs has been changed. 4707 */ 4708 4709 this.eventBus().on('harmonytab.change', 'initViewState'); 4710 /** 4711 * When subsciprion status was synced with Cognito. 4712 */ 4713 4714 this.eventBus().on('sync.newsletter.subscription.then', 'onSyncedSubscription'); 4715 } 4716 /** 4717 * @param panel 4718 * @description Emits when tab was changed to prepare default state view. 4719 * @returns {void} 4720 */ 4721 4722 4723 initViewState(panel) { 4724 if (panel === 'login') { 4725 this.clearError(); 4726 this.show(); 4727 } 4728 } 4729 /** 4730 * Handle when social login buttons was clicked. 4731 * Emitted from form in ISML button attribute. 4732 * 4733 * @param {object} target 4734 */ 4735 4736 4737 socialLogin(target) { 4738 var socialNetwork = target.config.socialNetwork; 4739 var isWCSignUp = ''; 4740 var isCheckout = !!this.prefs().cartUrl; 4741 4742 if (document.getElementById('WcSignupData')) { 4743 isWCSignUp = document.getElementById('WcSignupData').getAttribute('data-wc'); 4744 } 4745 4746 if (this.submitting) { 4747 return; 4748 } 4749 4750 this.beforeSubmission(); 4751 4752 if (!socialNetwork) { 4753 return; 4754 } 4755 4756 this.eventBus().emit('cognito.hook.sociallogin', { 4757 socialNetwork, 4758 isCheckout, 4759 isWCSignUp 4760 }); 4761 } 4762 /** 4763 * @description Called when form was submitted for emit Amazon Cognito 4764 * sign in call. 4765 * 4766 * @returns {boolean} false - to transfer control to the Cognito component. 4767 */ 4768 4769 4770 handleSubmit() { 4771 const fields = this.getFormFields(); 4772 4773 if (!this.isChildrenValid() || this.submitting) { 4774 return false;
4775 } 4776 4777 this.beforeSubmission(); 4778 this.eventBus().emit('cognito.hook.signin', { 4779 username: this.prefs().disableCaseSensitive ? fields.dwfrm_login_email.toLowerCase() : fields.dwfrm_login_email, 4780 password: fields.dwfrm_login_password, 4781 scope: this.prefs().scope 4782 }); 4783 return false; 4784 } 4785 4786 handleEventEnquirySubmit() { 4787 const fields = this.getFormFields(); 4788 var underAgeStatus = document.getElementById('dwfrm_eventEnquiry_underAge'); 4789 4790 if (!underAgeStatus.checked) { 4791 document.getElementById('dwfrm_eventEnquiry_underAgeExplanation').removeAttribute('required'); 4792 } else { 4793 document.getElementById('dwfrm_eventEnquiry_underAgeExplanation').setAttribute('required', true); 4794 } 4795 4796 if (!this.isChildrenValid()) { 4797 return false; 4798 } 4799 4800 if (!underAgeStatus.checked) { 4801 fields['dwfrm_eventEnquiry_underAgeExplanation'] = ''; 4802 } 4803 4804 var alternateDate = document.getElementById('alternate-date'); 4805 4806 if (fields['dwfrm_eventEnquiry_alternateDate'] === fields['dwfrm_eventEnquiry_preferredDate']) { 4807 alternateDate.children[0].children[1].textContent = 'Alternate Date cannot be the same as the Preferred Date'; 4808 alternateDate.children[0].children[1].setAttribute('style', 'display:block !important'); 4809 window.scrollTo(0, 800); 4810 return false; 4811 } else { 4812 alternateDate.setAttribute('style', 'display:none'); 4813 } 4814 4815 this.beforeSubmission(); 4816 this.showProgressBar(); 4817 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(document.getElementById('event-form').action, fields, 'POST').then(response => { 4818 document.getElementById('event-enquiry-form').setAttribute('style', 'display:none'); 4819 document.getElementById('event-enquiry-form-sent').style.display = 'block'; 4820 const customerData = { ...this.getFormFields(), 4821 ...this.config.customerOrderData 4822 }; 4823 const isSubscribed = customerData.dwfrm_eventEnquiry_newsletterUpdate === 'true'; 4824 4825 if (response.success) { 4826 document.getElementById('successMessage').textContent = response.successMessage; 4827 window.scrollTo(0, 0); 4828 4829 if (isSubscribed) { 4830 this.eventBus().emit('gtm.subscribe.success'); 4831 } 4832 4833 var gtmData = { 4834 "event": "form-submit", 4835 "formName": "event-enquiry-form", 4836 "formAction": "Submit", 4837 "formStatus": "Success", 4838 "fieldEngagement": Object.keys(fields).join(' > ') 4839 }; 4840 dataLayer.push(gtmData); 4841 } else { 4842 document.getElementById('successMessage').textContent = response.errorMessage; 4843 var gtmData = { 4844 event: "error", 4845 errorMessage: response.errorMessage 4846 }; 4847 dataLayer.push(gtmData); 4848 } 4849 }).finally(() => { 4850 this.afterSubmission(); 4851 }); 4852 } 4853 4854 setEventEnquiryForm() { 4855 var currentDate = new Date(); 4856 var month; 4857 4858 if (currentDate.getMonth() < 10) { 4859 month = '0' + parseInt(currentDate.getMonth() + 1); 4860 } else { 4861 month = parseInt(currentDate.getMonth() + 1); 4862 } 4863 4864 var dateInCalenderFormat = currentDate.getFullYear() + '-' + month + '-' + currentDate.getDate(); 4865 document.getElementById('dwfrm_eventEnquiry_preferredDate').setAttribute('min', dateInCalenderFormat); 4866 document.getElementById('dwfrm_eventEnquiry_alternateDate').setAttribute('min', dateInCalenderFormat); 4867 var underAgeStatus = document.getElementById('dwfrm_eventEnquiry_underAge'); 4868 var underAgeExplanation = document.getElementById('underAgeExplanation'); 4869 underAgeExplanation.style.display = 'none'; 4870 underAgeStatus.addEventListener('change', function () { 4871 if (underAgeStatus.checked) { 4872 underAgeExplanation.style.display = 'block'; 4873 } else { 4874 underAgeExplanation.style.display = 'none'; 4875 } 4876 }); 4877 } 4878 /** 4879 * @description This method will be called after cognito.hook.-sign-in finished. 4880 * "Cognito" component will call hook cognito.hook.sign-in.finished. 4881 * 4882 * @param {object} data - object with data from Amazon Cognito. 4883 * @param {string} data.userSub - external id on Amazon Cognito side. 4884 * 4885 * @returns {void} 4886 */ 4887 4888
4889 signInSubmitted(data) { 4890 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(this.getFormUrl(), { // attributes from cognito like: firstname, lastname, email, sub, phone 4891 ...data.attributes, 4892 // pass "remember me" key/value 4893 ...this.getFormFields() 4894 }, 'POST').then(response => { 4895 // TODO:HARMONY:BE Complete check for social login on Phase2 4896 // Email, Google or Facebook should be for loginMethod 4897 this.eventBus().emit('gtm.user.login', { 4898 loginMethod: 'Email', 4899 commerceKey: data.attributes.sub, 4900 sfPersonAccountId: response.sfPersonAccountId 4901 }); 4902 this.onSubmitted(response); 4903 }).catch(this.onError.bind(this)); 4904 } 4905 /** 4906 * @param response 4907 * @description when form has been submitted. 4908 */ 4909 4910 4911 onSubmitted(response) { 4912 this.eventBus().emit('cognito.hook.syncsubscription', response); 4913 } 4914 /** 4915 * @param response 4916 * @description when subscription has been synced with cognito. 4917 */ 4918 4919 4920 onSyncedSubscription(response) { 4921 super.onSubmitted(response); 4922 this.afterSubmission(); 4923 } 4924 /** 4925 * @description Handle sign in errors. 4926 * 4927 * @param {object} error 4928 * @param {boolean} error.confirmException - value which indicates that it was 4929 * confirm exception. In other cases it is an error with auth, and we need just 4930 * show an error. In case it is confirmation error (customer while login got an error 4931 * that email not confirmed). 4932 */ 4933 4934 4935 signInCatch(error) { 4936 const fields = this.getFormFields(); 4937 this.afterSubmission(); 4938 4939 if (error.confirmException) { 4940 this.hide(); 4941 this.eventBus().emit('harmonyloginform.signin.confirmation.exception', { ...error, 4942 email: fields.dwfrm_login_email, 4943 password: fields.dwfrm_login_password 4944 }); 4945 $('.wc-login-form').removeClass('h-hidden'); 4946 $('.mr-register-form').addClass('h-hidden'); 4947 $('.mr-login-form #dwfrm_login_verificationCode').attr("aria-label", "Code"); 4948 this.eventBus().emit('cognito.hook.resendconfirmemail', { 4949 username: fields.dwfrm_login_email 4950 }); 4951 return; 4952 } 4953 4954 this.onError(error); 4955 } 4956 /** 4957 * @description when submitting has been done. 4958 */ 4959 4960 4961 afterSubmission() { 4962 super.afterSubmission(); 4963 this.resolveLoader(); 4964 } 4965 /** 4966 * @description Action which needs to be done before submit handleSubmit function. 4967 */ 4968 4969 4970 beforeSubmission() { 4971 this.getById(this.prefs().submitButton, submitButton => submitButton.busy()); 4972 this.clearError(); 4973 this.submitting = true; 4974 this.eventBus().emit('loader.start', new Promise(resolve => { 4975 this.resolve = resolve; 4976 })); 4977 } 4978 /** 4979 * @description resolve loader promise for hide overlay. 4980 * @returns {void} 4981 */ 4982 4983 4984 resolveLoader() { 4985 if (typeof this.resolve === 'function') { 4986 this.resolve(); 4987 } 4988 } 4989 /** 4990 * @description Handles an error, which happens during request (for ex. 500 response) 4991 * @param {Error} e - error, which happend during request 4992 * @returns {void} 4993 */ 4994 4995 4996 onError(e) { 4997 super.onError(e); 4998 this.afterSubmission(); 4999 } 5000 /** 5001 * @description show widget and make focus on a proper field. 5002 * @returns {void} 5003 */ 5004 5005 5006 show() { 5007 super.show(); 5008 this.setFocusToCurrentItem(); 5009 } 5010 5011 } 5012 5013 return HarmonyLoginForm; 5014}); 5015 5016/***/ }), 5017
5018/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyPasswordResetForm.js": 5019/*!***********************************************************************************************************!*\ 5020 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyPasswordResetForm.js ***! 5021 \***********************************************************************************************************/ 5022/*! exports provided: default */ 5023/***/ (function(module, __webpack_exports__, __webpack_require__) { 5024 5025"use strict"; 5026__webpack_require__.r(__webpack_exports__); 5027/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 5028/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 5029/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 5030 5031 5032/** 5033 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 5034 */ 5035 5036/** 5037 * @description Base HarmonyPasswordResetForm implementation 5038 * @param {AjaxForm} AjaxForm Base widget for extending 5039 * @returns {typeof AjaxForm} Password reset form 5040 */ 5041 5042/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 5043 /** 5044 * @class HarmonyPasswordResetForm 5045 * @augments AjaxForm 5046 */ 5047 class HarmonyPasswordResetForm extends AjaxForm { 5048 init() { 5049 super.init(); 5050 this.eventBus().on('cognito.hook.forgotpassword.then', 'forgotPasswordThen'); 5051 this.eventBus().on('cognito.hook.forgotpassword.catch', 'onError'); 5052 this.eventBus().on('cognito.hook.forgotpassword.confirmationcodesubmit.then', 'onConfirmSubmitted'); 5053 this.eventBus().on('cognito.hook.forgotpassword.confirmationcodesubmit.catch', 'onError'); 5054 this.eventBus().on('cognito.hook.signin.then', 'onSignInSubmitted'); 5055 } 5056 /** 5057 * Modal window on login page, forgot password CTA. 5058 * 5059 * @returns {boolean} 5060 */ 5061 5062 5063 handleSubmit() { 5064 if (!this.isChildrenValid()) { 5065 return false; 5066 } 5067 5068 const fields = this.getFormFields(); 5069 this.eventBus().emit('cognito.hook.forgotpassword', { 5070 username: this.prefs().disableCaseSensitive ? fields.dwfrm_profile_resetPassword_email.toLowerCase() : fields.dwfrm_profile_resetPassword_email, 5071 scope: this.prefs().scope 5072 }); 5073 return false; 5074 } 5075 /** 5076 * Success forgot password response from Amazon Cognito. 5077 * For modal window we need to submit form. 5078 * 5079 * For "Set New Password" page it is "Resend" CTA was called and we 5080 * do not need submit any form. Do nothing. 5081 * 5082 * @param {object} data 5083 * @param {string} data.scope - who has submitted a hook. 5084 */ 5085 5086 5087 forgotPasswordThen(data) { 5088 if (data.scope && data.scope === 'modalwindow') { 5089 this.ref('resetPassword').hide(); 5090 this.ref('sentCode').show(); 5091 this.focusFirst('sentCode'); 5092 } 5093 } 5094 5095 superHandleSubmit() { 5096 super.handleSubmit(); 5097 } 5098 /** 5099 * Handle reset password form. It is "Set New Password" page. 5100 * Customer need pass userName, code (verification code from email), newPassword 5101 * 5102 * Cognito API will be called to finish password change submit. 5103 * 5104 * @returns {boolean} 5105 */ 5106 5107 5108 handlePassword() { 5109 if (!this.isChildrenValid()) { 5110 return false; 5111 } 5112 5113 const fields = this.getFormFields(); 5114 this.eventBus().emit('cognito.hook.forgotpassword.confirmationcodesubmit', { 5115 userName: this.prefs().disableCaseSensitive ? fields.dwfrm_profile_resetPassword_email.toLowerCase() : fields.dwfrm_profile_resetPassword_email, 5116 code: fields.dwfrm_profile_login_newpasswords_verificationCode, 5117 newPassword: fields.dwfrm_profile_login_newpasswords_newpassword 5118 }); 5119 return false;
5120 } 5121 /** 5122 * When change password was submitted we need to sign-in customer. 5123 * This function will redirect customer to the login page. 5124 */ 5125 5126 5127 onConfirmSubmitted() { 5128 const container = this.ref('container'); 5129 this.has('confirmation', function (item) { 5130 item.show(); 5131 container.remove(); 5132 }); 5133 } 5134 /** 5135 * After customer was signed-in at Cognito. We need to sign-in it 5136 * on SFCC side. 5137 * 5138 * @param {object} data response data from amazon cognito api call. 5139 * @param {string} data.scope scope who was submitted sign-in flow. those 5140 * component must response for it as we may have few components on a page 5141 * which subscribed to the emitter. 5142 */ 5143 5144 5145 onSignInSubmitted(data) { 5146 if (data.scope === 'resetpassword') { 5147 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(this.prefs().login, data.attributes, 'POST').then(this.onSubmitted.bind(this)).catch(this.onError.bind(this)).finally(this.afterSubmission.bind(this)); 5148 this.eventBus().emit('loader.start', promise); 5149 } 5150 } 5151 /** 5152 * Resend verification code to the customer email. 5153 * It is "Resend" button on a form. 5154 */ 5155 5156 5157 handleResend() { 5158 const fields = this.getFormFields(); 5159 this.eventBus().emit('cognito.hook.forgotpassword', { 5160 username: fields.dwfrm_profile_resetPassword_email 5161 }); 5162 } 5163 5164 } 5165 5166 return HarmonyPasswordResetForm; 5167}); 5168 5169/***/ }), 5170
5171/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/RegisterForm.js": 5172/*!***********************************************************************************************!*\ 5173 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/RegisterForm.js ***! 5174 \***********************************************************************************************/ 5175/*! exports provided: default */ 5176/***/ (function(module, __webpack_exports__, __webpack_require__) { 5177 5178"use strict"; 5179__webpack_require__.r(__webpack_exports__); 5180/** 5181 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 5182 */ 5183 5184/** 5185 * @description Base RegisterForm implementation 5186 * @param {AjaxForm} AjaxForm Base widget for extending 5187 * @returns {typeof RegisterForm} Email Subscribe Form class 5188 */ 5189/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 5190 /** 5191 * @class RegisterForm 5192 * @augments AjaxForm 5193 * @classdesc Serves email subscription form in footer, sends AJAX request to server. 5194 * @property {string} data-widget - Widget name `registerForm` 5195 * @property {string} data-event-submit - Event listener for form submission 5196 */ 5197 class RegisterForm extends AjaxForm { 5198 prefs() { 5199 return { ...super.prefs(), 5200 submitButton: 'submitRegisterButton', 5201 scope: 'registration' 5202 }; 5203 } 5204 5205 init() { 5206 super.init(); 5207 /** 5208 * -- cognito.hook.signup.then -- 5209 * When cognito sign-up process has been successfully done. 5210 */ 5211 5212 this.eventBus().on('cognito.hook.signup.then', 'signUpSubmitted'); 5213 /** 5214 * -- cognito.hook.signup.catch -- 5215 * When cognito sign-up process has been failed. 5216 */ 5217 5218 this.eventBus().on('cognito.hook.signup.catch', 'onError'); 5219 /** 5220 * -- harmonytab.change -- 5221 * When Login/Registration tabs has been changed. 5222 */ 5223 5224 this.eventBus().on('harmonytab.change', 'initViewState'); 5225 } 5226 /** 5227 * @param panel 5228 * @description Emits when tab was changed to prepare default state view. 5229 * @returns {void} 5230 */ 5231 5232 5233 initViewState(panel) { 5234 if (panel === 'register') { 5235 this.clearError(); 5236 this.show(); 5237 } 5238 } 5239 /** 5240 * @description Called when form was submitted for emit Amazon Cognito 5241 * sign up call. 5242 * 5243 * @returns {boolean} false - to transfer control to the Cognito component. 5244 */ 5245 5246 5247 handleSubmit() { 5248 if (!this.isChildrenValid() || this.submitting) { 5249 return false; 5250 } 5251 5252 this.beforeSubmission(); 5253 const fields = this.getFormFields(); 5254 const isSubscribed = fields.dwfrm_profile_customer_newsletterSubscription === 'true'; 5255 let fieldsObject = { 5256 username: this.prefs().disableCaseSensitive ? fields.dwfrm_profile_customer_email.toLowerCase() : fields.dwfrm_profile_customer_email, 5257 password: fields.dwfrm_profile_login_password, 5258 email: this.prefs().disableCaseSensitive ? fields.dwfrm_profile_customer_email.toLowerCase() : fields.dwfrm_profile_customer_email, 5259 firstName: fields.dwfrm_profile_customer_firstname, 5260 lastName: fields.dwfrm_profile_customer_lastname, 5261 birthDate: fields.dwfrm_profile_customer_birthday, 5262 newsletterSubscription: fields.dwfrm_profile_customer_newsletterSubscription || 'false', 5263 phoneNumber: fields.dwfrm_profile_customer_phone 5264 }; 5265 5266 if (fields.dwfrm_profile_customer_state) { 5267 fieldsObject['state'] = fields.dwfrm_profile_customer_state; 5268 } 5269 5270 this.eventBus().emit('cognito.hook.signup', fieldsObject); 5271 5272 if (isSubscribed) { 5273 this.eventBus().emit('gtm.subscribe.success'); 5274 } 5275 5276 return false; 5277 } 5278 /** 5279 * @description Used to submit form after customer was created on Cognito side. 5280 * 5281 * @param {object} data 5282 * @param {string} data.userSub - external id which used for create customer 5283 * on SFCC side. This is customer identifier. 5284 * @returns {void} 5285 */ 5286 5287 5288 signUpSubmitted(data) { 5289 this.submitting = false; 5290 this.getById('dwfrm_profile_externalID', input => { 5291 input.setValue(data.userSub, true); 5292 }); 5293 super.handleSubmit(); 5294 } 5295 /** 5296 * Calls parent onSubmitted with emitter which will be used in 5297 * verification form widget to show it. 5298 * 5299 * @param {object} data - Data which was returned by parent handleSubmit 5300 * @returns {void} 5301 */ 5302 5303 5304 onSubmitted(data) { 5305 super.onSubmitted(data); 5306 this.afterSubmission(); 5307 this.hide(); 5308 this.eventBus().emit('registrationform.submitted', data); 5309 this.eventBus().emit('monetate.track.account.create'); 5310 5311 if (data.newsletterSubscription.checked) { 5312 this.eventBus().emit('monetate.track.newsletter.signup'); 5313 } 5314 } 5315 /**
5316 * @description Show an error only in case if it was emitted to registration form scope. 5317 * 5318 * @param {object} error 5319 * @param {string} error.scope - scope for which was emitted current function. 5320 * @returns {void} 5321 */ 5322 5323 5324 onError(error) { 5325 if (error.scope && error.scope !== 'registration') { 5326 return; 5327 } 5328 5329 this.afterSubmission(); 5330 super.onError(error); 5331 } 5332 /** 5333 * @description Action which needs to be done before submit handleSubmit function. 5334 * @returns {void} 5335 */ 5336 5337 5338 beforeSubmission() { 5339 this.getById(this.prefs().submitButton, submitButton => submitButton.busy()); 5340 this.clearError(); 5341 this.submitting = true; 5342 this.eventBus().emit('loader.start', new Promise(resolve => { 5343 this.resolve = resolve; 5344 })); 5345 } 5346 /** 5347 * @description when submitting has been done. 5348 */ 5349 5350 5351 afterSubmission() { 5352 super.afterSubmission(); 5353 this.resolveLoader(); 5354 } 5355 /** 5356 * @description resolve loader promise for hide overlay. 5357 * @returns {void} 5358 */ 5359 5360 5361 resolveLoader() { 5362 if (typeof this.resolve === 'function') { 5363 this.resolve(); 5364 } 5365 } 5366 /** 5367 * Prepare data to be passed to gtm 5368 * 5369 * @param {any} data Response from form submission 5370 * @returns {object} data form gtm event 5371 */ 5372 5373 5374 prepareGtmData(data) { 5375 /** 5376 * @description gtm Object 5377 * @type {any} 5378 */ 5379 const gtmData = { 5380 formStatus: 'Success', 5381 formId: this.id || this.formId, 5382 formName: this.formName 5383 }; 5384 5385 if (data) { 5386 // store customer info if available 5387 if (data.sfPersonAccountId) { 5388 gtmData.sfPersonAccountId = data.sfPersonAccountId; 5389 } 5390 5391 if (data.externalId) { 5392 gtmData.commerceKey = data.externalId; 5393 } 5394 5395 if (data.success === false) { 5396 gtmData.formStatus = 'Error: Failed Form Submission'; 5397 5398 if (data.fields && data.fields.length) { 5399 gtmData.formStatus = 'Error: Form Validation'; 5400 /** 5401 * @description Array of error messages 5402 * @type {string[]} 5403 */ 5404 5405 const errorMessages = []; 5406 Object.keys(data.fields).forEach(fieldKey => { 5407 errorMessages.push(data.fields[fieldKey]); 5408 }); 5409 this.errorMessage = errorMessages.join('|'); 5410 gtmData.errorMessage = this.errorMessage; 5411 } 5412 } 5413 } 5414 5415 return gtmData; 5416 } 5417 5418 } 5419 5420 return RegisterForm; 5421}); 5422 5423/***/ }), 5424
5425/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/BrowsingOnlyModal.js": 5426/*!************************************************************************************************!*\ 5427 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/BrowsingOnlyModal.js ***! 5428 \************************************************************************************************/ 5429/*! exports provided: default */ 5430/***/ (function(module, __webpack_exports__, __webpack_require__) { 5431 5432"use strict"; 5433__webpack_require__.r(__webpack_exports__); 5434/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 5435/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 5436 5437/* harmony default export */ __webpack_exports__["default"] = (function (Modal) { 5438 class BrowsingOnlyModal extends Modal { 5439 accept() { 5440 this.eventBus().emit('shiptostate.submit'); 5441 } 5442 5443 showModal(...args) { 5444 super.showModal(...args); 5445 this.eventBus().emit('header.set.active.state'); 5446 } 5447 5448 closeModal(...args) { 5449 super.closeModal(...args); 5450 this.eventBus().emit('header.remove.active.state'); 5451 } 5452 5453 } 5454 5455 return BrowsingOnlyModal; 5456}); 5457 5458/***/ }), 5459
5460/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/CookieDismissBlock.js": 5461/*!*************************************************************************************************!*\ 5462 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/CookieDismissBlock.js ***! 5463 \*************************************************************************************************/ 5464/*! exports provided: default */ 5465/***/ (function(module, __webpack_exports__, __webpack_require__) { 5466 5467"use strict"; 5468__webpack_require__.r(__webpack_exports__); 5469/* harmony import */ var widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/cookie */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js"); 5470 5471/** 5472 * @typedef {typeof import('widgets/Widget').default} Widget 5473 */ 5474 5475/** 5476 * @description Dismiss block implementation. Value is stored in cookies. 5477 * @param {Widget} Widget Base widget for extending 5478 * @returns {typeof CookiesDismissBlock}
5478 Cookie Dismiss Block class 5479 */ 5480 5481/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 5482 /** 5483 * @class CookiesDismissBlock 5484 * @augments Widget 5485 * @classdesc Promo header widget, which could contain dynamic markup. Could be dismissed. 5486 * @property {string} data-widget - Widget name `CookiesDismissBlock` 5487 * @property {string} data-key - Key for document.cookie to store header banner display status. 5488 * If value exists - header will not be shown. 5489 * @example 5490 * // use this code to display widget 5491 * <div 5492 * data-widget="CookiesDismissBlock" 5493 * data-key="hide_header_banner" 5494 * > 5495 * ... widget markup 5496 * <button data-event-click.once.prevent="dismiss">close</button> 5497 * </div> 5498 */ 5499 class CookiesDismissBlock extends Widget { 5500 /** 5501 * @description Preferences 5502 * @returns {object} Preferences object 5503 */ 5504 prefs() { 5505 return { 5506 classesEnabled: 'm-visible', 5507 key: 'hide_header_top_promoblock', 5508 ...super.prefs() 5509 }; 5510 } 5511 /** 5512 * @description Initialize widget logic 5513 */ 5514 5515 5516 init() { 5517 super.init(); // get cookie value 5518 5519 const CookiesDismissBlockStatus = Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_0__["getCookie"])(this.prefs().key); // check cookie value and set banner class 5520 5521 if (!CookiesDismissBlockStatus || CookiesDismissBlockStatus !== '1') { 5522 this.ref('self').addClass(this.prefs().classesEnabled); 5523 this.eventBus().emit('cookiedismissblock.updated'); 5524 } 5525 } 5526 /** 5527 * Dismiss block 5528 */ 5529 5530 5531 dismiss() { 5532 // remove visibility class from element 5533 this.ref('self').removeClass(this.prefs().classesEnabled); // set cookie 5534 5535 Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_0__["setCookie"])(this.prefs().key, '1', 0); // emit event for other widgets 5536 5537 this.eventBus().emit('cookiedismissblock.updated'); 5538 } 5539 5540 } 5541 5542 return CookiesDismissBlock; 5543}); 5544 5545/***/ }), 5546
5547/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/EinsteinCarousel.js": 5548/*!***********************************************************************************************!*\ 5549 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/EinsteinCarousel.js ***! 5550 \***********************************************************************************************/ 5551/*! exports provided: default */ 5552/***/ (function(module, __webpack_exports__, __webpack_require__) { 5553 5554"use strict"; 5555__webpack_require__.r(__webpack_exports__); 5556/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 5557 5558/** 5559 * @description EinsteinCarousel implementation 5560 * @param {Carousel} Carousel 5561 * @returns {typeof EinsteinCarousel} 5562 */ 5563 5564/* harmony default export */ __webpack_exports__["default"] = (function (Carousel) { 5565 return class EinsteinCarousel extends Carousel { 5566 prefs() { 5567 return { 5568 recommender: '', 5569 recommenderType: '', 5570 productLoadUrl: '', 5571 categoryId: '', 5572 secondaryProductId: '', 5573 alternativeGroupType: '', 5574 alternativeGroupId: '', 5575 primaryProductId: '', 5576 template: 'commerce_assets/product/productTileWrapper', 5577 iterationDelay: 250, 5578 maxIterationsCount: 10, 5579 ...super.prefs() 5580 }; 5581 } 5582 5583 initCarousel() { 5584 // CQuotient library included in the end of the page 5585 // and sometimes not available, when EinsteinCarousle initializes. 5586 // Therefore, we run an interval check to handle such cases. 5587 const { 5588 maxIterationsCount, 5589 iterationDelay 5590 } = this.prefs(); 5591 let iteration = 0; 5592 this.interval = window.setInterval(() => { 5593 if (++iteration === maxIterationsCount) { 5594 window.clearInterval(this.interval); 5595 } 5596 5597 this.getEinsteinUtils(); 5598 this.loadRecommendations(); 5599 }, iterationDelay); 5600 } 5601 5602 getEinsteinUtils() { 5603 const einsteinUtils = window.CQuotient; 5604 5605 if (einsteinUtils && typeof einsteinUtils.getCQUserId === 'function' && typeof einsteinUtils.getCQCookieId === 'function' && typeof einsteinUtils.getRecs === 'function') { 5606 this.einsteinUtils = einsteinUtils; 5607 window.clearInterval(this.interval); 5608 } 5609 } 5610 5611 loadRecommendations() { 5612 if (!this.einsteinUtils) { 5613 return; 5614 } 5615 5616 const { 5617 recommenderType 5618 } = this.prefs(); 5619 5620 if (recommenderType === 'category') { 5621 this.processRecommendationsTile(this.createCategoryAnchor()); 5622 } else if (recommenderType === 'product') { 5623 this.processRecommendationsTile(this.createProductAnchor()); 5624 } else { 5625 this.processRecommendationsTile(); 5626 } 5627 } 5628 5629 createCategoryAnchor() { 5630 return [{ 5631 id: this.prefs().categoryId 5632 }]; 5633 } 5634 5635 createProductAnchor() { 5636 const { 5637 primaryProductId, 5638 secondaryProductId, 5639 alternativeGroupType, 5640 alternativeGroupId 5641 } = this.prefs(); 5642 return [{ 5643 id: primaryProductId, 5644 sku: secondaryProductId, 5645 type: alternativeGroupType, 5646 alt_id: alternativeGroupId 5647 }]; 5648 } 5649 5650 processRecommendationsTile(anchorsArray) { 5651 const { 5652 getCQUserId, 5653 getCQCookieId, 5654 getRecs, 5655 clientId 5656 } = this.einsteinUtils; 5657 const recommender = this.prefs().recommender; 5658 const params = { 5659 userId: getCQUserId(), 5660 cookieId: getCQCookieId(), 5661 ccver: '1.01' 5662 }; 5663 5664 if (anchorsArray) { 5665 params.anchors = anchorsArray; 5666 } 5667 5668 getRecs(clientId, recommender, params, this.recommendationsReceived.bind(this)); 5669 } 5670 5671 recommendationsReceived(einsteinResponse) { 5672 const { 5673 recommender, 5674 list 5675 } = this.prefs(); 5676 const recommendedProducts = einsteinResponse[recommender].recs; 5677 5678 if (!recommendedProducts || !recommendedProducts.length) { 5679 return; 5680 } 5681 5682 const { 5683 template, 5684 productLoadUrl 5685 } = this.prefs(); 5686 const components = recommendedProducts.map(recommendedProduct => ({ 5687 model: { 5688 type: 'product', 5689 id: recommendedProduct.id, 5690 list: list 5691 }, 5692 template 5693 })); 5694 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["getContentByUrl"])(productLoadUrl, { 5695 components: JSON.stringify(components) 5696 }).then(html => { 5697 this.ref('elemCarouselTrack').els[0].insertAdjacentHTML('beforeend', html); 5698 this.ref('self').show(); 5699 super.initCarousel(); 5700 }); 5701 } 5702 5703 }; 5704}); 5705 5706/***/ }), 5707
5708/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ExtendedCarouselSwiper.js": 5709/*!*****************************************************************************************************!*\ 5710 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ExtendedCarouselSwiper.js ***! 5711 \*****************************************************************************************************/ 5712/*! exports provided: default */ 5713/***/ (function(module, __webpack_exports__, __webpack_require__) { 5714 5715"use strict"; 5716__webpack_require__.r(__webpack_exports__); 5717/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js"); 5718 5719swiper__WEBPACK_IMPORTED_MODULE_0__["default"].use([swiper__WEBPACK_IMPORTED_MODULE_0__["Navigation"], swiper__WEBPACK_IMPORTED_MODULE_0__["Pagination"]]); 5720/** 5721 * @description Swiper Carousel implementation 5722 * @param {CarouselSwiper} CarouselSwiper Base widget for extending 5723 * @returns {typeof ExtendedCarouselSwiper} 5724 */ 5725 5726/* harmony default export */ __webpack_exports__["default"] = (function (CarouselSwiper) { 5727 return class ExtendedCarouselSwiper extends CarouselSwiper { 5728 prefs() { 5729 return { 5730 freeMode: true, 5731 clickablePagination: false, 5732 ...super.prefs() 5733 }; 5734 } 5735 5736 activate() { 5737 if (!this.cleanUpSwiper) { 5738 const carouselContent = this.ref('self').get(); 5739 5740 if (carouselContent) { 5741 const options = this.getOptions(); 5742 this.initControls(options); 5743 this.swiper = new swiper__WEBPACK_IMPORTED_MODULE_0__["default"](carouselContent, options); 5744 5745 this.cleanUpSwiper = () => { 5746 if (this.swiper) { 5747 this.swiper.destroy(true, true); 5748 this.swiper = undefined; 5749 this.cleanUpSwiper = undefined; 5750 } 5751 }; 5752 5753 this.afterActivate(); 5754 this.onDestroy(this.cleanUpSwiper); 5755 } 5756 } 5757 } 5758 5759 initControls(options) { 5760 if (!options) { 5761 return; 5762 } 5763 5764 super.initControls(options); 5765 5766 if (options.pagination) { 5767 options.pagination.clickable = this.prefs().clickablePagination; 5768 } 5769 } 5770 5771 getOptions() { 5772 const { 5773 freeMode 5774 } = this.prefs(); 5775 return { 5776 freeMode, 5777 ...super.getOptions() 5778 }; 5779 } 5780 5781 }; 5782}); 5783 5784/***/ }), 5785
5786/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyAccordionItem.js": 5787/*!***************************************************************************************************!*\ 5788 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyAccordionItem.js ***! 5789 \***************************************************************************************************/ 5790/*! exports provided: default */ 5791/***/ (function(module, __webpack_exports__, __webpack_require__) { 5792 5793"use strict"; 5794__webpack_require__.r(__webpack_exports__); 5795/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 5796 5797/** 5798 * @typedef {typeof import('widgets/global/AccordionItem').default} AccordionItem 5799 */ 5800 5801/** 5802 * @description Base AccordionItem extension 5803 * @param {ReturnType<typeof import('widgets/global/AccordionItem').default>} AccordionItem Base widget for extending 5804 * @returns {typeof HarmonyAccordionItem} HarmonyAccordionItem class 5805 */ 5806 5807/* harmony default export */ __webpack_exports__["default"] = (function (AccordionItem) { 5808 /** 5809 * @class HarmonyAccordionItem 5810 * @augments AccordionItem 5811 * @classdesc HarmonyAccordionItem widget, that adds extra functionality(classes toggle, etc). 5812 * Extends Base AccordionItem. For more details see global/MenuPanel widget. 5813 */ 5814 class HarmonyAccordionItem extends AccordionItem { 5815 /** 5816 * @description Returns Widget configuration object 5817 * @returns {object} Widget configuration object 5818 */ 5819 prefs() { 5820 return { 5821 classesOpen: 'm-opened', 5822 ...super.prefs() 5823 }; 5824 } 5825 5826 init() { 5827 super.init(); 5828 var itemInnerElement = this.ref('accordionItemPanelInner').get(); 5829 this.initialHeight = itemInnerElement.offsetHeight; 5830 const horizontalPanel = $('.b-refinements_accordion-horizontal_item').attr('data-horizontal'); 5831 5832 if (Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__["isLargeViewAndUp"])()) { 5833 if (!horizontalPanel) { 5834 this.ref('accordionItemPanel').get().style.height = this.initialHeight + 'px'; 5835 } 5836 } 5837 } 5838 /** 5839 * @description Define attributes 5840 * @param {boolean} [isOpen] Panel open flag 5841 * @returns {void} 5842 */ 5843 5844 5845 defineAttributes(isOpen) { 5846 super.defineAttributes(isOpen); 5847 const accordionItemBtn = this.ref('accordionItemBtn'); 5848 const accordionItemPanel = this.ref('accordionItemPanel'); 5849 const accordionItemPanelInner = this.ref('accordionItemPanelInner'); 5850 5851 if ($("#payment-details-CREDIT_CARD").hasClass('b-payment_option-content')) { 5852 accordionItemPanel.attr('role', 'form'); 5853 } 5854 5855 if (isOpen) { 5856 accordionItemBtn.addClass(this.prefs().classesOpen); 5857 accordionItemPanel.addClass(this.prefs().classesOpen); 5858 accordionItemPanelInner.addClass(this.prefs().classesOpen); 5859 } 5860 } 5861 /** 5862 * @description Open panel 5863 * @returns {void} 5864 */ 5865 5866 5867 openPanel() { 5868 super.openPanel(); 5869 this.has(this.prefs().accordionItemBtn, accordionItemBtn => { 5870 accordionItemBtn.addClass(this.prefs().classesOpen); 5871 }); 5872 this.has(this.prefs().accordionItemPanel, accordionItemPanel => { 5873 accordionItemPanel.addClass(this.prefs().classesOpen); 5874 }); 5875 this.has(this.prefs().accordionItemPanelInner, accordionItemPanelInner => { 5876 accordionItemPanelInner.addClass(this.prefs().classesOpen); 5877 }); 5878 } 5879 /** 5880 * @description Restores panel height, when user clicks on 'View more' and then close, open panel 5881 * @param {object} [accordionItemPanel] One of the panels for which we need to restore height 5882 * @returns {void} 5883 */ 5884 5885 5886 resetHeight(viewMore, height) { 5887 this.ref('accordionItemPanel').get().style.height = height + 'px'; 5888 } 5889 5890 togglePanel(ele, event) { 5891 let horizontalPanel = $('.b-refinements_accordion-horizontal_item').attr('data-horizontal'); 5892 5893 if (horizontalPanel) { 5894 var elementClassList = event.target && event.target.classList; 5895 var filtersClassList = ['b-refinement_list-checkbox', 'b-refinement_checkbox', 'b-refinement_navigation-link', 'f-input_radio', 'b-refinement_list-label']; 5896 5897 if (elementClassList ? filtersClassList.filter(value => elementClassList.contains(value)).length === 0 : true) { 5898 super.togglePanel(); 5899 } 5900 } else { 5901 super.togglePanel(); 5902 } 5903 5904 if (this.isPanelOpen) { 5905 this.getById('viewMore', viewMoreButton => { 5906 viewMoreButton.reinitViewMore(); 5907 }); 5908 5909 if (!horizontalPanel) { 5910 this.ref('accordionItemPanel').get().style.height = this.initialHeight + 'px'; 5911 } 5912 } 5913 5914 this.eventBus().emit('accordion.item.toggled', this); 5915 } 5916 /**
5917 * @description Close panel 5918 * @returns {void} 5919 */ 5920 5921 5922 closePanel() { 5923 super.closePanel(); 5924 this.has(this.prefs().accordionItemBtn, accordionItemBtn => { 5925 accordionItemBtn.removeClass(this.prefs().classesOpen); 5926 }); 5927 this.has(this.prefs().accordionItemPanel, accordionItemPanel => { 5928 accordionItemPanel.removeClass(this.prefs().classesOpen); 5929 }); 5930 this.has(this.prefs().accordionItemPanelInner, accordionItemPanelInner => { 5931 accordionItemPanelInner.removeClass(this.prefs().classesOpen); 5932 }); 5933 } 5934 5935 closeAccordianOnBlur(ele, event) { 5936 var elementClassList = event.relatedTarget && event.relatedTarget.classList; 5937 var filtersClassList = ['b-refinement_list-checkbox', 'b-refinement_checkbox', 'b-refinement_navigation-link', 'f-input_radio', 'b-refinement_list-label']; 5938 const shouldHidePanel = elementClassList ? filtersClassList.filter(value => elementClassList.contains(value)).length === 0 : true; 5939 5940 if (shouldHidePanel) { 5941 super.blur(); 5942 this.closePanel(); 5943 } 5944 } 5945 5946 } 5947 5948 return HarmonyAccordionItem; 5949}); 5950 5951/***/ }), 5952
5953/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyBackToTop.js": 5954/*!***********************************************************************************************!*\ 5955 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyBackToTop.js ***! 5956 \***********************************************************************************************/ 5957/*! exports provided: default */ 5958/***/ (function(module, __webpack_exports__, __webpack_require__) { 5959 5960"use strict"; 5961__webpack_require__.r(__webpack_exports__); 5962/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 5963/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 5964/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 5965 5966 5967/** 5968 * @description HarmonyBackToTop implementation 5969 * @param {BackToTop} BackToTop BackToTop for extending 5970 * @returns {typeof BackToTop} 5971 */ 5972 5973/* harmony default export */ __webpack_exports__["default"] = (function (BackToTop) { 5974 return class HarmonyBackToTop extends BackToTop { 5975 prefs() { 5976 return { ...super.prefs(), 5977 pageSize: 1 5978 }; 5979 } 5980 5981 doInit() { 5982 if (Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["isMediumViewAndDown"])()) { 5983 this.removeScrollListener(); 5984 this.show(); 5985 } else { 5986 this.attachScrollListener(); 5987 this.toggleBackToTopButton(); 5988 } 5989 } 5990 5991 toggle(...args) { 5992 super.toggle(...args); 5993 this.ref('self').attr('hidden', false); 5994 } 5995 5996 }; 5997}); 5998 5999/***/ }), 6000
6001/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyButton.js": 6002/*!********************************************************************************************!*\ 6003 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyButton.js ***! 6004 \********************************************************************************************/ 6005/*! exports provided: default */ 6006/***/ (function(module, __webpack_exports__, __webpack_require__) { 6007 6008"use strict"; 6009__webpack_require__.r(__webpack_exports__); 6010/** 6011 * @typedef {ReturnType<typeof import('widgets/global/Button').default>} Button 6012 */ 6013 6014/** 6015 * @description HarmonyButton implementation 6016 * @param {Button} Button Base widget for extending 6017 * @returns {typeof HarmonyButton} HarmonyButton 6018 */ 6019/* harmony default export */ __webpack_exports__["default"] = (function (Button) { 6020 class HarmonyButton extends Button { 6021 /** 6022 * @description Sends GTM event, when button was clicked 6023 * @returns {void} 6024 */ 6025 handleClick() { 6026 super.handleClick(); 6027 this.eventBus().emit('gtm.button.click'); 6028 } 6029 6030 busy() { 6031 this.isBusy = true; 6032 } 6033 6034 unbusy() { 6035 this.isBusy = false; 6036 } 6037 6038 } 6039 6040 return HarmonyButton; 6041}); 6042 6043/***/ }), 6044
6045/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyCarousel.js": 6046/*!**********************************************************************************************!*\ 6047 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyCarousel.js ***! 6048 \**********************************************************************************************/ 6049/*! exports provided: default */ 6050/***/ (function(module, __webpack_exports__, __webpack_require__) { 6051 6052"use strict"; 6053__webpack_require__.r(__webpack_exports__); 6054/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 6055/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 6056/* harmony
6056import */ var harmony_toolbox_domUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! harmony/toolbox/domUtils */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/domUtils.js"); 6057 6058 6059/** 6060 * @description HarmonyCarousel implementation 6061 * @param {Carousel} Carousel Carousel for extending 6062 * @returns {typeof HarmonyCarousel} carousel 6063 */ 6064 6065/* harmony default export */ __webpack_exports__["default"] = (function (Carousel) { 6066 return class HarmonyCarousel extends Carousel { 6067 prefs() { 6068 return { 6069 enableAutoplay: false, 6070 autoplayDelay: 0, 6071 pauseOnHover: false, 6072 loop: false, 6073 slidesQty: 0, 6074 ...super.prefs() 6075 }; 6076 } 6077 6078 initCarousel() { 6079 this.cacheCarouselElements(); 6080 super.initCarousel(); 6081 6082 if (this.isAutoplayEnabled()) { 6083 this.addAutoPlayEventListeners(); 6084 this.startAutoPlay(); 6085 } 6086 6087 this.carouselConfiguration = this.data('carouselConfiguration') || {}; 6088 this.carouselConfiguration.slideBy = this.carouselConfiguration.slideBy || 1; 6089 this.currentActiveSlideIndex = 0; 6090 this.handleScroll = this.handleScroll.bind(this); 6091 this.observeSlidesInTrack(); 6092 this.onDestroy(this.disconnectSlidesObserver.bind(this)); 6093 } 6094 6095 onRefresh() { 6096 this.cacheCarouselElements(); 6097 this.disconnectSlidesObserver(); 6098 this.observeSlidesInTrack(); 6099 } 6100 6101 cacheCarouselElements() { 6102 this.elemCarouselTrack = this.ref('elemCarouselTrack').get(); 6103 this.slides = [...this.elemCarouselTrack.children]; 6104 } 6105 6106 observeSlidesInTrack() { 6107 this.observer = new IntersectionObserver(this.handleScroll, { 6108 root: this.elemCarouselTrack, 6109 rootMargin: '0px', 6110 threshold: 0.5 6111 });
6112 this.slides.forEach(slide => { 6113 this.observer.observe(slide); 6114 }); 6115 } 6116 6117 disconnectSlidesObserver() { 6118 this.observer.disconnect(); 6119 } 6120 6121 handleScroll(slides) { 6122 const position = this.carouselDirection === 'horizontal' ? 'left' : 'top'; 6123 6124 if (slides[0].intersectionRect[position] !== slides[0].rootBounds[position]) { 6125 return; 6126 } 6127 6128 const firstElement = slides[0].isIntersecting ? slides[0].target : slides[0].target.nextElementSibling; 6129 this.currentActiveSlideIndex = this.slides.indexOf(firstElement); 6130 } 6131 6132 isAutoplayEnabled() { 6133 const { 6134 enableAutoplay, 6135 autoplayDelay 6136 } = this.prefs(); 6137 return enableAutoplay && autoplayDelay; 6138 } 6139 6140 isLoopEnabled() { 6141 return this.prefs().loop || this.isAutoplayEnabled(); 6142 } 6143 6144 addAutoPlayEventListeners() { 6145 if (!this.prefs().pauseOnHover) { 6146 return; 6147 } 6148 6149 const carousel = this.ref('self').get(); 6150 carousel.addEventListener('mouseleave', this.startAutoPlay.bind(this)); 6151 carousel.addEventListener('mouseenter', this.stopAutoPlay.bind(this)); 6152 } 6153 6154 createPaginationElements() { 6155 if (!this.elemCarouselTrack || this.isLoopEnabled()) { 6156 return; 6157 } // We need to use round, not ceil, since it called on scroll, 6158 // in case of last it would generate falls positive 6159 6160 6161 const numberOfPages = Math.round(this.elemCarouselTrack.scrollWidth / this.elemCarouselTrack.clientWidth); 6162 const pagination = new Array(numberOfPages).fill(0).map((_el, i) => ({ 6163 page: i, 6164 pageIndex: i + 1 6165 })); 6166 this.pagination = new Promise(resolve => { 6167 this.render(undefined, { 6168 pagination 6169 }, this.ref('pagination')).then(() => { 6170 resolve(this.ref('pagination').get()); 6171 }); 6172 }); 6173 } 6174 6175 scrollToSlide(index) { 6176 if (this.carouselDirection === 'horizontal') { 6177 this.scrollToPoint(0, this.slides[index].offsetLeft); 6178 } else { 6179 this.scrollToPoint(this.slides[index].offsetTop, 0); 6180 } 6181 6182 const image = this.getImages()[index]; 6183 6184 if (image) { 6185 const imagePosition = index + 1; // index from 0, but we need to send from 1 6186 6187 const gtmData = { 6188 imagePosition, 6189 imageName: image.getAttribute('alt') 6190 }; 6191 6192 if (this.prefs().isPdpCarousel) { 6193 this.eventBus().emit('gtm.carousel.pdp.click', gtmData); 6194 } 6195 6196 if (this.prefs().isBlog) { 6197 if (this.slides[index] && this.slides[index].querySelector('[data-selector-id="text-box"]')) { 6198 gtmData.articleImageDescription = this.slides[index].querySelector('[data-selector-id="text-box"]').innerText.trim(); 6199 } 6200 6201 this.eventBus().emit('gtm.scroll.blog.carousel', gtmData); 6202 } 6203 } 6204 6205 this.scrollToSlideAccessability(index); 6206 } 6207 6208 scrollToSlideAccessability(index) { 6209 const id = Date.now(); 6210 this.slides.forEach((slide, i) => { 6211 // Add an id to current slide, so screen reader can read. 6212 // the same ID is added to controls to "aria-describedby" 6213 slide[i === index ? 'setAttribute' : 'removeAttribute']('id', id); // Enable current and next slides for accessing via TAB key 6214 // Disable previous slides from TAB order, so right after controls user can navigate to current slide 6215 6216 Object(harmony_toolbox_domUtils__WEBPACK_IMPORTED_MODULE_1__["toggleAvailability"])(slide, i >= index); 6217 }); // Small delay for screen reader in order to not read previous slide 6218 6219 setTimeout(() => { 6220 this.has('controls', controls => controls.attr('aria-describedby', id)); 6221 }, 500); 6222 } 6223 6224 startAutoPlay() { 6225 this.autoplayInterval = window.setInterval(this.scrollNext.bind(this), this.prefs().autoplayDelay); 6226 } 6227 6228 stopAutoPlay() { 6229 window.clearInterval(this.autoplayInterval); 6230 } 6231 6232 updateCarouselMetric() { 6233 const roundingDelta = this.roundingDelta || 0; 6234 6235 if (this.elemCarouselTrack) { 6236 if (this.carouselDirection === 'horizontal') { 6237 const totalScrollWidth = this.elemCarouselTrack.scrollLeft + this.elemCarouselTrack.offsetWidth; 6238 this.isScrollStart = this.elemCarouselTrack.scrollLeft <= 0; 6239 this.isScrollEnd = totalScrollWidth + roundingDelta >= this.elemCarouselTrack.scrollWidth; 6240 } else { 6241 const totalScrollHeight = this.elemCarouselTrack.scrollTop + this.elemCarouselTrack.offsetHeight; 6242 this.isScrollStart = this.elemCarouselTrack.scrollTop <= 0; 6243 this.isScrollEnd = totalScrollHeight + roundingDelta >= this.elemCarouselTrack.scrollHeight; 6244 } 6245 } 6246 } 6247 6248 updateCarouselState() { 6249 super.updateCarouselState(); 6250 } 6251 6252 scrollNext() { 6253 if (this.isScrollEnd && this.isLoopEnabled()) { 6254 const currentSlides = [...this.ref('elemCarouselTrack').get().children];
6255 Array.from(currentSlides).forEach(element => { 6256 const new_ele = element.cloneNode(true); 6257 6258 if (!new_ele.classList.contains('cloned-forward')) { 6259 new_ele.classList.add('cloned-forward'); 6260 this.ref('elemCarouselTrack').get().append(new_ele); 6261 } 6262 }); 6263 this.disconnectSlidesObserver(); 6264 this.cacheCarouselElements(); 6265 this.updateCarouselMetric(); 6266 this.observeSlidesInTrack(); 6267 } 6268 6269 const maxSlideIndex = this.slides.length - 1; 6270 let nextSlideIndex = this.currentActiveSlideIndex + this.carouselConfiguration.slideBy; 6271 6272 switch (true) { 6273 case this.isLoopEnabled() && this.isScrollEnd: 6274 nextSlideIndex = nextSlideIndex; 6275 break; 6276 6277 case nextSlideIndex > maxSlideIndex: 6278 nextSlideIndex = maxSlideIndex; 6279 break; 6280 6281 default: 6282 break; 6283 } 6284 6285 this.eventBus().emit('gtm.carousel.button.click', { 6286 carouselButton: 'Next', 6287 carouselName: this.prefs().name || '' 6288 }); 6289 this.scrollToSlide(nextSlideIndex); 6290 } 6291 6292 scrollBack() { 6293 let prevSlideIndex = this.currentActiveSlideIndex - this.carouselConfiguration.slideBy; 6294 6295 switch (true) { 6296 case this.isLoopEnabled() && this.isScrollStart: 6297 prevSlideIndex = this.slides.length - 1; 6298 break; 6299 6300 case prevSlideIndex < 0: 6301 prevSlideIndex = 0; 6302 break; 6303 6304 default: 6305 break; 6306 } 6307 6308 this.eventBus().emit('gtm.carousel.button.click', { 6309 carouselButton: 'Previous', 6310 carouselName: this.prefs().name || '' 6311 }); 6312 this.scrollToSlide(prevSlideIndex); 6313 } 6314 /** 6315 * @param {refElement} el source of event 6316 * @param {MouseEvent} event event instance in DOM 6317 */ 6318 6319 6320 onMouseDown(el, event) { 6321 super.onMouseDown(el, event); // in case if input field has been focused and on parent element mousedown prevented - forced input focus 6322 6323 if (event.target.nodeName === 'INPUT') { 6324 event.target.focus(); 6325 } 6326 } 6327 6328 handleContentClick(refElement) { 6329 const contentInfo = refElement.data('contentInfo'); 6330 contentInfo.carouselItemPosition = refElement.data('contentPosition'); 6331 contentInfo.carouselName = this.prefs().name; 6332 this.eventBus().emit('gtm.click.carousel.content', contentInfo); 6333 } 6334 6335 hasNoScroll() { 6336 return this.isScrollStart && this.isScrollEnd || !this.ref('elemCarouselTrack').get().children.length; 6337 } 6338 6339 }; 6340}); 6341 6342/***/ }), 6343
6344/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyConsentTracking.js": 6345/*!*****************************************************************************************************!*\ 6346 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyConsentTracking.js ***! 6347 \*****************************************************************************************************/ 6348/*! exports provided: default */ 6349/***/ (function(module, __webpack_exports__, __webpack_require__) { 6350 6351"use strict"; 6352__webpack_require__.r(__webpack_exports__); 6353/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 6354/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 6355/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 6356/* harmony import */ var widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/cookie */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js"); 6357 6358 6359 6360/** 6361 * @typedef {typeof import('widgets/global/ConsentTracking').default} ConsentTracking 6362 */ 6363 6364/** 6365 * @description Cookie acceptance component (with SFRA supported backend) 6366 * @param {ReturnType<typeof import('widgets/global/ConsentTracking').default>} ConsentTracking Base consent Tracking widget for extending 6367 * @returns {typeof HarmonyConsentTracking} Consent Tracking class 6368 */ 6369 6370/* harmony default export */ __webpack_exports__["default"] = (function (ConsentTracking) { 6371 /** 6372 * @class HarmonyConsentTracking 6373 * @augments ConsentTracking 6374 * @classdesc HarmonyConsentTracking Widget - used to expose Consent dialog, where customer can either accept 6375 * <br>or reject Consent matter. Relevant methods will be triggered pressing related buttons 6376 * @property {string} data-widget - Widget name `consentTracking` 6377 * @property {string} data-content-url - Dynamically loaded Consent's content 6378 * @property {string} data-reject-url - Customer chooses `reject` - request will be sent to Reject URL 6379 * @property {string} data-accept-url - Customer chooses `accept` - request will be sent to Accept URL 6380 * @example 6381 * // use this code to display minicart widget 6382 * <div 6383 * data-widget="consentTracking" 6384 * data-content-url="${URLUtils.url('ConsentTracking-GetContent', 'logo', 'global-header-vertical-logo', 'content', 'tracking_hint', 'footer', 'age-gate-footer')}" 6385 * data-reject-url="${URLUtils.url('ConsentTracking-SetSession', 'consent', 'false')}" 6386 * data-accept-url="${URLUtils.url('ConsentTracking-SetSession', 'consent', 'true')}" 6387 * data-tracking-selected="${pdict.tracking_consent != null}" 6388 * data-consent-api="${pdict.caOnline}" 6389 * > 6390 * <div data-ref="container"></div> 6391 * 6392 * <script type="template/mustache" data-ref="template"> 6393 * <div 6394 * id="consent-dialog" 6395 * role="alertdialog" 6396 * aria-modal="false" 6397 * aria-live="assertive" 6398 * aria-atomic="true" 6399 * aria-labelledby="consent-dialog-label" 6400 * aria-describedby="consent-dialog-description" 6401 * data-ref="container" 6402 * class="b-notification_panel" 6403 * > 6404 * {{{content}}} 6405 * </div> 6406 * </script> 6407 * </div> 6408 */ 6409 class HarmonyConsentTracking extends ConsentTracking { 6410 /** 6411 * @description Sends GTM event, when 'age gate' was shown 6412 * @returns {void} 6413 */ 6414 init() { 6415 let enableCookieOptIn = $('#enableCookieOptIn').val(); 6416 let isAcceptCookie = Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__["getCookie"])('dw_accept_cookie'); 6417 6418 if (!enableCookieOptIn) { 6419 if (this.prefs().forceAcceptTracking) { 6420 this.accept(); 6421 return; 6422 } 6423 } else { 6424 if (isAcceptCookie === '') { 6425 this.eventBus().emit('gtm.age.gate.shown', this.prefs().customerId); 6426 } 6427 6428 if (this.prefs().forceAcceptTracking) { 6429 this.accept(); 6430 } 6431 } 6432 6433 super.init(); 6434 } 6435 6436 acceptConsent() { 6437 const acceptUrl = this.prefs().acceptUrl; 6438 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(acceptUrl, undefined, 'GET').finally(() => { 6439 Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__["setCookie"])('dw_consent_cookie', '1', 365, true); 6440 $('.age-gate-overlay').addClass('h-hidden'); 6441 }); 6442 } 6443 6444 rejectConsent() { 6445 const rejectUrl = this.prefs().rejectUrl; 6446 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(rejectUrl, undefined, 'GET').finally(() => { 6447 $('.age-gate-overlay').addClass('h-hidden'); 6448 }); 6449 } 6450 6451 enterAgeGate() { 6452 Object(widgets_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__["setCookie"])('dw_accept_cookie', '1', 365, true); 6453 this.togglePanel(false); 6454 } 6455 /**
6456 * @description Sends GTM event, when 'age gate' was applied 6457 * @returns {void} 6458 */ 6459 6460 6461 accept() { 6462 super.accept(); 6463 6464 if ($('#harmonytracking').attr('role') === 'main') { 6465 $('#harmonytracking').removeAttr('role'); 6466 } 6467 6468 this.eventBus().emit('gtm.age.gate.enter', this.prefs().customerId); 6469 } 6470 /** 6471 * @description Validates legal drinking age and Sends GTM event, when 'age gate' was applied 6472 * @returns {void} 6473 */ 6474 6475 6476 submit() { 6477 var enableCookieOptIn = this.prefs().enableCookieOptIn; 6478 6479 if ($('.age-gate-enter-form .b-form-message.h-hidden').length !== 3) { 6480 return; 6481 } 6482 6483 let month = $('#month').val(); 6484 let date = $('#day').val(); 6485 let year = $('#year').val(); 6486 6487 if (!month) { 6488 $('.b-form-message.month').removeClass('h-hidden'); 6489 $('#month').focus(); 6490 return; 6491 } 6492 6493 if (!date) { 6494 $('.b-form-message.day').removeClass('h-hidden'); 6495 $('#day').focus(); 6496 return; 6497 } 6498 6499 if (!year) { 6500 $('.b-form-message.year').removeClass('h-hidden'); 6501 $('#year').focus(); 6502 return; 6503 } 6504 6505 if (this.ageGateEntrance(date, month, year) >= 21) { 6506 if (enableCookieOptIn === true) { 6507 this.enterAgeGate(); 6508 } else { 6509 super.accept(); 6510 } 6511 6512 if ($('#harmonytracking').attr('role') === 'main') { 6513 $('#harmonytracking').removeAttr('role'); 6514 } 6515 6516 this.eventBus().emit('gtm.age.gate.enter', this.prefs().customerId); 6517 } else { 6518 $('.age-gate-enter-form').addClass('h-hidden'); 6519 $('.too-young').removeClass('h-hidden'); 6520 } 6521 } 6522 6523 ageGateEntrance(birth_day, birth_month, birth_year) { 6524 let age = 0; 6525 let today_date = new Date(); 6526 let today_year = today_date.getFullYear(); 6527 let today_month = today_date.getMonth(); 6528 let today_day = today_date.getDate(); 6529 6530 if (!birth_day || !birth_month || !birth_year) { 6531 age = 0; 6532 } else { 6533 age = today_year - birth_year; 6534 6535 if (today_month < birth_month - 1) { 6536 age--; 6537 } 6538 6539 if (birth_month - 1 == today_month && today_day < birth_day) { 6540 age--; 6541 } 6542 } 6543 6544 return age; 6545 } 6546 /** 6547 * @description validates age gate form input elements 6548 * @param {HTMLElement} ele age gate form input element 6549 * @param {KeyboardEvent} event age gate form input element event 6550 * @returns {void} 6551 */ 6552 6553 6554 validate(ele, event) { 6555 const inputValue = event.target && parseInt(event.target.value); 6556 var res = /^\d+$/.test(event.target.value); 6557 6558 switch (event.target && event.target.name) { 6559 case "month": 6560 if (inputValue < 1 || inputValue > 12 || !/^\d+$/.test(event.target.value)) { 6561 $('.b-form-message.month').removeClass('h-hidden'); 6562 } else { 6563 $('.b-form-message.month').addClass('h-hidden'); 6564 } 6565 6566 break; 6567 6568 case "day": 6569 if (inputValue < 1 || inputValue > 31 || !/^\d+$/.test(event.target.value) || $('#month').val() && ($('#month').val() === "2" || $('#month').val() === "02") && inputValue > 29 || ["4", "6", "9", "11", "04", "06", "09"].includes($('#month').val()) && inputValue > 30) { 6570 $('.b-form-message.day').removeClass('h-hidden'); 6571 } else { 6572 $('.b-form-message.day').addClass('h-hidden'); 6573 } 6574 6575 break; 6576 6577 case "year": 6578 if (inputValue < 1000 || inputValue > 9999 || !/^\d+$/.test(event.target.value)) { 6579 $('.b-form-message.year').removeClass('h-hidden'); 6580 } else { 6581 $('.b-form-message.year').addClass('h-hidden'); 6582 } 6583 6584 break; 6585 } 6586 6587 let month = $('#month').val(); 6588 let date = $('#day').val(); 6589 6590 if (month && date && parseInt(date) > 0 && parseInt(date) <= 31 && (month === "2" || month === "02" ? parseInt(date) < 30 : true) && (["4", "6", "9", "11", "04", "06", "09"].includes(month) ? parseInt(date) < 31 : true)) { 6591 $('.b-form-message.day').addClass('h-hidden'); 6592 } else if (month && date) { 6593 $('.b-form-message.day').removeClass('h-hidden'); 6594 } 6595 } 6596 /**
6597 * @description Reject Consent handler 6598 * @listens dom#click 6599 * @returns {void} 6600 */ 6601 6602 6603 async reject() { 6604 try { 6605 await super.reject(); 6606 } catch (err) { 6607 console.log(err); 6608 } 6609 6610 this.eventBus().emit('gtm.age.gate.notrack'); // reload page to disable gtm 6611 6612 location.reload(true); 6613 } 6614 6615 prefs() { 6616 return { 6617 classesPanelOpen: 'm-age_gate-open', 6618 ...super.prefs() 6619 }; 6620 } 6621 6622 loadContent() {} 6623 /** 6624 * @description Toggle Panel 6625 * @param {boolean} isVisible - `true` if Consent's dialog should be shown, `false` - otherwise 6626 */ 6627 6628 6629 togglePanel(isVisible) { 6630 this.ref('html').toggleClass(this.prefs().classesPanelOpen, isVisible); 6631 6632 if (!isVisible) { 6633 this.eventBus().emit('gtm.age.gate.close'); 6634 } 6635 } 6636 6637 } 6638 6639 return HarmonyConsentTracking; 6640}); 6641 6642/***/ }), 6643
6644/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyEmitBusEvent.js": 6645/*!**************************************************************************************************!*\ 6646 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyEmitBusEvent.js ***! 6647 \**************************************************************************************************/ 6648/*! exports provided: default */ 6649/***/ (function(module, __webpack_exports__, __webpack_require__) { 6650 6651"use strict"; 6652__webpack_require__.r(__webpack_exports__); 6653/** 6654 * @typedef {typeof import('widgets/global/EmitBusEvent').default} EmitBusEvent 6655 */ 6656 6657/** 6658 * @param {Widget} EmitBusEvent Base widget for extending 6659 * @returns {typeof HarmonyEmitBusEvent} HarmonyEmitBusEvent widget 6660 */ 6661/* harmony default export */ __webpack_exports__["default"] = (function (EmitBusEvent) { 6662 class HarmonyEmitBusEvent extends EmitBusEvent { 6663 /** 6664 * @description Emit event 6665 * @returns {void} 6666 */ 6667 emitBusEvent() { 6668 if (this.prefs().busEventType) { 6669 const events = this.prefs().busEventType.split(':'); 6670 6671 for (let i = 0; i < events.length; i++) { 6672 this.eventBus().emit(events[i], this); 6673 } 6674 } 6675 } 6676 6677 init() { 6678 super.init(); 6679 6680 if (this.prefs().load === 'emitBusEvent') { 6681 this.emitBusEvent(); 6682 } 6683 } 6684 6685 } 6686 6687 return HarmonyEmitBusEvent; 6688}); 6689 6690/***/ }), 6691
6692/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyFocusHighlighter.js": 6693/*!******************************************************************************************************!*\ 6694 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyFocusHighlighter.js ***! 6695 \******************************************************************************************************/ 6696/*! exports provided: default */ 6697/***/ (function(module, __webpack_exports__, __webpack_require__) { 6698 6699"use strict"; 6700__webpack_require__.r(__webpack_exports__); 6701/** 6702 * @description HarmonyFocusHighlighter implementation 6703 * @param {FocusHighlighter} FocusHighlighter FocusHighlighter for extending 6704 * @returns {typeof FocusHighlighter} 6705 */ 6706/* harmony default export */ __webpack_exports__["default"] = (function (FocusHighlighter) { 6707 return class HarmonyFocusHighlighter extends FocusHighlighter { 6708 /** 6709 * @description Moves `highlighter` (a bordere box) in place of focused element 6710 * @param {HTMLElement} focusedElement - element, which gets focus 6711 */ 6712 moveTo(focusedElement) { 6713 if (!(focusedElement instanceof HTMLElement)) { 6714 return; 6715 } 6716 6717 const highlighterNode = this.ref('highlighter').get(); 6718 6719 if (!highlighterNode) { 6720 return; 6721 } 6722 6723 const scrollTop = +this.ref('self').get().dataset.scrollTop || 0; 6724 const targetRect = focusedElement.getBoundingClientRect(); 6725 const targetTop = targetRect.top + window.scrollY + scrollTop; 6726 const targetLeft = targetRect.left + window.scrollX; 6727 const targetWidth = focusedElement.offsetWidth; 6728 const targetHeight = focusedElement.offsetHeight; 6729 6730 if (focusedElement === this.lastFocusedElement && this.lastFocusedElementCoords === '' + targetTop + targetLeft + targetWidth + targetHeight) { 6731 // If we come from coords recheck do not reapply changes 6732 return; 6733 } 6734 6735 const highlighterStyle = highlighterNode.style; 6736 highlighterStyle.top = `${targetTop - 5}px`; 6737 highlighterStyle.left = `${targetLeft - 5}px`; 6738 highlighterStyle.width = `${targetWidth + 2}px`; 6739 highlighterStyle.height = `${targetHeight + 2}px`; 6740 this.lastFocusedElementCoords = '' + targetTop + targetLeft + targetWidth + targetHeight; 6741 this.lastFocusedElement = focusedElement; 6742 } 6743 6744 handleClick(ref, event) { 6745 super.handleClick(ref, event); 6746 this.getById('harmonyHeader', headerWidget => { 6747 headerWidget.getById('harmonyMenuPanel', harmonyMenuPanelWidget => { 6748 if (!event.target.closest('[data-id="harmonyMenuPanel"]') && harmonyMenuPanelWidget.isOpened && event.target.id !== 'main-navigation-toggle') { 6749 harmonyMenuPanelWidget.closePanel(); 6750 } 6751 }); 6752 }); 6753 } 6754 6755 }; 6756}); 6757 6758/***/ }), 6759
6760/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyGlobalAlerts.js": 6761/*!**************************************************************************************************!*\ 6762 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyGlobalAlerts.js ***! 6763 \**************************************************************************************************/ 6764/*! exports provided: default */ 6765/***/ (function(module, __webpack_exports__, __webpack_require__) { 6766 6767"use strict"; 6768__webpack_require__.r(__webpack_exports__); 6769/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 6770 6771/** 6772 * @description HarmonyGlobalAlerts 6773 * @param {typeof import('widgets/global/HarmonyGlobalAlerts').default} HarmonyGlobalAlerts widget. 6774 * Is used for displaying global alerts 6775 * @returns {typeof HarmonyGlobalAlerts} HarmonyGlobalAlerts class 6776 */ 6777 6778/* harmony default export */ __webpack_exports__["default"] = (function (GlobalAlerts) { 6779 class HarmonyGlobalAlerts extends GlobalAlerts { 6780 prefs() { 6781 return { 6782 errorClass: 'm-error', 6783 ...super.prefs() 6784 }; 6785 } 6786 6787 init() { 6788 super.init(); 6789 } 6790 /** 6791 * @description Show Global Alert by starting pausable timeout 6792 * @param {{accessibilityAlert: string}} data - Message to be shown and pronounced 6793 */ 6794 6795 6796 showAlert(data) { 6797 if (data && data.accessibilityAlert) { 6798 if (this.shown) { 6799 this.hideAlert(); 6800 } // handle error alerts 6801 6802 6803 if (data && data.errorClass) { 6804 this.ref('item').addClass(this.prefs().errorClass); 6805 this.eventBus().emit('gtm.error.occurred', data); 6806 } else { 6807 this.ref('item').removeClass(this.prefs().errorClass); 6808 } 6809 6810 this.ref('item').setText(data.accessibilityAlert).show(); 6811 this.shown = true; 6812 this.pausableTimeout = new widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["PausableTimeout"](() => { 6813 this.hideAlert(); 6814 }, this.prefs().timeout); 6815 } 6816 } 6817 6818 } 6819 6820 return HarmonyGlobalAlerts; 6821}); 6822 6823/***/ }), 6824
6825/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyHamburgerMenuItem.js": 6826/*!*******************************************************************************************************!*\ 6827 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyHamburgerMenuItem.js ***! 6828 \*******************************************************************************************************/ 6829/*! exports provided: default */ 6830/***/ (function(module, __webpack_exports__, __webpack_require__) { 6831 6832"use strict"; 6833__webpack_require__.r(__webpack_exports__); 6834/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 6835 6836/** 6837 * @typedef {typeof import('widgets/global/HamburgerMenuItem').default} HamburgerMenuItem 6838 */ 6839 6840/** 6841 * @description Extended HamburgerMenuItem implementation 6842 * @param {ReturnType<typeof import('widgets/global/HamburgerMenuItem').default>} HamburgerMenuItem Base widget for extending 6843 * @returns {typeof HarmonyHamburgerMenuItem} Harmony HamburgerMenuItem widget 6844 */ 6845 6846/* harmony default export */ __webpack_exports__["default"] = (function (HamburgerMenuItem) { 6847 /** 6848 * @class HarmonyHamburgerMenuItem 6849 * @augments HamburgerMenuItem 6850 * @classdesc Extension of Base HamburgerMenuItem widget. 6851 * Harmony Hamburger menu does not use Panels, but utilize general navigation items with additional elements and classes 6852 * For more details see description of global/HamburgerMenuItem widget. 6853 */ 6854 class HarmonyHamburgerMenuItem extends HamburgerMenuItem { 6855 /** 6856 * @description Preferences 6857 * @returns {object} Preferences object 6858 */ 6859 prefs() { 6860 return { 6861 classesActive: 'm-active', 6862 backButton: 'backButton', 6863 ...super.prefs() 6864 }; 6865 } 6866 /** 6867 * @description Initialize widget logic 6868 */ 6869 6870 6871 init() { 6872 this.eventBus().on('nav.panel.close', 'resetMenu'); 6873 super.init(); 6874 } 6875 /** 6876 * @description Open hamburger menu 6877 */ 6878 6879 6880 openMenu() { 6881 if (this.hasSubmenu()) { 6882 this.ref(this.prefs().submenu).get().setAttribute('aria-hidden', false); 6883 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["transitionEnd"])(this.ref('self').get(), this.prefs().classesActive, () => { 6884 this.ref(this.prefs().backButton).get().focus(); 6885 }); 6886 } 6887 } 6888 /** 6889 * back/level up 6890 */ 6891 6892 6893 back() { 6894 this.ref('self').removeClass(this.prefs().classesActive); 6895 this.ref(this.prefs().itemLink).get().focus(); 6896 this.ref(this.prefs().submenu).get().setAttribute('aria-hidden', true); 6897 } 6898 /** 6899 * reset menu and all menu items to default (unopened) state 6900 */ 6901 6902 6903 resetMenu() { 6904 this.ref('self').removeClass(this.prefs().classesActive); 6905 } 6906 6907 } 6908 6909 return HarmonyHamburgerMenuItem; 6910}); 6911 6912/***/ }), 6913
6914/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyHeader.js": 6915/*!********************************************************************************************!*\ 6916 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyHeader.js ***! 6917 \********************************************************************************************/ 6918/*! exports provided: default */ 6919/***/ (function(module, __webpack_exports__, __webpack_require__) { 6920 6921"use strict"; 6922__webpack_require__.r(__webpack_exports__); 6923/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 6924 /** 6925 * @class HarmonyHeader 6926 * @augments Widget 6927 * @classdesc Used for setting/removing active state for header. 6928 */ 6929 class HarmonyHeader extends Widget { 6930 prefs() { 6931 return { 6932 classActive: 'm-active', 6933 ...super.prefs() 6934 }; 6935 } 6936 6937 init() { 6938 super.init(); 6939 this.activeElements = 0; // Cache header element to manipulate with classes 6940 6941 this.header = this.ref('self').get(); 6942 this.events(); 6943 } 6944 6945 events() { 6946 this.eventBus().on('header.set.active.state', 'activate'); 6947 this.eventBus().on('header.remove.active.state', 'deactivate'); 6948 this.eventBus().on('product.added.to.wishlist', 'fillWishlistIcon'); 6949 this.eventBus().on('wishlist.empty', 'cleanWishlistIcon'); 6950 } 6951 6952 activate() { 6953 this.activeElements++; 6954 this.header.classList.add(this.prefs().classActive); 6955 } 6956 6957 deactivate() { 6958 this.activeElements--; 6959 6960 if (this.activeElements < 1) { 6961 this.header.classList.remove(this.prefs().classActive); 6962 } 6963 } 6964 6965 fillWishlistIcon() { 6966 this.has('wishlistIcon', 6967 /** @param {RefElement} item */ 6968 item => { 6969 const activeClass = item.data('activeClass'); 6970 item.addClass(activeClass); 6971 }); 6972 } 6973 6974 cleanWishlistIcon() { 6975 this.has('wishlistIcon', 6976 /** @param {RefElement} item */ 6977 item => { 6978 const activeClass = item.data('activeClass'); 6979 item.removeClass(activeClass); 6980 }); 6981 } 6982 6983 } 6984 6985 return HarmonyHeader; 6986}); 6987 6988/***/ }), 6989
6990/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyMenuPanel.js": 6991/*!***********************************************************************************************!*\ 6992 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyMenuPanel.js ***! 6993 \***********************************************************************************************/ 6994/*! exports provided: default */ 6995/***/ (function(module, __webpack_exports__, __webpack_require__) { 6996 6997"use strict"; 6998__webpack_require__.r(__webpack_exports__); 6999/** 7000 * @typedef {typeof import('widgets/global/MenuPanel').default} MenuPanel 7001 */ 7002 7003/** 7004 * @description Base MenuPanel extension 7005 * @param {ReturnType<typeof import('widgets/global/MenuPanel').default>} MenuPanel Base widget for extending 7006 * @returns {typeof HarmonyMenuPanel} HarmonyMenuPanel class 7007 */ 7008/* harmony default export */ __webpack_exports__["default"] = (function (MenuPanel) { 7009 /** 7010 * @class HarmonyMenuPanel 7011 * @augments MenuPanel 7012 * @classdesc HarmonyMenuPanel widget, that contains menu for touch/mobile devices. 7013 * Extends Base MenuPanel. For more details see global/MenuPanel widget. 7014 */ 7015 class HarmonyMenuPanel extends MenuPanel { 7016 /** 7017 * @description Initialize widget logic 7018 */ 7019 init() { 7020 super.init(); // cache header element to manipulate with classes 7021 7022 this.header = document.getElementsByClassName('b-header')[0]; // cache html element 7023 7024 this.html = this.ref('html'); 7025 this.eventBus().on('product.added.to.wishlist', 'fillWishlistIcon'); 7026 this.eventBus().on('wishlist.empty', 'cleanWishlistIcon'); 7027 } 7028 /** 7029 * @description Preferences 7030 * @returns {object} Preferences object 7031 */ 7032 7033 7034 prefs() { 7035 return { 7036 classesHeaderHamburgerOpen: 'm-hamburger_opened', 7037 classesMenuItemActive: 'm-active', 7038 ...super.prefs() 7039 }; 7040 } 7041 /** 7042 * @description Open Menu Panel 7043 */ 7044 7045 7046 openPanel() { 7047 // set additional classes 7048 this.header.classList.add(this.prefs().classesHeaderHamburgerOpen); 7049 this.html.addClass(this.prefs().classesHasDialog); 7050 this.setFocusToFirstItem(); 7051 this.backFocusElement = 7052 /** @type {HTMLElement} */ 7053 document.activeElement; // set state 7054 7055 this.isOpened = true; 7056 this.eventBus().emit('header.set.active.state'); 7057 } 7058 /** 7059 * @description Close Menu Panel 7060 */ 7061 7062 7063 closePanel() { 7064 if (this.isOpened) { 7065 // remove classes 7066 this.header.classList.remove(this.prefs().classesHeaderHamburgerOpen); 7067 this.html.removeClass(this.prefs().classesHasDialog); // emit events for other widgets 7068 7069 this.eventBus().emit('nav.panel.close'); 7070 this.eventBus().emit('nav.panel.toggle.focus'); 7071 7072 if (this.backFocusElement) { 7073 this.backFocusElement.focus(); 7074 this.backFocusElement = null; 7075 } // set state 7076 7077 7078 this.isOpened = false; 7079 this.eventBus().emit('header.remove.active.state'); 7080 } 7081 } 7082 7083 fillWishlistIcon() { 7084 this.has('wishlistIcon', 7085 /** @param {RefElement} item */ 7086 item => { 7087 const activeClass = item.data('activeClass'); 7088 item.addClass(activeClass); 7089 }); 7090 } 7091 7092 cleanWishlistIcon() { 7093 this.has('wishlistIcon', 7094 /** @param {RefElement} item */ 7095 item => { 7096 const activeClass = item.data('activeClass'); 7097 item.removeClass(activeClass); 7098 }); 7099 } 7100 7101 } 7102 7103 return HarmonyMenuPanel; 7104}); 7105 7106/***/ }), 7107
7108/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyModal.js": 7109/*!*******************************************************************************************!*\ 7110 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyModal.js ***! 7111 \*******************************************************************************************/ 7112/*! exports provided: default */ 7113/***/ (function(module, __webpack_exports__, __webpack_require__) { 7114 7115"use strict"; 7116__webpack_require__.r(__webpack_exports__); 7117/** 7118 * @typedef {ReturnType<typeof import('widgets/global/Modal').default>} Modal 7119 */ 7120 7121/** 7122 * @description Harmony modal implementation 7123 * @param {typeof import('widgets/global/Modal').default} MOdal Base widget for extending 7124 * @returns {typeof HarmonyModal} HarmonyModal class 7125 */ 7126/* harmony default export */ __webpack_exports__["default"] = (function (Modal) { 7127 /** 7128 * @class HarmonyModal 7129 * @augments Modal 7130 */ 7131 class HarmonyModal extends Modal { 7132 addGlobalDialogClass() { 7133 this.disableScroll(); 7134 } 7135 7136 closeModal() { 7137 super.closeModal(); 7138 this.enableScroll(); 7139 } 7140 7141 disableScroll() { 7142 this.body = document.body; 7143 this.scrollTop = window.scrollY; 7144 7145 if (!this.body.classList.contains(this.prefs().classesGlobalDialog)) { 7146 this.body.classList.add(this.prefs().classesGlobalDialog); 7147 } 7148 7149 this.body.dataset.scrollTop = this.scrollTop; 7150 this.body.style.top = `-${this.scrollTop}px`; 7151 document.documentElement.scrollTop = 0; 7152 } 7153 7154 enableScroll() { 7155 if (this.body) { 7156 this.body.classList.remove(this.prefs().classesGlobalDialog); 7157 this.body.style.removeProperty('top'); 7158 this.body.removeAttribute('data-scroll-top'); 7159 window.scrollTo({ 7160 top: this.scrollTop, 7161 behavior: 'instant' 7162 }); 7163 this.scrollTop = 0; 7164 } 7165 } 7166 7167 } 7168 7169 return HarmonyModal; 7170}); 7171 7172/***/ }), 7173
7174/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyStickyHeader.js": 7175/*!**************************************************************************************************!*\ 7176 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyStickyHeader.js ***! 7177 \**************************************************************************************************/ 7178/*! exports provided: default */ 7179/***/ (function(module, __webpack_exports__, __webpack_require__) { 7180 7181"use strict"; 7182__webpack_require__.r(__webpack_exports__); 7183/** 7184 * @description Harmony sticky header implementation 7185 * @param {typeof import('widgets/global/StickyHeader').default} StickyHeader Base widget for extending 7186 * @returns {typeof HarmonyStickyHeader} HarmonyStickyHeader class 7187 */ 7188/* harmony default export */ __webpack_exports__["default"] = (function (StickyHeader) { 7189 /** 7190 * @class HarmonyStickyHeader 7191 * @augments StickyHeader 7192 * @classdesc sticky header helper 7193 */ 7194 class HarmonyStickyHeader extends StickyHeader { 7195 /** 7196 * @description Preferences 7197 * @returns {object} Preferences object 7198 */ 7199 prefs() { 7200 return { ...super.prefs(), 7201 classesHeaderStuck: 'm-stuck', 7202 classesShow: 'm-header_stuck' 7203 }; 7204 } 7205 /** 7206 * @description Initialize widget logic 7207 */ 7208 7209 7210 init() { 7211 // store header element 7212 this.header = document.querySelector('.b-header'); 7213 this.headerBackground = document.querySelector('.b-header-background'); 7214 this.isHeaderSticky = false; 7215 super.init(); // update header height on header promo banner close 7216 7217 this.eventBus().on('cookiedismissblock.updated', 'setHeaderHeight'); 7218 this.eventBus().on('gtm.age.gate.close', 'setHeaderHeight'); // set initial height of sticky heder 7219 7220 this.setHeaderHeight(); // listen for transition end events 7221 7222 this.header.addEventListener('transitionend', () => { 7223 this.setHeaderHeight(); 7224 }); 7225 } 7226 /** 7227 * @description Current header's height getter 7228 * @returns {integer} current headers height 7229 */ 7230 7231 7232 get currentHeaderHeight() { 7233 return this.headerBackground.offsetHeight; 7234 } 7235 /** 7236 * @description Update --header-height || --header-sticky-height CSS variables value 7237 */ 7238 7239 7240 setHeaderHeight() { 7241 let customCSSPropertyName; 7242 7243 if (this.isHeaderSticky) { 7244 customCSSPropertyName = '--header-sticky-height'; 7245 } else { 7246 customCSSPropertyName = '--header-height'; 7247 } 7248 7249 document.documentElement.style.setProperty(customCSSPropertyName, (this.currentHeaderHeight || 0) + 'px'); 7250 } 7251 /** 7252 * @description Toggle sticky state 7253 * @param {IntersectionObserverEntry} entry Intersection Observer Entry 7254 */ 7255 7256 7257 toggleStickyState(entry) { 7258 // call base widget function 7259 super.toggleStickyState(entry); // set additional class for header element 7260 7261 this.isHeaderSticky = entry.intersectionRatio < 1; 7262 this.header.classList.toggle(this.prefs().classesHeaderStuck, this.isHeaderSticky); 7263 this.setHeaderHeight(); 7264 } 7265 7266 } 7267 7268 return HarmonyStickyHeader; 7269}); 7270 7271/***/ }), 7272
7273/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HeaderSideBar.js": 7274/*!********************************************************************************************!*\ 7275 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HeaderSideBar.js ***! 7276 \********************************************************************************************/ 7277/*! exports provided: default */ 7278/***/ (function(module, __webpack_exports__, __webpack_require__) { 7279 7280"use strict"; 7281__webpack_require__.r(__webpack_exports__); 7282/** 7283 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 7284 */ 7285/* harmony default export */ __webpack_exports__["default"] = (function (SideBar) { 7286 class HarmonyHeaderSideBar extends SideBar { 7287 init() { 7288 super.init(); 7289 this.eventBus().on('product.added.to.wishlist', 'fillWishlistIcon'); 7290 this.eventBus().on('wishlist.empty', 'cleanWishlistIcon'); 7291 } 7292 7293 prefs() { 7294 return super.prefs(); 7295 } 7296 7297 fillWishlistIcon() { 7298 this.has('wishlistIcon', 7299 /** @param {RefElement} item */ 7300 item => { 7301 const activeClass = item.data('activeClass'); 7302 item.addClass(activeClass); 7303 }); 7304 } 7305 7306 cleanWishlistIcon() { 7307 this.has('wishlistIcon', 7308 /** @param {RefElement} item */ 7309 item => { 7310 const activeClass = item.data('activeClass'); 7311 item.removeClass(activeClass); 7312 }); 7313 } 7314 /** 7315 * @param {typeof import('widgets/global/EmitBusEvent').default} target 7316 */ 7317 7318 7319 open(target) { 7320 const refName = target.config.refName; 7321 7322 if (!this.has(refName)) { 7323 return; 7324 } 7325 7326 super.open(target); 7327 this.eventBus().emit('header.set.active.state'); 7328 } 7329 7330 close(context) { 7331 if (typeof context === 'string' && !this.has(context) || !this.isOpened) { 7332 return; 7333 } 7334 7335 super.close(context); 7336 this.eventBus().emit('header.remove.active.state'); 7337 } 7338 7339 } 7340 7341 return HarmonyHeaderSideBar; 7342}); 7343 7344/***/ }), 7345
7346/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/Loader.js": 7347/*!*************************************************************************************!*\ 7348 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/Loader.js ***! 7349 \*************************************************************************************/ 7350/*! exports provided: default */ 7351/***/ (function(module, __webpack_exports__, __webpack_require__) { 7352 7353"use strict"; 7354__webpack_require__.r(__webpack_exports__); 7355/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 7356/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 7357/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 7358/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 7359 7360 7361const PROMISE_STATUSES = { 7362 PENDING: 'pending', 7363 FULLFILLED: 'fullfilled', 7364 REJECTED: 'rejected' 7365}; 7366/** 7367 * @description Harmony Loader implementation 7368 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 7369 * @returns {typeof Loader} Loader class 7370 */ 7371 7372/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 7373 /** 7374 * @class Loader 7375 * @augments Widget 7376 * @classdesc Loader helper 7377 */ 7378 class Loader extends Widget { 7379 /** 7380 * @description Preferences 7381 * @returns {object} Preferences object 7382 */ 7383 prefs() { 7384 return { ...super.prefs(), 7385 classesHidden: 'h-hidden', 7386 classesLoaderOpen: 'm-panel_opened', 7387 loaderDelayTimeout: 1000, 7388 // Delay before loader appears (in ms) 7389 loaderMinShowTimeout: 1600, 7390 // Minimum visibility duration when loader is shown (in ms) 7391 loaderMaxShowTimeout: 15000 // Time to wait for response before showing an error (in ms) 7392 7393 }; 7394 } 7395 /** 7396 * @description Initialize widget logic 7397 */ 7398 7399 7400 init() { 7401 // init events 7402 this.eventBus().on('loader.start', 'start'); 7403 } 7404 /** 7405 * @description Start loader based on promise state 7406 * @param {Promise<any>} promise 7407 */ 7408 7409 7410 start(promise) { 7411 const startTime = performance.now(); 7412 const { 7413 loaderDelayTimeout, 7414 loaderMinShowTimeout, 7415 loaderMaxShowTimeout 7416 } = this.prefs(); 7417 const loaderDelayTimerID = this.setLoaderDelayTimeout(promise, loaderDelayTimeout); 7418 this.setLoaderMinShowTimeout(promise, loaderMinShowTimeout); 7419 const loaderMaxShowTimerID = this.setLoaderMaxShowTimeout(promise, loaderMaxShowTimeout); 7420 promise.finally(() => { 7421 clearTimeout(loaderDelayTimerID); 7422 clearTimeout(loaderMaxShowTimerID); 7423 7424 if (performance.now() - startTime >= loaderMinShowTimeout) { 7425 this.close(); 7426 } 7427 }); 7428 } 7429 /** 7430 * @description Display loader 7431 */ 7432 7433 7434 open() { 7435 this.ref('self').removeClass(this.prefs().classesHidden); 7436 document.body.classList.add(this.prefs().classesLoaderOpen); 7437 } 7438 /** 7439 * @description Hide loader 7440 */ 7441 7442 7443 close() { 7444 this.ref('self').addClass(this.prefs().classesHidden); 7445 document.body.classList.remove(this.prefs().classesLoaderOpen); 7446 } 7447 /** 7448 * @description Set loader delay timeout 7449 * @param {Promise<any>} promise 7450 */ 7451 7452 7453 setLoaderDelayTimeout(promise, loaderDelayTimeout) { 7454 return setTimeout(() => { 7455 this.promiseStatus(promise).then(status => { 7456 if (status === PROMISE_STATUSES.PENDING) { 7457 this.open(); 7458 } 7459 }); 7460 }, loaderDelayTimeout); 7461 } 7462 /**
7463 * @description Set loader min show timeout 7464 * @param {Promise<any>} promise 7465 */ 7466 7467 7468 setLoaderMinShowTimeout(promise, loaderMinShowTimeout) { 7469 return setTimeout(() => { 7470 this.promiseStatus(promise).then(status => { 7471 if (status !== PROMISE_STATUSES.PENDING) { 7472 this.close(); 7473 } 7474 }); 7475 }, loaderMinShowTimeout); 7476 } 7477 /** 7478 * @description Set loader max show timeout 7479 * @param {Promise<any>} promise 7480 */ 7481 7482 7483 setLoaderMaxShowTimeout(promise, loaderMaxShowTimeout) { 7484 return setTimeout(() => { 7485 this.promiseStatus(promise).then(status => { 7486 if (status === PROMISE_STATUSES.PENDING) { 7487 this.close(); //once bundle perfomance issue is fixed, commented code should be uncommented. 7488 // const accessibilityAlert = this.prefs().accessibilityAlerts.timeoutError; 7489 // this.eventBus().emit('alert.show', { 7490 // accessibilityAlert, 7491 // errorClass: true 7492 // }); 7493 } 7494 }); 7495 }, loaderMaxShowTimeout); 7496 } 7497 /** 7498 * @description Get promise status 7499 * @param {Promise<any>} promise 7500 */ 7501 7502 7503 promiseStatus(promise) { 7504 const obj = {}; 7505 return Promise.race([promise, obj]).then(v => v === obj ? PROMISE_STATUSES.PENDING : PROMISE_STATUSES.FULLFILLED, () => PROMISE_STATUSES.REJECTED); 7506 } 7507 7508 } 7509 7510 return Loader; 7511}); 7512 7513/***/ }), 7514
7515/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/Overlay.js": 7516/*!**************************************************************************************!*\ 7517 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/Overlay.js ***! 7518 \**************************************************************************************/ 7519/*! exports provided: default */ 7520/***/ (function(module, __webpack_exports__, __webpack_require__) { 7521 7522"use strict"; 7523__webpack_require__.r(__webpack_exports__); 7524/** 7525 * @description Harmony Overlay implementation 7526 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 7527 * @returns {typeof Overlay} Overlay class 7528 */ 7529/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 7530 /** 7531 * @class Overlay 7532 * @augments Widget 7533 * @classdesc Overlay helper 7534 */ 7535 class Overlay extends Widget { 7536 /** 7537 * @description Preferences 7538 * @returns {object} Preferences object 7539 */ 7540 prefs() { 7541 return { ...super.prefs(), 7542 classesHidden: 'h-hidden', 7543 classesOverlayOpen: 'm-panel_opened', 7544 closeOnClick: true 7545 }; 7546 } 7547 /** 7548 * @description Initialize widget logic 7549 */ 7550 7551 7552 init() { 7553 // init events 7554 this.eventBus().on('show.overlay', 'open'); 7555 this.eventBus().on('hide.overlay', 'close'); 7556 this.closeOnClick = this.prefs().closeOnClick; 7557 } 7558 /** 7559 * @description Display overlay 7560 * @param {object} options with additional data 7561 * @property {boolean} closeOnClick close overlay on click 7562 */ 7563 7564 7565 open(options) { 7566 if (options && typeof options.closeOnClick === 'boolean') { 7567 this.closeOnClick = options.closeOnClick; 7568 } 7569 7570 this.ref('self').removeClass(this.prefs().classesHidden); 7571 document.body.classList.add(this.prefs().classesOverlayOpen); 7572 } 7573 /** 7574 * @description Hide overlay 7575 */ 7576 7577 7578 close() { 7579 this.ref('self').addClass(this.prefs().classesHidden); 7580 document.body.classList.remove(this.prefs().classesOverlayOpen); 7581 } 7582 /** 7583 * @description handle click on overlay 7584 */ 7585 7586 7587 handleClick() { 7588 // do noting if configured to ignore clicks 7589 if (!this.closeOnClick) { 7590 return; 7591 } // close open side bars 7592 7593 7594 this.eventBus().emit('sidebar.close'); // hide overlay 7595 7596 this.close(); 7597 } 7598 7599 } 7600 7601 return Overlay; 7602}); 7603 7604/***/ }), 7605
7606/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ShipToSideBar.js": 7607/*!********************************************************************************************!*\ 7608 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ShipToSideBar.js ***! 7609 \********************************************************************************************/ 7610/*! exports provided: default */ 7611/***/ (function(module, __webpack_exports__, __webpack_require__) { 7612 7613"use strict"; 7614__webpack_require__.r(__webpack_exports__); 7615/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 7616/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 7617/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 7618/* harmony import */ var harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! harmony/toolbox/shipToUtils */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js"); 7619 7620 7621 7622const ESCAPE_CODE = 27; 7623/** 7624 * @typedef {ReturnType<typeof import('harmony/global/SideBar').default>} SideBar 7625 * 7626 */ 7627 7628/** 7629 * @description ShiptTo SideBar extention 7630 * @param {SideBar} SideBar Base widget for extending 7631 * @returns {typeof ShipToSideBar} - ShipToSideBar instance 7632 */ 7633 7634/* harmony default export */ __webpack_exports__["default"] = (function (SideBar) { 7635 class ShipToSideBar extends SideBar { 7636 prefs() { 7637 return { ...super.prefs(), 7638 classesModalOpen: 'm-dialog_active' 7639 }; 7640 } 7641 /** 7642 * Side Bar open handler 7643 * 7644 * @param {*} target - widget instance 7645 */ 7646 7647 7648 open(target) { 7649 // trigger minicart closing 7650 this.eventBus().emit('auto.close.minicart', 0); // get currently selected state 7651 7652 const selectedState = Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__["getStateID"])(target.stateID); // get side bar panel referer 7653 7654 const refName = target.config.refName; 7655 const isHeaderAlignmentLeft = target.config.isHeaderAlignmentLeft; 7656 const isStickyHeader = document.getElementsByClassName('b-header')[0].classList.contains('m-stuck'); 7657 7658 if (this.has(refName) && !this.isOpened) { 7659 // Scroll top only for Desktop widget 7660 const isScrollTop = refName === 'shipToSideBar-header' || isHeaderAlignmentLeft && isStickyHeader && refName === 'shipToSideBar-stickyHeader'; 7661 7662 if (isScrollTop) { 7663 // Save scroll top position in order to set it back after SideBar close 7664 this.scrollTop = window.scrollY; 7665 window.scrollTo(0, 0); 7666 } // Save focused element in order to focus it after SideBar close 7667 7668 7669 this.backFocusElement = 7670 /** @type {HTMLElement} */ 7671 document.activeElement; // emit event to set radio input value 7672 7673 this.eventBus().emit('shipttostate.setstate', selectedState); // open side bar 7674 7675 this.ref('self').addClass(this.prefs().classesOpen); 7676 document.body.classList.add(this.prefs().classesBodyOpen); 7677 this.isOpened = true; 7678 this.accessabilityOpen(); // close panel on esc click 7679 7680 this.escHandler = this.ev('keyup', (_, event) => { 7681 if (event.keyCode === ESCAPE_CODE) { 7682 this.close(); 7683 } 7684 }, window).pop(); // close pane on outside click 7685 7686 this.outSideClickListener = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["clickOutside"])(this.ref('container'), this.close.bind(this)); 7687 7688 if (this.outSideClickListener) { 7689 this.onDestroy(this.outSideClickListener); 7690 } 7691 7692 this.eventBus().emit('header.set.active.state'); 7693 } 7694 7695 this.ref('self').attr('role', 'alert'); 7696 } 7697 7698 accessabilityOpen() { 7699 if (!this.has(this.prefs().firstTrapRef) || !this.has(this.prefs().lastTrapRef)) { 7700 this.addFocusTraps(); 7701 } // Focus on first element 7702 7703 7704 this.afterShowModal(); 7705 } 7706 7707 close(...args) { 7708 if (this.isOpened) { 7709 this.eventBus().emit('header.remove.active.state'); 7710 } 7711 7712 super.close(...args); // Restore previous scroll position 7713 7714 if (this.scrollTop) { 7715 window.scrollTo(0, this.scrollTop); 7716 this.scrollTop = null; 7717 } 7718 7719 this.ref('self').attr('role'); 7720 } 7721 /** 7722 * modal dialog 7723 */ 7724 7725 7726 displayModal() { 7727 // hide side bar 7728 this.ref('self').removeClass(this.prefs().classesOpen); // add class for modal display 7729 7730 this.ref('self').addClass(this.prefs().classesModalOpen); 7731 } 7732 7733 closeModal() { 7734 this.ref('self').removeClass(this.prefs().classesModalOpen); 7735 } 7736 7737 } 7738 7739 return ShipToSideBar; 7740}); 7741 7742/***/ }), 7743
7744/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/SideBar.js": 7745/*!**************************************************************************************!*\ 7746 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/SideBar.js ***! 7747 \**************************************************************************************/ 7748/*! exports provided: default */ 7749/***/ (function(module, __webpack_exports__, __webpack_require__) { 7750 7751"use strict"; 7752__webpack_require__.r(__webpack_exports__); 7753/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 7754/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 7755/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 7756 7757 7758 7759const ESCAPE_CODE = 27; 7760/** 7761 * @description SideBar implementation 7762 * @param {ReturnType<typeof import('widgets/global/AccessibilityFocusTrapMixin').default>} AccessibilityFocusTrapMixin mixin 7763 * @returns {typeof SideBar} - SideBar instance 7764 */ 7765 7766/* harmony default export */ __webpack_exports__["default"] = (function (AccessibilityFocusTrapMixin) { 7767 /** 7768 * @class SideBar 7769 * @classdesc Use it to show side bar. 7770 * @property {string} data-ref - identifier to the specific bar, used by emitter to show proper sidebar 7771 * @example 7772 * // use this code to display widget 7773 * <div 7774 * data-widget="emitBusEvent" 7775 * data-event-click.prevent="emitBusEvent" 7776 * data-ref-name="myAccountSideBar" 7777 * data-bus-event-type="sidebar.open" 7778 * > 7779 * ...Toggler 7780 * </div> 7781 * 7782 * <div 7783 * data-widget="sideBar" 7784 * data-ref="myAccountSideBar" 7785 * > 7786 * <button data-event-click.prevent="close">Close</button> 7787 * Side bar content 7788 * </div> 7789 */ 7790 class SideBar extends AccessibilityFocusTrapMixin { 7791 constructor(...arg) { 7792 super(...arg); 7793 this.isOpened = false; 7794 } 7795 7796 prefs() { 7797 return { 7798 hidden: true, 7799 classesOpen: 'm-opened', 7800 classesBodyOpen: 'm-panel_opened', 7801 ...super.prefs(), 7802 refTrapsContainer: 'container' 7803 }; 7804 } 7805 7806 init() { 7807 this.isOpened = this.ref('self').hasClass(this.prefs().classesOpen); 7808 this.eventBus().on('sidebar.open', 'open'); 7809 this.eventBus().on('sidebar.close', 'close'); 7810 } 7811 /** 7812 * @param {typeof import('widgets/global/EmitBusEvent').default} target 7813 */ 7814 7815 7816 open(target) { 7817 const refName = target.config.refName; 7818 7819 if (this.has(refName) && !this.isOpened) { 7820 this.show(); 7821 this.ref('self').addClass(this.prefs().classesOpen); 7822 document.body.classList.add(this.prefs().classesBodyOpen); 7823 this.isOpened = true; 7824 this.clearFocusTimer = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => this.focusFirstElement(), this.prefs().focusTimeout); // close panel on esc click 7825 7826 this.escHandler = this.ev('keyup', (_, event) => { 7827 if (event.keyCode === ESCAPE_CODE) { 7828 this.close(); 7829 } 7830 }, window).pop(); // close pane on outside click 7831 7832 this.outSideClickListener = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["clickOutside"])(this.ref('container'), this.close.bind(this)); 7833 7834 if (this.outSideClickListener) { 7835 this.onDestroy(this.outSideClickListener); 7836 } 7837 } 7838 } 7839 /** 7840 * @description Clean Up Listeners 7841 * @returns {void} 7842 */ 7843 7844 7845 cleanUpListeners() { 7846 if (this.escHandler) { 7847 this.escHandler(); 7848 this.escHandler = null; 7849 } 7850 } 7851 7852 close(context) { 7853 if (typeof context === 'string' && !this.has(context) || !this.isOpened) { 7854 return; 7855 } 7856 7857 if (this.clearFocusTimer) { 7858 this.clearFocusTimer(); 7859 } 7860 7861 this.ref('self').removeClass(this.prefs().classesOpen); 7862 document.body.classList.remove(this.prefs().classesBodyOpen); 7863 this.isOpened = false; // remove outside click listener 7864 7865 if (this.outSideClickListener) { 7866 this.outSideClickListener(); 7867 this.outSideClickListener = undefined; 7868 } // Move focus back 7869 7870 7871 if (this.backFocusElement) { 7872 this.backFocusElement.focus(); 7873 this.backFocusElement = null; 7874 } 7875 7876 this.cleanUpListeners(); 7877 } 7878 7879 } 7880 7881 return SideBar; 7882}); 7883 7884/***/ }), 7885
7886/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/VideoPlayer.js": 7887/*!******************************************************************************************!*\ 7888 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/VideoPlayer.js ***! 7889 \******************************************************************************************/ 7890/*! exports provided: default */ 7891/***/ (function(module, __webpack_exports__, __webpack_require__) { 7892 7893"use strict"; 7894__webpack_require__.r(__webpack_exports__); 7895/* harmony import */ var youtube_iframe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! youtube-iframe */ "./node_modules/youtube-iframe/index.js"); 7896/* harmony import */ var youtube_iframe__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(youtube_iframe__WEBPACK_IMPORTED_MODULE_0__); 7897 7898/** 7899 * @description VideoPlayer implementation 7900 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 7901 * @returns {typeof VideoPlayer} 7902 */ 7903 7904/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 7905 /** 7906 * @class VideoPlayer 7907 */ 7908 class VideoPlayer extends Widget { 7909 prefs() { 7910 return { 7911 videoId: '', 7912 controls: true, 7913 autoplay: false, 7914 loop: false, 7915 videoPlayerContainer: 'videoPlayerContainer', 7916 ...super.prefs() 7917 }; 7918 } 7919 7920 init() { 7921 super.init(); 7922 const { 7923 videoId, 7924 controls, 7925 autoplay, 7926 loop 7927 } = this.prefs(); 7928 youtube_iframe__WEBPACK_IMPORTED_MODULE_0___default.a.load(YT => { 7929 this.player = new YT.Player(this.ref('videoPlayerContainer').els[0], { 7930 videoId: videoId, 7931 playerVars: { 7932 enablejsapi: 1, 7933 fs: 1, 7934 mute: 1, 7935 disablekb: 1, 7936 controls: controls ? 1 : 0, 7937 autoplay: autoplay ? 1 : 0, 7938 playlist: autoplay ? videoId : '', 7939 loop: loop ? 1 : 0, 7940 rel: 0 7941 } 7942 }); 7943 }); 7944 } 7945 7946 } 7947 7948 return VideoPlayer; 7949}); 7950 7951/***/ }), 7952
7953/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ViewMore.js": 7954/*!***************************************************************************************!*\ 7955 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ViewMore.js ***! 7956 \***************************************************************************************/ 7957/*! exports provided: default */ 7958/***/ (function(module, __webpack_exports__, __webpack_require__) { 7959 7960"use strict"; 7961__webpack_require__.r(__webpack_exports__); 7962/** 7963 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 7964 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 7965 */ 7966/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 7967 return class ViewMore extends Widget { 7968 prefs() { 7969 return { 7970 classCollapsed: 'm-collapsed', 7971 classHiddenButton: 'h-hide_visually', 7972 ...super.prefs() 7973 }; 7974 } 7975 7976 showMore() { 7977 const { 7978 classCollapsed, 7979 classHiddenButton, 7980 visibleItems 7981 } = this.prefs(); 7982 const self = this.ref('self').get(); 7983 self.classList.remove(classCollapsed); 7984 this.emit('resetheight', self.closest('[data-ref="accordionItemPanelInner"]').offsetHeight); 7985 this.has('viewMoreButton', btn => { 7986 btn.attr('aria-expanded', 'true'); 7987 btn.addClass(classHiddenButton); 7988 }); // timeout needed for ScreenReader to announce Expanded state 7989 7990 setTimeout(() => { 7991 const nextVisibleItem = +visibleItems + 1; 7992 this.items[nextVisibleItem].ref('self').get().focus(); 7993 }, 500); 7994 } 7995 /** 7996 * @description Restores 'ViewMore' button, when user clicks on 'View more' and then close, open panel 7997 * Emits event, that restores height for panel, that contains THIS 'view more' button 7998 * @param {object} [viewMore] One of the 'ViewMore' buttons for restoring 7999 * @param {object} [accordionItemPanel] One of the panels in which 'View more' button placed. 8000 * We need this panel for her height restoring 8001 * @returns {void} 8002 */ 8003 8004 8005 reinitViewMore() { 8006 if (this.prefs().classCollapsed && this.refs.self.els[0].dataset.horizontalfilter) { 8007 this.ref('self').get().classList.remove(this.prefs().classCollapsed); 8008 } else { 8009 this.ref('self').get().classList.add(this.prefs().classCollapsed); 8010 } 8011 8012 this.ref('viewMoreButton').show(); 8013 } 8014 8015 }; 8016}); 8017 8018/***/ }), 8019
8020/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/globalFindNearMe.js": 8021/*!****************************************************************************************!*\ 8022 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/globalFindNearMe.js ***! 8023 \****************************************************************************************/ 8024/*! no static exports found */ 8025/***/ (function(module, exports, __webpack_require__) { 8026 8027window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); // API URLs and Constants 8028 8029const API_BASE_URL = "https://winefinder.fbwineapps.com/WhereToBuy/GetWinesAndAccountGroups"; 8030/** 8031 * Updates the flavor dropdown with the provided wines. 8032 * @param {Array} wines - List of wines fetched from the API. 8033 */ 8034 8035function updateFlavorDropdown(wines) { 8036 const flavorDropdown = $('#ejgWhereToBuy #flavor'); 8037 flavorDropdown.empty(); 8038 wines.forEach(wine => { 8039 const option = $('<option>', { 8040 value: wine.value, 8041 text: wine.label 8042 }); 8043 flavorDropdown.append(option); 8044 }); // Select the first option and update the displayed text 8045 8046 const firstOption = flavorDropdown.find('option:first'); 8047 firstOption.prop('selected', true); 8048 $('#ejgWhereToBuy #flavorDropDownWrapper .selectedTxt').text(firstOption.text()); 8049} 8050/** 8051 * Updates the account group radio buttons and selects the "In Stores" option by default. 8052 * @param {Array} accounts - List of account groups fetched from the API. 8053 */ 8054 8055 8056function updateAccountGroups(accounts) { 8057 if (accounts.length >= 2) { 8058 let inStoresAccount = accounts.find(account => account.label.toLowerCase().includes("store")); 8059 let diningOutAccount = accounts.find(account => account.label.toLowerCase().includes("dining")); 8060 8061 if (inStoresAccount) { 8062 $('#inStores').val(inStoresAccount.value).prop('checked', true); 8063 $('#inStoresLabel').text(inStoresAccount.label); 8064 } 8065 8066 if (diningOutAccount) { 8067 $('#diningOut').val(diningOutAccount.value); 8068 $('#diningOutLabel').text(diningOutAccount.label); 8069 } 8070 } 8071} 8072/** 8073 * Fetches and updates the "Where To Buy" section. 8074 * @param {string} wineFinderId - The Wine Finder ID to fetch data for. 8075 */ 8076 8077 8078function updateWTBSection(wineFinderId) { 8079 const apiUrl = `${API_BASE_URL}?WebSiteId=${wineFinderId}`; 8080 $.ajax({ 8081 url: apiUrl, 8082 type: 'GET', 8083 dataType: 'jsonp', 8084 success: function (data) { 8085 if (data) { 8086 if (data.wines) { 8087 updateFlavorDropdown(data.wines); 8088 } 8089 8090 if (data.accounts) { 8091 updateAccountGroups(data.accounts); 8092 } 8093 } 8094 }, 8095 error: function () { 8096 console.error('Error fetching wine data'); 8097 } 8098 }); 8099} 8100/** 8101 * Handles the brand dropdown initialization and interaction. 8102 */ 8103 8104 8105function handleBrandDropdown() { 8106 const brandDropdown = $('#brand'); 8107 8108 if (brandDropdown.length) { 8109 const flavorDropdown = $('#ejgWhereToBuy #flavor'); 8110 flavorDropdown.empty().append($('<option>', { 8111 value: '', 8112 text: 'Varietal *' 8113 })); 8114 } 8115} 8116/** 8117 * Sets up the brand dropdown change event listener. 8118 */ 8119 8120 8121function setupBrandDropdownListener() { 8122 $(document).on('change', '#brand', function () { 8123 const selectedBrand = $(this).find('option:selected'); 8124 const newWineFinderId = selectedBrand.data('winefinder-id'); 8125 $('#ejgWhereToBuy').attr('data-winefinder-id', newWineFinderId); 8126 updateWTBSection(newWineFinderId); 8127 }); 8128} 8129/** 8130 * Observes the DOM for the addition of the brand dropdown. 8131 */ 8132 8133 8134function observeDOMForBrandDropdown() { 8135 const observer = new MutationObserver(() => { 8136 if ($('#brand').length) { 8137 observer.disconnect(); 8138 handleBrandDropdown(); 8139 } 8140 }); 8141 observer.observe(document.body, { 8142 childList: true, 8143 subtree: true 8144 }); 8145} 8146/** 8147 * Initializes the "Where To Buy" section. 8148 */ 8149 8150 8151function initializeWTBSection() { 8152 setupBrandDropdownListener(); 8153 observeDOMForBrandDropdown(); 8154} 8155 8156$(document).ready(initializeWTBSection); 8157 8158/***/ }), 8159
8160/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/newsLetterModalGTMEvents.js": 8161/*!************************************************************************************************!*\ 8162 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/newsLetterModalGTMEvents.js ***! 8163 \************************************************************************************************/ 8164/*! no static exports found */ 8165/***/ (function(module, exports, __webpack_require__) { 8166 8167window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 8168$(function () { 8169 window.dataLayer = window.dataLayer || []; 8170 8171 function pushModalEvent(data) { 8172 try { 8173 window.dataLayer.push(data); 8174 console.log('[Modal Analytics]', data); 8175 } catch (err) { 8176 console.warn('[Modal Analytics] Failed to push:', err); 8177 } 8178 } // --- Core Analytics Binding --- 8179 8180 8181 function initModalAnalytics() { 8182 var modal = $('#newsletter-modal'); 8183 var thankYouModal = $('#thank-you-modal'); 8184 var form = $('#newsletter-form'); 8185 var noThanksBtn = $('.not-interested-btn'); 8186 var closeBtns = $('.close-modal'); 8187 var continueBtn = $('.continue-shopping-btn'); 8188 8189 if (!modal.length || !form.length) { 8190 return false; // modal not yet in DOM 8191 } 8192 8193 console.log('[Modal Analytics] Binding events'); // Modal Viewed 8194 8195 pushModalEvent({ 8196 event: 'modal_viewed', 8197 interaction_type: 'optin modal viewed', 8198 modal_name: 'newsletter_signup' 8199 }); // First Interaction 8200 8201 form.one('focusin', function () { 8202 pushModalEvent({ 8203 event: 'modal_first_interaction', 8204 interaction_type: 'optin modal first interaction', 8205 modal_name: 'newsletter_signup' 8206 }); 8207 }); // Form Submitted 8208 8209 form.on('submit', function () { 8210 pushModalEvent({ 8211 event: 'modal_form_submitted', 8212 interaction_type: 'optin modal form submitted', 8213 modal_name: 'newsletter_signup' 8214 }); 8215 }); // No Thanks Clicked 8216 8217 noThanksBtn.on('click', function () { 8218 pushModalEvent({ 8219 event: 'modal_dismissed', 8220 interaction_type: 'optin modal dismissed', 8221 modal_name: 'newsletter_signup' 8222 }); 8223 }); // Close Modal 8224 8225 closeBtns.on('click', function () { 8226 pushModalEvent({ 8227 event: 'modal_closed', 8228 interaction_type: 'optin modal closed', 8229 modal_name: 'newsletter_signup' 8230 }); 8231 }); // Thank You Modal Viewed 8232 8233 if (thankYouModal.length) { 8234 var observer = new MutationObserver(function () { 8235 if (thankYouModal.css('display') === 'flex') { 8236 pushModalEvent({ 8237 event: 'thankyou_modal_viewed', 8238 interaction_type: 'thank you modal viewed', 8239 modal_name: 'newsletter_signup' 8240 }); 8241 } 8242 }); 8243 observer.observe(thankYouModal[0], { 8244 attributes: true, 8245 attributeFilter: ['style'] 8246 }); 8247 } // Continue Browsing Clicked 8248 8249 8250 continueBtn.on('click', function () { 8251 pushModalEvent({ 8252 event: 'thankyou_continue_browsing', 8253 interaction_type: 'thank you modal continue browsing clicked', 8254 modal_name: 'newsletter_signup' 8255 }); 8256 }); 8257 return true; 8258 } // --- Watch for Modal Insertion --- 8259 8260 8261 var modalCheckInterval = setInterval(function () { 8262 var found = initModalAnalytics(); 8263 8264 if (found) { 8265 clearInterval(modalCheckInterval); 8266 console.log('[Modal Analytics] Initialized successfully'); 8267 } 8268 }, 1000); // checks every 1s until modal exists 8269}); 8270 8271/***/ }), 8272
8273/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/QuickAddToCart.js": 8274/*!**********************************************************************************************!*\ 8275 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/product/QuickAddToCart.js ***! 8276 \**********************************************************************************************/ 8277/*! exports provided: default */ 8278/***/ (function(module, __webpack_exports__, __webpack_require__) { 8279 8280"use strict"; 8281__webpack_require__.r(__webpack_exports__); 8282/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 8283/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 8284/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 8285/* harmony import */ var harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! harmony/toolbox/shipToUtils */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js"); 8286/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 8287 8288 8289 8290 8291/** 8292 * @description Quick add to cart widget 8293 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 8294 * @returns {typeof QuickAddToCart} - QuickAddToCart instance 8295 */ 8296 8297/** 8298 * @typedef {ReturnType<typeof import('widgets/global/ProcessButton').default>} ProcessButton 8299 * @typedef {ReturnType<typeof import('widgets/forms/HarmonyQuantityStepper').default>} HarmonyQuantityStepper 8300 */ 8301 8302/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 8303 /** 8304 * @class QuickAddToCart 8305 * @classdesc Controls quantity stepper and 'add to cart' button 8306 * @property {boolean} data-is-disabled handling if component is disabled inside of component, as it has behavior based on viewport 8307 * @property {string} data-product-id 8308 * @property {string} data-text-network-error Error message for network issues 8309 * @property {string} data-show-minicart-on-product-add - Show minicart on product add 8310 * @property {string} data-accessibility-alerts Alerts configuration 8311 * @example 8312 * <div data-widget="quickAddToCart" 8313 data-product-id="productID" 8314 data-text-network-error="${Resource.msg('error.alert.network', 'product', null)}" 8315 data-accessibility-alerts='{ 8316 "addedtocart": "${Resource.msg('alert.addedtocart', 'product', null)}" 8317 }' 8318 data-is-disabled="false"> 8319 <div data-widget="harmonyQuantityStepper" 8320 ... 8321 </div> 8322 <button data-ref="addToCart"> 8323 ... 8324 </button> 8325 </div> 8326 */ 8327 class QuickAddToCart extends Widget { 8328 prefs() { 8329 return { 8330 isDisabled: false, 8331 showMinicartOnProductAdd: false, 8332 autoCloseMinicart: false, 8333 autoCloseTimeout: 5000, 8334 classHidden: 'h-hidden', 8335 shipToRestrictedStates: [], 8336 isHandledRestrictedStates: false, 8337 ...super.prefs() 8338 }; 8339 } 8340 8341 init() { 8342 super.init(); // handle shipping restrictions 8343 8344 this.eventBus().on('shipto.restrictions.updated', 'handleStateRestrictions'); 8345 this.eventBus().on('minicart.removed.product', 'handleRemovedProduct'); 8346 this.handleStateRestrictions(); 8347 } 8348 /** 8349 * @param stateID 8350 * @description Handle update of shipping restrictions 8351 */ 8352 8353 8354 handleStateRestrictions(stateID) { 8355 if (!this.prefs().isHandledRestrictedStates) { 8356 return; 8357 } 8358 8359 stateID = Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__["getStateID"])(stateID); 8360 8361 if (!stateID) { 8362 return; 8363 } 8364 8365 var isRestricted = Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_2__["isStateRestricted"])(stateID, this.prefs().shipToRestrictedStates); 8366 var classHidden = this.prefs().classHidden; // handle `quickAddToCart` block 8367 8368 this.ref('self').toggleClass(classHidden, isRestricted); // handle disabled button 8369 8370 var disabledButtons = document.querySelectorAll('[data-id=producttile_disabledbtn_' + this.prefs().productId + ']'); 8371 disabledButtons.forEach(function (disabledBtn) { 8372 disabledBtn.classList.toggle(classHidden, !isRestricted); 8373 }); 8374 } 8375 /**
8376 * @description post action after product adding. Handling success/error here 8377 * @param {object} response server response object 8378 */ 8379 8380 8381 postAddProduct(response) { 8382 const { 8383 autoCloseMinicart, 8384 autoCloseTimeout 8385 } = this.prefs(); 8386 const cartModel = response.cart; 8387 let element = document.getElementById('add-to-cart-' + this.prefs().productId); 8388 8389 if (!response.error && cartModel) { 8390 const analytics = this.data('analytics'); 8391 8392 if (analytics) { 8393 analytics.quantity = Number(this.getQtyValue()); 8394 this.data('analytics', JSON.stringify(analytics)); 8395 } 8396 8397 element === null || element === void 0 ? void 0 : element.setAttribute('data-add-to-cart-success', 'true'); 8398 const accessibilityAlert = this.prefs().accessibilityAlerts.addedtocart; 8399 this.showAlertMessage(accessibilityAlert, false); 8400 8401 if (!Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_3__["isMediumViewAndDown"])()) { 8402 this.showAlertMessage(accessibilityAlert, false); 8403 } // Hide mini cart pop up for CSC Agent 8404 8405 8406 if (response.isCSCAgent) { 8407 cartModel.showMinicart = false; 8408 } else { 8409 cartModel.showMinicart = this.prefs().showMinicartOnProductAdd; 8410 } 8411 8412 this.eventBus().emit('product.added.to.cart', cartModel, this); 8413 8414 if (autoCloseMinicart) { 8415 this.eventBus().emit('auto.close.minicart', autoCloseTimeout); 8416 } 8417 8418 this.updateAvailabilityComponent(); 8419 } else if (response.error) { 8420 element === null || element === void 0 ? void 0 : element.setAttribute('data-add-to-cart-success', 'false'); 8421 this.showAlertMessage(response.message, true); 8422 } // set low in stock status 8423 8424 8425 if (response.isNotEnoughATS && response.errorData) { 8426 // eslint-disable-next-line max-len 8427 const HarmonyQuantityStepper = 8428 /** @type {HarmonyQuantityStepper} */ 8429 this.getConstructor('harmonyQuantityStepper'); 8430 this.eachChild(child => { 8431 if (!(child instanceof HarmonyQuantityStepper)) { 8432 return; 8433 } // set max available value 8434 8435 8436 child.ref('field').val(response.errorData.qtyValue); 8437 }); 8438 } // set out of stock status 8439 8440 8441 if (response.isOutOfStock && response.errorData) { 8442 // eslint-disable-next-line max-len 8443 const HarmonyQuantityStepper = 8444 /** @type {HarmonyQuantityStepper} */ 8445 this.getConstructor('harmonyQuantityStepper'); 8446 const ProcessButton = 8447 /** @type {ProcessButton} */ 8448 this.getConstructor('processButton'); 8449 this.eachChild(child => { 8450 if (child instanceof HarmonyQuantityStepper) { 8451 child.ref('field').val(response.errorData.qtyValue); 8452 child.toggleDisable(true); 8453 } 8454 8455 if (child instanceof ProcessButton) { 8456 child.ref('self').setText(this.prefs().outOfStockLabel); 8457 child.disable(); 8458 } 8459 }); 8460 } 8461 } 8462 /** 8463 * @description Get value from input quantity block 8464 * @returns {number} quantity value for current tile 8465 */ 8466 8467 8468 getQtyValue() { 8469 return this.getById('input-quantity', qtyInput => { 8470 return qtyInput && qtyInput.ref('field') && qtyInput.ref('field').val(); 8471 }); 8472 } 8473 /** 8474 * @param {RefElement} button add to cart button itself 8475 */ 8476 8477 8478 addToCart(button) { 8479 if (this.prefs().isDisabled) { 8480 return; 8481 } 8482 8483 this.eventBus().emit('addtocart.button.clicked', true); // Prevent twice clicks on a button 8484 8485 if (button.isBusy) { 8486 return; 8487 } 8488 8489 const addToCartBtnPrefs = button.prefs(); // eslint-disable-next-line max-len 8490 8491 var wineClubProdList = document.getElementById('wineClubProdList') != null ? document.getElementById('wineClubProdList').value : ''; 8492 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(addToCartBtnPrefs.addToCartUrl, { 8493 pid: this.currentProductID || addToCartBtnPrefs.pid, 8494 quantity: this.getQtyValue() || this.selectedQuantity || 1, 8495 wineClubProdList: wineClubProdList, 8496 childProducts: this.getChildProducts() || [] 8497 }).then(response => this.postAddProduct(response)).catch(() => { 8498 //once bundle perfomance issue is fixed, Remove if condition. 8499 if (addToCartBtnPrefs.isbundle === undefined && !addToCartBtnPrefs.isbundle) { 8500 this.showAlertMessage(this.prefs().textNetworkError, true); 8501 } 8502 }).finally(() => { 8503 this.eventBus().emit('addtocart.button.clicked', false); 8504 }); 8505 this.eventBus().emit('loader.start', promise); 8506 } 8507 /**
8508 * @description Emits global alert 8509 * @param {string} message Text for an alert 8510 * @param {boolean} isError is error flag 8511 */ 8512 8513 8514 showAlertMessage(message, isError) { 8515 this.eventBus().emit('alert.show', { 8516 accessibilityAlert: message, 8517 errorClass: isError 8518 }); 8519 } 8520 /** 8521 * @description Add to cart trigger click handler 8522 */ 8523 8524 8525 triggerClick() { 8526 const ProcessButton = 8527 /** @type {ProcessButton} */ 8528 this.getConstructor('processButton'); 8529 this.eachChild(child => { 8530 if (child instanceof ProcessButton) { 8531 this.addToCart(child); 8532 } 8533 }); 8534 } 8535 /** 8536 * @description Toggle busy of addToCartBtn 8537 * @param {object} initiator - widget initiator 8538 * @param {boolean} isBusy - is busy processing flag 8539 */ 8540 8541 8542 toggleBusy(initiator, isBusy) { 8543 const ProcessButton = 8544 /** @type {ProcessButton} */ 8545 this.getConstructor('processButton'); 8546 this.eachChild(child => { 8547 if (!(child instanceof ProcessButton)) { 8548 return; 8549 } 8550 8551 if (isBusy) { 8552 child.startProcess(); 8553 } else { 8554 child.stopProcess(); 8555 } 8556 }); 8557 } 8558 /** 8559 * @description method definition is obligatory when using in conjunction with a QuantityStepper component 8560 */ 8561 8562 8563 changeAttribute() {} 8564 8565 renderAddToCartText(params) { 8566 this.getById('addToCart', addToCart => { 8567 addToCart.render('template', { 8568 isAvailable: params.available, 8569 isPreorder: params.availability && params.availability.isPreorder 8570 }, addToCart.ref('container')); 8571 }); 8572 } 8573 /** 8574 * @description get value from button data attribute 8575 * @returns {any} childProducts 8576 */ 8577 8578 8579 getChildProducts() { 8580 const ProcessButton = 8581 /** @type {ProcessButton} */ 8582 this.getConstructor('processButton'); 8583 let childProducts = null; 8584 this.eachChild(child => { 8585 if (!(child instanceof ProcessButton)) { 8586 return; 8587 } 8588 8589 childProducts = JSON.stringify(child && child.config && child.config.childProducts); 8590 }); 8591 return childProducts; 8592 } 8593 /** 8594 * @description handle removed product 8595 * @param {string} pid - product id 8596 */ 8597 8598 8599 handleRemovedProduct(pid) { 8600 if (pid === this.prefs().productId) { 8601 this.updateAvailabilityComponent(); 8602 } 8603 } 8604 /** 8605 * @description update availability component 8606 */ 8607 8608 8609 updateAvailabilityComponent() { 8610 // eslint-disable-next-line max-len 8611 const HarmonyQuantityStepper = 8612 /** @type {HarmonyQuantityStepper} */ 8613 this.getConstructor('harmonyQuantityStepper'); 8614 this.eachChild(child => { 8615 if (child instanceof HarmonyQuantityStepper) { 8616 child.changeValue(); 8617 } 8618 }); 8619 } 8620 8621 } 8622 8623 return QuickAddToCart; 8624}); 8625 8626/***/ }), 8627
8628/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/ShipToError.js": 8629/*!*******************************************************************************************!*\ 8630 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/product/ShipToError.js ***! 8631 \*******************************************************************************************/ 8632/*! exports provided: default */ 8633/***/ (function(module, __webpack_exports__, __webpack_require__) { 8634 8635"use strict"; 8636__webpack_require__.r(__webpack_exports__); 8637/* harmony import */ var harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! harmony/toolbox/shipToUtils */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js"); 8638 8639/** 8640 * @description ShipToError widget implementation 8641 * @param {Widget} Widget Base widget for extending 8642 * @returns {typeof ShipToError} - ShipToStates instance 8643 */ 8644 8645/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 8646 return class ShipToError extends Widget { 8647 prefs() { 8648 return { 8649 shipToRestrictedStates: [], 8650 ...super.prefs() 8651 }; 8652 } 8653 8654 init() { 8655 super.init(); // handle shipping restrictions 8656 8657 this.eventBus().on('shipto.restrictions.updated', 'handleStateRestrictions'); 8658 this.eventBus().on('shipto.restrictions.updated.error.msg', 'handleStateRestrictions'); 8659 this.handleStateRestrictions(); 8660 } 8661 /** 8662 * @description Handle shipping restrictions 8663 */ 8664 8665 8666 handleStateRestrictions(stateID) { 8667 stateID = Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_0__["getStateID"])(stateID); 8668 8669 if (!stateID) { 8670 return; 8671 } 8672 8673 if (Object(harmony_toolbox_shipToUtils__WEBPACK_IMPORTED_MODULE_0__["isStateRestricted"])(stateID, this.prefs().shipToRestrictedStates)) { 8674 this.show(); 8675 } else { 8676 this.hide(); 8677 } 8678 } 8679 8680 }; 8681}); 8682 8683/***/ }), 8684
8685/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarCart.js": 8686/*!*************************************************************************************************!*\ 8687 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarCart.js ***! 8688 \*************************************************************************************************/ 8689/*! exports provided: default */ 8690/***/ (function(module, __webpack_exports__, __webpack_require__) { 8691 8692"use strict"; 8693__webpack_require__.r(__webpack_exports__); 8694/** 8695 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 8696 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 8697 */ 8698/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 8699 return class ReserveBarCart extends Widget { 8700 prefs() { 8701 return { ...super.prefs() //extend preferences from parent widget class 8702 8703 }; 8704 } 8705 8706 init() { 8707 setTimeout(() => { 8708 this.eventBus().emit('rbCart.init', this); 8709 }, 0); 8710 } 8711 8712 handleCartClick() { 8713 this.eventBus().emit('reserveBarCart.toggle', this); 8714 } 8715 8716 }; 8717}); 8718 8719/***/ }), 8720
8721/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarMgr.js": 8722/*!************************************************************************************************!*\ 8723 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarMgr.js ***! 8724 \************************************************************************************************/ 8725/*! exports provided: default */ 8726/***/ (function(module, __webpack_exports__, __webpack_require__) { 8727 8728"use strict"; 8729__webpack_require__.r(__webpack_exports__); 8730/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 8731/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 8732/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 8733/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 8734/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/defineProperty.js"); 8735/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__); 8736 8737 8738 8739 8740/** 8741 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 8742 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 8743 */ 8744/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 8745 return class ReserveBarMgr extends Widget { 8746 constructor(...args) { 8747 super(...args); 8748 8749 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "init", async () => { 8750 this.groupingIDS = []; 8751 this.autoCompleteResults = this.prefs().autoCompleteResults; 8752 this.shoppingCart = this.prefs().shoppingCart; 8753 this.liquid = this.prefs().liquid; 8754 this.selectedAddress = this.prefs().selectedAddress; 8755 this.productContainers = this.prefs().productContainers; 8756 this.domCart = this.prefs().domCart; 8757 this.domSearch = this.prefs().domSearch; 8758 this.emptyCart = this.config.emptycart; 8759 this.eventBus().on('rbSearch.init', 'initDomSearch'); 8760 this.eventBus().on('rbCart.init', 'initDomCart'); 8761 this.eventBus().on('reserveBarCart.toggle', 'toggleReserveBarCart'); 8762 this.eventBus().on('reserveBarAddress.update', 'getAddress'); 8763 this.eventBus().on('reserveBarProduct.init', 'initProduct'); 8764 this.initLiquid().then(() => this.initCart()); 8765 }); 8766 8767 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "initLiquid", async () => { 8768 this.liquid = await Liquid({ 8769 clientId: 'e53d4d04a676395ccd1c2d5b6b94c3aa44452330e502c999892d8091', 8770 env: 'production' 8771 }); 8772 }); 8773 8774 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "initCart", async () => { 8775 const storedCart = JSON.parse(localStorage.getItem('RbCartID')); 8776 8777 if (storedCart === null || storedCart.length === 0) { 8778 // If no cart is found in local storage, create a new one 8779 const liquidCart = await this.liquid.cart({ 8780 cartItems: [], 8781 giftOrder: false 8782 }); 8783 this.shoppingCart = liquidCart; 8784 } else { 8785 var _preExistingCart$cart; 8786 8787 // If a cart is found in local storage, set it in the state 8788 const preExistingCart = await this.liquid.cart({ 8789 id: storedCart.id 8790 }); //handles coming back from checkout if cart ahs been emptied. 8791 8792 if (((_preExistingCart$cart = preExistingCart.cartItmes) === null || _preExistingCart$cart === void 0 ? void 0 : _preExistingCart$cart.length) < 0) { 8793 const liquidCart = await this.liquid.cart({ 8794 cartItems: [], 8795 giftOrder: false 8796 }); 8797 this.shoppingCart = liquidCart; 8798 } else { 8799 this.shoppingCart = preExistingCart; 8800 } 8801 8802 this.renderShoppingCart(this.shoppingCart); 8803 } 8804 8805 const savedAddress = JSON.parse(localStorage.getItem('RbAddress')); 8806 8807 if (this.selectedAddress == null && savedAddress != null && typeof this.domSearch != 'string') { 8808 try { 8809 this.selectedAddress = savedAddress; 8810 const search = this.domSearch.ref('reserveBarSearch').get(); 8811 search.value = this.selectedAddress.formattedAddress; 8812 const productList = await this.fetchProducts(this.selectedAddress.formattedAddress); // Render the productList 8813 8814 this.renderRetailers(productList); 8815 } catch (error) { 8816 console.log(error); 8817 } 8818 } 8819
8820 this.handleUpdateCartQty(this.domCart); 8821 }); 8822 8823 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "getAddress", async searchWidget => { 8824 const search = searchWidget.ref('reserveBarSearch').get(); 8825 let autoCompleteResults; 8826 8827 if (search.value.trim().length === 0) { 8828 autoCompleteResults = []; 8829 this.renderAutoCompleteResults(); 8830 return; 8831 } 8832 8833 try { 8834 /// Get address suggestion from liquid 8835 autoCompleteResults = await this.liquid.address({ 8836 search: search.value 8837 }); /// Render the address suggestion 8838 8839 this.renderAutoCompleteResults(searchWidget, autoCompleteResults, this.config.emptycart); 8840 } catch (error) { 8841 console.log(error); 8842 } 8843 }); 8844 8845 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "handleAddressClick", async (searchWidget, result, emptyCartMessage) => { 8846 // Clear the previous results 8847 const searchInput = searchWidget.ref('reserveBarSearch').get(); 8848 searchInput.value = result.description; 8849 8850 if (searchWidget != undefined) { 8851 const autoCompleteList = searchWidget.ref('autoCompleteList').get(); 8852 autoCompleteList.innerHTML = ''; 8853 autoCompleteList.classList.remove('results'); 8854 } 8855 8856 this.selectedAddress = ''; //clear shopping cart 8857 8858 this.clearCart().then(() => this.handleUpdateCartQty(this.domCart)); 8859 localStorage.removeItem('RbAddress'); 8860 const productCartDiv = this.domCart.ref('productCart').get(); 8861 productCartDiv.innerHTML = emptyCartMessage; 8862 this.productContainers.forEach(element => { 8863 const retailersContainer = element.ref('reserveBarRetailers').get(); 8864 8865 if (retailersContainer) { 8866 retailersContainer.style.display = 'block'; 8867 } 8868 }); 8869 const productList = await this.fetchProducts(result.description); // Render the productList 8870 8871 this.renderRetailers(productList); 8872 8873 try { 8874 // Get the full address details 8875 const placeDetail = await this.liquid.address({ 8876 placeId: result.placeId 8877 }); 8878 localStorage.setItem('RbAddress', JSON.stringify(placeDetail)); 8879 this.selectedAddress = placeDetail; 8880 } catch (error) { 8881 console.log(error); 8882 } 8883 }); 8884 8885 /// Fetch products from liquid 8886 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "fetchProducts", async address => { 8887 try { 8888 return await this.liquid.product({ 8889 ids: this.groupingIDS, 8890 shipAddress: address, 8891 top100: false 8892 }); 8893 } catch (error) { 8894 console.log(error); 8895 } 8896 }); 8897 8898 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "renderRetailers", productList => { 8899 this.productContainers.forEach(element => { 8900 const product = productList.find(product => product.id == element.config.grouping); 8901 const retailersContainer = element.ref('reserveBarRetailers').get(); 8902 const productGrid = document.createElement('div'); 8903 productGrid.classList.add('b-reserve_bar--productGrid'); 8904 const productContainer = document.createElement('div'); 8905 const sizeContainer = document.createElement('div'); 8906 8907 if (retailersContainer) { 8908 retailersContainer.innerHTML = ""; 8909 } 8910 8911 if (product) { 8912 if (product.variants.length > 0) { 8913 const sizeSelect = document.createElement('div'); 8914 sizeSelect.classList.add('b-reserve_bar--sizeSelect'); 8915 sizeSelect.innerHTML = '<p class="t-heading_5">Select a Size</p>';
8916 product.variants.forEach(variant => { 8917 if (variant) { 8918 sizeSelect.innerHTML += `<button class="g-button_alt" data-sizeselect="${variant.size.replace(', bottle', '')}">${variant.size.replace(', bottle', '')}</button>`; 8919 sizeSelect.addEventListener('click', event => { 8920 const allsizeButtons = document.querySelectorAll('[data-sizeselect]'); 8921 [...allsizeButtons].forEach(button => { 8922 if (button == event.target) { 8923 event.target.classList.remove('g-button_alt'); 8924 event.target.classList.add('g-button_main'); 8925 } else { 8926 button.classList.add('g-button_alt'); 8927 button.classList.remove('g-button_main'); 8928 } 8929 }); 8930 const allRetailers = retailersContainer.querySelectorAll('.productRetailer'); 8931 allRetailers.forEach(retailer => { 8932 retailer.style.display = 'none'; 8933 }); 8934 const availabilityLabels = retailersContainer.querySelectorAll('.productAvailability');
8935 availabilityLabels.forEach(label => { 8936 label.style.display = 'none'; 8937 }); 8938 const selectedRetailers = retailersContainer.querySelectorAll(`[data-size="${event.target.dataset.sizeselect}"]`); 8939 selectedRetailers.forEach(selected => { 8940 selected.style.display = 'block'; 8941 }); 8942 }); 8943 sizeContainer.appendChild(sizeSelect); 8944 variant.availability.forEach(availability => { 8945 const availabilityLabel = document.createElement('h3'); 8946 let label = ''; 8947 8948 if (availability == 'shipped') { 8949 label = "Ship"; 8950 } 8951 8952 if (availability == 'onDemand') { 8953 label = 'Delivery Same Day or Schedule'; 8954 } 8955 8956 availabilityLabel.innerHTML = label; 8957 availabilityLabel.classList.add('productAvailability'); 8958 availabilityLabel.classList.add('t-heading_5'); 8959 availabilityLabel.setAttribute('data-size', variant.size.replace(', bottle', '')); 8960 availabilityLabel.style.display = 'none'; 8961 productContainer.appendChild(availabilityLabel); 8962 variant.retailers.forEach(retailer => { 8963 if (retailer.type == availability) { 8964 const productDetails = document.createElement('div'); 8965 productDetails.style.display = 'none'; 8966 productDetails.classList.add('productRetailer'); 8967 8968 if (retailer.shippingMethod.deliveryExpectation == 'On backorder') { 8969 productDetails.classList.add('disabled'); 8970 } 8971 8972 productDetails.classList.add('t-paragraph_1'); 8973 productDetails.setAttribute('data-size', variant.size.replace(', bottle', '')); 8974 productDetails.innerHTML = ` 8975 <span>${retailer.retailer.name}</span><br /> 8976 <span>${retailer.shippingMethod.deliveryExpectation}</span><br /> 8977 <span><b>Price:</b> $${retailer.price}</span> 8978 `; 8979 productDetails.addEventListener('click', () => { 8980 retailer['productImages'] = variant.images; 8981 retailer['productName'] = product.name; 8982 this.handleRetailerClick(retailer, retailer.type, element); 8983 }); 8984 productContainer.appendChild(productDetails); 8985 productGrid.appendChild(productContainer); 8986 } 8987 }); 8988 }); 8989 } 8990 }); 8991 retailersContainer.appendChild(sizeContainer); 8992 retailersContainer.appendChild(productGrid); 8993 } else { 8994 retailersContainer.innerHTML = `<p class="t-paragraph_1" style="text-align:center;" data-ref="reserveBarNoAddress"><b>${element.config.unavailable}</b></p>`; 8995 } 8996 } 8997 }); 8998 }); 8999 9000 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "updateCart", async (retailer, element) => { 9001 let qty; 9002 9003 try { 9004 if (this.shoppingCart !== null) { 9005 const inCart = this.shoppingCart.cartItems.find(o => o.product.id === (retailer === null || retailer === void 0 ? void 0 : retailer.variantId)); 9006 qty = Number(element.ref('quantitySelect').get().value); // if already in the cart incrament the quantity instead of resetting to 1 9007 9008 if (inCart) { 9009 const index = this.shoppingCart.cartItems.findIndex(o => o.product.id === (retailer === null || retailer === void 0 ? void 0 : retailer.variantId)); 9010 9011 if (index !== -1) { 9012 qty = this.shoppingCart.cartItems[index].quantity + qty; 9013 } 9014 } 9015 } 9016 9017 const currentCart = this.shoppingCart.cartItems ? this.shoppingCart.cartItems : []; 9018 currentCart.push({ 9019 variantId: retailer === null || retailer === void 0 ? void 0 : retailer.variantId, 9020 quantity: qty 9021 }); 9022 const newCart = { 9023 id: this.shoppingCart.id, 9024 cartItems: currentCart 9025 };
9026 const result = await this.liquid.cart(newCart); 9027 this.shoppingCart = result; 9028 localStorage.setItem('RbCartID', JSON.stringify(this.shoppingCart)); // Update the this.shoppingCart object in the productCart div 9029 9030 this.renderShoppingCart(result).then(() => { 9031 this.handleUpdateCartQty(this.domCart); 9032 this.toggleReserveBarCart(this.domCart); 9033 }); 9034 } catch (error) { 9035 console.log(error); 9036 alert('Failed to add product to cart. Please try again later.'); 9037 } 9038 }); 9039 9040 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "renderShoppingCart", async cart => { 9041 const productCartDiv = this.domCart.ref('productCart').get(); 9042 9043 if (cart) { 9044 productCartDiv.innerHTML = ''; 9045 const cartContainer = document.createElement('div'); 9046 let counter = 0; /// Render the new shopping cart items 9047 9048 if (cart.cartItems != null) { 9049 cart.cartItems.forEach(item => { 9050 const cartItemDiv = document.createElement('div'); 9051 cartItemDiv.classList.add('b-rb_cart--list__item'); 9052 const cartQuantitySelect = document.createElement('select'); 9053 cartQuantitySelect.id = `cartQuantitySelect_${++counter}`; 9054 cartQuantitySelect.addEventListener('change', event => { 9055 this.handleCartQtyChange(event, item); 9056 }); /// Populate quantity select element 9057 9058 Array.from({ 9059 length: Number(item.product.inStock) 9060 }, (_, index) => index + 1).forEach(quantity => { 9061 const option = document.createElement('option'); 9062 option.value = quantity; 9063 option.textContent = quantity; 9064 cartQuantitySelect.appendChild(option); 9065 9066 if (quantity === item.quantity) { 9067 option.selected = true; 9068 } 9069 }); 9070 const cartImage = document.createElement('img'); 9071 cartImage.width = 100; 9072 cartImage.height = 200; 9073 cartImage.src = item.product.thumbUrl; 9074 cartImage.alt = item.product.name; 9075 const cartItemWrap = document.createElement('div'); 9076 const cartItemTitle = document.createElement('h3'); 9077 cartItemTitle.innerHTML = item.productGrouping.name; 9078 const cartItemVolume = document.createElement('p'); 9079 cartItemVolume.classList.add('volume'); 9080 cartItemVolume.innerHTML = item.product.volume; 9081 const cartQtyContainer = document.createElement('p'); 9082 cartQtyContainer.appendChild(cartQuantitySelect); 9083 cartQtyContainer.classList.add('cartQty'); 9084 const cartItemPrice = document.createElement('p'); 9085 cartItemPrice.innerHTML = `<b>Price</b>: ${item.product.price}`; 9086 cartQtyContainer.appendChild(cartItemPrice); 9087 const cartItemFulfillment = document.createElement('p'); 9088 cartItemFulfillment.innerHTML = `Fulfilled by ${item.retailerName}`; // const cartItemDelivery = document.createElement('p'); 9089 // cartItemDelivery.innerHTML = item.shortDeliveryExpectation; 9090 9091 const cartItemRemove = document.createElement('button'); 9092 cartItemRemove.setAttribute('aria-label', 'Remove Item'); 9093 cartItemRemove.innerHTML = '<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>'; 9094 cartItemRemove.addEventListener('click', () => { 9095 this.handleRemoveFromCart(item.product.id).then(() => this.handleUpdateCartQty(this.domCart)); 9096 }); 9097 cartItemWrap.appendChild(cartItemTitle); 9098 cartItemWrap.appendChild(cartItemVolume); 9099 cartItemWrap.appendChild(cartItemFulfillment); // cartItemWrap.appendChild(cartItemDelivery); 9100 9101 cartItemWrap.appendChild(cartQtyContainer); 9102 cartItemDiv.appendChild(cartImage); 9103 cartItemDiv.appendChild(cartItemWrap); 9104 cartItemDiv.appendChild(cartItemRemove); 9105 cartContainer.appendChild(cartItemDiv); 9106 }); 9107 } /// Create checkout button 9108 9109 9110 const checkoutButton = document.createElement('button'); 9111 checkoutButton.textContent = 'Checkout'; 9112 checkoutButton.classList.add('g-button_main'); 9113 checkoutButton.addEventListener('click', () => { 9114 this.handleCheckout(); 9115 }); 9116 9117 if (cart.cartItems.length > 0) { 9118 const subTotalWrap = document.createElement('div'); 9119 subTotalWrap.classList.add('b-rb_cart--subtotal'); 9120 subTotalWrap.id = 'rbCart-subtotal'; 9121 const subTotalItems = document.createElement('p'); 9122 subTotalItems.innerHTML = `<b>Subtotal</b> (${cart.itemCount} ${cart.itemCount > 1 ? 'items' : 'item'})`; 9123 const subTotal = document.createElement('p'); 9124 subTotal.innerHTML = `<span>$</span> ${cart.subtotal}`; 9125 subTotalWrap.appendChild(subTotalItems); 9126 subTotalWrap.appendChild(subTotal); 9127 productCartDiv.appendChild(cartContainer); 9128 productCartDiv.appendChild(subTotalWrap); 9129 productCartDiv.appendChild(checkoutButton); 9130 } else { 9131 productCartDiv.textContent = this.emptyCart; 9132 } 9133 } else { 9134 productCartDiv.textContent = this.emptyCart; 9135 } 9136 }); 9137 9138 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "handleRemoveFromCart", async productId => { 9139 if (!productId) return; 9140 const updatedCart = { 9141 id: this.shoppingCart.id, 9142 cartItems: [...this.shoppingCart.cartItems, ...[{ 9143 variantId: productId, 9144 quantity: 0 9145 }]] 9146 }; 9147 9148 try { 9149 this.shoppingCart = await this.liquid.cart(updatedCart); 9150 localStorage.setItem('RbCartID', JSON.stringify(this.shoppingCart)); 9151 this.renderShoppingCart(this.shoppingCart); 9152 } catch (error) { 9153 console.log(error); 9154 } 9155 }); 9156 9157 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "handleCartQtyChange", async (event, item) => { 9158 var _event$target; 9159
9160 const qty = Number((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value); 9161 const updatedCart = { 9162 id: this.shoppingCart.id, 9163 cartItems: [...this.shoppingCart.cartItems, ...[{ 9164 variantId: item.product.id, 9165 quantity: qty 9166 }]] 9167 }; 9168 9169 try { 9170 const result = await this.liquid.cart(updatedCart); 9171 this.shoppingCart = result; 9172 localStorage.setItem('RbCartID', JSON.stringify(this.shoppingCart)); 9173 const subTotal = document.getElementById('rbCart-subtotal'); 9174 const subTotalItems = document.createElement('p'); 9175 subTotalItems.innerHTML = `Subtotal(${this.shoppingCart.itemCount} ${this.shoppingCart.itemCount > 1 ? 'items' : 'item'})`; 9176 const subTotalPrice = document.createElement('p'); 9177 subTotalPrice.innerHTML = `<span>$</span> ${this.shoppingCart.subtotal}`; 9178 subTotal.innerHTML = ''; 9179 subTotal.appendChild(subTotalItems); 9180 subTotal.appendChild(subTotalPrice); 9181 } catch (error) { 9182 // log error 9183 console.log(error); 9184 } 9185 }); 9186 9187 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "handleCheckout", async () => { 9188 try { 9189 var _this$selectedAddress; 9190 9191 if (!((_this$selectedAddress = this.selectedAddress) !== null && _this$selectedAddress !== void 0 && _this$selectedAddress.address1.trim())) { 9192 alert('Please enter a valid delivery address'); 9193 return; 9194 } 9195 9196 const checkoutUrl = await this.liquid.checkout({ 9197 cartId: this.shoppingCart.id, 9198 address: { 9199 address1: this.selectedAddress.address1, 9200 city: this.selectedAddress.city, 9201 state: this.selectedAddress.state, 9202 zipCode: this.selectedAddress.zipCode 9203 } 9204 }); 9205 9206 if (checkoutUrl.url) { 9207 // Redirect to checkout 9208 window.location = checkoutUrl.url; 9209 } 9210 } catch (error) { 9211 console.log(error); 9212 } 9213 }); 9214 9215 _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2___default()(this, "handleUpdateCartQty", async domCart => { 9216 const cart = await this.liquid.cart({ 9217 id: this.shoppingCart.id 9218 }); 9219 const domQty = this.domCart.ref('reserveBarCartQty').get(); 9220 9221 if (this.shoppingCart.itemCount > 0) { 9222 domQty.classList.add('show'); 9223 } else { 9224 domQty.classList.remove('show'); 9225 } 9226 9227 domQty.innerHTML = this.shoppingCart.itemCount; 9228 }); 9229 } 9230 9231 prefs() { 9232 return { 9233 autoCompleteResults: [], 9234 shoppingCart: null, 9235 domCart: '', 9236 domSearch: '', 9237 liquid: null, 9238 selectedAddress: null, 9239 productContainers: [], 9240 groupingIDS: [], 9241 emptyCart: '', 9242 ...super.prefs() //extend preferences from parent widget class 9243 9244 }; 9245 } 9246 9247 // takes instance of cart widget 9248 toggleReserveBarCart(cart) { 9249 const cartDrawer = cart.ref('reserveBarCartDrawer').get(); 9250 const cartBg = cart.ref('reserveBarCartBG').get(); 9251 9252 if (cartDrawer) { 9253 cartDrawer.classList.toggle('translate-x-full'); 9254 cartDrawer.classList.toggle('translate-x-0'); 9255 } 9256 9257 if (cartBg) { 9258 cartBg.classList.toggle('show'); 9259 } 9260 } 9261 9262 initProduct(product) { 9263 this.groupingIDS.push(product.config.grouping); 9264 this.productContainers.push(product); 9265 } 9266 9267 initDomCart(cart) { 9268 this.domCart = cart; 9269 } 9270 9271 initDomSearch(search) { 9272 this.domSearch = search; 9273 } 9274 9275 renderAutoCompleteResults(searchWidget, autoCompleteResults, emptyCartMessage) { 9276 // Clear the previous results 9277 if (searchWidget == undefined) return; 9278 const autoCompleteList = searchWidget.ref('autoCompleteList').get(); 9279 autoCompleteList.innerHTML = ''; 9280 autoCompleteList.classList.remove('results'); 9281 if (autoCompleteResults == undefined) return; // // Render the new results 9282
9283 autoCompleteResults.forEach(result => { 9284 const listItem = document.createElement('li'); 9285 listItem.setAttribute('tabindex', '0'); 9286 listItem.textContent = result.description; 9287 listItem.addEventListener('click', () => this.handleAddressClick(searchWidget, result, emptyCartMessage)); 9288 listItem.addEventListener('keypress', event => { 9289 if (event.key === "Enter") { 9290 this.handleAddressClick(searchWidget, result, emptyCartMessage); 9291 } 9292 }); 9293 autoCompleteList.classList.add('results'); 9294 autoCompleteList.appendChild(listItem); 9295 }); 9296 } 9297 9298 handleRetailerClick(selectedRetailer, availability, element) { 9299 /// hide the retailers container 9300 const retailersContainer = element.ref('reserveBarRetailers').get(); 9301 retailersContainer.style.display = 'none'; 9302 const selectedProductDetailsContainer = element.ref('reserveBarSelectedProductDetails').get(); 9303 9304 if (selectedRetailer) { 9305 const productDetailsContainer = document.createElement('div'); 9306 const productQuantityContainer = document.createElement('div'); //// Create back button 9307 9308 const buttonWrap = document.createElement('span'); 9309 const backButton = document.createElement('button'); 9310 backButton.type = 'button'; 9311 backButton.textContent = '<< Back'; 9312 backButton.addEventListener('click', () => { 9313 retailersContainer.style.display = 'block'; 9314 selectedProductDetailsContainer.innerHTML = ''; //handle error message text 9315 }); 9316 buttonWrap.appendChild(backButton); //Create product name element 9317 9318 const productName = document.createElement('h3'); 9319 productName.textContent = selectedRetailer.productName; 9320 productName.classList.add('t-heading_4'); /// Create availability title element 9321 9322 const retailerDetails = document.createElement('p'); 9323 retailerDetails.textContent = `Sold By ${selectedRetailer.retailer.name}`; /// Create delivery expectation element 9324 9325 const deliveryExpectation = document.createElement('p'); 9326 deliveryExpectation.textContent = selectedRetailer.shippingMethod.deliveryExpectation; 9327 const selectWrap = document.createElement('div'); /// Create quantity element 9328 9329 const quantityLabel = document.createElement('label'); 9330 quantityLabel.textContent = 'Quantity:'; 9331 quantityLabel.classList.add('f-input_text-label'); /// Create quantity select element 9332 9333 const quantitySelect = document.createElement('select'); 9334 quantitySelect.dataset.ref = 'quantitySelect'; 9335 quantitySelect.addEventListener('change', () => this.handleProductQtyChange(element, selectedRetailer.price, quantitySelect.value)); 9336 quantitySelect.classList.add('f-input_select-field'); /// Populate quantity select element 9337 //setting artifical limit to account for typos like 99999 bottles in stock 9338 9339 Array.from({ 9340 length: Number(selectedRetailer.inStock <= 99 ? selectedRetailer.inStock : 99) 9341 }, (_, index) => index + 1).forEach(quantity => { 9342 const option = document.createElement('option'); 9343 option.value = quantity.toString(); 9344 option.textContent = quantity.toString(); 9345 quantitySelect.appendChild(option); 9346 }); 9347 selectWrap.appendChild(quantityLabel); 9348 selectWrap.appendChild(quantitySelect); /// Create price element 9349 9350 const price = document.createElement('p'); 9351 price.innerHTML = `<b>$${parseFloat(selectedRetailer.price).toFixed(2)}</b>`; /// Create error message element 9352 9353 const errorMessageElement = document.createElement('p'); 9354 errorMessageElement.id = 'errorMessage'; /// Create total price element 9355 9356 const total = document.createElement('p'); 9357 total.dataset.ref = 'totalPrice'; 9358 total.innerHTML = `<b>Total</b>: $${(parseFloat(selectedRetailer.price) * Number(quantitySelect.value)).toFixed(2)}`; /// Create `add to cart` button 9359 9360 const addToCartButton = document.createElement('button'); 9361 addToCartButton.classList.add('g-button_main'); 9362 addToCartButton.textContent = 'Add To Cart'; 9363 addToCartButton.addEventListener('click', () => { 9364 this.updateCart(selectedRetailer, element).then(() => { 9365 retailersContainer.style.display = 'block'; 9366 selectedProductDetailsContainer.innerHTML = ''; 9367 }); 9368 }); /// Create product unavailable element 9369 9370 const productUnavailable = document.createElement('p'); 9371 productUnavailable.textContent = 'Product is Unavailable'; /// Add elements to the product details container 9372 9373 productDetailsContainer.appendChild(productName); 9374 productDetailsContainer.appendChild(price); 9375 productDetailsContainer.appendChild(retailerDetails); 9376 productDetailsContainer.appendChild(deliveryExpectation); 9377 productQuantityContainer.appendChild(selectWrap); 9378 productQuantityContainer.appendChild(total); 9379 selectedProductDetailsContainer.appendChild(buttonWrap); 9380 selectedProductDetailsContainer.appendChild(productDetailsContainer); 9381 selectedProductDetailsContainer.appendChild(productQuantityContainer); 9382 selectedProductDetailsContainer.appendChild(addToCartButton); 9383 selectedProductDetailsContainer.appendChild(errorMessageElement); 9384 } 9385 } 9386 9387 handleProductQtyChange(element, price, quantity) { 9388 const total = element.ref('totalPrice').get(); 9389 total.innerHTML = `<b>Total</b>: $${(parseFloat(price) * quantity).toFixed(2)}`; 9390 } 9391 9392 async clearCart() { 9393 const newCart = await this.liquid.cart({ 9394 cartItems: [], 9395 giftOrder: false 9396 }); 9397 this.shoppingCart = newCart; 9398 } 9399 9400 }; 9401}); 9402 9403/***/ }), 9404
9405/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarProduct.js": 9406/*!****************************************************************************************************!*\ 9407 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarProduct.js ***! 9408 \****************************************************************************************************/ 9409/*! exports provided: default */ 9410/***/ (function(module, __webpack_exports__, __webpack_require__) { 9411 9412"use strict"; 9413__webpack_require__.r(__webpack_exports__); 9414/** 9415 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 9416 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 9417 */ 9418/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 9419 return class ReserveBarProduct extends Widget { 9420 prefs() { 9421 return { ...super.prefs() //extend preferences from parent widget class 9422 9423 }; 9424 } 9425 9426 init() { 9427 this.eventBus().emit('reserveBarProduct.init', this); 9428 } 9429 9430 }; 9431}); 9432 9433/***/ }), 9434
9435/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarSearch.js": 9436/*!***************************************************************************************************!*\ 9437 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarSearch.js ***! 9438 \***************************************************************************************************/ 9439/*! exports provided: default */ 9440/***/ (function(module, __webpack_exports__, __webpack_require__) { 9441 9442"use strict"; 9443__webpack_require__.r(__webpack_exports__); 9444/** 9445 * @description Handle ViewMore button behaviour and show hidden refinement after click on it. 9446 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 9447 */ 9448/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 9449 return class ReserveBarSearch extends Widget { 9450 prefs() { 9451 return { ...super.prefs() //extend preferences from parent widget class 9452 9453 }; 9454 } 9455 9456 init() { 9457 this.eventBus().emit('rbSearch.init', this); 9458 } 9459 9460 handleSearch() { 9461 this.eventBus().emit('reserveBarAddress.update', this); 9462 } 9463 9464 }; 9465}); 9466 9467/***/ }), 9468
9469/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/search/HarmonySearchBox.js": 9470/*!***********************************************************************************************!*\ 9471 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/search/HarmonySearchBox.js ***! 9472 \***********************************************************************************************/ 9473/*! exports provided: default */ 9474/***/ (function(module, __webpack_exports__, __webpack_require__) { 9475 9476"use strict"; 9477__webpack_require__.r(__webpack_exports__); 9478/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 9479/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 9480/* harmony import */ var widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/scroll */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js"); 9481/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 9482 9483 9484 9485/** 9486 * @typedef {ReturnType<typeof import('widgets/search/SearchBox').default>} SearchBox 9487 */ 9488 9489/** 9490 * @description Search form implementation. That consists of form and combobox with suggestion functionality 9491 * @param {SearchBox} SearchBox Base widget for extending 9492 * @returns {typeof HarmonySearchBox} HarmonySearchBox class 9493 */ 9494 9495/* harmony default export */ __webpack_exports__["default"] = (function (SearchBox) { 9496 class HarmonySearchBox extends SearchBox { 9497 /** 9498 * @description Preferences 9499 * @returns {object} Preferences object 9500 */ 9501 prefs() { 9502 return { 9503 classesSuggestionsActive: 'm-active_suggestions', 9504 ...super.prefs() 9505 }; 9506 } 9507 9508 init() { 9509 super.init(); 9510 this.toggleClearButton(!!this.ref('input').val()); 9511 } 9512 /** 9513 * @description Shows suggestions popup in initial state. 9514 * <br>Initial state can be a slot/asset markup, rendered in backed 9515 * <br>and placed in `searchSuggestionsInitial` template 9516 */ 9517 9518 9519 showInDefaultState() { 9520 const input = this.ref('input').get(); 9521 const clearBtnElem = document.getElementById('clearButton'); 9522 9523 if (input.value) { 9524 clearBtnElem.removeAttribute("tabindex"); 9525 } else { 9526 clearBtnElem.setAttribute("tabindex", '-1'); 9527 } 9528 9529 if (input) { 9530 input.focus(); 9531 } 9532 9533 this.lastSearchedTerm = ''; 9534 this.render('searchSuggestionsInitial', {}, this.ref('listboxInner')).then(() => { 9535 this.selectedIndex = -1; 9536 this.resultsCount = this.getRealItemsCount(); 9537 this.openListbox(); 9538 }); 9539 this.ref('dialog').removeClass(this.prefs().classesSuggestionsActive); 9540 } 9541 /** 9542 * @param {string} query - a query, used for fetching Combobox inner items 9543 * @param {number} resultsCount - obtained inner items count 9544 * @param {Array} products - arary of products object 9545 */ 9546 9547 9548 afterSuggestionsUpdate(query, resultsCount, products) { 9549 super.afterSuggestionsUpdate(query, resultsCount); 9550 this.ref('dialog').addClass(this.prefs().classesSuggestionsActive); 9551 this.eventBus().emit('searchbox.products.init', products); 9552 } 9553 /** 9554 * @param {string} query - customer's search query 9555 * @param {object} response - backend response with suggestions 9556 */ 9557 9558 9559 processResponse(query, response) { 9560 if (response && response.suggestions && response.isAvailableSuggestions) { 9561 if (this.ref('input').val() !== query) { 9562 // if value changed during request, we do not show outdated suggestions 9563 return; 9564 } 9565 9566 if (document.activeElement !== this.ref('input').get()) { 9567 this.toggleSpinner(false); 9568 this.showInDefaultState(); 9569 return; 9570 } 9571 9572 this.render(undefined, response, this.ref('listboxInner')).then(() => { 9573 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__["timeout"])(() => { 9574 const listbox = this.ref('listbox').get(); 9575 9576 if (listbox) { 9577 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_1__["scrollElementTo"])(listbox); 9578 } 9579 }, 10); 9580 this.afterSuggestionsUpdate(query, response.suggestions.total, response.suggestions.product.products); 9581 }); 9582 } else { 9583 this.showNoSuggestions(); 9584 } 9585 9586 this.toggleSpinner(false); 9587 } 9588 /**
9589 * Display no suggestions found state (message + default suggestions) 9590 */ 9591 9592 9593 showNoSuggestions() { 9594 const input = this.ref('input').get(); 9595 9596 if (input) { 9597 input.focus(); 9598 } 9599 9600 this.lastSearchedTerm = ''; 9601 this.render('searchNoSuggestions', {}, this.ref('listboxInner')).then(() => { 9602 this.selectedIndex = -1; 9603 this.resultsCount = this.getRealItemsCount(); 9604 this.openListbox(); 9605 }); 9606 this.ref('dialog').removeClass(this.prefs().classesSuggestionsActive); 9607 } 9608 9609 closeSearch() { 9610 this.emit('closesearch'); // @ts-ignore 9611 9612 this.closeModal(); 9613 this.closeListbox(); 9614 this.clearInput(false); 9615 } 9616 9617 clearInput(...args) { 9618 super.clearInput(...args); 9619 const searchInput = this.ref('input').get(); 9620 searchInput.defaultValue = ''; 9621 } 9622 9623 } 9624 9625 return HarmonySearchBox; 9626}); 9627 9628/***/ }), 9629
9630/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/sfccStoreLocator.js": 9631/*!****************************************************************************************!*\ 9632 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/sfccStoreLocator.js ***! 9633 \****************************************************************************************/ 9634/*! no static exports found */ 9635/***/ (function(module, exports, __webpack_require__) { 9636 9637window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 9638$(document).ready(function () { 9639 // Function to display error messages below the field 9640 function showError($field) { 9641 var errorMessage = $field.data('parsley-required-message'); 9642 var errorList = $('<ul>').addClass('sfcc-store-locator-error'); 9643 var errorItem = $('<li>').text(errorMessage); 9644 errorList.append(errorItem); 9645 $field.after(errorList); 9646 } // Listening to the form's submission 9647 9648 9649 $('#sfccStoreLocator').submit(function (event) { 9650 // Prevent the default form submission action 9651 event.preventDefault(); // Clear previous errors 9652 9653 $('.sfcc-store-locator-error').remove(); // Get zipCode and radius values from the form 9654 9655 var $zipCode = $('#zipCode'); 9656 var $radius = $('#radius'); 9657 var zipCodeValue = $zipCode.val(); 9658 var radiusValue = $radius.val(); 9659 var hasError = false; // Check if zipCode and radius are set and show errors if needed 9660 9661 if (!zipCodeValue) { 9662 showError($zipCode); 9663 hasError = true; 9664 } 9665 9666 if (!radiusValue) { 9667 showError($radius); 9668 hasError = true; 9669 } 9670 9671 if (hasError) return; // Construct the endpoint URL with the required parameters 9672 9673 var endpoint = $(this).attr('action'); 9674 var fullURL = endpoint + '?postalCode=' + zipCodeValue + '&radius=' + radiusValue; // Making the AJAX GET request 9675 9676 $.ajax({ 9677 url: fullURL, 9678 type: 'GET', 9679 dataType: 'json', 9680 success: function (data) { 9681 var hasResults = data.stores.length > 0; 9682 9683 if (!hasResults) { 9684 $('.store-locator-no-results').show(); 9685 } else { 9686 $('.store-locator-no-results').hide(); 9687 } 9688 9689 var $resultsDiv = $('.b-store-wrapper'); 9690 $resultsDiv.empty(); // Handle successful API response 9691 // You can populate the data in '.b-store_locator-content' or handle it differently 9692 9693 if (data.storesResultsHtml) { 9694 $resultsDiv.append(data.storesResultsHtml); 9695 } 9696 } 9697 }); 9698 }); 9699}); 9700 9701/***/ }), 9702
9703/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/signUpModal.js": 9704/*!***********************************************************************************!*\ 9705 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/signUpModal.js ***! 9706 \***********************************************************************************/ 9707/*! no exports provided */ 9708/***/ (function(module, __webpack_exports__, __webpack_require__) { 9709 9710"use strict"; 9711__webpack_require__.r(__webpack_exports__); 9712/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 9713/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 9714/* harmony import */ var core_js_modules_web_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.url */ "./node_modules/core-js/modules/web.url.js"); 9715/* harmony import */ var core_js_modules_web_url__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_url__WEBPACK_IMPORTED_MODULE_1__); 9716 9717 9718window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 9719var NOT_INTERESTED_COOKIE_LIFETIME = 30; 9720var SIGNEDUP_COOKIE_LIFETIME = 365; 9721 9722function getSignupConfig() { 9723 var $configDiv = $('.signup-modal-configs'); 9724 var qualifiers = $configDiv.data('signupQualifiers'); 9725 var signInModalURL = $configDiv.data('signupmodalurl'); 9726 var config = {}; 9727 9728 if (typeof qualifiers === 'object' && qualifiers !== null) { 9729 config = qualifiers; 9730 } else if (typeof qualifiers === 'string') { 9731 try { 9732 config = JSON.parse(qualifiers); 9733 } catch (e) { 9734 console.warn('Invalid JSON in data-signup-qualifiers:', e); 9735 } 9736 } 9737 9738 return { 9739 config, 9740 signInModalURL 9741 }; 9742} 9743 9744function isExcluded(config) { 9745 var _config$exclusions, _config$exclusions$ex; 9746 9747 return ((_config$exclusions = config.exclusions) === null || _config$exclusions === void 0 ? void 0 : (_config$exclusions$ex = _config$exclusions.excludedPages) === null || _config$exclusions$ex === void 0 ? void 0 : _config$exclusions$ex.some(pagePath => window.location.pathname.toLowerCase().includes(pagePath.toLowerCase()))) || false; 9748} 9749 9750function setCookie(name, value, days) { 9751 var expires = days ? `; expires=${new Date(Date.now() + days * 864e5).toUTCString()}` : ''; 9752 document.cookie = `${name}=${value}${expires}; path=/`; 9753} 9754 9755function getCookie(name) { 9756 var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); 9757 return match ? match[2] : null; 9758} 9759 9760let modalFired = false; // Ensure modal is triggered only once 9761 9762function triggerModal(signInModalURL, siteName) { 9763 if (modalFired) return; 9764 modalFired = true; 9765 $.ajax({ 9766 url: signInModalURL, 9767 type: 'GET', 9768 success: function (response) { 9769 if (response && response.success == false) { 9770 return; 9771 } 9772 9773 var $response = $(response.modalHTML); 9774 $('body').append($response); 9775 var $modal = $response.filter('#newsletter-modal').add($response.find('#newsletter-modal')); 9776 if (!$modal.length) return console.warn('Modal element not found.'); 9777 $modal.css('display', 'flex'); 9778 $("#thank-you-modal").hide(); 9779 9780 if (response.csrfToken) { 9781 var csrfInput = $('<input>', { 9782 type: 'hidden', 9783 name: 'csrf_token', 9784 value: response.csrfToken 9785 }); 9786 $modal.find('form').append(csrfInput); 9787 } 9788 9789 var cookieName = `${siteName}_hideSignupModal`; // Allow closing only via cross or Not Interested button 9790 9791 $modal.find('.close-popup, .not-interested-btn').on('click', function () { 9792 setCookie(cookieName, 'true', NOT_INTERESTED_COOKIE_LIFETIME); 9793 $modal.hide(); 9794 }); // Removed click-outside-to-close behavior 9795 }, 9796 error: error => console.error('Error loading signup modal:', error) 9797 }); 9798} 9799 9800function checkTriggerConditions(config, signInModalURL, siteName) { 9801 const modalShown = sessionStorage.getItem('modalAlreadyShown') === 'true'; 9802 9803 if (sessionStorage.getItem('triggerModalNextPage') === 'true') { 9804 sessionStorage.removeItem('triggerModalNextPage'); 9805 9806 if (!modalShown) { 9807 triggerModal(signInModalURL, siteName); 9808 sessionStorage.setItem('modalAlreadyShown', 'true'); 9809 return; 9810 } 9811 } 9812 9813 var triggers = config.triggerConditions || {}; 9814 9815 function showModalOnce() { 9816 if (sessionStorage.getItem('modalAlreadyShown') === 'true') return; 9817 triggerModal(signInModalURL, siteName); 9818 sessionStorage.setItem('modalAlreadyShown', 'true'); 9819 } 9820 9821 if (triggers.onPageLoad && !modalShown) { 9822 showModalOnce(); 9823 } 9824 9825 if (triggers.afterXClicks) {
9826 let clickCount = parseInt(sessionStorage.getItem('modalClickCount') || '0', 10); 9827 9828 const handleClick = event => { 9829 clickCount++; 9830 sessionStorage.setItem('modalClickCount', clickCount); 9831 9832 if (clickCount >= triggers.afterXClicks && !modalShown) { 9833 $(document).off('click.modalTrigger'); 9834 const clickedLink = event.target.closest('a'); 9835 9836 if (clickedLink && clickedLink.href) { 9837 // Defer modal to next page 9838 sessionStorage.setItem('triggerModalNextPage', 'true'); 9839 } else { 9840 // Show modal now 9841 triggerModal(signInModalURL, siteName); 9842 sessionStorage.setItem('modalAlreadyShown', 'true'); 9843 } 9844 9845 sessionStorage.removeItem('modalClickCount'); 9846 } 9847 }; 9848 9849 $(document).on('click.modalTrigger', handleClick); 9850 } 9851 9852 if (triggers.afterXSeconds && !modalShown) { 9853 setTimeout(() => { 9854 showModalOnce(); 9855 }, triggers.afterXSeconds * 1000); 9856 } 9857} 9858 9859function waitForAgeVerification() { 9860 var $html = $('html'); 9861 9862 function checkAgeGate() { 9863 if (!$html.hasClass('m-age_gate-open')) { 9864 initializeSignupModal(); 9865 return true; 9866 } 9867 9868 return false; 9869 } 9870 9871 if (checkAgeGate()) return; 9872 const observer = new MutationObserver(() => { 9873 if (checkAgeGate()) { 9874 observer.disconnect(); 9875 } 9876 }); 9877 observer.observe($html[0], { 9878 attributes: true, 9879 attributeFilter: ['class'] 9880 }); 9881} 9882/** 9883 * Returns the lowercase value of a query parameter, or an empty string if absent. 9884 */ 9885 9886 9887function getQueryParamLower(name) { 9888 const params = new URLSearchParams((window.location.search || '').toLowerCase()); 9889 return (params.get(String(name).toLowerCase()) || '').toLowerCase(); 9890} 9891/** 9892 * Determines whether the current request originated from a marketing email. 9893 * Checks both query string and (defensively) hash for `utm_medium=email`. 9894 */ 9895 9896 9897function isEmailReferralCurrentRequest() { 9898 const utmMedium = getQueryParamLower('utm_medium'); 9899 if (utmMedium === 'email') return true; // Defensive: handle rare cases where trackers append to the hash 9900 9901 const hashLower = (window.location.hash || '').toLowerCase(); 9902 return hashLower.includes('utm_medium=email'); 9903} 9904 9905function initializeSignupModal() { 9906 var _config$exclusions2; 9907 9908 var { 9909 config, 9910 signInModalURL 9911 } = getSignupConfig(); 9912 var siteName = config.siteName || 'defaultSite'; // Suppress newsletter popup for email referrals 9913 9914 if (config !== null && config !== void 0 && (_config$exclusions2 = config.exclusions) !== null && _config$exclusions2 !== void 0 && _config$exclusions2.excludeIfReferredFromEmail) { 9915 var emailExclusionCookie = siteName + '_newsletterPopupEmailExcluded'; // Already excluded for this user (cookie present) 9916 9917 if (getCookie(emailExclusionCookie) === 'true') { 9918 return; 9919 } // First visit from email â set exclusion cookie and exit 9920 9921 9922 if (isEmailReferralCurrentRequest()) { 9923 var ttlDays = Number(config.notInterestedCookie || 365); 9924 setCookie(emailExclusionCookie, 'true', ttlDays); 9925 return; 9926 } 9927 } 9928 9929 var cookieName = `${siteName}_hideSignupModal`; 9930 var signedUpCookie = `${siteName}_userSignedUp`; 9931 SIGNEDUP_COOKIE_LIFETIME = config.signedUpCookie || 30; 9932 NOT_INTERESTED_COOKIE_LIFETIME = config.notInterestedCookie || 365; 9933 if (getCookie(cookieName) === 'true' || getCookie(signedUpCookie)) return; 9934 if (!config || $.isEmptyObject(config) || isExcluded(config)) return; 9935 checkTriggerConditions(config, signInModalURL, siteName); 9936} 9937 9938function validateEmail(email) { 9939 return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); 9940} 9941 9942function emailValidation() { 9943 $(document).on("input", "#newsletter-email", function () { 9944 var emailInput = $(this); 9945 var emailError = $("#email-error"); 9946 var submitButton = $(".btn-signup"); 9947 var errorMessage = $("#email-error-message").val(); 9948 var isValid = validateEmail($.trim(emailInput.val())); 9949 9950 if (!isValid) { 9951 emailError.text(errorMessage).addClass("error-visible"); 9952 } else { 9953 emailError.text("").removeClass("error-visible"); 9954 } 9955 9956 submitButton.prop("disabled", !isValid); 9957 }); 9958} 9959
9960function newsletterSubmitForm() { 9961 $(document).on("submit", "#newsletter-form", function (e) { 9962 e.preventDefault(); 9963 var email = $("#newsletter-email").val().trim(); 9964 var form = $(this); 9965 var submitButton = $(".btn-signup"); 9966 var loader = $(".loader-container"); 9967 if (!validateEmail(email)) return; 9968 submitButton.prop("disabled", true); // Disable button to prevent multiple submissions 9969 9970 loader.css("display", "flex"); 9971 var formData = form.serialize(); 9972 var siteName = getSignupConfig().config.siteName || 'defaultSite'; 9973 var signedUpCookie = `${siteName}_userSignedUp`; 9974 $.ajax({ 9975 url: $('.signup-modal-configs').data('signupmodalsubmit'), 9976 type: "POST", 9977 data: formData, 9978 dataType: "json", 9979 success: function (response) { 9980 loader.hide(); 9981 submitButton.prop("disabled", false); // Re-enable button 9982 9983 if (response.success) { 9984 $("#newsletter-modal").hide(); 9985 $("#thank-you-modal").css("display", "flex"); 9986 setCookie(signedUpCookie, 'true', SIGNEDUP_COOKIE_LIFETIME); 9987 } else { 9988 var errorMessage = $("#server-error-message").val(); 9989 9990 if (errorMessage) { 9991 $("#email-error").text(errorMessage).addClass("error-visible"); 9992 } else { 9993 $("#email-error").text("Something went wrong. Please try again.").addClass("error-visible"); 9994 } 9995 } 9996 }, 9997 error: function () { 9998 loader.hide(); 9999 submitButton.prop("disabled", false); 10000 } 10001 }); 10002 }); 10003} 10004 10005$(document).ready(function () { 10006 waitForAgeVerification(); 10007 emailValidation(); 10008 newsletterSubmitForm(); // Close modals via cross (Ã) button only 10009 10010 $(document).on("click", ".close-modal", function () { 10011 $(this).closest(".modal-overlay").hide(); 10012 }); // Continue shopping closes thank-you modal only 10013 10014 $(document).on("click", ".continue-shopping-btn", function () { 10015 $("#thank-you-modal").hide(); 10016 }); // Removed click-outside-to-close for all modals 10017}); 10018 10019/***/ }), 10020
10021/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/domUtils.js": 10022/*!****************************************************************************************!*\ 10023 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/domUtils.js ***! 10024 \****************************************************************************************/ 10025/*! exports provided: getFocusableElements, toggleAvailability, executeInlineScripts */ 10026/***/ (function(module, __webpack_exports__, __webpack_require__) { 10027 10028"use strict"; 10029__webpack_require__.r(__webpack_exports__); 10030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFocusableElements", function() { return getFocusableElements; }); 10031/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toggleAvailability", function() { return toggleAvailability; }); 10032/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeInlineScripts", function() { return executeInlineScripts; }); 10033const FOCUSABLE_ELEMENTS = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]:not([tabindex="-1"])']; 10034/** 10035 * 10036 * @description Get keyboard-focusable elements 10037 * @param {HTMLElement} ctx context where focusable elements needs to be queried 10038 * @returns {HTMLElement[]} array containing focusable elements, or empty array if no elements found 10039 */ 10040 10041function getFocusableElements(ctx) { 10042 return ctx.querySelectorAll(FOCUSABLE_ELEMENTS.join(', ')); 10043} 10044/** 10045 * 10046 * @description Remove elements inside context from tabIndex order - remove ability to focus element by TAB 10047 * @param {HTMLElement} ctx context where focusable elements needs to be queried 10048 * @param {boolean} [isAvailable=true] state that defines whether elements inside context needs to be disabled for TAB focus 10049 */ 10050 10051function toggleAvailability(ctx, isAvailable = true) { 10052 if (!isAvailable && ctx.isAvailable === false || isAvailable && ctx.isAvailable) { 10053 return; 10054 } 10055 10056 const focusableElements = getFocusableElements(ctx); 10057 focusableElements.forEach(el => { 10058 if (!el.dataset.initialTabIndex) { 10059 el.dataset.initialTabIndex = el.tabIndex; 10060 } 10061 10062 el.tabIndex = isAvailable ? el.dataset.initialTabIndex : -1; 10063 }); 10064 ctx.isAvailable = isAvailable; 10065} 10066/** 10067 * Executes inline scripts 10068 * 10069 * @param {HTMLElement} ctx context where inline scripts needs to be executed 10070 */ 10071 10072function executeInlineScripts(ctx) { 10073 const scripts = ctx.querySelectorAll('script:not(src):not([type*="template"]):not([type*="json"])'); 10074 Array.from(scripts).forEach(script => { 10075 const tempScript = document.createElement('script'); 10076 tempScript.text = script.text; 10077 ctx.appendChild(tempScript); 10078 script.parentNode.removeChild(script); 10079 }); 10080} 10081 10082/***/ }), 10083
10084/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/format.js": 10085/*!**************************************************************************************!*\ 10086 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/format.js ***! 10087 \**************************************************************************************/ 10088/*! exports provided: formatDate, formatPhoneNumber */ 10089/***/ (function(module, __webpack_exports__, __webpack_require__) { 10090 10091"use strict"; 10092__webpack_require__.r(__webpack_exports__); 10093/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatDate", function() { return formatDate; }); 10094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatPhoneNumber", function() { return formatPhoneNumber; }); 10095/** 10096 * Formats date to mm/dd/yyyy 10097 * @param {string} date -- date from input field. 10098 */ 10099function formatDate(dateString) { 10100 return new Date(dateString).toLocaleDateString('en-US', { 10101 year: 'numeric', 10102 month: '2-digit', 10103 day: '2-digit' 10104 }); 10105} 10106/** 10107 * Format phone number which will be applicable for Cognito. 10108 * @param phoneNumber 10109 * @return {string} 10110 */ 10111 10112function formatPhoneNumber(phoneNumber) { 10113 const phone = phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.match(/[0-9]/g); // Append country code, as on storefront phone won't have it. 10114 10115 phone.unshift('+1'); 10116 return phone.join(''); 10117} 10118 10119/***/ }), 10120
10121/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js": 10122/*!*******************************************************************************************!*\ 10123 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/toolbox/shipToUtils.js ***! 10124 \*******************************************************************************************/ 10125/*! exports provided: getStateID, isStateRestricted, getHeaderType */ 10126/***/ (function(module, __webpack_exports__, __webpack_require__) { 10127 10128"use strict"; 10129__webpack_require__.r(__webpack_exports__); 10130/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStateID", function() { return getStateID; }); 10131/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStateRestricted", function() { return isStateRestricted; }); 10132/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getHeaderType", function() { return getHeaderType; }); 10133/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 10134 10135const STATE_ID_SELECTOR = '[data-selector-id="state-id"]'; 10136const HEADER_SELECTOR = '[data-selector-id="harmonyHeader"]'; 10137/** 10138 * Return ID of current state 10139 * @return {string} 10140 */ 10141 10142function getStateID(stateID) { 10143 if (!stateID && document.querySelectorAll(STATE_ID_SELECTOR).length) { 10144 stateID = document.querySelectorAll(STATE_ID_SELECTOR)[0].dataset.refSelectedState; 10145 } 10146 10147 return stateID; 10148} 10149/** 10150 * Check state restriction 10151 * @return {boolean} 10152 */ 10153 10154function isStateRestricted(stateID, restrictedStates = []) { 10155 return restrictedStates.indexOf(stateID) > -1; 10156} 10157/** 10158 * Check header's type 10159 * @return {string} type of header 10160 */ 10161 10162function getHeaderType() { 10163 var headerType = ''; 10164 var viewType = Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__["getViewType"])(); 10165 var $header = document.querySelectorAll(HEADER_SELECTOR); 10166 var isHeaderAlignmentLeft = $header.length && $header[0].dataset.isHeaderAlignmentLeft === 'true'; 10167 10168 if (viewType === widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__["SMALL"] || viewType === widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_0__["MEDIUM"]) { 10169 headerType = 'mobileHeader'; 10170 } else if (isHeaderAlignmentLeft) { 10171 headerType = 'stickyHeader'; 10172 } else { 10173 headerType = 'header'; 10174 } 10175 10176 return headerType; 10177} 10178 10179/***/ }), 10180
10181/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/updateSocialLoginURL.js": 10182/*!********************************************************************************************!*\ 10183 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/updateSocialLoginURL.js ***! 10184 \********************************************************************************************/ 10185/*! no static exports found */ 10186/***/ (function(module, exports, __webpack_require__) { 10187 10188window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 10189$(document).ready(function () { 10190 var $footerSocial = $('.b-footer-social'); 10191 10192 if ($footerSocial.length > 0) { 10193 var baseUrl = $footerSocial.data('attr'); 10194 10195 if (baseUrl) { 10196 var socialClasses = { 10197 'm-facebook': 'facebook', 10198 'm-instagram': 'instagram', 10199 'm-youtube': 'youtube', 10200 'm-pinterest': 'pinterest', 10201 'm-twitter': 'twitter' 10202 }; 10203 var styleElement = document.createElement('style'); 10204 styleElement.type = 'text/css'; 10205 var cssText = ''; 10206 $('.b-footer_social-link').each(function () { 10207 var $this = $(this); 10208 var socialType = Object.keys(socialClasses).find(function (cls) { 10209 return $this.hasClass(cls); 10210 }); 10211 10212 if (socialType && socialClasses[socialType]) { 10213 var fullUrl = baseUrl + '#' + socialClasses[socialType]; // Generate CSS for the ::before pseudo-element 10214 10215 cssText += ` 10216 .b-footer_social-link.${socialType}::before { 10217 mask: url(${fullUrl}); 10218 -webkit-mask: url(${fullUrl}); 10219 } 10220 `; 10221 } 10222 }); 10223 10224 if (cssText) { 10225 styleElement.appendChild(document.createTextNode(cssText)); 10226 document.head.appendChild(styleElement); 10227 } 10228 } 10229 } 10230}); 10231 10232/***/ }), 10233
10234/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/videoGTMEvents.js": 10235/*!**************************************************************************************!*\ 10236 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/videoGTMEvents.js ***! 10237 \**************************************************************************************/ 10238/*! no exports provided */ 10239/***/ (function(module, __webpack_exports__, __webpack_require__) { 10240 10241"use strict"; 10242__webpack_require__.r(__webpack_exports__); 10243/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 10244/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 10245 10246window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 10247$(document).ready(function () { 10248 var trackedVideos = new WeakSet(); 10249 10250 function initVideoTracking(video) { 10251 if (!video || trackedVideos.has(video)) return; 10252 10253 try { 10254 var videoURL = video.src || (video.querySelector('source') ? video.querySelector('source').src : ''); 10255 if (!videoURL) return; 10256 var videoTitle = videoURL.split('/').pop() || 'unknown_video'; 10257 var videoDuration = null; 10258 var completedFired = false; 10259 video.addEventListener('loadedmetadata', function () { 10260 try { 10261 videoDuration = Math.floor(video.duration) || 0; 10262 } catch (err) { 10263 videoDuration = 0; 10264 } 10265 }); 10266 10267 function pushToDataLayer(eventName) { 10268 try { 10269 window.dataLayer = window.dataLayer || []; 10270 var duration = videoDuration || Math.floor(video.duration) || 0; 10271 window.dataLayer.push({ 10272 event: eventName, 10273 video_duration: duration, 10274 video_title: videoTitle, 10275 video_url: videoURL 10276 }); 10277 } catch (err) {} 10278 } 10279 10280 video.addEventListener('play', function () { 10281 completedFired = false; 10282 pushToDataLayer('video_start'); 10283 }); 10284 video.addEventListener('pause', function () { 10285 if (!video.ended) pushToDataLayer('video_pause'); 10286 }); // ENDED 10287 10288 video.addEventListener('ended', function () { 10289 if (!completedFired) { 10290 completedFired = true; 10291 pushToDataLayer('video_complete'); 10292 } 10293 }); // NEW: Progress listener to ensure completion triggers if ended doesn't fire 10294 10295 video.addEventListener('timeupdate', function () { 10296 try { 10297 if (!video.duration || completedFired) return; 10298 var progress = video.currentTime / video.duration; 10299 10300 if (progress >= 0.99) { 10301 completedFired = true; 10302 pushToDataLayer('video_complete'); 10303 } 10304 } catch (err) {} 10305 }); 10306 trackedVideos.add(video); 10307 } catch (err) {} 10308 } 10309 10310 function scanAndInitVideos() { 10311 try { 10312 var videos = document.querySelectorAll('video'); 10313 if (!videos || !videos.length) return; 10314 videos.forEach(initVideoTracking); 10315 } catch (err) {} 10316 } 10317 10318 scanAndInitVideos(); 10319 setTimeout(scanAndInitVideos, 2000); 10320 var observer = new MutationObserver(function (mutations) { 10321 mutations.forEach(function (mutation) { 10322 mutation.addedNodes.forEach(function (node) { 10323 if (node.tagName === 'VIDEO') { 10324 initVideoTracking(node); 10325 } else if (node.querySelectorAll) { 10326 node.querySelectorAll('video').forEach(initVideoTracking); 10327 } 10328 }); 10329 }); 10330 }); 10331 observer.observe(document.body, { 10332 childList: true, 10333 subtree: true 10334 }); 10335}); 10336 10337/***/ }), 10338
10339/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/videoPlayerInit.js": 10340/*!***************************************************************************************!*\ 10341 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/videoPlayerInit.js ***! 10342 \***************************************************************************************/ 10343/*! no static exports found */ 10344/***/ (function(module, exports, __webpack_require__) { 10345 10346/** 10347 * @description Initialize HTML5 video elements in video player components 10348 * Ensures video elements work correctly with dynamically set attributes 10349 */ 10350window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 10351$(document).ready(function () { 10352 function initVideoPlayer(videoContainer) { 10353 if (!videoContainer) { 10354 return; 10355 } 10356 10357 const video = videoContainer.querySelector('video'); 10358 10359 if (!video) { 10360 return; 10361 } // Ensure video attributes are properly applied 10362 // Attributes are set server-side, but we ensure they work correctly client-side 10363 // Handle autoplay with mute (browser requirement) 10364 10365 10366 if (video.hasAttribute('autoplay') && !video.hasAttribute('muted')) { 10367 // Some browsers require muted for autoplay to work 10368 video.muted = true; 10369 } // Ensure loop works correctly 10370 10371 10372 if (video.hasAttribute('loop')) { 10373 video.loop = true; 10374 } // Ensure controls are properly displayed 10375 10376 10377 if (video.hasAttribute('controls')) { 10378 video.controls = true; 10379 } // Ensure muted state is applied 10380 10381 10382 if (video.hasAttribute('muted')) { 10383 video.muted = true; 10384 } 10385 } 10386 10387 function scanAndInitVideoPlayers() { 10388 try { 10389 const videoContainers = document.querySelectorAll('.video-container'); 10390 10391 if (!videoContainers || !videoContainers.length) { 10392 return; 10393 } 10394 10395 videoContainers.forEach(initVideoPlayer); 10396 } catch (err) {// Silently fail if there's an error 10397 } 10398 } // Initialize on page load 10399 10400 10401 scanAndInitVideoPlayers(); // Re-scan after a delay to catch dynamically loaded content 10402 10403 setTimeout(scanAndInitVideoPlayers, 1000); // Watch for new video containers added to the DOM 10404 10405 var observer = new MutationObserver(function (mutations) { 10406 mutations.forEach(function (mutation) { 10407 mutation.addedNodes.forEach(function (node) { 10408 if (node.classList && node.classList.contains('video-container')) { 10409 initVideoPlayer(node); 10410 } else if (node.querySelectorAll) { 10411 node.querySelectorAll('.video-container').forEach(initVideoPlayer); 10412 } 10413 }); 10414 }); 10415 }); 10416 observer.observe(document.body, { 10417 childList: true, 10418 subtree: true 10419 }); 10420}); 10421 10422/***/ }), 10423
10424/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/widgetsList.js": 10425/*!***********************************************************************************!*\ 10426 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/widgetsList.js ***! 10427 \***********************************************************************************/ 10428/*! no exports provided */ 10429/***/ (function(module, __webpack_exports__, __webpack_require__) { 10430 10431"use strict"; 10432__webpack_require__.r(__webpack_exports__); 10433/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 10434/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 10435/* harmony import */ var widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/widgetsMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js"); 10436/* harmony import */ var widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/global/AccessibilityFocusTrapMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusTrapMixin.js"); 10437/* harmony import */ var widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/global/AccessibilityFocusMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusMixin.js"); 10438/* harmony import */ var widgets_search_SearchBox__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! widgets/search/SearchBox */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBox.js"); 10439/* harmony import */ var widgets_global_Modal__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! widgets/global/Modal */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Modal.js"); 10440/* harmony import */ var harmony_global_SideBar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! harmony/global/SideBar */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/SideBar.js"); 10441/* harmony import */ var harmony_cart_MixMiniCart__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! harmony/cart/MixMiniCart */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/MixMiniCart.js"); 10442/* harmony import */ var harmony_global_VideoPlayer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! harmony/global/VideoPlayer */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/VideoPlayer.js"); 10443/* harmony import */ var widgets_global_CarouselSwiper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! widgets/global/CarouselSwiper */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/CarouselSwiper.js"); 10444/* harmony import */ var harmony_global_ExtendedCarouselSwiper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! harmony/global/ExtendedCarouselSwiper */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ExtendedCarouselSwiper.js"); 10445/* harmony import */ var harmony_global_HarmonyCarousel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! harmony/global/HarmonyCarousel */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyCarousel.js"); 10446/* harmony import */ var harmony_global_EinsteinCarousel__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! harmony/global/EinsteinCarousel */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/EinsteinCarousel.js"); 10447/* harmony import */ var harmony_ShipToTitle__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! harmony/ShipToTitle */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/ShipToTitle.js"); 10448/* harmony import */ var harmony_ShipToStates__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! harmony/ShipToStates */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/ShipToStates.js"); 10449/* harmony import */ var harmony_ProductPositionMapping__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! harmony/ProductPositionMapping */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/ProductPositionMapping.js"); 10450/* harmony import */ var harmony_global_HarmonyStickyHeader__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! harmony/global/HarmonyStickyHeader */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyStickyHeader.js"); 10451/* harmony import */ var harmony_global_HarmonyHeader__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! harmony/global/HarmonyHeader */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyHeader.js"); 10452/* harmony import */ var harmony_global_HarmonyMenuPanel__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! harmony/global/HarmonyMenuPanel */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyMenuPanel.js"); 10453/* harmony import */ var harmony_global_HarmonyHamburgerMenuItem__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! harmony/global/HarmonyHamburgerMenuItem */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyHamburgerMenuItem.js"); 10454/* harmony import */ var harmony_global_CookieDismissBlock__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! harmony/global/CookieDismissBlock */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/CookieDismissBlock.js"); 10455/* harmony import */ var harmony_global_Overlay__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! harmony/global/Overlay */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/Overlay.js"); 10456/* harmony import */ var harmony_global_Loader__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! harmony/global/Loader */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/Loader.js"); 10457/* harmony import */ var harmony_search_HarmonySearchBox__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! harmony/search/HarmonySearchBox */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/search/HarmonySearchBox.js"); 10458/* harmony import */ var harmony_forms_HarmonyQuantityStepper__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! harmony/forms/HarmonyQuantityStepper */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyQuantityStepper.js"); 10459/* harmony import */ var harmony_global_BrowsingOnlyModal__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! harmony/global/BrowsingOnlyModal */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/BrowsingOnlyModal.js"); 10460/* harmony import */ var harmony_global_HarmonyModal__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! harmony/global/HarmonyModal */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyModal.js"); 10461/* harmony import */ var harmony_global_ShipToSideBar__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! harmony/global/ShipToSideBar */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ShipToSideBar.js"); 10462/* harmony import */ var harmony_global_HeaderSideBar__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! harmony/global/HeaderSideBar */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HeaderSideBar.js"); 10463/* harmony import */ var harmony_global_ViewMore__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! harmony/global/ViewMore */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/ViewMore.js"); 10464/* harmony import */ var harmony_cart_SecureCheckoutButton__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! harmony/cart/SecureCheckoutButton */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/SecureCheckoutButton.js"); 10465/* harmony import */ var harmony_cart_ShippingSelector__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! harmony/cart/ShippingSelector */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/ShippingSelector.js"); 10466/* harmony import */ var harmony_forms_HarmonyBasicInput__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! harmony/forms/HarmonyBasicInput */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyBasicInput.js"); 10467/* harmony import */ var harmony_forms_ajax_ChangePasswordForm__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! harmony/forms/ajax/ChangePasswordForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/ChangePasswordForm.js"); 10468/* harmony import */ var harmony_forms_ajax_RegisterForm__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! harmony/forms/ajax/RegisterForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/RegisterForm.js"); 10469/* harmony import */ var harmony_account_ProfileDetailsForm__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! harmony/account/ProfileDetailsForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/ProfileDetailsForm.js"); 10470/* harmony import */ var harmony_aws_Cognito__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! harmony/aws/Cognito */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/aws/Cognito.js"); 10471/* harmony import */ var harmony_forms_ajax_HarmonyPasswordResetForm__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! harmony/forms/ajax/HarmonyPasswordResetForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyPasswordResetForm.js"); 10472/* harmony import */ var harmony_GeolocationConsent__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! harmony/GeolocationConsent */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/GeolocationConsent.js"); 10473/* harmony import */ var harmony_global_HarmonyAccordionItem__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! harmony/global/HarmonyAccordionItem */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyAccordionItem.js"); 10474/* harmony import */ var harmony_global_HarmonyBackToTop__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! harmony/global/HarmonyBackToTop */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyBackToTop.js"); 10475/* harmony import */ var harmony_global_HarmonyFocusHighlighter__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! harmony/global/HarmonyFocusHighlighter */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyFocusHighlighter.js"); 10476/* harmony import */ var harmony_global_HarmonyGlobalAlerts__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! harmony/global/HarmonyGlobalAlerts */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyGlobalAlerts.js"); 10477/* harmony import */ var harmony_global_HarmonyConsentTracking__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! harmony/global/HarmonyConsentTracking */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyConsentTracking.js"); 10478/* harmony import */ var harmony_forms_HarmonyAjaxFormResponseContainer__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! harmony/forms/HarmonyAjaxFormResponseContainer */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAjaxFormResponseContainer.js"); 10479/* harmony import */ var harmony_wishlist_HarmonyAddToWishlistMixin__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! harmony/wishlist/HarmonyAddToWishlistMixin */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/wishlist/HarmonyAddToWishlistMixin.js"); 10480/* harmony import */ var harmony_global_HarmonyButton__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! harmony/global/HarmonyButton */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyButton.js"); 10481/* harmony import */ var harmony_global_HarmonyEmitBusEvent__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! harmony/global/HarmonyEmitBusEvent */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyEmitBusEvent.js"); 10482/* harmony import */ var harmony_product_QuickAddToCart__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! harmony/product/QuickAddToCart */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/QuickAddToCart.js"); 10483/* harmony import */ var widgets_global_ProcessButton__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! widgets/global/ProcessButton */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ProcessButton.js"); 10484/* harmony import */ var harmony_forms_HarmonyAjaxForm__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! harmony/forms/HarmonyAjaxForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAjaxForm.js"); 10485/* harmony import */ var harmony_forms_HarmonyInputPassword__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! harmony/forms/HarmonyInputPassword */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyInputPassword.js"); 10486/* harmony import */ var harmony_forms_ajax_HarmonyEmailSubscribe__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! harmony/forms/ajax/HarmonyEmailSubscribe */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyEmailSubscribe.js"); 10487/* harmony import */ var harmony_product_ShipToError__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! harmony/product/ShipToError */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/ShipToError.js"); 10488/* harmony import */ var harmony_forms_InputBirthdayDate__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! harmony/forms/InputBirthdayDate */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/InputBirthdayDate.js"); 10489/* harmony import */ var harmony_forms_StatesInputRadio__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! harmony/forms/StatesInputRadio */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/StatesInputRadio.js"); 10490/* harmony import */ var harmony_cancelOrderModal__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! harmony/cancelOrderModal */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cancelOrderModal.js"); 10491/* harmony import */ var harmony_forms_ajax_HarmonyLoginForm__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! harmony/forms/ajax/HarmonyLoginForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyLoginForm.js"); 10492/* harmony import */ var widgets_global_ListAccessibility__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! widgets/global/ListAccessibility */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js"); 10493/* harmony import */ var widgets_forms_ajax_LoginForm__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! widgets/forms/ajax/LoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js"); 10494/* harmony import */ var harmony_account_VerificationCodeForm__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(/*! harmony/account/VerificationCodeForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js"); 10495/* harmony import */ var _reserveBar_ReserveBarMgr__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(/*! ./reserveBar/ReserveBarMgr */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarMgr.js"); 10496/* harmony import */ var _reserveBar_ReserveBarCart__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(/*! ./reserveBar/ReserveBarCart */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarCart.js"); 10497/* harmony import */ var _reserveBar_ReserveBarSearch__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(/*! ./reserveBar/ReserveBarSearch */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarSearch.js"); 10498/* harmony import */ var _experience_productHero__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(/*! ./experience/productHero */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/productHero.js"); 10499/* harmony import */ var widgets_forms_InputNumber__WEBPACK_IMPORTED_MODULE_65
10499__ = __webpack_require__(/*! widgets/forms/InputNumber */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputNumber.js"); 10500/* harmony import */ var _reserveBar_ReserveBarProduct__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(/*! ./reserveBar/ReserveBarProduct */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/reserveBar/ReserveBarProduct.js"); 10501/* harmony import */ var _experience_filters__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(/*! ./experience/filters */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/filters.js"); 10502/* harmony import */ var _experience_accordion__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(/*! ./experience/accordion */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/experience/accordion.js"); 10503 10504 10505/* eslint-disable no-unused-vars */ 10506 10507/* eslint-disable indent */ 10508 10509/* eslint-disable sonarjs/no-duplicate-string */ 10510 10511/* sonar-ignore-start */ 10512window.$ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 10513 10514__webpack_require__(/*! ./collapsibleItem */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/collapsibleItem.js"); 10515 10516__webpack_require__(/*! ./sfccStoreLocator */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/sfccStoreLocator.js"); 10517 10518__webpack_require__(/*! ./updateSocialLoginURL */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/updateSocialLoginURL.js"); 10519 10520__webpack_require__(/*! ./signUpModal */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/signUpModal.js"); 10521 10522__webpack_require__(/*! ./videoGTMEvents */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/videoGTMEvents.js"); 10523 10524__webpack_require__(/*! ./videoPlayerInit */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/videoPlayerInit.js"); 10525 10526__webpack_require__(/*! ./newsLetterModalGTMEvents */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/newsLetterModalGTMEvents.js"); 10527 10528__webpack_require__(/*! ./cocktailList */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cocktailList.js"); 10529 10530const [, pdp, clp, plp, wishlist, cart, checkout, orderconfirmation, account, page, storeLocator, corporatepayment, corporatepaymentlink] = ['home', 'pdp', 'clp', 'plp', 'wishlist', 'cart', 'checkout', 'orderconfirmation', 'account', 'static', 'page', 'storeLocator', 'corporatepayment', 'corporatepaymentlink'] // @ts-ignore 10531.map(ctx => window.contexts.includes(ctx)); 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 // TODO:HARMONY:BE: Remove InputNumber here when Boilerplate will complete it. 10596// As for now it is not in widgetsList.js 10597 10598 10599 10600 10601 10602widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].addWidgetsList('app_harmony', () => [['accessibilityFocusTrapMixin', widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_2__["default"]], ['sideBar', harmony_global_SideBar__WEBPACK_IMPORTED_MODULE_6__["default"], 'accessibilityFocusTrapMixin'], ['button', harmony_global_HarmonyButton__WEBPACK_IMPORTED_MODULE_46__["default"], 'button'], ['ajaxform', harmony_forms_HarmonyAjaxForm__WEBPACK_IMPORTED_MODULE_50__["default"], 'ajaxform'], ['videoPlayer', harmony_global_VideoPlayer__WEBPACK_IMPORTED_MODULE_8__["default"]], ['carouselSwiper', widgets_global_CarouselSwiper__WEBPACK_IMPORTED_MODULE_9__["default"]], ['carouselSwiper', harmony_global_ExtendedCarouselSwiper__WEBPACK_IMPORTED_MODULE_10__["default"], 'carouselSwiper'], ['shipToStates', harmony_ShipToStates__WEBPACK_IMPORTED_MODULE_14__["default"], 'ajaxform'], ['productPositionMapping', harmony_ProductPositionMapping__WEBPACK_IMPORTED_MODULE_15__["default"]], ['shipToTitle', harmony_ShipToTitle__WEBPACK_IMPORTED_MODULE_13__["default"], 'emitBusEvent'], ['mixMiniCart', harmony_cart_MixMiniCart__WEBPACK_IMPORTED_MODULE_7__["default"], 'minicart'], ['carousel', harmony_global_HarmonyCarousel__WEBPACK_IMPORTED_MODULE_11__["default"], 'carousel'], ['einsteinCarousel', harmony_global_EinsteinCarousel__WEBPACK_IMPORTED_MODULE_12__["default"], 'carousel'], ['inputNumber', widgets_forms_InputNumber__WEBPACK_IMPORTED_MODULE_65__["default"], 'basicInput'], ['harmonyQuantityStepper', harmony_forms_HarmonyQuantityStepper__WEBPACK_IMPORTED_MODULE_24__["default"], 'inputNumber'], ['stickyHeader', harmony_global_HarmonyStickyHeader__WEBPACK_IMPORTED_MODULE_16__["default"], 'stickyHeader'], ['harmonyHeader', harmony_global_HarmonyHeader__WEBPACK_IMPORTED_MODULE_17__["default"]], ['loginForm', widgets_forms_ajax_LoginForm__WEBPACK_IMPORTED_MODULE_59__["default"], 'ajaxform'], ['harmonyLoginForm', harmony_forms_ajax_HarmonyLoginForm__WEBPACK_IMPORTED_MODULE_57__["default"], 'loginForm'], ['harmonyLoginForm', widgets_global_ListAccessibility__WEBPACK_IMPORTED_MODULE_58__["default"], 'harmonyLoginForm'], ['harmonyMenuPanel', harmony_global_HarmonyMenuPanel__WEBPACK_IMPORTED_MODULE_18__["default"], 'menuPanel'], ['hamburgerMenuItem', harmony_global_HarmonyHamburgerMenuItem__WEBPACK_IMPORTED_MODULE_19__["default"], 'hamburgerMenuItem'], ['cookieDismissBlock', harmony_global_CookieDismissBlock__WEBPACK_IMPORTED_MODULE_20__["default"]], ['overlay', harmony_global_Overlay__WEBPACK_IMPORTED_MODULE_21__["default"]], ['loader', harmony_global_Loader__WEBPACK_IMPORTED_MODULE_22__["default"]], ['harmonySearchBox', widgets_search_SearchBox__WEBPACK_IMPORTED_MODULE_4__["default"], 'combobox'], ['harmonySearchBox', widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_2__["default"], 'harmonySearchBox'], ['harmonySearchBox', widgets_global_Modal__WEBPACK_IMPORTED_MODULE_5__["default"], 'harmonySearchBox'], ['harmonySearchBox', harmony_global_HarmonyModal__WEBPACK_IMPORTED_MODULE_26__["default"], 'harmonySearchBox'], ['harmonySearchBox', harmony_search_HarmonySearchBox__WEBPACK_IMPORTED_MODULE_23__["default"], 'harmonySearchBox'], ['browsingOnlyModal', harmony_global_BrowsingOnlyModal__WEBPACK_IMPORTED_MODULE_25__["default"], 'confirmDialog'], ['modal', harmony_global_HarmonyModal__WEBPACK_IMPORTED_MODULE_26__["default"], 'modal'], ['shipToSideBar', harmony_global_ShipToSideBar__WEBPACK_IMPORTED_MODULE_27__["default"], 'sideBar'], ['headerSideBar', harmony_global_HeaderSideBar__WEBPACK_IMPORTED_MODULE_28__["default"], 'sideBar'], ['secureCheckoutButton', harmony_cart_SecureCheckoutButton__WEBPACK_IMPORTED_MODULE_30__["default"], 'button'], ['shippingSelector', harmony_cart_ShippingSelector__WEBPACK_IMPORTED_MODULE_31__["default"], 'inputSelect'], ['viewMore', harmony_global_ViewMore__WEBPACK_IMPORTED_MODULE_29__["default"]], ['basicInput', harmony_forms_HarmonyBasicInput__WEBPACK_IMPORTED_MODULE_32__["default"], 'basicInput'], ['changePasswordForm', harmony_forms_ajax_ChangePasswordForm__WEBPACK_IMPORTED_MODULE_33__["default"], 'ajaxform'], ['cognito', harmony_aws_Cognito__WEBPACK_IMPORTED_MODULE_36__["default"]], ['harmonyPasswordResetForm', harmony_forms_ajax_HarmonyPasswordResetForm__WEBPACK_IMPORTED_MODULE_37__["default"], 'ajaxform'], ['harmonyPasswordResetForm', widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_3__["default"], 'harmonyPasswordResetForm'], ['registerForm', harmony_forms_ajax_RegisterForm__WEBPACK_IMPORTED_MODULE_34__["default"], 'ajaxform'], ['verificationCodeForm', harmony_account_VerificationCodeForm__WEBPACK_IMPORTED_MODULE_60__["default"], 'ajaxform'], ['verificationCodeForm', widgets_global_ListAccessibility__WEBPACK_IMPORTED_MODULE_58__["default"], 'verificationCodeForm'], ['geolocationConsent', harmony_GeolocationConsent__WEBPACK_IMPORTED_MODULE_38__["default"]], ['accordionItem', harmony_global_HarmonyAccordionItem__WEBPACK_IMPORTED_MODULE_39__["default"], 'accordionItem'], ['globalAlerts', harmony_global_HarmonyGlobalAlerts__WEBPACK_IMPORTED_MODULE_42__["default"], 'globalAlerts'], ['backtotop', harmony_global_HarmonyBackToTop__WEBPACK_IMPORTED_MODULE_40__["default"], 'backtotop'], ['focusHighlighter', harmony_global_HarmonyFocusHighlighter__WEBPACK_IMPORTED_MODULE_41__["default"], 'focusHighlighter'], ['harmonyConsentTracking', harmony_global_HarmonyConsentTracking__WEBPACK_IMPORTED_MODULE_43__["default"], 'consentTracking'], ['productTile', harmony_wishlist_HarmonyAddToWishlistMixin__WEBPACK_IMPORTED_MODULE_45__["default"], 'productTile'], ['harmonyAjaxFormResponseContainer', harmony_forms_HarmonyAjaxFormResponseContainer__WEBPACK_IMPORTED_MODULE_44__["default"], 'ajaxFormResponseContainer'], ['emitBusEvent', harmony_global_HarmonyEmitBusEvent__WEBPACK_IMPORTED_MODULE_47__["default"], 'emitBu
10602sEvent'], ['quickAddToCart', harmony_product_QuickAddToCart__WEBPACK_IMPORTED_MODULE_48__["default"]], ['processButton', widgets_global_ProcessButton__WEBPACK_IMPORTED_MODULE_49__["default"], 'button'], ['emailSubscribe', harmony_forms_ajax_HarmonyEmailSubscribe__WEBPACK_IMPORTED_MODULE_52__["default"], 'emailSubscribe'], ['inputPassword', harmony_forms_HarmonyInputPassword__WEBPACK_IMPORTED_MODULE_51__["default"], 'inputPassword'], ['shipToError', harmony_product_ShipToError__WEBPACK_IMPORTED_MODULE_53__["default"]], ['inputBirthdayDate', harmony_forms_InputBirthdayDate__WEBPACK_IMPORTED_MODULE_54__["default"], 'inputText'], ['statesInputRadio', harmony_forms_StatesInputRadio__WEBPACK_IMPORTED_MODULE_55__["default"], 'inputRadio'], ['cancelOrderModal', harmony_cancelOrderModal__WEBPACK_IMPORTED_MODULE_56__["default"], 'harmonyModal'], ['reserveBarMgr', _reserveBar_ReserveBarMgr__WEBPACK_IMPORTED_MODULE_61__["default"]], ['reserveBarCart', _reserveBar_ReserveBarCart__WEBPACK_IMPORTED_MODULE_62__["default"]], ['reserveBarSearch', _reserveBar_ReserveBarSearch__WEBPACK_IMPORTED_MODULE_63__["default"]], ['reserveBarProduct', _reserveBar_ReserveBarProduct__WEBPACK_IMPORTED_MODULE_66__["default"]], ['pdFiltersMgr', _experience_filters__WEBPACK_IMPORTED_MODULE_67__["default"]], ['productHero', _experience_productHero__WEBPACK_IMPORTED_MODULE_64__["default"]], ['pdAccordionMgr', _experience_accordion__WEBPACK_IMPORTED_MODULE_68__["default"]]]); 10603widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | storelocator.widgets */ "storelocator.widgets").then(__webpack_require__.bind(null, /*! harmony/forms/ajax/WhereToBuyForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/WhereToBuyForm.js"))]).then(deps => { 10604 const [WhereToBuyForm] = deps.map(dep => dep.default); 10605 return { 10606 listId: 'storelocator.widgets', 10607 widgetsDefinition: () => [['whereToBuyForm', WhereToBuyForm, 'ajaxform']] 10608 }; 10609})); 10610 10611__webpack_require__(/*! ./globalFindNearMe */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/globalFindNearMe.js"); 10612 10613if (corporatepayment) { 10614 __webpack_require__(/*! ./corporatePayment */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/corporatePayment.js"); 10615} 10616 10617if (corporatepaymentlink) { 10618 __webpack_require__(/*! ./corporatepaymentlink */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/corporatepaymentlink.js"); 10619} 10620 10621if (plp) { 10622 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | harmony.search.widgets */ "harmony.search.widgets").then(__webpack_require__.bind(null, /*! harmony/search/HarmonyRefinementsPanel */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/search/HarmonyRefinementsPanel.js")), __webpack_require__.e(/*! import() | harmony.search.widgets */ "harmony.search.widgets").then(__webpack_require__.bind(null, /*! harmony/search/HarmonyProductListingMgr */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/search/HarmonyProductListingMgr.js")), __webpack_require__.e(/*! import() | harmony.search.widgets */ "harmony.search.widgets").then(__webpack_require__.bind(null, /*! harmony/search/HarmonyRefinement */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/search/HarmonyRefinement.js"))]).then(deps => { 10623 const [HarmonyRefinementsPanel, HarmonyProductListingMgr, HarmonyRefinement] = deps.map(dep => dep.default); 10624 return { 10625 listId: 'harmony.search.widgets', 10626 widgetsDefinition: () => [// listAccessibility 10627 ['harmonyRefinementsPanel', HarmonyRefinementsPanel, 'modal'], ['harmonyProductListingMgr', HarmonyProductListingMgr, 'productListingMgr'], ['harmonyRefinement', HarmonyRefinement, 'refinement']] 10628 }; 10629 })); 10630} 10631 10632if (!checkout) { 10633 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | harmony.minicart */ "harmony.minicart").then(__webpack_require__.bind(null, /*! harmony/cart/HarmonyMiniCartDialog */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/HarmonyMiniCartDialog.js"))]).then(deps => {
10634 const [HarmonyMiniCartDialog] = deps.map(dep => dep.default); 10635 return { 10636 listId: 'harmony.minicart', 10637 widgetsDefinition: () => [// modal 10638 ['minicartDialog', HarmonyMiniCartDialog, 'minicartDialog']] 10639 }; 10640 })); 10641} 10642 10643if (pdp || plp || cart || wishlist) { 10644 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() */ 2).then(__webpack_require__.bind(null, /*! harmony/product/HarmonyProductDetail */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/HarmonyProductDetail.js")), __webpack_require__.e(/*! import() */ 1).then(__webpack_require__.bind(null, /*! harmony/product/HarmonyAddToCartMixin */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/HarmonyAddToCartMixin.js")), __webpack_require__.e(/*! import() */ 5).then(__webpack_require__.bind(null, /*! harmony/product/HarmonyVariationSwatch */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/HarmonyVariationSwatch.js")), __webpack_require__.e(/*! import() */ 3).then(__webpack_require__.bind(null, /*! harmony/product/HarmonyProductImages */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/HarmonyProductImages.js")), __webpack_require__.e(/*! import() */ 7).then(__webpack_require__.bind(null, /*! harmony/product/ProductDescriptionItem */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/ProductDescriptionItem.js")), Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! harmony/wishlist/HarmonyAddToWishlistMixin */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/wishlist/HarmonyAddToWishlistMixin.js")), __webpack_require__.e(/*! import() */ 8).then(__webpack_require__.bind(null, /*! harmony/product/ProductSet */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/ProductSet.js")), __webpack_require__.e(/*! import() */ 6).then(__webpack_require__.bind(null, /*! harmony/product/NotifyMeForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/NotifyMeForm.js")), __webpack_require__.e(/*! import() */ 4).then(__webpack_require__.bind(null, /*! harmony/product/HarmonyProductTile */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/product/HarmonyProductTile.js"))]).then(deps => { 10645 const [HarmonyProductDetail, HarmonyAddToCartMixin, HarmonyVariationSwatch, HarmonyProductImages, ProductDescriptionItem, HarmonyAddToWishListMixin, ProductSet, NotifyMeForm, HarmonyProductTile] = deps.map(dep => dep.default); 10646 return { 10647 listId: 'harmony.product.widgets', 10648 widgetsDefinition: () => [['productDetail', HarmonyProductDetail, 'productDetail'], ['productDetail', HarmonyAddToCartMixin, 'productDetail'], ['productDetail', HarmonyAddToWishListMixin, 'productDetail'], ['productSet', ProductSet], ['variationSwatch', HarmonyVariationSwatch, 'colorSwatch'], ['productImages', HarmonyProductImages, 'productImages'], ['productDescriptionItem', ProductDescriptionItem], ['productTile', HarmonyProductTile, 'productTile'], ['productTile', harmony_wishlist_HarmonyAddToWishlistMixin__WEBPACK_IMPORTED_MODULE_45__["default"], 'productTile'], ['notifyMeForm', NotifyMeForm, 'ajaxform']] 10649 }; 10650 })); 10651} 10652 10653if (cart) { 10654 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | harmony.cart */ "harmony.cart").then(__webpack_require__.bind(null, /*! harmony/cart/HarmonyCartMgr */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/cart/HarmonyCartMgr.js")), __webpack_require__.e(/*! import() | harmony.cart */ "harmony.cart").then(__webpack_require__.bind(null, /*! harmony/forms/HarmonyCouponForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyCouponForm.js"))]).then(deps => { 10655 const [HarmonyCartMgr, HarmonyCouponForm] = deps.map(dep => dep.default); 10656 return { 10657 listId: 'harmony.cart', 10658 widgetsDefinition: () => [['cartMgr', HarmonyCartMgr, 'cartMgr'], ['cartMgr', widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_3__["default"], 'cartMgr'], ['couponform', HarmonyCouponForm, 'couponform']] 10659 }; 10660 })); 10661} 10662 10663if (account) { 10664 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
10664ise.all([__webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/global/HarmonyTabs */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/global/HarmonyTabs.js")), 10665 /* eslint-disable */ 10666 __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/account/VerificationCodeForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js")), 10667 /** eslint-enable */ 10668 Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/ajax/LoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/forms/ajax/HarmonyLoginForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyLoginForm.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/account/HarmonyPaymentsList */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/HarmonyPaymentsList.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! widgets/checkout/InputCreditCardNumber */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/InputCreditCardNumber.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/account/PaymentForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/PaymentForm.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! authorize/payment/AuthorizeNetPaymentMixin */ "./cartridges/int_authorize_net/cartridge/client/default/js/widgets/payment/AuthorizeNetPaymentMixin.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! authorize/account/AuthorizeNetPaymentForm */ "./cartridges/int_authorize_net/cartridge/client/default/js/widgets/account/AuthorizeNetPaymentForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! harmony/forms/HarmonyAddressBookForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyAddressBookForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/ListAccessibility */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! harmony/account/HarmonyAddressList */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/HarmonyAddressList.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyInputCreditCardNumber */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyInputCreditCardNumber.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/RadioSelector */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/RadioSelector.js"))]).then(deps => { 10669 const [HarmonyTabs, VerificationCodeForm, LoginForm, HarmonyLoginForm, HarmonyPaymentsList, InputCreditCardNumber, PaymentForm, AuthorizeNetPaymentMixin, AuthorizeNetPaymentForm, HarmonyAddressBookForm, ListAccessibility, HarmonyAddressList, HarmonyInputCreditCardNumber, RadioSelector] = deps.map(dep => dep.default); 10670 return { 10671 listId: 'harmony.account', 10672 widgetsDefinition: () => [['harmonyTabs', HarmonyTabs, 'tabs'], ['verificationCodeForm', VerificationCodeForm, 'ajaxform'], ['verificationCodeForm', ListAccessibility, 'verificationCodeForm'], ['loginForm', LoginForm, 'ajaxform'], ['harmonyLoginForm', HarmonyLoginForm, 'loginForm'], ['harmonyLoginForm', ListAccessibility, 'harmonyLoginForm'], ['profileDetailsForm', harmony_account_ProfileDetailsForm__WEBPACK_IMPORTED_MODULE_35__["default"], 'ajaxform'], ['paymentList', HarmonyPaymentsList, 'paymentList'], ['inputCreditCardNumber', InputCreditCardNumber, 'basicInput'], ['inputCreditCardNumber', HarmonyInputCreditCardNumber, 'inputCreditCardNumber'], ['paymentsList', HarmonyPaymentsList, 'paymentsList'], ['paymentForm', PaymentForm, 'ajaxform'], ['authorizeNetPaymentForm', AuthorizeNetPaymentMixin, 'paymentForm'], ['authorizeNetPaymentForm', AuthorizeNetPaymentForm, 'authorizeNetPaymentForm'], ['harmonyAddressBookForm', HarmonyAddressBookForm, 'addressBookForm'], ['addressList', HarmonyAddressList, 'addressList'], ['radioSelector', RadioSelector, 'inputRadio']] 10673 }; 10674 })); 10675} 10676 10677if (checkout) { 10678 // @ts-ignore 10679 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
10679ise.all([__webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/account/VerificationCodeForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyAddressCheckoutForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyAddressCheckoutForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyCheckoutMgr */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyCheckoutMgr.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyShippingFrom */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyShippingFrom.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/ajax/LoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/forms/ajax/HarmonyLoginForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyLoginForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyPaymentAccordion */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyPaymentAccordion.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyBillingForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyBillingForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyPaymentAccordionItemCREDIT_CARD */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyPaymentAccordionItemCREDIT_CARD.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! authorize/payment/AuthorizeNetPaymentMixin */ "./cartridges/int_authorize_net/cartridge/client/default/js/widgets/payment/AuthorizeNetPaymentMixin.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! authorize/checkout/AuthorizeNetBillingForm */ "./cartridges/int_authorize_net/cartridge/client/default/js/widgets/checkout/AuthorizeNetBillingForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! shipCompliant/checkout/ShipCompliantCheckoutMgrMixin */ "./cartridges/int_ship_compliant/cartridge/client/default/js/widgets/checkout/ShipCompliantCheckoutMgrMixin.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! shipCompliant/checkout/ShipCompliantShippingFormMixin */ "./cartridges/int_ship_compliant/cartridge/client/default/js/widgets/checkout/ShipCompliantShippingFormMixin.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/ListAccessibility */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! harmony/checkout/HarmonyInputCreditCardNumber */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/checkout/HarmonyInputCreditCardNumber.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! harmony/forms/InputFutureShippingDate */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/InputFutureShippingDate.js")), __webpack_require__.e(/*! import() | harmony.cart */ "harmony.cart").then(__webpack_require__.bind(null, /*! harmony/forms/HarmonyCouponForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/HarmonyCouponForm.js")), Promise.all(/*! import() | cart.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("cart.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/CouponForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/CouponForm.js")), Promise.all(/*! import() | cart.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("cart.widgets")]).then(__webpack_require__.bind(null, /*! widgets/cart/PromoCodeDisclosure */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/cart/PromoCodeDisclosure.js"))]).then(deps => { 10680 const [VerificationCodeForm, HarmonyAddressCheckoutForm, HarmonyCheckoutMgr, HarmonyShippingFrom, LoginForm, HarmonyLoginForm, HarmonyPaymentAccordion, HarmonyBillingForm, HarmonyPaymentAccordionItemCREDITCARD, AuthorizeNetPaymentMixin, AuthorizeNetBillingForm, ShipCompliantCheckoutMgrMixin, ShipCompliantShippingFormMixin, ListAccessibility, HarmonyInputCreditCardNumber, InputFutureShippingDate, HarmonyCouponForm, CouponForm, PromoCodeDisclosure] = deps.map(dep => dep.default); 10681 return { 10682 listId: 'harmony.checkout', 10683 widgetsDefinition: () => [['verificationCodeForm', VerificationCodeForm, 'ajaxform'], ['verificationCodeForm', ListAccessibility, 'verificationCodeForm'], ['addressCheckoutForm', HarmonyAddressCheckoutForm, 'addressCheckoutForm'], ['checkoutMgr', HarmonyCheckoutMgr, 'checkoutMgr'], ['shippingForm', HarmonyShippingFrom, 'shippingForm'], ['harmonyLoginForm', HarmonyLoginForm, 'checkoutLoginForm'], ['harmonyLoginForm', ListAccessibility, 'harmonyLoginForm'], ['loginForm', LoginForm, 'ajaxform'], ['paymentAccordion', HarmonyPaymentAccordion, 'paymentAccordion'], ['billingForm', HarmonyBillingForm, 'billingForm'], ['paymentAccordionItemCREDIT_CARD', HarmonyPaymentAccordionItemCREDITCARD, 'paymentAccordionItemCREDIT_CARD'], ['authorizeNetBillingForm', AuthorizeNetPaymentMixin, 'billingForm'], ['authorizeNetBillingForm', AuthorizeNetBillingForm, 'authorizeNetBillingForm'], ['checkoutMgr', ShipCompliantCheckoutMgrMixin, 'checkoutMgr'], ['shippingForm', ShipCompliantShippingFormMixin, 'shippingForm'], ['inputCreditCardNumber', HarmonyInputCreditCardNumber, 'inputCreditCardNumber'], ['inputFutureShippingDate', InputFutureShippingDate, 'inputText'], ['couponform', CouponForm, 'ajaxform'], ['couponform', HarmonyCouponForm, 'couponform'], ['promoCodeDisclosure', PromoCodeDisclosure, 'disclosure']] 10684 }; 10685 })); 10686} 10687 10688if (wishlist) { 10689 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
10689ise.all([__webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! widgets/wishlist/WishlistMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/WishlistMgr.js")), __webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! widgets/wishlist/WishListItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/WishListItem.js")), __webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! harmony/wishlist/HarmonyWishListItem */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/wishlist/HarmonyWishListItem.js")), __webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! harmony/wishlist/HarmonyWishlistMgr */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/wishlist/HarmonyWishlistMgr.js"))]).then(deps => { 10690 const [WishlistMgr, WishListItem, HarmonyWishlistItem, HarmonyWishlistMgr] = deps.map(dep => dep.default); 10691 return { 10692 listId: 'wishlist.widgets', 10693 widgetsDefinition: () => [['wishlistMgr', WishlistMgr], ['wishListItem', WishListItem], ['wishListItem', HarmonyWishlistItem, 'wishListItem'], ['wishListItem', harmony_product_QuickAddToCart__WEBPACK_IMPORTED_MODULE_48__["default"], 'wishListItem'], ['wishlistMgr', HarmonyWishlistMgr, 'wishlistMgr']] 10694 }; 10695 })); 10696} 10697 10698if (orderconfirmation) { 10699 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | orderconfirmation.widgets */ "orderconfirmation.widgets").then(__webpack_require__.bind(null, /*! harmony/forms/ajax/ConfirmationCreateAccount */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/ConfirmationCreateAccount.js")), __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/account/VerificationCodeForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/ListAccessibility */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js"))]).then(deps => { 10700 const [ConfirmationCreateAccount, VerificationCodeForm, ListAccessibility] = deps.map(dep => dep.default); 10701 return { 10702 listId: 'orderconfirmation.widgets', 10703 widgetsDefinition: () => [['confirmationCreateAccount', ConfirmationCreateAccount, 'ajaxform'], ['verificationCodeForm', VerificationCodeForm, 'ajaxform'], ['verificationCodeForm', ListAccessibility, 'verificationCodeForm']] 10704 }; 10705 })); 10706} 10707 10708if (clp) { 10709 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/ajax/LoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js")), __webpack_require__.e(/*! import() | harmony.checkout */ "harmony.checkout").then(__webpack_require__.bind(null, /*! harmony/forms/ajax/HarmonyLoginForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/forms/ajax/HarmonyLoginForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/ListAccessibility */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js")), 10710 /* eslint-disable */ 10711 __webpack_require__.e(/*! import() | harmony.account */ "harmony.account").then(__webpack_require__.bind(null, /*! harmony/account/VerificationCodeForm */ "./cartridges/app_harmony/cartridge/client/default/js/widgets/account/VerificationCodeForm.js"))]).then(deps => { 10712 const [LoginForm, HarmonyLoginForm, ListAccessibility, VerificationCodeForm] = deps.map(dep => dep.default); 10713 return { 10714 listId: 'clp.widgets', 10715 widgetsDefinition: () => [['loginForm', LoginForm, 'ajaxform'], ['harmonyLoginForm', HarmonyLoginForm, 'loginForm'], ['harmonyLoginForm', ListAccessibility, 'harmonyLoginForm'], ['verificationCodeForm', VerificationCodeForm, 'ajaxform'], ['verificationCodeForm', ListAccessibility, 'verificationCodeForm']] 10716 }; 10717 })); 10718} 10719 10720/***/ }), 10721
10722/***/ "./cartridges/app_harmony/cartridge/client/default/js/widgets/wishlist/HarmonyAddToWishlistMixin.js": 10723/*!**********************************************************************************************************!*\ 10724 !*** ./cartridges/app_harmony/cartridge/client/default/js/widgets/wishlist/HarmonyAddToWishlistMixin.js ***! 10725 \**********************************************************************************************************/ 10726/*! exports provided: default */ 10727/***/ (function(module, __webpack_exports__, __webpack_require__) { 10728 10729"use strict"; 10730__webpack_require__.r(__webpack_exports__); 10731/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 10732/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 10733/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 10734 10735 10736/** 10737 * @description Extended HarmonyAddToWishlistMixin implementation. 10738 * @param {AddToWishlistMixin} AddToWishlistMixin Base widget for extending 10739 * @returns {typeof HarmonyAddToWishlistMixin} Harmony Add to Wishlist Mixin class 10740 */ 10741 10742/* harmony default export */ __webpack_exports__["default"] = (function (AddToWishlistMixin) { 10743 class HarmonyAddToWishlistMixin extends AddToWishlistMixin { 10744 init() { 10745 super.init(); 10746 this.pid = this.prefs().masterPid || this.prefs().pid; // set add to wishlist state on load 10747 10748 this.getById(this.prefs().addToWishlistBtn, 10749 /** @type {button} */ 10750 button => { 10751 this.addedToWishList = button.prefs().addedToWithlist; 10752 }); 10753 this.eventBus().on('update.wishlist.state', 'updateWishlistState'); 10754 } 10755 10756 prefs() { 10757 return { 10758 textRemovedFromWishlist: '', 10759 activeClasses: 'm-added', 10760 ...super.prefs() 10761 }; 10762 } 10763 /** 10764 * @description Show message. The function was overloaded. It is empty, because the message isn't used. 10765 * @param {string} msg Message 10766 * @param {boolean} error Error flag 10767 */ 10768 10769 10770 showWishlistMessage() {} 10771 /** 10772 * @description Hide message. The function was overloaded. It is empty, because the message isn't used. 10773 * @returns {void} 10774 */ 10775 10776 10777 hideWishlistMessage() {} 10778 /** 10779 * @param {object} button - button 10780 * @description Add to Wishlist 10781 * @returns {void} 10782 */ 10783 10784 10785 addToWishlist(button) { 10786 const addTWishlistBtnPrefs = button.prefs(); 10787 button.busy(); 10788 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(addTWishlistBtnPrefs.addToWishlistUrl, { 10789 pid: this.pid || '', 10790 qty: this.selectedQuantity || '' 10791 }).then(response => { 10792 this.handleSuccess(response, button); 10793 this.eventBus().emit('product.added.to.wishlist', this.config.analytics); 10794 }).finally(() => { 10795 button.unbusy(); 10796 }).catch(() => { 10797 this.showWishlistMessage(this.prefs().textNetworkError, true); 10798 }); 10799 this.eventBus().emit('loader.start', promise); 10800 } 10801 /** 10802 * @param {object} button - button 10803 * @description Remove from Wishlist 10804 * @returns {void} 10805 */ 10806 10807 10808 removeFromWishlist(button) { 10809 const addTWishlistBtnPrefs = button.prefs(); 10810 button.busy(); 10811 const promise = Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["getJSONByUrl"])(addTWishlistBtnPrefs.removeFromWishlistUrl, { 10812 pid: this.pid || '' 10813 }).then(response => { 10814 this.handleRemoveSuccess(response, button); 10815 this.eventBus().emit('product.removed.from.wishlist', this.config.analytics); 10816 }).finally(() => { 10817 button.unbusy(); 10818 }).catch(() => { 10819 this.showWishlistMessage(this.prefs().textNetworkError, true); 10820 }); 10821 this.eventBus().emit('loader.start', promise); 10822 } 10823 /**
10824 * @description Handle success response 10825 * @param {object} response - Response object 10826 * @param {object} button - button 10827 * @returns {void} 10828 */ 10829 10830 10831 handleSuccess(response, button) { 10832 const addToWishlistBtn = button || this.getById(this.prefs().addToWishlistBtn, 10833 /** @type {button} */ 10834 element => element); 10835 10836 if (!addToWishlistBtn) { 10837 return; 10838 } 10839 10840 if (response.success) { 10841 this.addedToWishList = true; 10842 addToWishlistBtn.activate().press(); 10843 10844 if (!this.addToWishlistHideTexts) { 10845 addToWishlistBtn.setText(this.prefs().textAddedToWishlist); 10846 } 10847 10848 const accessibilityAlert = this.prefs().accessibilityAlerts.addedtowishlist; // TODO add event description 10849 10850 this.eventBus().emit('alert.show', { 10851 accessibilityAlert 10852 }); 10853 } 10854 10855 if (!this.addToWishlistHideTexts) { 10856 this.showWishlistMessage(response.msg, response.error); 10857 } 10858 } 10859 /** 10860 * @description Handle remove success response 10861 * @param {object} response - Response object 10862 * @param {object} button - button 10863 * @returns {void} 10864 */ 10865 10866 10867 handleRemoveSuccess(response, button) { 10868 const addToWishlistBtn = button || this.getById(this.prefs().addToWishlistBtn, 10869 /** @type {button} */ 10870 element => element); 10871 10872 if (!addToWishlistBtn) { 10873 return; 10874 } 10875 10876 if (response.success) { 10877 this.addedToWishList = false; 10878 addToWishlistBtn.deactivate().unpress(); 10879 10880 if (!this.addToWishlistHideTexts) { 10881 addToWishlistBtn.setText(this.prefs().textRemovedFromWishlist); 10882 } 10883 10884 const accessibilityAlert = this.prefs().accessibilityAlerts.removedfromwishlist; // TODO add event description 10885 10886 this.eventBus().emit('alert.show', { 10887 accessibilityAlert 10888 }); 10889 10890 if (response.isEmpty) { 10891 this.eventBus().emit('wishlist.empty'); 10892 } 10893 } 10894 10895 if (!this.addToWishlistHideTexts) { 10896 this.showWishlistMessage(response.msg, response.error); 10897 } 10898 } 10899 /** 10900 * @description Method to revert initial state for `Add to Wishlist` button and messages 10901 * Usually used when re-rendering PDP/QuickView after variation change 10902 * @param {object} product - Product object 10903 * @returns {void} 10904 */ 10905 10906 10907 renderWishList(product) { 10908 var _product$master; 10909 10910 super.renderWishList(product); 10911 const masterPid = product === null || product === void 0 ? void 0 : (_product$master = product.master) === null || _product$master === void 0 ? void 0 : _product$master.pid; 10912 10913 if (masterPid) { 10914 this.pid = masterPid; 10915 } 10916 } 10917 /** 10918 * @param {object} button - button 10919 * @description Process Wishlist 10920 * @returns {void} 10921 */ 10922 10923 10924 processWishlist(button) { 10925 if (this.addedToWishList) { 10926 this.removeFromWishlist(button); 10927 } else { 10928 this.addToWishlist(button); 10929 } 10930 } 10931 /** 10932 * @description Update wishlist state according to incloming state 10933 * @param {boolean} isAdded - is added to wishlist 10934 */ 10935 10936 10937 updateWishlistState(isAdded) { 10938 this.getById(this.prefs().addToWishlistBtn, 10939 /** @type {button} */ 10940 button => { 10941 if (isAdded) { 10942 button.activate().press(); 10943 this.addedToWishList = true; 10944 } else { 10945 button.deactivate().unpress(); 10946 this.addedToWishList = false; 10947 } 10948 }); 10949 } 10950 10951 } 10952 10953 return HarmonyAddToWishlistMixin; 10954}); 10955 10956/***/ }), 10957
10958/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/Widget.js": 10959/*!*****************************************************************************************!*\ 10960 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/Widget.js ***! 10961 \*****************************************************************************************/ 10962/*! exports provided: default */ 10963/***/ (function(module, __webpack_exports__, __webpack_require__) { 10964 10965"use strict"; 10966__webpack_require__.r(__webpack_exports__); 10967/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 10968/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 10969/* harmony import */ var _toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 10970/* harmony import */ var widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/RefElement */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/RefElement.js"); 10971/* harmony import */ var widgets_toolbox_EventBusWrapper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/EventBusWrapper */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/EventBusWrapper.js"); 10972/* harmony import */ var _widgetsMgr__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./widgetsMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js"); 10973 10974 10975/* eslint-disable consistent-return */ 10976 10977/* eslint-disable no-underscore-dangle */ 10978 10979 10980 10981 10982const templateProp = '@@@_template'; 10983 10984const noop = () => {}; 10985/** 10986 * @description save template during webpack HMR 10987 * @param {RefElement} renderTo rendering element 10988 * @param {string} template template string 10989 */ 10990 10991 10992function saveTemplateForHotReload(renderTo, template) { 10993 if (true) { 10994 // save template in element for hot reload 10995 const tmpEl = renderTo.get(); 10996 10997 if (tmpEl) { 10998 tmpEl[templateProp] = template; 10999 } 11000 } 11001} 11002/** 11003 * @description Find modified element 11004 * @param {ChildNode} nodeOrig element 11005 * @param {number[]} routeOrig path to element 11006 * @returns {ChildNode|false} modified element or false if not found 11007 */ 11008 11009 11010function getFromRoute(nodeOrig, routeOrig) { 11011 let node = nodeOrig; 11012 const route = routeOrig.slice(); 11013 11014 while (route.length > 0) { 11015 if (node && node.childNodes) { 11016 const c = route.splice(0, 1)[0]; 11017 node = node.childNodes[c]; 11018 } else { 11019 return false; 11020 } 11021 } 11022 11023 return node; 11024} 11025/** 11026 * @typedef Diff 11027 * @property {string} name 11028 * @property {string} action 11029 * @property {string} value 11030 * @property {string} oldValue 11031 * @property {string} newValue 11032 * @property {number[]} route 11033 */ 11034 11035/** 11036 * @typedef Info 11037 * @property {HTMLElement} node 11038 * @property {Diff} diff 11039 */ 11040 11041/** 11042 * @description Callback assigned on diff-dom post hook after applying changes 11043 * @param {string} action diff-dom action happens with DOM node 11044 * @param {HTMLElement} node changed element 11045 * @param {Info} info diff-dom changes object 11046 * @returns {() => void} callback 11047 */ 11048 11049 11050function getDelayedCallback(action, node, info) { 11051 return () => { 11052 if (action === 'modifyAttribute') { 11053 _widgetsMgr__WEBPACK_IMPORTED_MODULE_4__["default"].removeAttribute(node, info.diff); 11054 _widgetsMgr__WEBPACK_IMPORTED_MODULE_4__["default"].addAttribute(node, info.diff); 11055 } else if (action === 'removeAttribute') { 11056 _widgetsMgr__WEBPACK_IMPORTED_MODULE_4__["default"].removeAttribute(node, info.diff); 11057 } else if (action === 'addAttribute') { 11058 _widgetsMgr__WEBPACK_IMPORTED_MODULE_4__["default"].addAttribute(node, info.diff); 11059 } else { 11060 throw new Error(`Unknown action "${action}"`); 11061 } 11062 }; 11063} 11064/** Core component to extend for each widget */ 11065 11066/** 11067 * @category widgets 11068 * @subcategory framework 11069 */ 11070 11071 11072class Widget { 11073 /** 11074 * @description Creates self RefElement.js wrapper, add initial states, configuration. 11075 * @param {HTMLElement} el DOM element 11076 * @param {{[x: string]: object|string|number|boolean|null|undefined}} config widget config 11077 */ 11078 constructor(el, config = {}) { 11079 /**
11080 * @description RefElements related to current widget 11081 * @type {{[key : string] : RefElement} | undefined} 11082 */ 11083 this.refs = Object.create(null); 11084 11085 if (this.refs) { 11086 // for type check 11087 this.refs.self = new widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_2__["RefElement"]([el]); 11088 } 11089 /** 11090 * @description config from data attributes 11091 * @type {{[x: string]: object|string|number|boolean|null|undefined}} 11092 */ 11093 11094 11095 this.config = config; 11096 /** 11097 * @description functions which executing during destructuring of widget 11098 * @type {Array<Function>|undefined} 11099 */ 11100 11101 this.disposables = undefined; 11102 /** 11103 * @description function assigned by WidgetsMgr after constructor call to 11104 * provide ability for parent widget listen child widget event 11105 * fired by method `this.emit()` 11106 * @type {(eventName: string, ...args: any) => void} 11107 */ 11108 11109 this.parentHandler = noop; 11110 11111 this.getConstructor = id => id; 11112 /** 11113 * @description children widgets 11114 * @type {Widget[]|undefined} 11115 */ 11116 11117 11118 this.items = []; 11119 11120 if (this.ref('self').attr('id')) { 11121 this.id = this.ref('self').attr('id'); 11122 } 11123 11124 if (!this.id && this.config.id) { 11125 this.id = this.config.id; 11126 } 11127 /** 11128 * @type {boolean} state explain widget is shown 11129 */ 11130 11131 11132 this.shown = !this.config.hidden && !this.ref('self').hasAttr('hidden'); 11133 11134 if (typeof this.config.passEvents === 'string') { 11135 if (true) { 11136 _toolbox_util__WEBPACK_IMPORTED_MODULE_1__["log"].warn('Usage of "data-pass-events" has been deprecated. Please take a look "data-forward-to-parent"'); 11137 } 11138 11139 this.config.passEvents.split(':').forEach(pair => { 11140 const [methodName, emitEvent] = pair.split('-'); 11141 const self = this; // @ts-ignore 11142 11143 this[methodName] = (...args) => { 11144 self.parentHandler(emitEvent, ...args); 11145 }; 11146 }); 11147 } 11148 11149 this.isRefreshingWidget = false; 11150 } 11151 11152 get length() { 11153 return 1; 11154 } 11155 /** 11156 * @description call class method provided in argument `name` with arguments `(classContext, value, ...args)` or 11157 * call `RefElement.data(name, value)` for wrapper widget DOM node to get or set data attributes 11158 * @param {string} name of class method or data-attribute 11159 * @param {any} [value] if class has method `name` - will be used as argument, otherwise will be used as `value` to set into data attribute `name` 11160 * @param {any} [args] if class has method `name` - will be used as argument, otherwise would not be used 11161 * @returns {any} 11162 * - execution result of the method specified as `name` argument 11163 * - if class has no method `name` - get or set data attribute `name` depending on provided or no `value` argument 11164 */ 11165 11166 11167 data(name, value, ...args) { 11168 /** 11169 * @type {Function} 11170 */ 11171 // @ts-ignore 11172 const classMethod = this[name]; 11173 11174 if (typeof classMethod === 'function') { 11175 return classMethod.call(this, value, ...args); 11176 } 11177 11178 return this.ref('self').data(name, value); 11179 } 11180 /** 11181 * @description call class method provided in argument `name` with arguments `...args` if method exists 11182 * 11183 * @param {string} name of class method 11184 * @param {any} [args] if class has method `name` - will be used as arguments 11185 * @returns {any} result of call (any) or undefined, if method not found 11186 */ 11187 11188 11189 callIfExists(name, ...args) { 11190 const classMethod = this[name]; 11191 11192 if (typeof classMethod === 'function') { 11193 return classMethod.call(this, ...args); 11194 } 11195 } 11196 /** 11197 * @description Emit widget event that will be listened by parrent handler with context of current widget 11198 * @param {string} eventName name of event 11199 * @param {...any} args argument to pass 11200 * @returns {void} 11201 */ 11202 11203 11204 emit(eventName, ...args) { 11205 this.parentHandler(eventName, this, ...args); 11206 } 11207 /** 11208 * @description Emit widget event that will be listened by parrent handler without context of current widget 11209 * @param {string} eventName name of event 11210 * @param {...any} args argument to pass 11211 * @returns {void} 11212 */ 11213 11214 11215 emitWithoutContext(eventName, ...args) { 11216 this.parentHandler(eventName, ...args); 11217 } 11218 /** 11219 * @description In case if you need to emit/subscribe global event you may get an event bus with this method. 11220 * @description Get widget's EventBusWrapper instance 11221 * @returns {EventBusWrapper} Instance of EventBusWrapper 11222 */ 11223 11224 11225 eventBus() { 11226 if (!this._eventBus) { 11227 this._eventBus = new widgets_toolbox_EventBusWrapper__WEBPACK_IMPORTED_MODULE_3__["default"](this); 11228 this.onDestroy(() => { 11229 this._eventBus = undefined; 11230 }); 11231 } 11232 11233 return this._eventBus; 11234 } 11235 /** 11236 * @description Merge data-attribute properties to default widget properties (defined in widget javascript file, or extended from parent widget) 11237 * and returns widget configuration map 11238 * @returns {{[key: string]: any}} config widget config 11239 */ 11240 11241 11242 prefs() { 11243 return { 11244 /** is component hidden */ 11245 hidden: false, 11246 11247 /** class of component during loading */ 11248 classesLoading: 'm-widget-loading', 11249 11250 /** class of component once component loaded and inited */ 11251 11252 /** id of component */ 11253 id: '', 11254 // configs form data attributes 11255 ...this.config 11256 }; 11257 } 11258 /** 11259 * @description This method executed in the end of [Widgets Application Lifecycle,]{@link tutorial-WidgetsApplicationLifecycle.html} 11260 * in order to add business logic before initialization is finished. 11261 */ 11262 11263 11264 init() { 11265 this.ref('self').removeClass(this.prefs().classesLoading); 11266 } 11267 /** 11268 * @description Get child refElement by key from prefs() or id 11269 * @param {string} name Id of RefElement or preference key that contains id 11270 * @returns {RefElement} found RefElement instance or empty RefElement if doesn't exist 11271 * @protected 11272 */ 11273 11274 11275 ref(name) { 11276 const prefsName = this.prefs(); 11277 const prefsValue = prefsName[name]; 11278 let ref; 11279 11280 if (prefsValue) { 11281 ref = this.refs && this.refs[prefsValue]; 11282 11283 if (ref) { 11284 return ref; 11285 } 11286 } 11287 11288 ref = this.refs && this.refs[name]; 11289 11290 if (ref) { 11291 return ref; 11292 } 11293 11294 if (true) { 11295 _toolbox_util__WEBPACK_IMPORTED_MODULE_1__["log"].warn(`Reference "${name}" is not found in widget "${this.constructor.name}" `, this); 11296 } 11297 11298 return new widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_2__["RefElement"]([]); 11299 } 11300 /** 11301 * @description search `refElement` inside of widget by `name` 11302 * - if `cb` exist - run `cb` with found `refElement` as argument 11303 * - otherwise return existing state 11304 * 11305 * @param {string}
11305 name Id of widget/refElement or preference that contain id of widget/refElement 11306 * @param {(arg: RefElement) => void} [cb] callback will be executed if element found 11307 * @returns {boolean} true if found `refElement` 11308 */ 11309 11310 11311 has(name, cb) { 11312 const ref = this.refs && this.refs[name]; 11313 11314 if (ref) { 11315 if (cb) { 11316 cb(ref); 11317 } 11318 11319 return true; 11320 } 11321 11322 return false; 11323 } 11324 /** 11325 * @description Destroys widgets. Only for internal usage 11326 * 11327 * @protected 11328 */ 11329 11330 11331 destroy() { 11332 if (this.disposables) { 11333 this.disposables.forEach(disposable => disposable()); 11334 this.disposables = undefined; 11335 } 11336 11337 if (this.items && this.items.length) { 11338 this.items.forEach(item => { 11339 if (item && typeof item.destroy === 'function') { 11340 item.destroy(); 11341 } 11342 }); 11343 } 11344 11345 this.items = undefined; 11346 this.refs = undefined; 11347 } 11348 /** 11349 * @description Attach an event handler function for one or more events to the selected elements. 11350 * @param {string} eventName ex: 'click', 'change' 11351 * @param {(this: this, element: HTMLElement, event: Event) => any} cb callback 11352 * @param {string|EventTarget} selector CSS selector 11353 * @param {boolean} passive is handler passive? 11354 * @returns {(() => void)[]} dispose functions for each elemenet event handler 11355 * 11356 * @protected 11357 */ 11358 11359 11360 ev(eventName, cb, selector = '', passive = true) { 11361 /** 11362 * @type EventTarget[] 11363 */ 11364 var elements = []; 11365 var self = this; 11366 11367 if (selector instanceof Element || selector === window) { 11368 elements = [selector]; 11369 } else if (typeof selector === 'string' && this.refs && this.refs.self) { 11370 const el = this.refs.self.get(); 11371 11372 if (el) { 11373 elements = Array.from(el.querySelectorAll(selector)); 11374 } 11375 } else if (this.refs && this.refs.self) { 11376 const el = this.refs.self.get(); 11377 11378 if (el) { 11379 elements = [el]; 11380 } 11381 } 11382 11383 return elements.map(element => { 11384 // @ts-ignore 11385 let fn = function fn(...args) { 11386 // @ts-ignore 11387 return cb.apply(self, [this, ...args]); 11388 }; 11389 11390 element.addEventListener(eventName, fn, passive ? { 11391 passive: true 11392 } : { 11393 passive: false 11394 }); 11395 11396 const dispose = () => { 11397 if (fn) { 11398 element.removeEventListener(eventName, fn); // @ts-ignore 11399 11400 fn = undefined; 11401 } 11402 }; 11403 11404 this.onDestroy(dispose); 11405 dispose.eventName = eventName; 11406 return dispose; 11407 }); 11408 } 11409 /** 11410 * @description Assign function to be executed during widget destructuring 11411 * @param {Function} fn function to be executed during destroy 11412 * @returns {Function} called function 11413 */ 11414 11415 11416 onDestroy(fn) { 11417 if (!this.disposables) { 11418 this.disposables = []; 11419 } 11420 11421 this.disposables.push(fn); 11422 return fn; 11423 } 11424 /** 11425 * @description executed when widget is re-rendered 11426 */ 11427 11428 11429 onRefresh() { 11430 // executed when widget is re-rendered 11431 this.shown = !this.config.hidden && !this.ref('self').hasAttr('hidden'); 11432 11433 if (this.ref('self').attr('id')) { 11434 this.id = this.ref('self').attr('id'); 11435 } else if (this.ref('self').data('id')) { 11436 this.id = this.ref('self').data('id'); 11437 } 11438 } 11439 /** 11440 * @description Search for child component instance and execute callback with this instance as argument 11441 * @template T 11442 * @param {string} id of component 11443 * @param {(args0: any) => T} cb callback with widget 11444 * @returns {T|undefined} callback result if element found, otherwise undefined 11445 */ 11446 11447 11448 getById(id, cb) { 11449 if (id && this.items && this.items.length) { 11450 for (var c = 0; c < this.items.length; c += 1) { 11451 const item = this.items[c]; 11452 11453 if (item && item.id === id) { 11454 return cb.call(this, item); 11455 } 11456 } 11457 } 11458 11459 if (true) { 11460 _toolbox_util__WEBPACK_IMPORTED_MODULE_1__["log"].warn(`Widget with id "${id}" is not found in children of "${this.constructor.name}" `, this); 11461 } 11462 } 11463 /** 11464 * Travels over nearest/next level child components 11465 * 11466 * @template T 11467 * @param {(args0: any) => T} fn callback 11468 * @returns {T[]} arrays of callback results 11469 */ 11470 11471 11472 eachChild(fn) { 11473 if (this.items && this.items.length) { 11474 return this.items.map(item => { 11475 return fn(item); 11476 }); 11477 } 11478 11479 return []; 11480 } 11481 /** 11482 * @description Hide widget 11483 * @returns {this} current instance for chaining 11484 */ 11485 11486 11487 hide() { 11488 if (this.shown) { 11489 this.ref('self').hide(); 11490 this.shown = false;
11491 } 11492 11493 return this; 11494 } 11495 /** 11496 * @description Show widget 11497 * @returns {this} current instance for chaining 11498 */ 11499 11500 11501 show() { 11502 if (!this.shown) { 11503 this.ref('self').show(); 11504 this.shown = true; 11505 } 11506 11507 return this; 11508 } 11509 /** 11510 * @description Show or hide widget element 11511 * @param {boolean} [display] Use true to show the element or false to hide it. 11512 * @returns {this} current instance for chaining 11513 */ 11514 11515 11516 toggle(display) { 11517 const state = typeof display !== 'undefined' ? display : !this.shown; 11518 this[state ? 'show' : 'hide'](); 11519 return this; 11520 } 11521 /** 11522 * @description Returns whether the widget is hidden 11523 * @returns {boolean} Hidden flag 11524 */ 11525 11526 11527 isHidden() { 11528 return !this.shown; 11529 } 11530 /** 11531 * @description Returns whether the widget is shown 11532 * @returns {boolean} Shown flag 11533 */ 11534 11535 11536 isShown() { 11537 return this.shown; 11538 } 11539 /** 11540 * @description This method provides ability to dynamically render HTML for widgets. 11541 * @param {string} templateRefId id of template 11542 * @param {object} data data to render 11543 * @param {RefElement} [renderTo] render into element 11544 * @param {string} [strToRender] pre-rendered template 11545 * @returns {Promise<any>} resolved if rendered or rejected if no found template promise 11546 * 11547 * @protected 11548 */ 11549 11550 11551 render(templateRefId = 'template', data = {}, renderTo = this.ref('self'), strToRender = '') { 11552 return __webpack_require__.e(/*! import() | dynamic-render */ "vendors~dynamic-render").then(__webpack_require__.t.bind(null, /*! mustache */ "./node_modules/mustache/mustache.js", 7)).then(Mustache => { 11553 // eslint-disable-next-line complexity 11554 if (!this.cachedTemplates) { 11555 /** 11556 * @description Container to cache templates for rendering 11557 * @type {{[x: string]: string|undefined}} 11558 */ 11559 this.cachedTemplates = {}; 11560 } 11561 11562 let template = this.cachedTemplates && this.cachedTemplates[templateRefId]; 11563 11564 if (!strToRender && !template) { 11565 const templateElement = this.ref(templateRefId).get(); 11566 11567 if (templateElement) { 11568 template = templateElement.textContent || templateElement.innerHTML; 11569 Mustache.parse(template); 11570 this.cachedTemplates[templateRefId] = template; 11571 saveTemplateForHotReload(renderTo, template); 11572 } else { 11573 // eslint-disable-next-line no-lonely-if 11574 if (true) { 11575 const tmpEl = renderTo.get(); 11576 11577 if (tmpEl && tmpEl[templateProp]) { 11578 template = tmpEl[templateProp]; 11579 } else { 11580 _toolbox_util__WEBPACK_IMPORTED_MODULE_1__["log"].error(`Unable find template ${templateRefId}`, this); 11581 return Promise.reject(new Error(`Unable find template ${templateRefId}`)); 11582 } 11583 11584 _toolbox_util__WEBPACK_IMPORTED_MODULE_1__["log"].error(`Unable find template ${templateRefId}`, this); 11585 return Promise.reject(new Error(`Unable find template ${templateRefId}`)); 11586 } 11587 } 11588 } 11589 11590 if (data) { 11591 data.lower = function () { 11592 return function (text, render) { 11593 return render(text).toLowerCase(); 11594 }; 11595 }; 11596 } 11597 11598 const renderedStr = strToRender || Mustache.render(template || '', data); 11599 const el = renderTo.get(); 11600 11601 if (el && el.parentNode) { 11602 // use new document to avoid loading images when diffing 11603 const newHTMLDocument = document.implementation.createHTMLDocument('diffDOM'); 11604 const diffNode = 11605 /** @type {HTMLElement} */ 11606 newHTMLDocument.createElement('div'); 11607 diffNode.innerHTML = renderedStr; 11608 return this.applyDiff(el, diffNode); 11609 } else { 11610 _toolbox_util__WEBPACK_IMPORTED_MODULE_1__["log"].error(`Missing el to render ${templateRefId}`, this); 11611 } 11612 11613 return Promise.resolve(); 11614 }); 11615 } 11616 /** 11617 * @description Find diff between `el` and `diffNode` and apply diff by `diff-dom` 11618 * @param {HTMLElement} el Element before change 11619 * @param {HTMLElement} diffNode Changed element to find diff 11620 * @returns {Promise} when diff founded 11621 */ 11622 11623 11624 applyDiff(el, diffNode) { 11625 return __webpack_require__.e(/*! import() | dynamic-render */ "vendors~dynamic-render").then(__webpack_require__.bind(null, /*! diff-dom/src/index */ "./node_modules/diff-dom/src/index.js")).then( 11626 /** @type {Function[]} */ 11627 ({ 11628 DiffDOM 11629 }) => { 11630 const delayedAttrModification = []; 11631 const dd = new DiffDOM({ 11632 // disableGroupRelocation: true, 11633 filterOuterDiff( 11634 /** @type {any} */ 11635 t1) { 11636 // @ts-ignore 11637 if (t1.attributes && t1.attributes['data-skip-render']) { 11638 // will not diff childNodes 11639 t1.innerDone = true; 11640 } 11641 }, 11642 11643 /** 11644 * @param {Info} info changes from diff-dom 11645 */ 11646 postDiffApply(info) { 11647 const { 11648 action, 11649 name 11650 } = info.diff; 11651 11652 if (['removeAttribute', 'addAttribute', 'modifyAttribute'].includes(action) && typeof name === 'string' && name.startsWith('data-') // handle only data attr changes 11653 && info.node instanceof HTMLElement) { 11654 const node = getFromRoute(el, info.diff.route); 11655 11656 if (node && node instanceof HTMLElement) { 11657 const delayedCallback = getDelayedCallback(action, node, info); // data-initialized should be executed at last point 11658 11659 delayedAttrModification[name === 'data-initialized' ? 'push' : 'unshift'](delayedCallback); 11660 } 11661 } 11662 11663 if ((action === 'addAttribute' || action === 'removeAttribute') && info.node.nodeName === 'INPUT' && name === 'checked') { 11664 const node = 11665 /** @type {HTMLInputElement} */ 11666 info.node; 11667 11668 if (node.type === 'checkbox' || node.type === 'radio') { 11669 node.checked = action === 'addAttribute'; 11670 } 11671 } 11672 } 11673 11674 }); // Normalize DOM tree before applying diff to prevent infinite loop 11675 // Infinite loop appear in case when few text nodes became one by one 11676 11677 el.normalize(); 11678 const diff = dd.diff(el, diffNode.firstElementChild); 11679 11680 if (diff && diff.length) { 11681 // console.log(diff); 11682 dd.apply(el, diff); 11683 } // report attr modification once app changes are applied 11684 11685 11686 delayedAttrModification.forEach(action => action()); 11687 11688 if (diff && diff.length) { 11689 this.eventBus().emit('rendering.applied'); 11690 } 11691 }); 11692 } 11693 11694} 11695 11696/* harmony default export */ __webpack_exports__["default"] = (Widget); 11697/** 11698 * @typedef IEvent 11699 * @property {string} [events.childID] 11700 * @property {Function} [events.childClass] 11701 * @property {string} events.eventName 11702 * @property {Function} events.fn 11703 * @property {Function} [cb] 11704 */ 11705 11706/***/ }), 11707
11708/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/_polyfills/getAttributeNames.js": 11709/*!***************************************************************************************************************!*\ 11710 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/_polyfills/getAttributeNames.js ***! 11711 \***************************************************************************************************************/ 11712/*! no static exports found */ 11713/***/ (function(module, exports) { 11714 11715/** 11716 * https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames#Polyfill 11717 * 11718 * Needed for MS Edge and IE 11719 */ 11720if (Element.prototype.getAttributeNames === undefined) { 11721 Element.prototype.getAttributeNames = function getAttributeNames() { 11722 const attributes = this.attributes; 11723 const length = attributes.length; 11724 const result = []; 11725 result.length = length; 11726 11727 for (var i = 0; i < length; i += 1) { 11728 result[i] = attributes[i].name; 11729 } 11730 11731 return result; 11732 }; 11733} 11734 11735/***/ }), 11736
11737/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/_polyfills/index.js": 11738/*!***************************************************************************************************!*\ 11739 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/_polyfills/index.js ***! 11740 \***************************************************************************************************/ 11741/*! no exports provided */ 11742/***/ (function(module, __webpack_exports__, __webpack_require__) { 11743 11744"use strict"; 11745__webpack_require__.r(__webpack_exports__); 11746/* harmony import */ var _getAttributeNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getAttributeNames */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/_polyfills/getAttributeNames.js"); 11747/* harmony import */ var _getAttributeNames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_getAttributeNames__WEBPACK_IMPORTED_MODULE_0__); 11748// CLARIFY: get rid of smoothscroll-polyfill due to big size and not critical value 11749 // needed for MS Edge 11750 11751if (!('scrollBehavior' in document.documentElement.style)) { 11752 // needed for MS Edge 11753 setTimeout(() => { 11754 __webpack_require__.e(/*! import() | smoothscroll */ "vendors~smoothscroll").then(__webpack_require__.t.bind(null, /*! smoothscroll-polyfill */ "./node_modules/smoothscroll-polyfill/dist/smoothscroll.js", 7)).then(smoothscroll => { 11755 smoothscroll.default.polyfill(); 11756 }); 11757 }, 0); 11758} 11759 11760/***/ }), 11761
11762/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AjaxForm.js": 11763/*!*************************************************************************************************!*\ 11764 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AjaxForm.js ***! 11765 \*************************************************************************************************/ 11766/*! exports provided: default */ 11767/***/ (function(module, __webpack_exports__, __webpack_require__) { 11768 11769"use strict"; 11770__webpack_require__.r(__webpack_exports__); 11771/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 11772/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 11773/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 11774/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 11775/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 11776/* harmony import */ var widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/scroll */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js"); 11777/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 11778 11779 11780 11781 11782 11783/** 11784 * @typedef {ReturnType <typeof import('widgets/forms/BasicForm').default>} BasicForm 11785 * @typedef {ReturnType<typeof import('widgets/global/Button').default>} Button 11786 */ 11787 11788/** 11789 * @param {BasicForm} BasicForm Base widget for extending 11790 * @returns {typeof AjaxForm} Ajax Form class 11791 */ 11792 11793/* harmony default export */ __webpack_exports__["default"] = (function (BasicForm) { 11794 /** 11795 * @category widgets 11796 * @subcategory forms 11797 * @class AjaxForm 11798 * @augments BasicForm 11799 * @classdesc Represents AjaxForm component with next features: 11800 * 1. Allow submit and handle submit Form 11801 * 2. Allow handle server response 11802 * 3. Allow handle form errors (form level and field level) that comes from backend 11803 * AjaxForm widget should contain {@link Button} widgets that implement submit Form button. 11804 * Widget has next relationship: 11805 * * Handle Form submit using method {@link AjaxForm#handleSubmit} by event {@link Button#event:click} from {@link Button} widget. 11806 * @example <caption>Example of AjaxForm widget usage</caption> 11807 * <form 11808 * data-widget="ajaxform" 11809 * data-event-submit.prevent="handleSubmit" novalidate 11810 * action="${URLUtils.url('Account-SavePassword')}" method="POST 11811 * > 11812 * <div class="alert alert-danger" hidden="hidden" data-ref="errorMessageLabel"></div> 11813 * ... form fields 11814 * <input type="hidden" name="${pdict.csrf.tokenName}" value="${pdict.csrf.token}"/> 11815 * <div> 11816 * <button 11817 * type="submit" 11818 * name="save" 11819 * data-widget="button" 11820 * data-widget-event-click="handleSubmit" 11821 * data-event-click.prevent="handleClick" 11822 * data-id="submitButton" 11823 * > 11824 * ${Resource.msg('button.save','account',null)} 11825 * </button> 11826 * </div> 11827 * </form> 11828 * @property {string} data-widget - Widget name `ajaxform` 11829 * @property {string} data-event-submit - Event listener for form submission 11830 */ 11831 class AjaxForm extends BasicForm { 11832 /**
11833 * @description Handles submit Form 11834 * @returns {void|boolean} return bolean value if Form fields doen't valid 11835 */ 11836 handleSubmit() { 11837 if (this.isChildrenValid() && !this.submitting) { 11838 this.submitting = true; 11839 this.showProgressBar(); 11840 this.getById(this.prefs().submitButton, submitButton => submitButton.busy()); 11841 this.ref(this.prefs().errorMessageLabel).hide(); 11842 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_2__["submitFormJson"])(this.getFormUrl(), this.getFormFields(), this.ref('self').attr('method') === 'GET' ? 'GET' : 'POST').then(this.onSubmitted.bind(this)).catch(this.onError.bind(this)).finally(this.afterSubmission.bind(this)); 11843 } 11844 11845 return false; 11846 } 11847 /** 11848 * @description Handles server response 11849 * @emits AjaxForm#submit 11850 * @param {object} data Server JSON response once form submitted 11851 * @param {string} [data.success] - If form submission was success 11852 * @param {string} [data.redirectUrl] - if not empty - redirect to specified location should be executed 11853 * @param {boolean|string|string[]} [data.error] - error messages/message from server 11854 * @param {object[]} [data.fields] - form fields with errors 11855 * @returns {void} 11856 */ 11857 11858 11859 onSubmitted(data) { 11860 if (data.success && data.redirectUrl) { 11861 window.location.assign(data.redirectUrl); 11862 } else if (data.error) { 11863 if (data.redirectUrl) { 11864 window.location.assign(data.redirectUrl); 11865 } else { 11866 // @ts-ignore 11867 this.setError(Array.isArray(data.error) ? data.error.join('<br/>') : data.error); 11868 } 11869 } else if (data.fields) { 11870 Object.entries(data.fields).forEach(([name, errorMsg]) => { 11871 this.getById(name, input => { 11872 input.setError(errorMsg); 11873 }); 11874 }); 11875 } else { 11876 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_4__["timeout"])(() => { 11877 // lets hideProgress finishes first 11878 11879 /** 11880 * @description Event to submit AjaxForm 11881 * @event AjaxForm#submit 11882 */ 11883 this.emit('submit', data); 11884 this.eventBus().emit('submit', data); // This eventBus event required to emit 11885 // form submit action to perform callback action 11886 }); 11887 } 11888 } 11889 /** 11890 * @description Handles an error, which happens during request (for ex. 500 response) 11891 * @param {Error} e - error, which happend during request 11892 * @returns {void} 11893 */ 11894 11895 11896 onError(e) { 11897 this.setError(e.message || widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_2__["errorFallbackMessage"]); 11898 const errorElement = this.ref(this.prefs().errorMessageLabel).get(); 11899 11900 if (errorElement) { 11901 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_3__["scrollWindowTo"])(errorElement, true); 11902 } else { 11903 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_3__["scrollToTop"])(); 11904 } 11905 } 11906 /** 11907 * @description Changes Form state after submission 11908 * @returns {void} 11909 */ 11910 11911 11912 afterSubmission() { 11913 this.getById(this.prefs().submitButton, submitButton => submitButton.unbusy()); 11914 this.hideProgressBar(); 11915 this.submitting = false; 11916 } 11917 /** 11918 * @description Set Form or Form fields errors 11919 * @param {string} msg - Generic error message, if no custom message - show generic one 11920 * @param {boolean} [scrollToError] - defines using of scroll to error 11921 * @param {string} refElem - RefElement id 11922 * @returns {void} 11923 */ 11924 11925 11926 setError(msg, scrollToError = true, refElem = 'errorMessageLabel') { 11927 const errorMessageLabel = this.ref(refElem).setText(msg || '').show(); 11928 11929 if (!scrollToError) { 11930 return; 11931 } 11932 11933 const element = errorMessageLabel.get(); 11934 11935 if (element) { 11936 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_3__["scrollWindowTo"])(element, true); 11937 } else { 11938 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_3__["scrollToTop"])(); 11939 } 11940 } 11941 11942 } 11943 11944 return AjaxForm; 11945}); 11946 11947/***/ }), 11948
11949/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AjaxFormResponseContainer.js": 11950/*!******************************************************************************************************************!*\ 11951 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AjaxFormResponseContainer.js ***! 11952 \******************************************************************************************************************/ 11953/*! exports provided: default */ 11954/***/ (function(module, __webpack_exports__, __webpack_require__) { 11955 11956"use strict"; 11957__webpack_require__.r(__webpack_exports__); 11958/** 11959 * @typedef {ReturnType<typeof import('widgets/global/Modal').default>} Modal 11960 * @typedef {typeof import('widgets/forms/AjaxForm').default} AjaxForm 11961 */ 11962 11963/** 11964 * @param {Modal} Modal Base widget for extending 11965 * @returns {typeof AjaxFormResponseContainer} AjaxFormResponseContainer widget 11966 */ 11967/* harmony default export */ __webpack_exports__["default"] = (function (Modal) { 11968 /** 11969 * @category widgets 11970 * @subcategory forms 11971 * @class AjaxFormResponseContainer 11972 * @augments Modal 11973 * @classdesc Represents AjaxFormResponseContainer component with next features: 11974 * 1. Used to rerender part of page after success response from server using mustache template 11975 * 11976 * Widget has next relationship: 11977 * * Rerender part of the page using method {@link AjaxFormResponseContainer#onSuccessSubmit} by event {@link AjaxForm#event:submit} from {@link AjaxForm} widget. 11978 * @property {string} data-widget - Widget name `AjaxFormResponseContainer` 11979 * @example <caption>Example of AjaxFormResponseContainer widget usage</caption> 11980 * <div 11981 * class="l-account m-small m-top_margin b-account" 11982 * data-widget="ajaxFormResponseContainer" 11983 * > 11984 * <div 11985 * class="b-form-message b-message m-error" 11986 * role="alert" 11987 * > 11988 * ${Resource.msg('passwordReset.warning', 'login', null)} 11989 * </div> 11990 * <div 11991 * class="b-form-message b-message m-error" 11992 * hidden="hidden" 11993 * data-ref="errorMessageLabel" 11994 * role="alert" 11995 * ></div> 11996 * <h1 class="b-account-title m-top_margin"> 11997 * ${Resource.msg('passwordReset.title', 'login', null)} 11998 * </h1> 11999 * <form 12000 * class="b-form m-reset_password" 12001 * action="${URLUtils.url('Account-PasswordResetDialogForm', 'mobile', pdict.mobile)}" 12002 * method="POST" 12003 * data-widget="ajaxform" 12004 * data-event-submit.prevent="handleSubmit" 12005 * data-widget-event-submit="onSuccessSubmit" 12006 * name="email-form" 12007 * id="email-form" 12008 * > 12009 * form content.... 12010 * <div class="b-form_section"> 12011 * <button 12012 * type="submit" 12013 * class="b-button m-width_full" 12014 * data-widget="button" 12015 * data-widget-event-click="handleSubmit" 12016 * data-event-click.prevent="handleClick" 12017 * data-id="submitButton" 12018 * > 12019 * ${Resource.msg('form.passwordReset.submit','forms',null)} 12020 * </button> 12021 * </div> 12022 * </form> 12023 * <script type="template/mustache" data-ref="template"> 12024 * <div 12025 * class="l-account m-small m-top_margin b-account" 12026 * data-widget="ajaxFormResponseContainer" 12027 * > 12028 * <h1 class="b-account-title"> 12029 * {{receivedMsgHeading}} 12030 * </h1> 12031 * <p>{{receivedMsgBody}}</p> 12032 * </div> 12033 * </script> 12034 * </div> 12035 */ 12036 class AjaxFormResponseContainer extends Modal { 12037 /** 12038 * @description Get response from server and render it 12039 * @listens AjaxForm#submit 12040 * @param {typeof import('widgets/forms/AjaxForm').default} _form - ajaxForm Widget 12041 * @param {object} data - response form server 12042 * @returns {void} 12043 */ 12044 onSuccessSubmit(_form, data) { 12045 this.render(undefined, data); 12046 } 12047 12048 } 12049 12050 return AjaxFormResponseContainer; 12051}); 12052 12053/***/ }), 12054
12055/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/BasicForm.js": 12056/*!**************************************************************************************************!*\ 12057 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/BasicForm.js ***! 12058 \**************************************************************************************************/ 12059/*! exports provided: default */ 12060/***/ (function(module, __webpack_exports__, __webpack_require__) { 12061 12062"use strict"; 12063__webpack_require__.r(__webpack_exports__); 12064/* harmony import */ var _toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 12065/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 12066 12067 12068/** 12069 * @typedef {typeof import('widgets/Widget').default} Widget 12070 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 12071 * @typedef {ReturnType<typeof import('widgets/global/Button').default>} Button 12072 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 12073 */ 12074 12075/** 12076 * @param {Widget} Widget base widget class 12077 * @returns {typeof BasicForm} Basic Form class 12078 */ 12079 12080/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 12081 /** 12082 * @category widgets 12083 * @subcategory forms 12084 * @class BasicForm 12085 * @augments Widget 12086 * @classdesc Represents BasicForm component with next features: 12087 * 1. Allow show/hide Form progress bar 12088 * 2. Allow get submit button name, Form fields, Form action url 12089 * 3. Allow submit and handle submit Form 12090 * 4. Allow set value to Form fields 12091 * 5. Allow validate Form and Form fields 12092 * 6. Allow updates Form html body by sending an AJAX request to server with params object 12093 * BasicForm widget should contain {@link Button} widgets that implement submit Form button. 12094 * Widget has next relationship: 12095 * * Handle Form submit using method {@link BasicForm#handleSubmit} by event {@link Button#event:click} from {@link Button} widget. 12096 * @example <caption>Example of BasicForm widget usage</caption> 12097 * <form 12098 * action="${URLUtils.url('Order-Track')}" 12099 * method="GET" 12100 * data-widget="form" 12101 * data-event-submit="handleSubmit" 12102 * > 12103 * ... form contents 12104 * <button 12105 data-widget="button" 12106 type="submit" 12107 data-widget-event-click="handleSubmit" 12108 data-event-click.prevent="handleClick" 12109 > 12110 ...Button name 12111 </button> 12112 * </form> 12113 * @property {string} data-widget - Widget name `form` 12114 * @property {string} data-event-submit - Event listener for form submission 12115 */ 12116 class BasicForm extends Widget { 12117 prefs() { 12118 return { 12119 submitEmpty: true, 12120 emptyFormErrorMsg: '', 12121 submitButton: 'submitButton', 12122 errorMessageLabel: 'errorMessageLabel', 12123 SUBMITTING_TIMEOUT: 5000, 12124 formDefinitionUrl: '', 12125 ...super.prefs() 12126 }; 12127 } 12128 /** 12129 * @description Set aria-busy attribute value true 12130 * @returns {void} 12131 */ 12132 12133 12134 showProgressBar() { 12135 this.ref('self').attr('aria-busy', 'true'); 12136 } 12137 /** 12138 * @description Set aria-busy attribute value false 12139 * @returns {void} 12140 */ 12141 12142 12143 hideProgressBar() { 12144 this.ref('self').attr('aria-busy', 'false'); 12145 } 12146 /** 12147 * @description Get submit button name 12148 * @returns {string|null|undefined} Submit button name 12149 */ 12150 12151 12152 getSubmitButtonName() { 12153 return this.submitButtonName; 12154 } 12155 /** 12156 * @description Initialize widget logic 12157 * @returns {void} 12158 */ 12159 12160 12161 init() { 12162 this.submitButtonName = null; 12163 super.init(); 12164 /** 12165 * @type {HTMLFormElement|any} 12166 */ 12167 12168 const form = this.ref('self').get(); 12169 this.formId = form ? form.dataset.widget : ''; 12170 this.formName = form ? form.name : ''; 12171 /** 12172 * Below code is needed to initiate correct comparison configuration for certain fields 12173 * It iterates all BasicInput childs and if will find in validation compare data - will 12174 * sets up needed data on a proper child BasicInput widgets 12175 */ 12176 12177 const BasicInput = 12178 /** @type {BasicInput} */ 12179 this.getConstructor('basicInput'); 12180 const formName = this.formName; 12181 this.eachChild(widget => { 12182 if (widget instanceof BasicInput) { 12183 // set form name for gtm data 12184 widget.formName = formName;
12185 const widgetValidation = widget.prefs().validationConfig || {}; 12186 const compareFieldId = widgetValidation.compareWith || ''; 12187 12188 if (compareFieldId) { 12189 this.getById(compareFieldId, targetWidget => { 12190 if (targetWidget.length) { 12191 const compareOptions = { 12192 field: compareFieldId, 12193 msg: widgetValidation.errors.compareWith || '' 12194 }; 12195 widget.data('setMatchCmp', targetWidget, compareOptions); 12196 } 12197 }); 12198 } 12199 } 12200 }); 12201 } 12202 /** 12203 * @description Save submit button 12204 * @param {HTMLInputElement} el submit button element 12205 * @returns {void} 12206 */ 12207 12208 12209 saveSubmitButton(el) { 12210 this.submitButtonName = el.name; 12211 } 12212 /** 12213 * @description Submit Form 12214 * @returns {void} 12215 */ 12216 12217 12218 submit() { 12219 /** 12220 * @type {HTMLElement|undefined} 12221 */ 12222 var elem = this.ref(this.prefs().submitButton).get(); 12223 12224 if (elem) { 12225 elem.click(); 12226 } 12227 } 12228 /** 12229 * @description Handle submit Form 12230 * @emits BasicForm#submit 12231 * @param {refElement} _el event source element 12232 * @param {(Event|undefined)} event event instance if DOM event 12233 * @returns {void} 12234 */ 12235 12236 12237 handleSubmit(_el, event) { 12238 this.clearError(); 12239 const valid = this.isChildrenValid(); 12240 12241 if ((!valid || this.submitting) && event && event instanceof Event) { 12242 event.preventDefault(); 12243 return; 12244 } 12245 12246 this.ref(this.prefs().submitButton).disable(); 12247 this.submitting = true; 12248 this.onDestroy(Object(_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 12249 this.submitting = false; 12250 }, this.prefs().SUBMITTING_TIMEOUT)); 12251 this.emit('submit'); 12252 } 12253 /** 12254 * @description Get Form fiels 12255 * @returns {object} Object contains form fields 12256 */ 12257 12258 12259 getFormFields() { 12260 /** 12261 * @type {{[x: string]: string}} 12262 */ 12263 var fields = {}; 12264 const BasicInput = 12265 /** @type {BasicInput} */ 12266 this.getConstructor('basicInput'); 12267 this.eachChild(widget => { 12268 if (widget instanceof BasicInput && !(widget.skipSubmission && widget.skipSubmission())) { 12269 const name = widget.getName && widget.getName(); 12270 12271 if (name) { 12272 fields[name.toString()] = widget.getValue(); 12273 } 12274 } 12275 }); 12276 return fields; 12277 } 12278 /** 12279 * @description Sets related fields values, can be executed silently, without triggering `change` event 12280 * @param {object} formFields - Structured object with name: value pairs for input fields 12281 * @param {(boolean|undefined)} [silently] - if set to `true` - input should not be validated against a new value 12282 * @returns {void} 12283 */ 12284 12285 12286 setFormFields(formFields, silently = false) { 12287 const BasicInput = 12288 /** @type {BasicInput} */ 12289 this.getConstructor('basicInput'); 12290 this.eachChild(widget => { 12291 if (widget instanceof BasicInput) { 12292 const name = widget.getName && widget.getName(); 12293 widget.setValue(formFields[name], silently); 12294 } 12295 }); 12296 } 12297 /** 12298 * @description Check is Form fields valid 12299 * @param {Function} [cb] callback called if child inputs are valid 12300 * @returns {boolean} - boolean value is Form input valid 12301 */ 12302 12303 12304 isChildrenValid(cb) { 12305 var valid = true; 12306 const BasicInput = 12307 /** @type {BasicInput} */ 12308 this.getConstructor('basicInput'); 12309 this.eachChild(item => { 12310 if (item instanceof BasicInput && typeof item.validate === 'function' && !item.validate()) { 12311 if (valid && item.setFocus) { 12312 item.setFocus(); 12313 } 12314 12315 valid = false; 12316 } 12317 }); 12318 12319 if (valid && typeof cb === 'function') { 12320 cb(); 12321 } 12322 12323 if (!this.prefs().submitEmpty) { 12324 const fieldsValues = this.getFormFields(); 12325 12326 if (Object.keys(fieldsValues).every(key => !fieldsValues[key])) { 12327 valid = false; 12328 this.ref(this.prefs().errorMessageLabel).setText(this.prefs().emptyFormErrorMsg); 12329 this.ref(this.prefs().errorMessageLabel).show(); 12330 } 12331 } 12332 12333 return valid; 12334 } 12335 /**
12336 * @description Form validate 12337 * @returns {boolean} boolean value is Form input valid 12338 */ 12339 12340 12341 validate() { 12342 return this.isChildrenValid(); 12343 } 12344 /** 12345 * @description Check is Form valid based on Form fields validation 12346 * @returns {boolean} boolean value is Form valid 12347 */ 12348 12349 12350 isValid() { 12351 var valid = true; 12352 const BasicInput = 12353 /** @type {BasicInput} */ 12354 this.getConstructor('basicInput'); 12355 this.eachChild(itemCmp => { 12356 if (itemCmp instanceof BasicInput && typeof itemCmp.isValid === 'function' && !itemCmp.isValid()) { 12357 valid = false; 12358 return false; 12359 } 12360 12361 return true; 12362 }); 12363 return valid; 12364 } 12365 /** 12366 * @description Interface that can be override 12367 * @returns {void} 12368 */ 12369 12370 12371 setFocus() {} 12372 /** 12373 * @description Get Form action url 12374 * @returns {string} form action url 12375 */ 12376 12377 12378 getFormUrl() { 12379 // @ts-ignore 12380 return this.ref('self').attr('action'); 12381 } 12382 /** 12383 * @description Clear Form Error 12384 * @param {string} refID RefElement ID 12385 * @returns {void} 12386 */ 12387 12388 12389 clearError(refID = 'errorMessageLabel') { 12390 this.ref(refID).hide().setText(''); 12391 } 12392 /** 12393 * @description Updates form html body by sending an AJAX request to server with params object 12394 * <br>(possible param key is `countryCode`) 12395 * <br>Obtained template injected instead of old fields 12396 * <br>Data, entered in fields previosly will be restored 12397 * @param {object} params - request parameters 12398 * @param {string} params.countryCode - A country code to get country-specific form 12399 * @returns {InstanceType <Promise>} - new Promise 12400 */ 12401 12402 12403 updateFormData(params) { 12404 const formDefinitionUrl = this.prefs().formDefinitionUrl; 12405 12406 if (formDefinitionUrl && params) { 12407 return new Promise(resolve => { 12408 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["getJSONByUrl"])(formDefinitionUrl, params, true).then(response => { 12409 if (response.formDefinition) { 12410 const formFields = this.getFormFields(); 12411 this.render('', {}, this.ref('fieldset'), response.formDefinition).then(() => { 12412 this.setFormFields(formFields, true); 12413 resolve(); 12414 setTimeout(() => this.formDataUpdated(), 0); 12415 /* eslint-disable */ 12416 12417 var defaultWineclubShipAdd = document.querySelector("div[data-id='dwfrm_address_setAsWineClubDefaultShipping']"); 12418 12419 if (defaultWineclubShipAdd) { 12420 if (params.countryCode !== 'US') { 12421 defaultWineclubShipAdd.classList.add('h-hidden'); 12422 } else { 12423 defaultWineclubShipAdd.classList.remove('h-hidden'); 12424 } 12425 } 12426 12427 var defaultAddress = document.querySelector("div[data-id='dwfrm_address_setAsDefault']"); 12428 12429 if (defaultAddress) { 12430 if (params.countryCode !== 'US') { 12431 defaultAddress.classList.add('h-hidden'); 12432 } else { 12433 defaultAddress.classList.remove('h-hidden'); 12434 } 12435 } 12436 /* eslint-enable */ 12437 12438 }); 12439 } 12440 }); 12441 }); 12442 } 12443 12444 return new Promise(resolve => { 12445 resolve(); 12446 this.formDataUpdated(); 12447 }); 12448 } 12449 /** 12450 * @description Template method called once form definitions were reloaded 12451 * @returns {void} 12452 */ 12453 12454 12455 formDataUpdated() {} 12456 12457 } 12458 12459 return BasicForm; 12460}); 12461 12462/***/ }), 12463
12464/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/BasicInput.js": 12465/*!***************************************************************************************************!*\ 12466 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/BasicInput.js ***! 12467 \***************************************************************************************************/ 12468/*! exports provided: default */ 12469/***/ (function(module, __webpack_exports__, __webpack_require__) { 12470 12471"use strict"; 12472__webpack_require__.r(__webpack_exports__); 12473/* harmony import */ var widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/scroll */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js"); 12474/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 12475// TO BE REVIEWED 12476// @ts-nocheck 12477 12478 12479/** 12480 * @typedef {typeof import('widgets/Widget').default} Widget 12481 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 12482 */ 12483 12484/** 12485 * @description Base BasicInput implementation 12486 * @param {Widget} Widget Base widget for extending 12487 * @returns {typeof BasicInput} Basic Input class 12488 */ 12489 12490/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 12491 /** 12492 * @category widgets 12493 * @subcategory forms 12494 * @class BasicInput 12495 * @augments Widget 12496 * @classdesc Basic Input Widget (like abstract ancestor), contains basic validation and input management logic. 12497 * Supposes valid unified input markup. Contains also error messaging. 12498 * Usually is not used directly, and relevant subclasses should be used. 12499 * @property {boolean} data-skip-validation - if input needs to skip validation 12500 * @property {string} data-classes-error-state - classes for input's error state 12501 * @property {string} data-classes-valid-state - classes for input's valid state 12502 * @property {string} data-classes-disabled - classes for disabled input 12503 * @property {string} data-classes-locked - classes for locked input (disabled + readonly) 12504 * @property {string} data-classes-wrapper-error-state - classes for input wrapper, when input in error state 12505 * @property {string} data-classes-wrapper-valid-state - classes for input wrapper, when input in valid state 12506 * @property {object} data-validation-config - validation rules and error messages for input 12507 */ 12508 class BasicInput extends Widget { 12509 prefs() { 12510 return { 12511 skipValidation: false, 12512 classesErrorState: 'm-invalid', 12513 classesValidState: 'm-valid', 12514 classesDisabled: 'm-disabled', 12515 classesLocked: 'm-locked', 12516 classesWrapperErrorState: 'm-invalid', 12517 classesWrapperValidState: 'm-valid', 12518 validationConfig: {}, 12519 ...super.prefs() 12520 }; 12521 } 12522 12523 init() { 12524 this.initValue = this.getValue(); 12525 12526 if (!this.id && this.ref('field').attr('name')) { 12527 this.id = this.ref('field').attr('name'); 12528 } 12529 12530 this.disabled = this.ref('field').attr('disabled') === 'disabled'; 12531 this.formName = ''; 12532 } 12533 /** 12534 * @description Get input value 12535 * @returns {string} - return input name 12536 */ 12537 12538 12539 getValue() { 12540 // @ts-ignore 12541 return this.ref('field').val(); 12542 } 12543 /** 12544 * @description Get input name 12545 * @returns {string} - return input name 12546 */ 12547 12548 12549 getName() { 12550 // @ts-ignore 12551 return this.ref('field').attr('name'); 12552 } 12553 /** 12554 * @description Set focus to input 12555 * @returns {void} 12556 */ 12557 12558 12559 focus() { 12560 var field = this.ref('field').get(); 12561 12562 if (field) { 12563 field.focus(); 12564 } 12565 } 12566 /** 12567 * @description Set focus to input and scroll element into viewport 12568 * @returns {void} 12569 */ 12570 12571 12572 setFocus() { 12573 const elementToScroll = this.ref('self').get(); 12574 12575 if (elementToScroll) { 12576 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_0__["scrollIntoView"])(elementToScroll); 12577 } 12578 12579 this.focus(); 12580 } 12581 /**
12582 * @description Blur (unfocus) an input 12583 * @returns {void} 12584 */ 12585 12586 12587 blur() { 12588 var field = this.ref('field').get(); 12589 12590 if (field) { 12591 field.blur(); 12592 } 12593 } 12594 /** 12595 * @description Set input value 12596 * "checkRanges" method needs to validate min\max length after changing input value by JS 12597 * https://stackoverflow.com/questions/53226031/html-input-validity-not-checked-when-value-is-changed-by-javascript 12598 * @param {(string|number|undefined)} [newVal] - set this value to input 12599 * @param {(boolean|undefined)} [silently] - if set to `true` - input 12600 * should not be validated against a new value and no events should be fired 12601 * @returns {void} 12602 */ 12603 12604 12605 setValue(newVal = '', silently = false) { 12606 const refField = this.ref('field'); 12607 refField.val(String(newVal)); 12608 this.checkRanges(refField); 12609 12610 if (!silently) { 12611 this.update(); 12612 } 12613 } 12614 /** 12615 * @description Check min/max length when value is being set and if it out of boundaries, set custom validity. 12616 * After setting value via code, a min/max length rule does not work until the value is changed by user. 12617 * @param {refElement} refField - Field ref object 12618 * @returns {void} 12619 * */ 12620 12621 12622 checkRanges(refField) { 12623 const value = 12624 /** @type {string} */ 12625 refField.val(); 12626 const field = refField.get(); 12627 const rangesError = this.getRangesError(value); 12628 12629 if (rangesError && field instanceof HTMLInputElement) { 12630 field.setCustomValidity(rangesError); 12631 } 12632 } 12633 /** 12634 * @description Check ranges and return appropriate error message or empty string 12635 * @param {string} val - Value that is being set 12636 * @returns {string} Ranges error message or empty string 12637 */ 12638 12639 12640 getRangesError(val) { 12641 if (!val) { 12642 return ''; 12643 } 12644 12645 const refField = this.ref('field'); 12646 const field = refField.get(); 12647 12648 if (field instanceof HTMLInputElement) { 12649 const validationConfig = this.prefs().validationConfig; 12650 const valueLength = String(val).length; 12651 12652 if (field.minLength && valueLength < field.minLength) { 12653 return Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["get"])(validationConfig, 'errors.minLength', ''); 12654 } else if (field.maxLength && valueLength > field.maxLength) { 12655 return Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["get"])(validationConfig, 'errors.maxLength', ''); 12656 } 12657 } 12658 12659 return ''; 12660 } 12661 /** 12662 * @description Updates custom validity state 12663 * @returns {void} 12664 */ 12665 12666 12667 updateCustomValidityState() { 12668 const field = this.ref('field'); 12669 const validity = field.getValidity(); 12670 12671 if (validity && validity.state.customError) { 12672 this.checkRanges(field); 12673 } 12674 } 12675 /** 12676 * @description Validate input and trigger `change` event 12677 * @emits BasicInput#change 12678 * @returns {void} 12679 */ 12680 12681 12682 update() { 12683 this.validate(); 12684 /** 12685 * @description Event, indicates input value was changed 12686 * @event BasicInput#change 12687 */ 12688 12689 this.emit('change', this); 12690 } 12691 /** 12692 * @description Clears input error 12693 * @emits BasicInput#inputstatechanged 12694 * @returns {void} 12695 */ 12696 12697 12698 clearError() { 12699 this.ref('field').removeClass(this.prefs().classesErrorState); 12700 this.ref('field').removeClass(this.prefs().classesValidState); 12701 this.ref('self').removeClass(this.prefs().classesWrapperErrorState); 12702 this.ref('self').removeClass(this.prefs().classesWrapperValidState); 12703 this.ref('errorFeedback').hide(); 12704 /** 12705 * @description Event, indicates input state was changed 12706 * @event BasicInput#inputstatechanged 12707 */ 12708 12709 this.emit('inputstatechanged'); 12710 } 12711 /** 12712 * @description Set/unset error state into input (message and classes) 12713 * @param {string} [error] error message - if defined, will set error staet, and valid state - otherwise 12714 * @emits BasicInput#inputstatechanged 12715 * @returns {void} 12716 */ 12717 12718 12719 setError(error) { 12720 if (error) { 12721 this.ref('field').removeClass(this.prefs().classesValidState); 12722 this.ref('self').removeClass(this.prefs().classesWrapperValidState); 12723 this.ref('field').addClass(this.prefs().classesErrorState); 12724 this.ref('self').addClass(this.prefs().classesWrapperErrorState); 12725 this.ref('errorFeedback').setText(error).show(); 12726 } else { 12727 this.ref('field').removeClass(this.prefs().classesErrorState); 12728 this.ref('self').removeClass(this.prefs().classesWrapperErrorState); 12729 this.ref('field').addClass(this.prefs().classesValidState); 12730 this.ref('self').addClass(this.prefs().classesWrapperValidState); 12731 this.ref('errorFeedback').hide(); 12732 } 12733
12734 this.emit('inputstatechanged'); 12735 } 12736 /** 12737 * @description Indicates, that input value is (is not) valid against HTML5 native constraints (input patterns, min/max etc). 12738 * Also cares about case, when some field value should match another field value. 12739 * Sets error message in case of input is not valid. Message is taken from JSON `validationConfig` data-attribute 12740 * @returns {boolean} is input valid or not 12741 */ 12742 12743 12744 isValid() { 12745 const field = this.ref('field'); 12746 const validation = this.prefs().validationConfig; 12747 this.updateCustomValidityState(); 12748 var { 12749 state, 12750 msg 12751 } = field.getValidity() || { 12752 msg: '', 12753 state: 12754 /** @type {ValidityState} */ 12755 { 12756 valid: true 12757 } 12758 }; 12759 12760 if (state.patternMismatch || state.typeMismatch) { 12761 msg = validation.errors.parse || validation.errors.security; 12762 } else if (state.rangeOverflow || state.rangeUnderflow || state.tooLong || state.tooShort) { 12763 if (state.rangeOverflow || state.tooLong) { 12764 msg = validation.errors.maxLength; 12765 } else if (state.rangeUnderflow || state.tooShort) { 12766 msg = validation.errors.minLength; 12767 } 12768 } else if (state.valueMissing) { 12769 msg = validation.errors.required; 12770 } 12771 12772 if (state.valid && this.widgetToMatch && this.widgetToMatchOpts && this.widgetToMatch.data('getValue') !== this.getValue()) { 12773 this.error = this.widgetToMatchOpts.msg; 12774 return false; 12775 } // user should be prevented from saving a non-compliant state as their wine club shipping address 12776 12777 12778 var isWineClubShippAddChecked = document.getElementById('dwfrm_address_setAsWineClubDefaultShipping'); 12779 var isDefaultAddresChecked = document.getElementById('dwfrm_address_setAsDefault'); // eslint-disable-next-line max-len 12780 12781 if (isWineClubShippAddChecked !== null && isWineClubShippAddChecked.checked && this.config.id === 'dwfrm_address_setAsWineClubDefaultShipping') { 12782 return this.nonCompliantState(); 12783 } 12784 12785 if (isDefaultAddresChecked !== null && isDefaultAddresChecked.checked && this.config.id === 'dwfrm_address_setAsDefault') { 12786 return this.nonCompliantState(); 12787 } 12788 12789 this.error = msg; 12790 return state.valid; 12791 } 12792 /** 12793 * @description Triggers input validation process 12794 * @returns {boolean} input validation result 12795 */ 12796 12797 12798 validate() { 12799 if (!this.shown || this.disabled || this.prefs().skipValidation) { 12800 return true; 12801 } 12802 12803 const valid = this.isValid(); 12804 12805 if (valid) { 12806 this.setError(); 12807 } else { 12808 this.setError(this.error); 12809 } 12810 12811 return valid; 12812 } 12813 /** 12814 * @description Disables an input 12815 * @returns {this} `this` instance for chaining 12816 */ 12817 12818 12819 disable() { 12820 this.disabled = true; 12821 this.ref('field').disable(); 12822 this.ref('self').addClass(this.prefs().classesDisabled); 12823 return this; 12824 } 12825 /** 12826 * @description Enables an input 12827 * @returns {this} `this` instance for chaining 12828 */ 12829 12830 12831 enable() { 12832 this.disabled = false; 12833 this.ref('field').enable(); 12834 this.ref('self').removeClass(this.prefs().classesDisabled); 12835 return this; 12836 } 12837 /** 12838 * @description Locks an input (adds `readonly` attribute) 12839 * @returns {void} 12840 */ 12841 12842 12843 lock() { 12844 this.locked = true; 12845 this.ref('field').attr('readonly', true); 12846 this.ref('self').addClass(this.prefs().classesLocked); 12847 } 12848 /** 12849 * @description Unlocks an input (removes `readonly` attribute) 12850 * @returns {void} 12851 */ 12852 12853 12854 unlock() { 12855 this.locked = false; 12856 this.ref('field').attr('readonly', false); 12857 this.ref('self').removeClass(this.prefs().classesLocked); 12858 } 12859 /** 12860 * @description Checks if input is disabled 12861 * @returns {boolean} result 12862 */ 12863 12864 12865 isDisabled() { 12866 return !!this.disabled; 12867 } 12868 /** 12869 * @description Saves on widget level target widget for comparison validation to use it further in `isValid` method 12870 * @param {BasicInput} widgetToMatch cmp 12871 * @param {{[x: string]: string|undefined}} options to compare 12872 * @returns {void} 12873 */ 12874 12875 12876 setMatchCmp(widgetToMatch, options = {}) { 12877 this.widgetToMatch = widgetToMatch; 12878 this.widgetToMatchOpts = options; 12879 } 12880 /**
12881 * @description To be either included or not into the form submission to server. 12882 * @returns {boolean} result 12883 */ 12884 12885 12886 skipSubmission() { 12887 return false; 12888 } 12889 /** 12890 * @description user should be prevented from saving a non-compliant state as their wine club shipping address 12891 * @returns {boolean} result 12892 */ 12893 12894 12895 nonCompliantState() { 12896 var stateDropDown = document.getElementById('dwfrm_address_states_stateCode'); 12897 const nonCompliantStateArr = document.getElementById('nonCompliantState'); 12898 const nonCompliantStateErrorMsg = document.getElementsByClassName('non-CompliantState-errorMsg')[0]; 12899 12900 if (stateDropDown !== null && stateDropDown.value !== '' && nonCompliantStateArr !== null) { 12901 var selectedVal = stateDropDown.value; 12902 const nonCompliantState = JSON.parse(nonCompliantStateArr.value); 12903 const isNonCompliantState = nonCompliantState.includes(selectedVal); 12904 12905 if (isNonCompliantState) { 12906 window.scrollTo({ 12907 top: 0, 12908 behavior: 'smooth' 12909 }); 12910 nonCompliantStateErrorMsg.removeAttribute('hidden'); 12911 return false; 12912 } 12913 } // eslint-disable-next-line 12914 12915 12916 if (nonCompliantStateErrorMsg !== undefined) { 12917 nonCompliantStateErrorMsg.setAttribute('hidden', 'hidden'); 12918 } 12919 12920 return true; 12921 } 12922 12923 } 12924 12925 return BasicInput; 12926}); 12927 12928/***/ }), 12929
12930/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/Combobox.js": 12931/*!*************************************************************************************************!*\ 12932 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/Combobox.js ***! 12933 \*************************************************************************************************/ 12934/*! exports provided: default */ 12935/***/ (function(module, __webpack_exports__, __webpack_require__) { 12936 12937"use strict"; 12938__webpack_require__.r(__webpack_exports__); 12939/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 12940 12941const KEY_DOWN = 40; 12942const KEY_UP = 38; 12943const KEY_ESCAPE = 27; 12944const KEY_RETURN = 13; 12945const KEY_TAB = 9; 12946const ACTIVE_DESCENDANT = 'aria-activedescendant'; 12947/** 12948 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 12949 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 12950 */ 12951 12952/** 12953 * @description Base Combobox implementation 12954 * @param {BasicInput} BasicInput Base widget for extending 12955 * @returns {typeof Combobox} Combobox class 12956 */ 12957 12958/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 12959 /* 12960 * This content is based on w3.org design pattern examples and licensed according to the 12961 * W3C Software License at 12962 * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document 12963 * Please see specification: 12964 * https://www.w3.org/TR/wai-aria-practices/#combobox 12965 */ 12966 12967 /** 12968 * @category widgets 12969 * @subcategory forms 12970 * @class Combobox 12971 * @augments BasicInput 12972 * @classdesc Combobox implementation in accordance with accessibility statements. 12973 * Class could be extended to implement any provider-specific remote/local data fetching for Combobox inner elements. 12974 * It is needed to implement `getSuggestions` method in a way, that is specific for subclasses 12975 * Supports keyboard navigation among Combobox items. 12976 * As far as Combobox could be used only in a subclasses, example, given below, is related to known subclass `searchBox` 12977 * @property {string} data-widget - Widget name `searchBox` 12978 * @property {string} data-url - URL to obtain serach suggestions from server based on customer's input 12979 * @property {boolean} data-close-on-tab - If true - `tab` keypress will close listbox 12980 * @property {string} data-widget-event-closesearch - An event, fired when `close` element was pressed 12981 * @property {string} data-event-keydown - event handler for `keydown` event 12982 * @property {boolean} data-close-from-outside - config, which shows, if combobox should be closed when click outside 12983 * @property {number} data-min-chars - minimum characters to trigger show combobox 12984 * @property {number} data-max-chars - maximum characters to enter 12985 * @property {number} data-updating-delay - update listbox delay 12986 * @property {string} data-classes-focused-item - class for currently focused item 12987 * @property {string} data-classes-active-list-box - active listbox class 12988 * @example 12989 * // use this code to display minicart widget 12990 * <div 12991 * data-widget="searchBox" 12992 * data-url="${URLUtils.url('SearchServices-GetSuggestions')}" 12993 * data-close-on-tab="true" 12994 * > 12995 * <form> 12996 * ... serach input 12997 * </form> 12998 * ... 12999 * <div data-ref="listbox" data-event-mouseenter="markHover" data-event-mouseleave="unMarkHover"> 13000 * <div role="none" class="b-suggestions-inner" data-ref="listboxInner"></div> 13001 * </div> 13002 * <script data-ref="template" type="template/mustache"> 13003 * <div data-ref="listboxInner"> 13004 * ... search suggestions 13005 * </div> 13006 * </script> 13007 * </div> 13008 */ 13009 class Combobox extends BasicInput { 13010 constructor(el, config) { 13011 super(el, config); 13012 this.lastSearchedTerm = ''; 13013 this.selectedIndex = -1; 13014 this.resultsCount = 0; 13015 this.isListboxOpen = false;
13016 } 13017 13018 prefs() { 13019 return { 13020 minChars: 3, 13021 maxChars: 50, 13022 updatingDelay: 300, 13023 closeFromOutside: true, 13024 closeOnTab: true, 13025 classesFocusedItem: 'm-focused', 13026 classesActiveListBox: 'm-active', 13027 ...super.prefs() 13028 }; 13029 } 13030 /** 13031 * @description Handles customer input 13032 * @returns {void} 13033 */ 13034 13035 13036 handleInput() { 13037 const inputLength = this.ref('input').prop('value').length; 13038 13039 if (inputLength >= this.prefs().minChars && inputLength <= this.prefs().maxChars) { 13040 this.updateListbox(); 13041 } else { 13042 if (this.timeout) { 13043 clearTimeout(this.timeout); 13044 } 13045 13046 this.closeListbox(); 13047 } 13048 } 13049 /** 13050 * @description Marks element as hower, once mouse over 13051 * @listens dom#mouseenter 13052 * @returns {void} 13053 */ 13054 13055 13056 markHover() { 13057 this.hasHoverWithin = true; 13058 } 13059 /** 13060 * @description Unmarks element as hower, once mouse out 13061 * @listens dom#mouseleave 13062 * @returns {void} 13063 */ 13064 13065 13066 unMarkHover() { 13067 this.hasHoverWithin = false; 13068 } 13069 /** 13070 * @description Handles `focus` on combobox input 13071 * @listens dom#focus 13072 * @returns {void} 13073 */ 13074 13075 13076 handleFocus() { 13077 this.updateListbox(); 13078 } 13079 /** 13080 * @description Handles `blur` on combobox input 13081 * @listens dom#blur 13082 * @returns {void} 13083 */ 13084 13085 13086 handleBlur() { 13087 if (this.hasHoverWithin || this.selectedIndex < 0) { 13088 return; 13089 } 13090 13091 this.closeListbox(); 13092 } 13093 /** 13094 * @description Handles `keydown` on combobox input 13095 * @param {HTMLElement} _ - source of keydown event 13096 * @param {KeyboardEvent} event - keydown event object 13097 * @listens dom#keydown 13098 * @returns {void} 13099 */ 13100 13101 13102 handleKeydown(_, event) { 13103 let preventEventActions = false; 13104 13105 switch (event.keyCode) { 13106 case KEY_ESCAPE: 13107 this.closeListbox(); 13108 preventEventActions = true; 13109 break; 13110 13111 case KEY_UP: 13112 this.setSelectToNextItem(); 13113 this.selectItem(this.getItemByIndex()); 13114 preventEventActions = true; 13115 break; 13116 13117 case KEY_DOWN: 13118 this.setSelectToPreviousItem(); 13119 this.selectItem(this.getItemByIndex()); 13120 preventEventActions = true; 13121 break; 13122 13123 case KEY_RETURN: 13124 this.activateItem(this.getItemByIndex()); 13125 return; 13126 13127 case KEY_TAB: 13128 if (this.prefs().closeOnTab) { 13129 this.closeListbox(); 13130 } 13131 13132 return; 13133 13134 default: 13135 return; 13136 } 13137 13138 if (preventEventActions) { 13139 event.stopPropagation(); 13140 event.preventDefault(); 13141 } 13142 } 13143 /** 13144 * @description Sets previous item as selected, when navigating from keyboard 13145 * @returns {void} 13146 */ 13147 13148 13149 setSelectToPreviousItem() { 13150 if (this.selectedIndex === -1 || this.selectedIndex >= this.resultsCount - 1) { 13151 this.selectedIndex = 0; 13152 } else { 13153 this.selectedIndex += 1; 13154 } 13155 } 13156 /** 13157 * @description Sets next item as selected, when navigating from keyboard 13158 * @returns {void} 13159 */ 13160 13161 13162 setSelectToNextItem() { 13163 if (this.selectedIndex <= 0) { 13164 this.selectedIndex = this.resultsCount - 1; 13165 } else { 13166 this.selectedIndex -= 1; 13167 } 13168 } 13169 /** 13170 * @description Selects combobox dropdown item 13171 * @param {null|refElement} selectedItem - item, selected by user 13172 * @returns {void} 13173 */ 13174 13175 13176 selectItem(selectedItem) { 13177 if (this.currentSelected) { 13178 this.deselectItem(this.currentSelected); 13179 } 13180 13181 if (selectedItem) { 13182 this.ref('input').attr(ACTIVE_DESCENDANT, `result-item-${this.selectedIndex}`); 13183 selectedItem.addClass(this.prefs().classesFocusedItem).attr('aria-selected', 'true'); 13184 this.afterItemSelected(selectedItem); 13185 } else { 13186 this.ref('input').attr(ACTIVE_DESCENDANT, ''); 13187 } 13188 13189 this.currentSelected = selectedItem; 13190 } 13191 /** 13192 * @description Executes logic (sets input value) after item was selected 13193 * @param {refElement} item - item, selected by user 13194 * @returns {void} 13195 */ 13196 13197 13198 afterItemSelected(item) { 13199 this.ref('input').prop('value', item.data('suggestionValue')); 13200 } 13201 /**
13202 * @description Deselectes item in combobox dropdown when navigating from keyboard. 13203 * @param {refElement} item - item, selected by user 13204 * @returns {void} 13205 */ 13206 13207 13208 deselectItem(item) { 13209 item.removeClass(this.prefs().classesFocusedItem).attr('aria-selected', 'false'); 13210 } 13211 /** 13212 * @description "Activate" item by press Enter on selected item or mouse click on item 13213 * @param {null|refElement} activeItem - item, selected by user 13214 * @returns {void} 13215 */ 13216 13217 13218 activateItem(activeItem) { 13219 if (activeItem) { 13220 this.ref('input').prop('value', activeItem.data('suggestionValue')).get().focus(); 13221 this.closeListbox(); 13222 } 13223 } 13224 /** 13225 * @description Update Combobox Listbox (dropdown). Initiates items retrieveing either from server or from any other source, like an array. 13226 * @returns {void} 13227 */ 13228 13229 13230 updateListbox() { 13231 const inputValue = this.ref('input').prop('value'); 13232 13233 if (this.lastSearchedTerm === inputValue || inputValue.length < this.prefs().minChars) { 13234 // could be triggered from focus so we need additionally check minChars 13235 return; 13236 } 13237 13238 if (this.timeout) { 13239 clearTimeout(this.timeout); 13240 } 13241 13242 this.timeout = setTimeout(this.getSuggestions.bind(this, inputValue), this.prefs().updatingDelay); 13243 } 13244 /** 13245 * @description Get items list for Combobox. Could be fetched from any proper source. 13246 * Usuaslly is implemented in childs. 13247 * @param {string} query - a query, which needs to be processed in subclasses 13248 * @returns {void} 13249 */ 13250 13251 13252 getSuggestions(query) { 13253 // This is example of getSuggestion method to implement 13254 // Comboboxes like search or address should implement his own methods 13255 // of how to get suggestion and render it. Template should follow this: 13256 // <li role="option" id="result-item-${0}">${results[0]}</li> 13257 // ... 13258 // <li role="status" aria-live="polite">${results.length} suggestion found</li> 13259 // You should always include ids of suggestion and status about how much 13260 // suggestion total. 13261 const resultsTotal = 1; 13262 this.afterSuggestionsUpdate(query, resultsTotal); 13263 } 13264 /** 13265 * @description Executes after a list of items (suggestions) of a Combobox has being updated. 13266 * @param {string} query - a query, used for fetching Combobox inner items 13267 * @param {number} resultsCount - obtained inner items count 13268 * @returns {void} 13269 */ 13270 13271 13272 afterSuggestionsUpdate(query, resultsCount) { 13273 this.resultsCount = resultsCount; 13274 this.selectedIndex = -1; 13275 this.lastSearchedTerm = query; 13276 this.openListbox(); 13277 } 13278 /** 13279 * @description Open a Listbox (Combobox dropdown) 13280 * @returns {void} 13281 */ 13282 13283 13284 openListbox() { 13285 this.isListboxOpen = true; 13286 const listbox = this.ref('listbox'); 13287 listbox.addClass(this.prefs().classesActiveListBox); 13288 listbox.attr('aria-hidden', 'false'); 13289 const input = this.ref('input'); 13290 input.attr(ACTIVE_DESCENDANT, ''); 13291 input.attr('aria-expanded', 'true'); // Should be combobox node by specs 13292 13293 this.toggleOverlay(true); 13294 13295 if (this.prefs().closeFromOutside) { 13296 this.bodyClickListener = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["clickOutside"])(this.ref('self'), this.closeListbox.bind(this)); 13297 13298 if (this.bodyClickListener) { 13299 this.onDestroy(this.bodyClickListener); 13300 } 13301 } 13302 } 13303 /** 13304 * @description Close a Listbox (Combobox dropdown) 13305 * @returns {void} 13306 */ 13307 13308 13309 closeListbox() { 13310 this.resultsCount = 0; 13311 this.selectedIndex = -1; 13312 this.lastSearchedTerm = ''; 13313 this.isListboxOpen = false; 13314 const listbox = this.ref('listbox'); 13315 listbox.removeClass(this.prefs().classesActiveListBox); 13316 listbox.attr('aria-hidden', 'true'); 13317 const input = this.ref('input'); 13318 input.attr(ACTIVE_DESCENDANT, ''); 13319 input.attr('aria-expanded', 'false'); // Should be combobox nore by specs 13320 13321 this.toggleOverlay(false); 13322 13323 if (this.bodyClickListener) { 13324 this.bodyClickListener(); 13325 this.bodyClickListener = undefined; 13326 } 13327 13328 this.afterCloseListbox(); 13329 } 13330 /**
13331 * @description Executes after Listbox (Combobox dropdown) was closed 13332 * @returns {void} 13333 */ 13334 13335 13336 afterCloseListbox() { 13337 this.ref('listbox').empty(); 13338 } 13339 /** 13340 * @description Toggles Combobox page overlay 13341 * @param {boolean} isShown - does overlay should be shown 13342 * @returns {void} 13343 */ 13344 13345 13346 toggleOverlay(isShown) { 13347 this.isOverlayVisible = isShown; 13348 } 13349 /** 13350 * @description Get Combobox item (suggestion) by index, stored in `this.selectedIndex` class property. 13351 * @returns {refElement|null} - founded item or null 13352 */ 13353 13354 13355 getItemByIndex() { 13356 if (this.selectedIndex < 0) { 13357 return null; 13358 } 13359 13360 const listItem = this.ref(`result-item-${this.selectedIndex}`); 13361 13362 if (listItem.length) { 13363 return listItem; 13364 } 13365 13366 return null; 13367 } 13368 13369 } 13370 13371 return Combobox; 13372}); 13373 13374/***/ }), 13375
13376/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/Form.js": 13377/*!*********************************************************************************************!*\ 13378 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/Form.js ***! 13379 \*********************************************************************************************/ 13380/*! exports provided: default */ 13381/***/ (function(module, __webpack_exports__, __webpack_require__) { 13382 13383"use strict"; 13384__webpack_require__.r(__webpack_exports__); 13385/** 13386 * @typedef {ReturnType<typeof import('widgets/forms/BasicForm').default>} BasicForm 13387 */ 13388 13389/** 13390 * @param {BasicForm} BasicForm Base widget for extending 13391 * @returns {typeof Form} Form class 13392 */ 13393/* harmony default export */ __webpack_exports__["default"] = (function (BasicForm) { 13394 /** 13395 * @class Form 13396 * @augments BasicForm 13397 * @classdesc Represents Form component 13398 * @example <caption>Example of Form widget usage</caption> 13399 * <form 13400 * action="${URLUtils.url('Order-Track')}" 13401 * method="GET" 13402 * data-widget="form" 13403 * data-event-submit="handleSubmit" 13404 * > 13405 * ... form contents 13406 * </form> 13407 * @property {string} data-widget - Widget name `form` 13408 * @property {string} data-event-submit - Event listener for form submission 13409 */ 13410 class Form extends BasicForm {} 13411 13412 return Form; 13413}); 13414 13415/***/ }), 13416
13417/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputCheckbox.js": 13418/*!******************************************************************************************************!*\ 13419 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputCheckbox.js ***! 13420 \******************************************************************************************************/ 13421/*! exports provided: default */ 13422/***/ (function(module, __webpack_exports__, __webpack_require__) { 13423 13424"use strict"; 13425__webpack_require__.r(__webpack_exports__); 13426const ariaChecked = 'aria-checked'; 13427/** 13428 * @typedef {ReturnType <typeof import('widgets/forms/BasicInput').default>} BasicInput 13429 */ 13430 13431/** 13432 * @description Base InputCheckbox implementation 13433 * @param {BasicInput} BasicInput Base widget for extending 13434 * @returns {typeof InputCheckbox} Input Checkox class 13435 */ 13436 13437/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 13438 /** 13439 * @category widgets 13440 * @subcategory forms 13441 * @class InputCheckbox 13442 * @augments BasicInput 13443 * @classdesc Checkbox input implementation. Represents input `checkbox` element together with widget-related HTML markup. 13444 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 13445 * and dynamic forms configuration JSON. 13446 * @property {string} data-widget - Widget name `inputCheckbox` 13447 * @example <caption>InputCheckbox definition in dynamicforms.json</caption> 13448 * ... 13449 * // fields -> input -> checkbox 13450 * checkbox: { 13451 * 'label.after': true, 13452 * 'element.type': 'checkbox' 13453 * }, 13454 * ... 13455 * // fields -> generic -> setAsDefault 13456 * setAsDefault: { 13457 * extends: 'fields.input.checkbox', 13458 * 'label.text': 'form.address.setDefault' 13459 * }, 13460 * ... 13461 * @example <caption>Insertion of InputCheckbox inside ISML templates</caption> 13462 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 13463 * ... 13464 * <form> 13465 * ... 13466 * <isprint value="${ 13467 * formElement(pdict.addressForm.setAsDefault, pdict.addressFormOptions).render() 13468 * }" encoding="off"/> 13469 * ... 13470 * </form> 13471 * @example <caption>Resulted HTML structure for InputCheckbox</caption> 13472 * <div data-widget="inputCheckbox" class="b-form_section" data-id="dwfrm_login_rememberMe" data-validation-config='{"patterns":{},"errors":{},"mandatory":false}'> 13473 * <div class="b-checkbox"> 13474 * <input type="checkbox" data-ref="field" class="b-checkbox-input" id="dwfrm_login_rememberMe" name="dwfrm_login_rememberMe" value="true" 13475 * data-tau="login_rememberMe" data-event-blur="validate" aria-describedby="dwfrm_login_rememberMe-error" 13476 * > 13477 * <svg class="b-checkbox-icon" width="22" height="22" viewBox="0 0 24 24" focusable="false"> 13478 * <path class="b-checkbox-icon_check" fill="none" stroke="currentColor" d="m5.2686 10.371 5.1528 6.9837 9.8939-11.913"></path> 13479 * </svg> 13480 * <label class="b-form_section-label" for="dwfrm_login_rememberMe">Remember Me</label> 13481 * </div> 13482 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" id="dwfrm_login_rememberMe-error" hidden="hidden"></div> 13483 * </div> 13484 */ 13485 class InputCheckbox extends BasicInput { 13486 /** 13487 * @description Get value of a checkbox input. Returns empty string if checkbox is not checked. 13488 * @returns {string} result 13489 */ 13490 getValue() { 13491 if (this.ref('field').prop('checked')) { 13492 return super.getValue(); 13493 } 13494 13495 return ''; 13496 } 13497 /** 13498 * @description Set value to checkbox input. By fact - checks it if setted value is not empty. 13499 * @param {string} newVal New value to set. 13500 * @param {boolean} silently If true - there will be no event fired, that indicates input value change. 13501 * @emits BasicInput#change 13502 * @returns {void} 13503 */ 13504 13505 13506 setValue(newVal = '', silently = false) { 13507 this.ref('field').prop('checked', !!newVal); 13508 13509 if (!silently) { 13510 this.emit('change', this); 13511 } 13512 } 13513 /**
13514 * @description Checks the checkbox. Also updates accessibility properties of input accordingly. 13515 * @emits BasicInput#change 13516 * @returns {void} 13517 */ 13518 13519 13520 check() { 13521 this.ref('field').attr(ariaChecked, 'true'); 13522 this.ref('field').prop('checked', true); 13523 this.emit('change', this); 13524 } 13525 /** 13526 * @description Unchecks the checkbox. Also updates accessibility properties of input accordingly. 13527 * @emits BasicInput#change 13528 * @returns {void} 13529 */ 13530 13531 13532 uncheck() { 13533 this.ref('field').attr(ariaChecked, 'false'); 13534 this.ref('field').prop('checked', false); 13535 this.emit('change', this); 13536 } 13537 /** 13538 * @description Upadate accessibility `aria-checked` depending on checkbox state. 13539 * @returns {void} 13540 */ 13541 13542 13543 updateAriaChecked() { 13544 if (this.ref('field').prop('checked')) { 13545 this.ref('field').attr(ariaChecked, 'true'); 13546 } else { 13547 this.ref('field').attr(ariaChecked, 'false'); 13548 } 13549 } 13550 /** 13551 * @description Used to handle change checkbox state. 13552 * Usually used in dynamic forms config to handle `change` event on checkbox like: 13553 * @example 13554 * ... 13555 * element: { 13556 * attributes: { 13557 * 'data-event-change': 'handleChange' 13558 * } 13559 * } 13560 * ... 13561 * @emits BasicInput#change 13562 * @returns {void} 13563 */ 13564 13565 13566 handleChange() { 13567 this.updateAriaChecked(); 13568 this.emit('change'); 13569 } 13570 13571 } 13572 13573 return InputCheckbox; 13574}); 13575 13576/***/ }), 13577
13578/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputEmail.js": 13579/*!***************************************************************************************************!*\ 13580 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputEmail.js ***! 13581 \***************************************************************************************************/ 13582/*! exports provided: default */ 13583/***/ (function(module, __webpack_exports__, __webpack_require__) { 13584 13585"use strict"; 13586__webpack_require__.r(__webpack_exports__); 13587// TO BE REVIEWED 13588 13589/** 13590 * @typedef {ReturnType<typeof import('./InputText').default>} InputText 13591 */ 13592 13593/** 13594 * @description Base InputEmail implementation 13595 * @param {InputText} InputText Base widget for extending 13596 * @returns {typeof InputEmail} Input Email class 13597 */ 13598/* harmony default export */ __webpack_exports__["default"] = (function (InputText) { 13599 /** 13600 * @category widgets 13601 * @subcategory forms 13602 * @class InputEmail 13603 * @augments InputText 13604 * @classdesc Input type Email implementation. Represents input `email` element together with widget-related HTML markup. 13605 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 13606 * and dynamic forms configuration JSON. 13607 * @property {string} data-widget - Widget name `inputEmail` 13608 * @example <caption>InputEmail definition in dynamicforms.json</caption> 13609 * ... 13610 * // fields -> generic -> email 13611 * email: { 13612 * extends: 'fields.input.base', 13613 * element: { 13614 * attributes: { 13615 * autocomplete: 'email' 13616 * }, 13617 * maxLength: 50, 13618 * type: 'email', 13619 * required: true 13620 * }, 13621 * validation: { 13622 * 'patterns.parse': 'validation.patterns.parse.email', 13623 * 'errors.parse': 'validation.errors.email' 13624 * }, 13625 * 'label.text': 'form.profile.email' 13626 * }, 13627 * ... 13628 * @example <caption>Insertion of InputEmail inside ISML templates</caption> 13629 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 13630 * ... 13631 * <form> 13632 * ... 13633 * <isprint value="${ 13634 * formElement(pdict.addressForm.email, pdict.addressFormOptions).render() 13635 * }" encoding="off"/> 13636 * ... 13637 * </form> 13638 * @example <caption>Resulted HTML structure for InputEmail</caption> 13639 * <div data-widget="inputEmail" class="b-form_section m-required m-invalid" data-id="dwfrm_login_email" 13640 * data-validation-config="... validation config" 13641 * > 13642 * <label class="b-form_section-label" for="dwfrm_login_email"> 13643 * <span class="b-form_section-required" aria-hidden="true">*</span> 13644 * Email 13645 * </label> 13646 * <input data-ref="field" id="dwfrm_login_email" type="email" class="b-input m-invalid" placeholder="" 13647 * aria-describedby="dwfrm_login_email-error" pattern="..." name="dwfrm_login_email" 13648 * required="" value="" maxlength="50" aria-required="true" autocomplete="email" data-event-input="onInput" 13649 * data-tau="login_email" data-event-blur="validate" 13650 * > 13651 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" id="dwfrm_login_email-error">This field is required.</div> 13652 * </div> 13653 */ 13654 class InputEmail extends InputText {} 13655 13656 return InputEmail; 13657}); 13658 13659/***/ }), 13660
13661/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputHidden.js": 13662/*!****************************************************************************************************!*\ 13663 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputHidden.js ***! 13664 \****************************************************************************************************/ 13665/*! exports provided: default */ 13666/***/ (function(module, __webpack_exports__, __webpack_require__) { 13667 13668"use strict"; 13669__webpack_require__.r(__webpack_exports__); 13670// TO BE REVIEWED 13671 13672/** 13673 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 13674 */ 13675 13676/** 13677 * @param {BasicInput} BasicInput Base widget for extending 13678 * @returns {typeof InputHidden} Input Hidden class 13679 */ 13680/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 13681 /** 13682 * @category widgets 13683 * @subcategory forms 13684 * @class InputHidden 13685 * @augments BasicInput 13686 * @classdesc Widget used to handle hidden inputs. Represents input `hidden` element together with widget-related HTML markup. 13687 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 13688 * and dynamic forms configuration JSON. 13689 * Form validation will skip hidden inputs from validation perspective and will treat it as valid. 13690 * @property {string} data-widget - Widget name `inputHidden` 13691 * @example <caption>InputHidden definition in dynamicforms.json</caption> 13692 * ... 13693 * // fields -> generic -> hidden 13694 * hidden: { 13695 * extends: 'fields.input.base', 13696 * element: { 13697 * type: 'hidden' 13698 * } 13699 * }, 13700 * ... 13701 * @example <caption>Insertion of InputHidden inside ISML templates</caption> 13702 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 13703 * ... 13704 * <form> 13705 * ... 13706 * <isprint value="${ 13707 * formElement(pdict.addressForm.hiddenFieldExample).render() 13708 * }" encoding="off"/> 13709 * ... 13710 * </form> 13711 * @example <caption>Resulted HTML structure for InputHidden</caption> 13712 * <div data-widget="inputHidden" class="b-form_section m-required m-invalid" data-id="dwfrm_login_hiddenFieldExample"> 13713 * <input data-ref="field" id="dwfrm_login_hiddenFieldExample" type="hidden" name="dwfrm_login_hiddenFieldExample" value=""> 13714 * </div> 13715 */ 13716 class InputHidden extends BasicInput { 13717 prefs() { 13718 return { ...super.prefs(), 13719 skipValidation: true 13720 }; 13721 } 13722 13723 } 13724 13725 return InputHidden; 13726}); 13727 13728/***/ }), 13729
13730/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputNumber.js": 13731/*!****************************************************************************************************!*\ 13732 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputNumber.js ***! 13733 \****************************************************************************************************/ 13734/*! exports provided: default */ 13735/***/ (function(module, __webpack_exports__, __webpack_require__) { 13736 13737"use strict"; 13738__webpack_require__.r(__webpack_exports__); 13739/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 13740// TO BE REVIEWED 13741// TODO: should be implemented as https://www.w3.org/TR/wai-aria-practices/#spinbutton 13742 13743/** 13744 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 13745 */ 13746 13747/** 13748 * @description Base InputNumber implementation 13749 * @param {BasicInput} BasicInput Base widget for extending 13750 * @returns {typeof InputNumber} Input Number class 13751 */ 13752 13753/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 13754 /** 13755 * @category widgets 13756 * @subcategory forms 13757 * @class InputNumber 13758 * @augments BasicInput 13759 * @classdesc Widget used as a quantity selector for product with +/- buttons functionality. 13760 * - Uses `minValue` and `maxValue` properties to restrict allowed input range. 13761 * - Handles keyboard input, allows step +/- configuration. 13762 * @property {string} data-widget - Widget name `inputNumber` 13763 * @example <caption>Example HTML structure for InputNumber</caption> 13764 * <div class="quantity-form" 13765 * data-widget="inputNumber" 13766 * data-widget-event-change="updateQty" 13767 * data-uuid="${lineItem.UUID}" 13768 * data-pid="${lineItem.id}" 13769 * data-min-value="${lineItem.quantityOptions.minOrderQuantity + ''}" 13770 * data-max-value="${lineItem.quantityOptions.maxOrderQuantity + ''}" 13771 * data-action="${pdict.actionUrls.updateQuantityUrl}" 13772 * data-skip-validation="true" 13773 * data-pre-select-qty="${lineItem.quantity + ''}" 13774 * data-name="${lineItem.productName}" 13775 * data-analytics="${JSON.stringify(lineItem.gtmInfo)}" 13776 * data-remove-action="${pdict.actionUrls.removeProductLineItemUrl}" 13777 * data-inform-attempt-decrease-min-val="true" 13778 * data-widget-event-attemptdecreaseminval="removeProduct" 13779 *> 13780 * <label class="line-item-pricing-info quantity-label" for="quantity-${lineItem.UUID}"> 13781 * ${Resource.msg('field.selectquantity','cart',null)} 13782 * </label> 13783 * <div class="quantity-form-inner"> 13784 * <button 13785 * data-ref="lessBtn" 13786 * data-event-click="decrement" 13787 * class="quantity-form-inner__less" 13788 * > 13789 * <span class="is-sr-only">${Resource.msg('label.decrease.quantity','cart',null)}</span>- 13790 * </button> 13791 * 13792 * <input class="form-control quantity custom-select" 13793 * data-ref="field" 13794 * type="number" 13795 * pattern="^\d?\d$" 13796 * data-event-change="changeValue" 13797 * id="quantity-${lineItem.UUID}" 13798 * name="quantity-${lineItem.UUID}" 13799 * value="${lineItem.quantity + ''}" 13800 * min="${lineItem.quantityOptions.minOrderQuantity + ''}" 13801 * max="${lineItem.quantityOptions.maxOrderQuantity + ''}" 13802 * step="${lineItem.qtyStep + ''}" 13803 * data-value="${lineItem.quantity + ''}" 13804 * /> 13805 * 13806 * <button 13807 * data-ref="moreBtn" 13808 * data-event-click="increment" 13809 * class="quantity-form-inner__more" 13810 * > 13811 * <span class="is-sr-only">${Resource.msg('label.increase.quantity','cart',null)}</span>+ 13812 * </button> 13813 * </div> 13814 * <div class="invalid-feedback is-hidden" data-ref="errorFeedback" hidden="hidden"></div> 13815 * </div> 13816 */ 13817 class InputNumber extends BasicInput { 13818 prefs() { 13819 return { 13820 maxValue: 99, 13821 minValue: 0, 13822 allowEmpty: false, 13823 informAttemptDecreaseMinVal: false, 13824 ...super.prefs() 13825 }; 13826 } 13827 13828 init() { 13829 super.init(); 13830 this.maxLengthAttr = parseInt(this.ref('field').attr('maxlength').toString(), 10); 13831 this.step = parseFloat(this.ref('field').attr('step').toString()) || 1; 13832 this.ref('field').attr('maxlength', this.prefs().maxValue.toString().length.toFixed()); 13833 this.initValue = this.getValue(); 13834 } 13835 /**
13836 * @description Handler for `keydown` event on element 13837 * @param {HTMLInputElement} el - element, which triggers an event 13838 * @param {KeyboardEvent} incomingEvent - event object 13839 * @listens dom#keydown 13840 * @returns {void} 13841 */ 13842 13843 13844 handleKeyDown(el, incomingEvent) { 13845 let event = incomingEvent; 13846 13847 if (!event && window.event) { 13848 // @ts-ignore 13849 event = window.event; 13850 } 13851 13852 const keyCode = event.keyCode || event.which; // special handling for old devices 13853 13854 if (this.maxLengthAttr && el.value.toString().length + 1 >= this.maxLengthAttr) { 13855 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 13856 this.setValue(this.getValue(), true); 13857 }, 0)); 13858 } else if (keyCode === 13) { 13859 // Enter pressed 13860 this.changeValue(); 13861 event.preventDefault(); 13862 } 13863 } 13864 /** 13865 * @description Tries to change value of input. In case if new value is behind specific number input constrains - returns previous or default value. 13866 * @emits InputNumber#attemptdecreaseminval 13867 * @listens dom#change 13868 * @returns {void} 13869 */ 13870 13871 13872 changeValue() { 13873 if (Number(this.getValue()) < this.prefs().minValue && this.prefs().informAttemptDecreaseMinVal) { 13874 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 13875 /** 13876 * @description Event, indicates that attempt to set number input value less than specified in constraints 13877 * @event InputNumber#attemptdecreaseminval 13878 */ 13879 this.emit('attemptdecreaseminval'); 13880 this.setValue(String(this.prevVal || this.initValue), true); 13881 }, 100)); 13882 } else { 13883 this.setValue(this.getValue()); 13884 this.validate(); 13885 } 13886 } 13887 /** 13888 * @description Decrements value in number input. In case if new value is behind specific number input constrains - emits `attemptdecreaseminval` and skips value. 13889 * @emits InputNumber#attemptdecreaseminval 13890 * @returns {void} 13891 */ 13892 13893 13894 decrement() { 13895 if (!this.isDisabled()) { 13896 const newVal = parseFloat(this.getValue()) - (this.step || 0); 13897 13898 if (newVal >= this.prefs().minValue) { 13899 this.setValue(newVal.toString()); 13900 } else if (this.prefs().informAttemptDecreaseMinVal) { 13901 this.emit('attemptdecreaseminval'); 13902 } 13903 } 13904 } 13905 /** 13906 * @description Increments value in number input. In case if new value is behind specific number input constrains - emits `quantityNotAllowed` and skips value. 13907 * @emits InputNumber#quantityNotAllowed 13908 * @returns {void} 13909 */ 13910 13911 13912 increment() { 13913 if (!this.isDisabled()) { 13914 const newVal = parseFloat(this.getValue()) + (this.step || 0); 13915 13916 if (newVal <= this.prefs().maxValue) { 13917 this.setValue(newVal.toString()); 13918 } else { 13919 /** 13920 * @description Event, indicates that attempt to set number input value not valid as per constraints. 13921 * @event InputNumber#quantityNotAllowed 13922 */ 13923 this.emit('quantityNotAllowed'); 13924 } 13925 } 13926 } 13927 /** 13928 * @description Sets value for number input. Checks it on constraints first. 13929 * Manages input buttons less/more. 13930 * @param {string} val - set this value to input 13931 * @param {boolean} silent - if set to `true` - input should not be validated against a new value 13932 * @returns {void} 13933 */ 13934 13935 13936 setValue(val, silent = false) { 13937 if (val === '' && this.prefs().allowEmpty) { 13938 super.setValue('', silent); 13939 } else { 13940 const floatValue = typeof val !== 'number' ? parseFloat(val) : val; 13941 13942 if (floatValue >= this.prefs().minValue && floatValue <= this.prefs().maxValue) { 13943 super.setValue(floatValue.toString(), silent); 13944 this.prevVal = floatValue; 13945 } else if (floatValue > this.prefs().maxValue) { 13946 super.setValue(String(this.prefs().maxValue), silent); 13947 } else if (floatValue < this.prefs().minValue || Number.isNaN(floatValue)) { 13948 super.setValue(String(this.prevVal || this.prefs().minValue), silent); 13949 } else { 13950 super.setValue('', silent); 13951 } 13952 } 13953 13954 this.ref('moreBtn').enable(); 13955 this.ref('lessBtn').enable(); 13956 const value = parseFloat(this.getValue()); 13957 13958 if (this.prefs().minValue > value - (this.step || 0)) { 13959 if (!this.prefs().informAttemptDecreaseMinVal) { 13960 this.ref('lessBtn').disable(); 13961 } 13962 } else if (this.prefs().maxValue < value + (this.step || 0)) { 13963 this.ref('moreBtn').disable(); 13964 } 13965 } 13966 /**
13967 * @description Executes after widget was refreshed 13968 * @returns {void} 13969 */ 13970 13971 13972 onRefresh() { 13973 this.setValue(this.ref('field').attr('value').toString(), true); 13974 this.ref('field').attr('maxlength', this.prefs().maxValue.toString().length.toFixed()); 13975 } 13976 /** 13977 * @description Implements number input specific logic to indicate if field value is valid. 13978 * @returns {boolean} - input validation result 13979 */ 13980 13981 13982 isValid() { 13983 const isSuperValid = super.isValid(); 13984 13985 if (isSuperValid) { 13986 const val = parseFloat(this.getValue()); 13987 13988 if (val < this.prefs().minValue || val > this.prefs().maxValue) { 13989 const validation = this.prefs().validationConfig; 13990 this.error = validation.errors.range || validation.errors.parse; 13991 return false; 13992 } 13993 } 13994 13995 return isSuperValid; 13996 } 13997 /** 13998 * @description Initiates field validation process. Manages validation error messages on input. 13999 * @returns {boolean} - input validation result 14000 */ 14001 14002 14003 validate() { 14004 if (this.disabled) { 14005 return true; 14006 } 14007 14008 const isValid = this.isValid(); 14009 14010 if (isValid) { 14011 this.clearError(); 14012 } else { 14013 this.setError(this.error); 14014 } 14015 14016 return isValid; 14017 } 14018 14019 } 14020 14021 return InputNumber; 14022}); 14023 14024/***/ }), 14025
14026/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputPassword.js": 14027/*!******************************************************************************************************!*\ 14028 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputPassword.js ***! 14029 \******************************************************************************************************/ 14030/*! exports provided: default */ 14031/***/ (function(module, __webpack_exports__, __webpack_require__) { 14032 14033"use strict"; 14034__webpack_require__.r(__webpack_exports__); 14035/** 14036 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 14037 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 14038 */ 14039 14040/** 14041 * @description Base InputPassword implementation 14042 * @param {BasicInput} BasicInput Base widget for extending 14043 * @returns {typeof InputPassword} Input Password class 14044 */ 14045/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 14046 /** 14047 * @category widgets 14048 * @subcategory forms 14049 * @class InputPassword 14050 * @augments BasicInput 14051 * @classdesc Specific Password input, contains specific password validation logic. Represents input `password` element together with widget-related HTML markup. 14052 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 14053 * and dynamic forms configuration JSON. 14054 * Uses 'show/hide mask' functionality, which allows customer to see/hide printed password characters. 14055 * Adds additional validation constraints rules, which are password-specific (like special characters, uppercased characters etc). 14056 * @property {string} data-widget - Widget name `inputPassword` 14057 * @example <caption>InputPassword definition in dynamicforms.json</caption> 14058 * ... 14059 * // fields -> input -> password 14060 * password: { 14061 * extends: 'fields.input.base', 14062 * 'caption.show': true, 14063 * 'caption.text': 'form.profile.password.caption', 14064 * 'label.text': 'form.profile.password', 14065 * element: { 14066 * type: 'password', 14067 * required: true, 14068 * minLength: 8, 14069 * maxLength: 255, 14070 * attributes: { 14071 * 'data-event-input': 'onPasswordInput' 14072 * } 14073 * } 14074 * }, 14075 * ... 14076 * @example <caption>Insertion of InputPassword inside ISML templates</caption> 14077 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 14078 * ... 14079 * <form> 14080 * ... 14081 * <isprint value="${ 14082 * formElement(pdict.profile.password).render() 14083 * }" encoding="off"/> 14084 * ... 14085 * </form> 14086 * @example <caption>Resulted HTML structure for InputPassword</caption> 14087 * <div data-widget="inputPassword" class="b-form_section m-required m-invalid" 14088 * data-id="dwfrm_login_password" data-validation-config="... validation cinfig" 14089 * > 14090 * <label class="b-form_section-label" for="dwfrm_login_password"> 14091 * <span class="b-form_section-required" aria-hidden="true">*</span> 14092 * Password 14093 * </label> 14094 * <div class="b-input_password"> 14095 * <input data-ref="field" id="dwfrm_login_password" type="password" class="b-input m-invalid" 14096 * aria-describedby="dwfrm_login_password-error" placeholder="" name="dwfrm_login_password" required="" value="" 14097 * maxlength="255" aria-required="true" minlength="8" data-event-input="onPasswordInput" 14098 * autocomplete="current-password" data-tau="login_password" data-event-blur="validate" 14099 * > 14100 * <button class="b-input_password-toggle_visibility" data-ref="showButton" data-event-click="toggleMask" 14101 * data-button-text-show="Show" data-button-text-hide="Hide" aria-pressed="false" 14102 * title="Toggle password field visibility" type="button" hidden="hidden">Show</button> 14103 * </div> 14104 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" id="dwfrm_login_password-error">This field is required.</div> 14105 * </div> 14106 */ 14107 class InputPassword extends BasicInput { 14108 prefs() { 14109 return { 14110 upperCaseAmount: 0, 14111 lowerCaseAmount: 0, 14112 numbersAmount: 0, 14113 specialCharsAmount: 0, 14114 specialCharsList: '$%/()[]{}=?!.,-_*|+~#', 14115 ...super.prefs() 14116 }; 14117 } 14118 /**
14119 * @description Checks if entered data is number 14120 * @param {string} val - entered password 14121 * @returns {boolean} check result 14122 */ 14123 14124 14125 isNumber(val) { 14126 return '0123456789'.includes(val); 14127 } 14128 /** 14129 * @description Checks if entered data is simple character (not a number or special character) 14130 * @param {string} val - entered password 14131 * @returns {boolean} check result 14132 */ 14133 14134 14135 isSimpleChar(val) { 14136 return !this.isNumber(val) && !this.prefs().specialCharsList.includes(val); 14137 } 14138 /** 14139 * @description Verifies if entered password is valid and encount all password constraints. 14140 * @returns {boolean} check result 14141 */ 14142 14143 14144 isValid() { 14145 const val = this.getValue(); 14146 14147 if (!super.isValid()) { 14148 return false; 14149 } 14150 14151 if (typeof val === 'string' && val) { 14152 const valChars = val.split(''); 14153 14154 if (this.checkLowerCaseAmount(valChars) && this.checkUpperCaseAmount(valChars) && this.checkNumberAmount(valChars) && this.checkSpecialCharsAmount(valChars)) { 14155 if (this.widgetToMatch && this.widgetToMatchOpts && this.widgetToMatch.data('getValue') !== val) { 14156 this.error = this.widgetToMatchOpts.msg; 14157 return false; 14158 } 14159 } else { 14160 return false; 14161 } 14162 } 14163 14164 return true; 14165 } 14166 /** 14167 * @description Checks special characters amount in entered password as per corresponding constraint. 14168 * @param {string[]} valChars - array of entered password symbols 14169 * @returns {boolean} check results 14170 */ 14171 14172 14173 checkSpecialCharsAmount(valChars) { 14174 if (this.prefs().specialCharsAmount) { 14175 const specialCharsList = this.prefs().specialCharsList; 14176 const specialCharsLetters = valChars.filter(char => specialCharsList.includes(char)); 14177 14178 if (specialCharsLetters.length < this.prefs().specialCharsAmount) { 14179 this.error = this.prefs().validationConfig.errors.specialCharsAmount; 14180 return false; 14181 } 14182 } 14183 14184 return true; 14185 } 14186 /** 14187 * @description Checks numbers amount in entered password as per corresponding constraint. 14188 * @param {string[]} valChars - array of entered password symbols 14189 * @returns {boolean} check result 14190 */ 14191 14192 14193 checkNumberAmount(valChars) { 14194 if (this.prefs().numbersAmount) { 14195 const numberLetters = valChars.filter(char => this.isNumber(char)); 14196 14197 if (numberLetters.length < this.prefs().numbersAmount) { 14198 this.error = this.prefs().validationConfig.errors.numbersAmount; 14199 return false; 14200 } 14201 } 14202 14203 return true; 14204 } 14205 /** 14206 * @description Checks lowercased characters amount in entered password as per corresponding constraint. 14207 * @param {string[]} valChars - array of entered password symbols 14208 * @returns {boolean} check result 14209 */ 14210 14211 14212 checkLowerCaseAmount(valChars) { 14213 if (this.prefs().lowerCaseAmount) { 14214 const lowerCaseLetters = valChars.filter(char => char === char.toLowerCase() && this.isSimpleChar(char)); 14215 14216 if (lowerCaseLetters.length < this.prefs().lowerCaseAmount) { 14217 this.error = this.prefs().validationConfig.errors.lowerCaseAmount; 14218 return false; 14219 } 14220 } 14221 14222 return true; 14223 } 14224 /** 14225 * @description Checks uppercased characters amount in entered password as per corresponding constraint. 14226 * @param {string[]} valChars - array of entered password symbols 14227 * @returns {boolean} check results 14228 */ 14229 14230 14231 checkUpperCaseAmount(valChars) { 14232 if (this.prefs().upperCaseAmount) { 14233 const upperCaseLetters = valChars.filter(char => char === char.toUpperCase() && this.isSimpleChar(char)); 14234 14235 if (upperCaseLetters.length < this.prefs().upperCaseAmount) { 14236 this.error = this.prefs().validationConfig.errors.upperCaseAmount; 14237 return false; 14238 } 14239 } 14240 14241 return true; 14242 } 14243 /** 14244 * @description Show mask button inside password field 14245 * @returns {void} 14246 */ 14247 14248 14249 showMaskButton() { 14250 this.ref('showButton').show(); 14251 } 14252 /** 14253 * @description Handle click on button Show/Hide mask. Toggle type based on input type. 14254 * @listens dom#click 14255 * @returns {void} 14256 */ 14257 14258 14259 toggleMask() { 14260 const input = this.ref('field'); 14261 const inputType = input.attr('type'); 14262 const showButton = this.ref('showButton'); 14263 const showText = showButton.data('buttonTextShow'); 14264 const hideText = showButton.data('buttonTextHide'); 14265 14266 if (inputType === 'password') { 14267 input.attr('type', 'text'); 14268 showButton.attr('aria-pressed', 'true'); 14269 showButton.setText(hideText); 14270 } else { 14271 input.attr('type', 'password'); 14272 showButton.attr('aria-pressed', 'false'); 14273 showButton.setText(showText); 14274 } 14275 } 14276 /**
14277 * @description Listener for `input` event. 14278 * Usually used to display Show/Hide mask button when entered needed amount of symbols into password field. 14279 * @listens dom#input 14280 * @param {RefElement} el event source element 14281 * @returns {void} 14282 */ 14283 14284 14285 onPasswordInput(el) { 14286 const entered = el && el.val(); 14287 14288 if (entered && entered.length) { 14289 this.showMaskButton(); 14290 } 14291 } 14292 14293 } 14294 14295 return InputPassword; 14296}); 14297 14298/***/ }), 14299
14300/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputRadio.js": 14301/*!***************************************************************************************************!*\ 14302 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputRadio.js ***! 14303 \***************************************************************************************************/ 14304/*! exports provided: default */ 14305/***/ (function(module, __webpack_exports__, __webpack_require__) { 14306 14307"use strict"; 14308__webpack_require__.r(__webpack_exports__); 14309const DATA_FIELD = '[data-ref="field"]'; 14310/** 14311 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 14312 */ 14313 14314/** 14315 * @description Base InputRadio implementation 14316 * @param {BasicInput} BasicInput Base widget for extending 14317 * @returns {typeof InputRadio} Input Radio class 14318 */ 14319 14320/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 14321 /** 14322 * @category widgets 14323 * @subcategory forms 14324 * @class InputRadio 14325 * @augments BasicInput 14326 * @classdesc Radio input implementation. Represents input `radio` element together with widget-related HTML markup. 14327 * @property {string} data-widget - Widget name `inputRadio` 14328 * @example <caption>InputRadio HTML markup example</caption> 14329 * <fieldset class="b-form-set"> 14330 * <legend class="b-form-set_label">Shipping method</legend> 14331 * <div class="b-form_section" data-widget="inputRadio" data-id="shippingMethodList" 14332 * data-select-shipping-method-url="https://..." 14333 * data-action-url="https://..." 14334 * data-widget-event-change="selectShippingMethod" data-shipment-uuid="3fbc2a6f7e32e2b1755e9099bd" 14335 * > 14336 * <div class="b-option_switch"> 14337 * <div class="b-option_switch-inner"> 14338 * <input id="shippingMethod-001" class="b-option_switch-input" 14339 * name="dwfrm_shipping_shippingAddress_shippingMethodID" type="radio" 14340 * value="001" data-value="001" data-ref="field" data-event-change="update" checked="" 14341 * > 14342 * <div class="b-option_switch-icon"></div> 14343 * <label class="b-option_switch-label" for="shippingMethod-001"> 14344 * <div class="b-option_switch-label_surface"> 14345 * <span class="b-option_switch-name">...</span> 14346 * <div class="b-price">...</div> 14347 * </div> 14348 * <span class="b-option_switch-description">...</span> 14349 * </label> 14350 * </div> 14351 * </div> 14352 * <div class="b-option_switch"> 14353 * <div class="b-option_switch-inner"> 14354 * <input id="shippingMethod-002" class="b-option_switch-input" 14355 * name="dwfrm_shipping_shippingAddress_shippingMethodID" type="radio" 14356 * value="001" data-value="001" data-ref="field" data-event-change="update" checked="" 14357 * > 14358 * <div class="b-option_switch-icon"></div> 14359 * <label class="b-option_switch-label" for="shippingMethod-001"> 14360 * <div class="b-option_switch-label_surface"> 14361 * <span class="b-option_switch-name">...</span> 14362 * <div class="b-price">...</div> 14363 * </div> 14364 * <span class="b-option_switch-description">...</span> 14365 * </label> 14366 * </div> 14367 * </div> 14368 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" hidden=""></div> 14369 * </fieldset> 14370 */ 14371 class InputRadio extends BasicInput { 14372 /** 14373 * @description method to get `value` of the radio 14374 * @returns {string} value of selected radio input 14375 */ 14376 getValue() { 14377 const el = this.ref('self').get(); 14378 14379 if (el) { 14380 return Array.from(el.querySelectorAll(DATA_FIELD)).reduce((val, elField) => { 14381 const tmpEl = 14382 /** @type {HTMLInputElement} */ 14383 elField; 14384 return val || (tmpEl.checked || '') && tmpEl.value; 14385 }, ''); 14386 } 14387 14388 return ''; 14389 } 14390 /**
14391 * @description method to get `data-value` value of the radio 14392 * @returns {string} `data-value` value 14393 */ 14394 14395 14396 getDataValue() { 14397 const el = this.ref('self').get(); 14398 14399 if (el) { 14400 return Array.from(el.querySelectorAll(DATA_FIELD)).reduce((val, elInner) => { 14401 const tmpEl = 14402 /** @type {HTMLInputElement} */ 14403 elInner; 14404 return val || (tmpEl.checked || '') && (tmpEl.getAttribute('data-value') || ''); 14405 }, ''); 14406 } 14407 14408 return ''; 14409 } 14410 /** 14411 * @description Overriden implementation of parent validate() method 14412 * @returns {boolean} true in all cases 14413 */ 14414 14415 14416 validate() { 14417 return true; 14418 } 14419 /** 14420 * @description Method to select radio input 14421 * @param {string} value - value to be set to radio button 14422 * @returns {void} 14423 */ 14424 14425 14426 setValue(value) { 14427 const el = this.ref('self').get(); 14428 14429 if (el) { 14430 Array.from(el.querySelectorAll(DATA_FIELD)).forEach(elField => { 14431 const tmpEl = 14432 /** @type {HTMLInputElement} */ 14433 elField; 14434 14435 if (tmpEl.value === value) { 14436 tmpEl.checked = true; 14437 tmpEl.setAttribute('checked', 'checked'); 14438 } else { 14439 tmpEl.checked = false; 14440 tmpEl.removeAttribute('checked'); 14441 } 14442 }); 14443 } 14444 } 14445 /** 14446 * @description Method to get dataset of checked or first radio input 14447 * @returns {null|object} dataset object of first or checked radio input, or null if no 'self' exist 14448 */ 14449 14450 14451 getDataSet() { 14452 const checked = this.getChecked(); 14453 return checked ? checked.dataset : checked; 14454 } 14455 /** 14456 * @description Method to get checked (or first) radio input 14457 * @returns {null|HTMLElement} first or checked inputs ref element if self exists, null if not 14458 */ 14459 14460 14461 getChecked() { 14462 const el = this.ref('self').get(); 14463 14464 if (el) { 14465 /** @type {HTMLInputElement} */ 14466 const currentEl = Array.from(el.querySelectorAll(DATA_FIELD)).filter(field => { 14467 const tmpField = 14468 /** @type {HTMLInputElement} */ 14469 field; 14470 return tmpField.checked; 14471 })[0] || el.querySelectorAll(DATA_FIELD)[0]; 14472 return currentEl; 14473 } 14474 14475 return null; 14476 } 14477 14478 } 14479 14480 return InputRadio; 14481}); 14482 14483/***/ }), 14484
14485/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputSelect.js": 14486/*!****************************************************************************************************!*\ 14487 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputSelect.js ***! 14488 \****************************************************************************************************/ 14489/*! exports provided: default */ 14490/***/ (function(module, __webpack_exports__, __webpack_require__) { 14491 14492"use strict"; 14493__webpack_require__.r(__webpack_exports__); 14494/* harmony import */ var widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/RefElement */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/RefElement.js"); 14495// @ts-ignore 14496 14497/** 14498 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 14499 * @typedef {InstanceType <typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 14500 */ 14501 14502/** 14503 * @description Base InputSelect implementation 14504 * @param {BasicInput} BasicInput Base widget for extending 14505 * @returns {typeof InputSelect} Input Select class 14506 */ 14507 14508/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 14509 /** 14510 * @category widgets 14511 * @subcategory forms 14512 * @class InputSelect 14513 * @augments BasicInput 14514 * @classdesc Select input implementation. Represents input `password` element together with widget-related HTML markup. 14515 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 14516 * and dynamic forms configuration JSON. 14517 * @property {string} data-widget - Widget name `inputSelect` 14518 * @example <caption>InputSelect definition in dynamicforms.json</caption> 14519 * ... 14520 * // fields -> select 14521 * select: { 14522 * 'element.type': 'select', 14523 * validation: { 14524 * 'patterns.security': 'validation.patterns.security', 14525 * 'errors.security': 'validation.errors.parse' 14526 * } 14527 * }, 14528 * ... 14529 * // fields -> generic -> country 14530 * country: { 14531 * widget: { 14532 * attributes: { 14533 * 'data-widget-event-change': 'onCountryChange' 14534 * }, 14535 * classes: 'm-small' 14536 * }, 14537 * extends: 'fields.select', 14538 * 'label.text': 'form.address.country', 14539 * element: { 14540 * required: true, 14541 * attributes: { 14542 * 'data-event-change': 'onChange' 14543 * } 14544 * } 14545 * }, 14546 * } 14547 * ... 14548 * @example <caption>Insertion of InputSelect inside ISML templates</caption> 14549 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 14550 * ... 14551 * <form> 14552 * ... 14553 * <isprint value="${ 14554 * formElement(pdict.addressForm.country, pdict.addressFormOptions).render() 14555 * }" encoding="off"/> 14556 * ... 14557 * </form> 14558 * @example <caption>Resulted HTML structure for InputSelect</caption> 14559 * <div data-widget="inputSelect" data-first-default="true" 14560 * data-widget-event-change="updateShippingState" class="b-form_section m-required m-small m-invalid" 14561 * data-id="dwfrm_shipping_shippingAddress_addressFields_states_stateCode" 14562 * data-validation-config="... validation config" 14563 * > 14564 * <label class="b-form_section-label" for="dwfrm_shipping_shippingAddress_addressFields_states_stateCode"> 14565 * <span class="b-form_section-required" aria-hidden="true">*</span> 14566 * State 14567 * </label> 14568 * <div class="b-select"> 14569 * <select data-ref="field" class="b-select-input m-invalid" 14570 * id="dwfrm_shipping_shippingAddress_addressFields_states_stateCode" 14571 * name="dwfrm_shipping_shippingAddress_addressFields_states_stateCode" 14572 * required="" aria-required="true" data-event-change="onChange" 14573 * aria-describedby="dwfrm_shipping_shippingAddress_addressFields_states_stateCode-error" 14574 * data-event-blur="validate" 14575 * > 14576 * <option value="" data-id="0">Please select</option> 14577 * ... 14578 * </select> 14579 * <svg aria-hidden="true" class="b-select-icon" width="10" height="6" focusable="false"> 14580 * <use href="#arrow-down-small"></use> 14581 * </svg>
14582 * </div> 14583 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" id="dwfrm_shipping_shippingAddress_addressFields_states_stateCode-error">This field is required.</div> 14584 * </div> 14585 */ 14586 class InputSelect extends BasicInput { 14587 init() { 14588 super.init(); 14589 const field = 14590 /** @type {HTMLSelectElement|undefined} */ 14591 this.ref('field').get(); // Reset value when for some reason no option preselected, even first (default) 14592 14593 if (field && !field.value) { 14594 const option = Array.from(field.options).find(elem => elem.hasAttribute('selected')); 14595 let val = option && option.value; 14596 14597 if (!val) { 14598 val = this.getValue(); 14599 } 14600 14601 this.setValue(val, true); 14602 } 14603 14604 if (this.config.firstDefault && field) { 14605 this.initValue = field.options[0].value; 14606 } 14607 } 14608 /** 14609 * @description InputSelect on change handler 14610 * @listens dom#change 14611 * @param {RefElement} el source of event 14612 * @param {(Event|undefined)} event event instance if DOM event 14613 * @returns {void} 14614 */ 14615 14616 14617 onChange(el, event) { 14618 if (!this.config.dontPrevent && event && event instanceof Event) { 14619 event.preventDefault(); 14620 } 14621 14622 this.update(); 14623 } 14624 /** 14625 * @description Sets new value on select from selected option 14626 * @param {string} newVal new value 14627 * @param {boolean} silently validate after change 14628 * @returns {void} 14629 */ 14630 14631 14632 setValue(newVal, silently) { 14633 let val = newVal || this.initValue || ''; 14634 const field = 14635 /** @type {HTMLSelectElement|undefined} */ 14636 this.ref('field').get(); 14637 14638 if (field) { 14639 const option = Array.from(field.options).find(elem => elem.value === val); 14640 14641 if (!option) { 14642 val = this.initValue || ''; 14643 } 14644 } 14645 14646 super.setValue(val, silently); 14647 } 14648 /** 14649 * @description Get value from selected option 14650 * @returns {string} selected option value 14651 */ 14652 14653 14654 getValue() { 14655 const selectedOption = this.getSelectedOptions(); 14656 14657 if (selectedOption) { 14658 if (selectedOption.length) { 14659 return ( 14660 /** @type {string} */ 14661 selectedOption.val() 14662 ); 14663 } 14664 14665 const field = 14666 /** @type {HTMLSelectElement|undefined} */ 14667 this.ref('field').get(); 14668 14669 if (field && field.options.length) { 14670 const item = field.options.item(0); 14671 14672 if (item) { 14673 return item.value; 14674 } 14675 } 14676 } 14677 14678 return ''; 14679 } 14680 /** 14681 * @description Get selected options for select 14682 * @returns {RefElement|undefined} selected options 14683 */ 14684 14685 14686 getSelectedOptions() { 14687 const field = 14688 /** @type {HTMLSelectElement|undefined} */ 14689 this.ref('field').get(); 14690 14691 if (field && field.selectedOptions) { 14692 return new widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_0__["RefElement"](Array.from(field.selectedOptions)); 14693 } 14694 14695 return undefined; 14696 } 14697 /** 14698 * @description Get selected option text 14699 * @returns {string} selected option text 14700 */ 14701 14702 14703 getText() { 14704 const field = this.ref('field').get(); 14705 14706 if (field) { 14707 const selectedNode = Object.values(field.childNodes).find(node => 14708 /** @type {HTMLOptionElement} */ 14709 node.selected); 14710 14711 if (selectedNode) { 14712 return selectedNode.textContent || ''; 14713 } 14714 14715 return ''; 14716 } 14717 14718 return ''; 14719 } 14720 /** 14721 * @description Locks select input (add locked classes, set read-only, disabled) 14722 * @returns {void} 14723 */ 14724 14725 14726 lock() { 14727 if (!this.locked) { 14728 super.lock(); 14729 this.ref('field').attr('disabled', true); 14730 } 14731 } 14732 /** 14733 * @description Unlocks select input (remove locked classes, remove read-only, disabled) 14734 * @returns {void} 14735 */ 14736 14737 14738 unlock() { 14739 if (this.locked) { 14740 super.unlock(); 14741 this.ref('field').attr('disabled', false); 14742 } 14743 } 14744 14745 changeAttribute() {} // eslint-disable-line 14746 14747 /** 14748 * @description Method to stop propagation in case if input events should not be interrupted. 14749 * For example, when there is a listener on a parent widget that is triggered by the same keydown event and it should not fire, etc. 14750 * @param {HTMLElement} _ - source of keydown event 14751 * @param {Event} event - keydown event object 14752 * @returns {void} 14753 */ 14754 14755 14756 stopImmediatePropagation(_, event) { 14757 if (event) { 14758 event.stopImmediatePropagation(); 14759 } 14760 } 14761 14762 } 14763 14764 return InputSelect; 14765}); 14766 14767/***/ }), 14768
14769/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputTel.js": 14770/*!*************************************************************************************************!*\ 14771 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputTel.js ***! 14772 \*************************************************************************************************/ 14773/*! exports provided: default */ 14774/***/ (function(module, __webpack_exports__, __webpack_require__) { 14775 14776"use strict"; 14777__webpack_require__.r(__webpack_exports__); 14778/** 14779 * @typedef {ReturnType<typeof import('./InputText').default>} InputText 14780 */ 14781 14782/** 14783 * @description Base InputTel implementation 14784 * @param {InputText} InputText Base widget for extending 14785 * @returns {typeof InputTel} Input Tel class 14786 */ 14787/* harmony default export */ __webpack_exports__["default"] = (function (InputText) { 14788 /** 14789 * @category widgets 14790 * @subcategory forms 14791 * @class InputTel 14792 * @augments InputText 14793 * @classdesc Input type Tel implementation. Represents input `tel` element together with widget-related HTML markup. 14794 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 14795 * and dynamic forms configuration JSON. 14796 * @property {string} data-widget - Widget name `inputTel` 14797 * @example <caption>InputSelect definition in dynamicforms.json</caption> 14798 * ... 14799 * // fields -> input -> tel 14800 * tel: { 14801 * extends: 'fields.input.base', 14802 * validation: { 14803 * 'errors.parse': 'validation.errors.phone' 14804 * }, 14805 * 'label.text': 'form.address.phone', 14806 * 'caption.show': true, 14807 * element: { 14808 * type: 'tel', 14809 * minLength: 5, 14810 * maxLength: 20, 14811 * attributes: { 14812 * autocomplete: 'tel', 14813 * 'data-event-input': 'onInput', 14814 * 'data-event-keypress': 'onKeypress', 14815 * 'data-event-change': 'onChange', 14816 * 'data-event-paste.prevent': 'onPaste' 14817 * } 14818 * }, 14819 * localization: { 14820 * us: { 14821 * widget: { 14822 * attributes: { 14823 * 'data-mask': '9-999-999-9999' 14824 * } 14825 * }, 14826 * validation: { 14827 * 'patterns.parse': 'validation.patterns.parse.phone.us' 14828 * }, 14829 * caption: { 14830 * text: 'form.address.phone.caption.us' 14831 * } 14832 * }, 14833 * ca: { 14834 * widget: { 14835 * attributes: { 14836 * 'data-mask': '9-999-999-9999' 14837 * } 14838 * }, 14839 * validation: { 14840 * 'patterns.parse': 'validation.patterns.parse.phone.ca' 14841 * }, 14842 * caption: { 14843 * text: 'form.address.phone.caption.ca' 14844 * } 14845 * }, 14846 * gb: { 14847 * widget: { 14848 * attributes: { 14849 * 'data-mask': '+99 (9)99 9999 9999' 14850 * } 14851 * }, 14852 * validation: { 14853 * 'patterns.parse': 'validation.patterns.parse.phone.gb' 14854 * }, 14855 * caption: { 14856 * text: 'form.address.phone.caption.gb' 14857 * } 14858 * } 14859 * } 14860 * }, 14861 * ... 14862 * // fields -> generic -> phone 14863 * phone: { 14864 * extends: 'fields.input.tel', 14865 * element: { 14866 * required: true 14867 * } 14868 * }, 14869 * ... 14870 * @example <caption>Insertion of InputSelect inside ISML templates</caption> 14871 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 14872 * ... 14873 * <form> 14874 * ... 14875 * <isprint value="${ 14876 * formElement(pdict.addressForm.phone, pdict.addressFormOptions).render() 14877 * }" encoding="off"/> 14878 * ... 14879 * </form> 14880 * @example <caption>Resulted HTML structure for InputPhone</caption> 14881 * <div data-widget="inputTel" data-mask="9-999-999-9999" 14882 * class="b-form_section m-required m-invalid" 14883 * data-id="dwfrm_shipping_shippingAddress_addressFields_phone" 14884 * data-validation-config="... validation config" 14885 * > 14886 * <label class="b-form_section-label" for="dwfrm_shipping_shippingAddress_addressFields_phone">
14887 * <span class="b-form_section-required" aria-hidden="true"> 14888 * * 14889 * </span> 14890 * Phone Number 14891 * </label> 14892 * <input data-ref="field" id="dwfrm_shipping_shippingAddress_addressFields_phone" 14893 * type="tel" class="b-input m-invalid" placeholder="" aria-describedby="dwfrm_shipping_shippingAddress_addressFields_phone-error" 14894 * pattern="^(\d-\d{3}-\d{3}-\d{4})$" name="dwfrm_shipping_shippingAddress_addressFields_phone" required="" value="" maxlength="20" 14895 * aria-required="true" minlength="5" autocomplete="tel" data-event-input="onInput" data-event-keypress="onKeypress" 14896 * data-event-change="onChange" data-event-paste.prevent="onPaste" data-event-blur="validate" 14897 * > 14898 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" id="dwfrm_shipping_shippingAddress_addressFields_phone-error">This field is required.</div> 14899 * <span id="dwfrm_shipping_shippingAddress_addressFields_phone-caption" class="b-form_section-caption"> 14900 * Example: 1-888-123-4567 14901 * </span> 14902 * </div> 14903 */ 14904 class InputTel extends InputText {} 14905 14906 return InputTel; 14907}); 14908 14909/***/ }), 14910
14911/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputText.js": 14912/*!**************************************************************************************************!*\ 14913 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputText.js ***! 14914 \**************************************************************************************************/ 14915/*! exports provided: default */ 14916/***/ (function(module, __webpack_exports__, __webpack_require__) { 14917 14918"use strict"; 14919__webpack_require__.r(__webpack_exports__); 14920/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 14921/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 14922 14923// TO BE REVIEWED 14924 14925/** 14926 * @typedef {ReturnType<typeof import('widgets/forms/BasicInput').default>} BasicInput 14927 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 14928 */ 14929 14930/** 14931 * @description Base InputText implementation 14932 * @param {BasicInput} BasicInput Base widget for extending 14933 * @returns {typeof InputText} Input Text class 14934 */ 14935/* harmony default export */ __webpack_exports__["default"] = (function (BasicInput) { 14936 /** 14937 * @category widgets 14938 * @subcategory forms 14939 * @class InputText 14940 * @augments BasicInput 14941 * @classdesc Input type `text` implementation. Represents input `text` element together with widget-related HTML markup. 14942 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 14943 * and dynamic forms configuration JSON. 14944 * @property {string} data-widget - Widget name `inputText` 14945 * @example <caption>InputText definition in dynamicforms.json</caption> 14946 * ... 14947 * // fields -> input -> text 14948 * text: { 14949 * extends: 'fields.input.base', 14950 * validation: { 14951 * 'patterns.security': 'validation.patterns.security', 14952 * 'errors.security': 'validation.errors.parse' 14953 * }, 14954 * element: { 14955 * minLength: 2, 14956 * maxLength: 256, 14957 * type: 'text' 14958 * } 14959 * }, 14960 * ... 14961 * // fields -> generic -> cardType 14962 * cardType: { 14963 * extends: 'fields.input.text', 14964 * 'label.text': 'form.payment.card.type', 14965 * element: { 14966 * type: 'hidden', 14967 * maxLength: 20, 14968 * required: true 14969 * } 14970 * }, 14971 * ... 14972 * @example <caption>Insertion of InputText inside ISML templates</caption> 14973 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 14974 * ... 14975 * <form> 14976 * ... 14977 * <isprint value="${ 14978 * formElement(pdict.addressForm.address1, pdict.addressFormOptions).render() 14979 * }" encoding="off"/> 14980 * ... 14981 * </form> 14982 * @example <caption>Resulted HTML structure for InputText</caption> 14983 * <div data-widget="inputText" class="b-form_section m-required m-invalid" 14984 * data-id="dwfrm_shipping_shippingAddress_addressFields_lastName" data-validation-config="... validation config"> 14985 * <label class="b-form_section-label" for="dwfrm_shipping_shippingAddress_addressFields_lastName"> 14986 * <span class="b-form_section-required" aria-hidden="true">*</span> 14987 * Last Name 14988 * </label> 14989 * <input data-ref="field" id="dwfrm_shipping_shippingAddress_addressFields_lastName" type="text" 14990 * class="b-input m-invalid" placeholder="" aria-describedby="dwfrm_shipping_shippingAddress_addressFields_lastName-error" 14991 * pattern="..." name="dwfrm_shipping_shippingAddress_addressFields_lastName" required="" value="" maxlength="50" 14992 * aria-required="true" minlength="2" autocomplete="family-name" data-event-blur="validate" 14993 * > 14994 * <div role="alert" class="b-form_section-message" data-ref="errorFeedback" id="dwfrm_shipping_shippingAddress_addressFields_lastName-error">This field is required.</div> 14995 * </div> 14996 */ 14997 class InputText extends BasicInput { 14998 /**
14999 * @description Element on input handler 15000 * @listens dom#input 15001 * @emits InputText#input 15002 * @param {refElement} el source of event 15003 * @param {(Event|undefined)} event event instance if DOM event 15004 * @returns {void} 15005 */ 15006 onInput(el, event) { 15007 // eslint-disable-line no-unused-vars 15008 15009 /** 15010 * @description Event, indicates that `input` event happend 15011 * @event InputText#input 15012 */ 15013 this.ref('field').val(this.ref('field').val().replace(/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g, '').replace(/\s+/g, ' ')); 15014 this.emit('input'); 15015 } 15016 15017 onMobileInput() { 15018 var _this$ref$get, _this$ref$get$value, _this$config, _this$config$mask; 15019 15020 this.emit('input'); 15021 const valueLength = (_this$ref$get = this.ref('field').get()) === null || _this$ref$get === void 0 ? void 0 : (_this$ref$get$value = _this$ref$get.value) === null || _this$ref$get$value === void 0 ? void 0 : _this$ref$get$value.length; 15022 const maskLenght = (_this$config = this.config) === null || _this$config === void 0 ? void 0 : (_this$config$mask = _this$config.mask) === null || _this$config$mask === void 0 ? void 0 : _this$config$mask.length; 15023 15024 if (this.ref('field').data('isExpirationDate') && valueLength === maskLenght) { 15025 this.eventBus().emit('force.focus.cvv'); 15026 } 15027 } 15028 15029 } 15030 15031 return InputText; 15032}); 15033 15034/***/ }), 15035
15036/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputTextarea.js": 15037/*!******************************************************************************************************!*\ 15038 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputTextarea.js ***! 15039 \******************************************************************************************************/ 15040/*! exports provided: default */ 15041/***/ (function(module, __webpack_exports__, __webpack_require__) { 15042 15043"use strict"; 15044__webpack_require__.r(__webpack_exports__); 15045/** 15046 * @typedef {ReturnType<typeof import('widgets/forms/InputText').default>} InputText 15047 */ 15048 15049/** 15050 * @description Base InputTextarea implementation 15051 * @param {InputText} InputText Base widget for extending 15052 * @returns {typeof InputTextarea} Input Textarea class 15053 */ 15054/* harmony default export */ __webpack_exports__["default"] = (function (InputText) { 15055 /** 15056 * @class InputTextarea 15057 * @augments InputText 15058 * @classdesc Input type InputTextarea implementation. Represents input `textarea` element together with widget-related HTML markup. 15059 * HTML structure assembled on backend and injected into resulted html markup by using `formElement` component 15060 * and dynamic forms configuration JSON. 15061 * Has a possibility to display number of entered symbols and how many of them are left to enter. 15062 * @property {string} data-widget - Widget name `inputTextarea` 15063 * @example <caption>InputTextarea definition in dynamicforms.json</caption> 15064 * ... 15065 * // fields -> input -> textarea 15066 * textarea: { 15067 * extends: 'fields.input.base', 15068 * validation: { 15069 * 'errors.security': 'validation.errors.parse' 15070 * }, 15071 * element: { 15072 * minLength: 1, 15073 * maxLength: 256, 15074 * type: 'textarea' 15075 * } 15076 * }, 15077 * ... 15078 * // forms -> shipping -> shippingAddress 15079 * giftMessage: { 15080 * widget: { 15081 * attributes: { 15082 * 'data-id': 'giftMessage' 15083 * }, 15084 * classes: 'gift-message' 15085 * }, 15086 * extends: 'fields.input.textarea', 15087 * 'label.text': 'form.gift.message', 15088 * 'label.showOptionalMarker': true, 15089 * element: { 15090 * maxcounter: true, 15091 * attributes: { 15092 * 'data-event-input': 'onInput' 15093 * }, 15094 * placeholder: 'form.gift.placeholder' 15095 * } 15096 * } 15097 * @example <caption>Insertion of InputTextarea inside ISML templates</caption> 15098 * <isset name="formElement" value="${require('forms/formElement')}" scope="page"/> 15099 * ... 15100 * <form> 15101 * ... 15102 * <isprint value="${ 15103 * formElement(pdict.addressForm.giftMessage).render() 15104 * }" encoding="off"/> 15105 * ... 15106 * </form> 15107 * @example <caption>Resulted HTML structure for InputTextarea</caption> 15108 * <div data-widget="inputTextarea" data-id="giftMessage" 15109 * class="b-form_section gift-message m-valid" data-validation-config="... validation config" 15110 * > 15111 * <label class="b-form_section-label" for="dwfrm_shipping_shippingAddress_giftMessage"> 15112 * Gift message (optional) 15113 * </label> 15114 * <textarea id="dwfrm_shipping_shippingAddress_giftMessage" 15115 * class="b-textarea m-valid" data-ref="field" placeholder="Enter your text..." 15116 * aria-describedby="dwfrm_shipping_shippingAddress_giftMessage-error" rows="5" 15117 * name="dwfrm_shipping_shippingAddress_giftMessage" maxlength="256" minlength="1" 15118 * data-event-input="onInput" data-event-blur="validate" 15119 * ></textarea> 15120 * <div class="b-form_section-counter"> 15121 * <span class="b-form_section-counter_value" data-ref="maxcounter">256</span> 15122 * characters left 15123 * </div> 15124 * <div role="alert" class="b-form_section-message m-hide" data-ref="errorFeedback" id="dwfrm_shipping_shippingAddress_giftMessage-error" hidden="hidden"></div> 15125 * </div> 15126 */ 15127 class InputTextarea extends InputText { 15128 /** 15129 * @description On `input` InputTextarea logic. Gives a possibility to check how many symbols are entered 15130 * and restricts further input in case if max allowed characters reached. 15131 * @listens dom#input 15132 * @returns {void} 15133 */ 15134 onInput() { 15135 if (!this.has('maxcounter')) { 15136 return; 15137 } 15138 15139 const maxLength = Number(this.ref('field').attr('maxlength')); 15140 const currentInputValue = this.ref('field').val(); 15141 let inputTextLength = currentInputValue.length; 15142 /* Incrementing count of 2 for linebreak in Safari, as it takes up space 15143 of 2 characters in text area. */ 15144 15145 var isSafari = window.safari !== undefined; 15146 15147 if (isSafari) { 15148 let currentInput = currentInputValue; 15149 currentInput = currentInput.replaceAll(/(\r\n|\n|\r)/g, ''); 15150 let lineLength = 0; 15151 const newLine = String(currentInputValue).match(/(\r\n|\n|\r)/g); 15152 15153 if (newLine != null) { 15154 lineLength = newLine.length; 15155 } 15156 15157 inputTextLength = currentInput.length + lineLength * 2; 15158 } 15159 15160 if (typeof currentInputValue === 'string' && inputTextLength > maxLength) { 15161 /** 15162 * Additional handling of input field value on paste to 15163 * avoid issues caused by browser incorrect value handling 15164 * https://bugs.webkit.org/show_bug.cgi?id=182725 15165 */ 15166 this.ref('field').val(currentInputValue.slice(0, maxLength)); 15167 inputTextLength -= inputTextLength; 15168 this.ref('maxcounter').setText(String(inputTextLength)); 15169 } else { 15170 this.ref('maxcounter').setText(String(maxLength - inputTextLength)); 15171 } 15172 } 15173 15174 isValid() { 15175 return !this.isTextValid() ? false : super.isValid(); 15176 } 15177 15178 isTextValid() { 15179 const field = this.ref('field').get();
15180 const validation = this.prefs().validationConfig; 15181 15182 if (!this.shown || this.disabled || this.prefs().skipValidation) { 15183 return true; 15184 } 15185 15186 if (!new RegExp(this.prefs().notAllowedCharacters, 'g').test(field === null || field === void 0 ? void 0 : field.value)) { 15187 this.error = validation.errors.parse || validation.errors.security; 15188 return false; 15189 } 15190 15191 return true; 15192 } 15193 15194 } 15195 15196 return InputTextarea; 15197}); 15198 15199/***/ }), 15200
15201/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/MaskableInput.js": 15202/*!******************************************************************************************************!*\ 15203 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/MaskableInput.js ***! 15204 \******************************************************************************************************/ 15205/*! exports provided: default */ 15206/***/ (function(module, __webpack_exports__, __webpack_require__) { 15207 15208"use strict"; 15209__webpack_require__.r(__webpack_exports__); 15210/** 15211 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 15212 * @typedef {ReturnType<typeof import('./InputText').default>} InputText 15213*/ 15214 15215/** 15216 * @description Base MaskableInput implementation 15217 * @param {InputText} InputText Base widget for extending 15218 * @returns {typeof MaskableInput} Input Email class 15219 */ 15220/* harmony default export */ __webpack_exports__["default"] = (function (InputText) { 15221 /** 15222 * @category widgets 15223 * @subcategory forms 15224 * @class MaskableInput 15225 * @augments InputText 15226 * @classdesc Adds maskable InputMask (customised library) implementation. 15227 * As a basis was taken [this library](https://github.com/ViniChab/supermask.js). 15228 * On widget level you must specify 4 event listeners, as described in properties. 15229 * Widget is not intended to have a separate DOM representation, and should be used as a mixin for another input widgets. 15230 * @property {string} data-mask - Mask for widget in format `+99(9)99-999-999`, `9-999-9999-999` etc 15231 * @property {string} data-event-input - Field `input` event handler 15232 * @property {string} data-event-keypress - Field `keypress` event handler 15233 * @property {string} data-event-change - Field `change` event handler 15234 * @property {string} data-event-paste - Field `paste` event handler 15235 * @returns {typeof MaskableInput} MaskableInput class; 15236 */ 15237 class MaskableInput extends InputText { 15238 prefs() { 15239 return { 15240 mask: '', 15241 ...super.prefs() 15242 }; 15243 } 15244 /** 15245 * @description Overloaded `setValue` in order to trigger mask revalidation 15246 * @param {(string|number|undefined)} [newVal] - set this value to input 15247 * @param {(boolean|undefined)} [silently] - if set to `true` - input should not be validated against a new value 15248 * @returns {void} 15249 */ 15250 15251 15252 setValue(newVal = '', silently = false) { 15253 super.setValue(newVal, silently); 15254 const { 15255 field, 15256 mask 15257 } = this.getFieldAndMask(); 15258 15259 if (!this.inputMask || !field) { 15260 return; 15261 } 15262 15263 if (field instanceof HTMLInputElement) { 15264 this.inputMask.validate(field, mask); 15265 } 15266 } 15267 15268 init() { 15269 super.init(); 15270 __webpack_require__.e(/*! import() | inputmask */ "inputmask").then(__webpack_require__.bind(null, /*! widgets/toolbox/InputMask */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/InputMask.js")).then(InputMask => { 15271 // eslint-disable-next-line new-cap 15272 this.inputMask = new InputMask.default(); 15273 this.onDestroy(() => { 15274 this.inputMask = undefined; 15275 }); 15276 const { 15277 field, 15278 mask 15279 } = this.getFieldAndMask(); 15280 15281 if (!field) { 15282 return; 15283 } 15284 15285 if (field instanceof HTMLInputElement) { 15286 this.inputMask.validate(field, mask); 15287 } 15288 }); 15289 } 15290 /** 15291 * @description Get field and mask for current maskable widget instance 15292 * @returns {{field: HTMLElement|undefined, mask: string}} Object, containig field and mask and field ref element 15293 */ 15294 15295 15296 getFieldAndMask() { 15297 const field = this.ref('field'); 15298 return { 15299 field: field.get(), 15300 mask: this.prefs().mask 15301 }; 15302 } 15303 /** 15304 * @description On input logic 15305 * @param {RefElement} element - target input 15306 * @param {Event} event - target event 15307 * @listens dom#input 15308 * @returns {void} 15309 */ 15310 15311 15312 onInput(element, event) { 15313 super.onInput(element, event); 15314 const { 15315 field, 15316 mask 15317 } = this.getFieldAndMask(); 15318 15319 if (!this.inputMask || !field) { 15320 return; 15321 } 15322 15323 if (field instanceof HTMLInputElement) { 15324 this.inputMask.onInput(field, mask, event); 15325 } 15326 } 15327 /**
15328 * @description On keypress logic 15329 * @param {RefElement} element - target input 15330 * @param {Event} event - target event 15331 * @listens dom#keypress 15332 * @returns {void} 15333 */ 15334 15335 15336 onKeypress(element, event) { 15337 const { 15338 field, 15339 mask 15340 } = this.getFieldAndMask(); 15341 15342 if (!this.inputMask || !field) { 15343 return; 15344 } 15345 15346 if (field instanceof HTMLInputElement) { 15347 this.inputMask.onKeypress(field, mask, event); 15348 } 15349 } 15350 /** 15351 * @description On change logic 15352 * @listens dom#change 15353 * @returns {void} 15354 */ 15355 15356 15357 onChange() { 15358 const { 15359 field, 15360 mask 15361 } = this.getFieldAndMask(); 15362 15363 if (!this.inputMask || !field) { 15364 return; 15365 } 15366 15367 if (field instanceof HTMLInputElement) { 15368 this.inputMask.onChange(field, mask); 15369 } 15370 } 15371 /** 15372 * @description On paste logic 15373 * @param {RefElement} element - target input 15374 * @param {Event} event - target event 15375 * @listens dom#paste 15376 * @returns {void} 15377 */ 15378 15379 15380 onPaste(element, event) { 15381 const { 15382 field, 15383 mask 15384 } = this.getFieldAndMask(); 15385 15386 if (!this.inputMask || !field) { 15387 return; 15388 } 15389 15390 if (field instanceof HTMLInputElement) { 15391 this.inputMask.onPaste(field, mask, event); 15392 } 15393 } 15394 15395 } 15396 15397 return MaskableInput; 15398}); 15399 15400/***/ }), 15401
15402/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/EmailSubscribe.js": 15403/*!************************************************************************************************************!*\ 15404 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/EmailSubscribe.js ***! 15405 \************************************************************************************************************/ 15406/*! exports provided: default */ 15407/***/ (function(module, __webpack_exports__, __webpack_require__) { 15408 15409"use strict"; 15410__webpack_require__.r(__webpack_exports__); 15411/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 15412/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 15413 15414 15415/** 15416 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 15417 * @typedef {InstanceType<ReturnType<typeof import('widgets/forms/InputText').default>>} inputText 15418 */ 15419 15420/** 15421 * @param {AjaxForm} AjaxForm Base widget for extending 15422 * @returns {typeof EmailSubscribe} EmailSubscribe widget 15423 */ 15424/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 15425 /** 15426 * @category widgets 15427 * @subcategory ajax 15428 * @class EmailSubscribe 15429 * @augments AjaxForm 15430 * @classdesc Serves email subscription form in footer. 15431 * The main purpose EmailSubscribe widget is to allow send/validate the request to server and handles server response 15432 * @property {string} data-widget - Widget name `emailSubscribe` 15433 * @property {string} data-event-submit - Event listener for form submission 15434 * @example <caption>Example of EmailSubscribe widget usage</caption> 15435 * <form action="${URLUtils.url('EmailSubscribe-Subscribe')}" method="POST" name="subscribe-form" 15436 * data-widget="emailSubscribe" 15437 * data-event-submit.prevent="handleSubmit"> 15438 * <div class="input-group" data-ref="formContent"> 15439 * ... subscription form content 15440 * </div> 15441 * <div data-ref="successMessage"></div> 15442 * </form> 15443 */ 15444 class EmailSubscribe extends AjaxForm { 15445 prefs() { 15446 return { 15447 signupEmail: 'dwfrm_emailsubscribe_email', 15448 formContent: 'formContent', 15449 successBlock: 'successBlock', 15450 successMessage: 'successMessage', 15451 agreeToPrivacy: 'agreeToPrivacy', 15452 accessibilityAnnouncementMsg: '', 15453 ...super.prefs() 15454 }; 15455 } 15456 /** 15457 * @description Handles email input 15458 * @param {inputText} el event source element 15459 * @returns {void} 15460 */ 15461 15462 15463 onEmailInput(el) { 15464 const entered = el && el.getValue(); 15465 15466 if (entered && entered.length) { 15467 this.showAgreeToPrivacy(); 15468 } 15469 } 15470 /** 15471 * @description Show agree to privacy block 15472 * @returns {void} 15473 */ 15474 15475 15476 showAgreeToPrivacy() { 15477 this.ref('agreeToPrivacy').show(); 15478 } 15479 /** 15480 * @description Handles server response 15481 * @emits "alert.show" 15482 * @param {object} data Server JSON response once form submitted 15483 * @returns {void} 15484 */ 15485 15486 15487 onSubmitted(data) { 15488 if (data.success) { 15489 this.ref('formContent').hide(); 15490 this.ref('successMessage').setText(data.msg).show(); 15491 /** 15492 * @description Global event to show alert 15493 * @event "alert.show" 15494 */ 15495 15496 this.eventBus().emit('alert.show', { 15497 accessibilityAlert: this.prefs().accessibilityAnnouncementMsg 15498 }); 15499 } 15500 15501 if (!data.success) { 15502 if (data.fieldErrors) { 15503 Object.entries(data.fieldErrors).forEach(([name, errorMsg]) => { 15504 this.getById(name, formField => formField.setError(errorMsg)); 15505 }); 15506 } 15507 15508 if (data.msg) { 15509 this.getById(this.prefs().signupEmail, inputEmail => inputEmail.setError(data.msg)); 15510 } 15511 } 15512 } 15513 15514 } 15515 15516 return EmailSubscribe; 15517}); 15518 15519/***/ }), 15520
15521/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js": 15522/*!*******************************************************************************************************!*\ 15523 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js ***! 15524 \*******************************************************************************************************/ 15525/*! exports provided: default */ 15526/***/ (function(module, __webpack_exports__, __webpack_require__) { 15527 15528"use strict"; 15529__webpack_require__.r(__webpack_exports__); 15530/** 15531 * @typedef {ReturnType<typeof import('widgets/forms/AjaxForm').default>} AjaxForm 15532 */ 15533 15534/** 15535 * @param {AjaxForm} AjaxForm Base widget for extending 15536 * @returns {typeof LoginForm} LoginForm widget 15537 */ 15538/* harmony default export */ __webpack_exports__["default"] = (function (AjaxForm) { 15539 /** 15540 * @category widgets 15541 * @subcategory forms 15542 * @class LoginForm 15543 * @augments AjaxForm 15544 * @classdesc Represents LoginForm component with next features: 15545 * 1. Show password reset modal on click 15546 * @property {string} data-widget - Widget name `loginForm` 15547 * @example <caption>Example of LoginForm widget usage</caption> 15548 * <form 15549 * action="${pdict.actionUrl}" 15550 * class="b-form m-login" 15551 * method="POST" 15552 * name="login-form" 15553 * data-widget="${pdict.isCheckoutLogin ? 'checkoutLoginForm': 'loginForm'}" 15554 * data-event-submit.prevent="handleSubmit" 15555 * <isif condition="${pdict.isCheckoutLogin}">data-cart-url="${URLUtils.https('Cart-Show')}"</isif> 15556 * novalidate 15557 * > 15558 * Form content... 15559 * <div class="b-reset_password"> 15560 * <div 15561 * data-widget="passwordResetModal" 15562 * data-id="passwordResetModal" 15563 * > 15564 * <div data-ref="container" hidden="hidden"></div> 15565 * <script type="template/mustache" data-ref="template"> 15566 * <div class="b-dialog m-reset_password" data-ref="container"> 15567 * <isinclude template="account/password/requestPasswordResetModal"/> 15568 * </div> 15569 * </script> 15570 * </div> 15571 * <isprint value="${ 15572 * formElement(pdict.loginForm.password).render() 15573 * }" encoding="off"/> 15574 * <button 15575 * class="b-reset_password-btn" 15576 * id="password-reset" 15577 * data-event-click="passwordReset" 15578 * data-tau="login_password_reset" 15579 * type="button" 15580 * > 15581 * ${Resource.msg('form.login.forgot.link', 'forms', null)} 15582 * </button> 15583 * </div> 15584 * </form> 15585 */ 15586 class LoginForm extends AjaxForm { 15587 /** 15588 * @description Show password reset modal 15589 * @listens dom#click 15590 * @returns {void} 15591 */ 15592 passwordReset() { 15593 this.getById('ajaxFormResponseContainer', ajaxFormResponseContainer => ajaxFormResponseContainer.showModal({})); 15594 } 15595 15596 } 15597 15598 return LoginForm; 15599}); 15600 15601/***/ }), 15602
15603/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusMixin.js": 15604/*!*****************************************************************************************************************!*\ 15605 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusMixin.js ***! 15606 \*****************************************************************************************************************/ 15607/*! exports provided: default */ 15608/***/ (function(module, __webpack_exports__, __webpack_require__) { 15609 15610"use strict"; 15611__webpack_require__.r(__webpack_exports__); 15612/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 15613 15614/** 15615 * @typedef {typeof import('widgets/Widget').default} Widget 15616 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 15617 */ 15618 15619/** 15620 * @param {Widget} Widget Base widget for extending 15621 * @returns {typeof AccessibilityFocusMixin} AccessibilityFocusMixin class 15622 */ 15623 15624/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 15625 /** 15626 * @category widgets 15627 * @subcategory global 15628 * @class AccessibilityFocusMixin 15629 * @augments Widget 15630 * @classdesc Base implementation for inheritance, to be used to handle focus-related actions like getting set of focusable inputs etc. 15631 * Also could be used to set focus on: 15632 * - concrete element in widget's markup by ref element 15633 * - first input in widget's markup 15634 * - first focusable element in widget's markup 15635 * This class is not intended to have a separate DOM widget. It should be used as a mixin for any other target widgets. 15636 */ 15637 class AccessibilityFocusMixin extends Widget { 15638 /** 15639 * @description Get keyboard-focusable elements 15640 * @param {string} [refName] ref name to get focusable elements in, or nothing to get from `self` 15641 * @param {string[]} [types] array of elements selectors to search for, or nothing for default set 15642 * @returns {HTMLElement[]} array containing focusable elements, or empty array if no elements found 15643 */ 15644 getFocusableElements(refName = 'self', types = []) { 15645 if (!types.length) { 15646 types = ['a', 'button', 'input', 'textarea', 'select', 'details']; 15647 } 15648 15649 types.push('[tabindex]:not([tabindex="-1"])'); 15650 const selector = types.join(','); 15651 let result = []; 15652 this.has(refName, refElement => { 15653 const htmlEl = refElement.get(); 15654 15655 if (htmlEl) { 15656 result = Array.from(htmlEl.querySelectorAll(selector)).filter(el => Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["isDOMElementFocusable"])(el)); 15657 } 15658 }); 15659 return result; 15660 } 15661 /** 15662 * @description Get keyboard-focusable input elements 15663 * @param {string} [refName] ref name to get focusable elements in, or nothing to get from `self` 15664 * @returns {HTMLElement[]} array containing focusable input elements, or empty array if no elements found 15665 */ 15666 15667 15668 getFocusableInputElements(refName = 'self') { 15669 return this.getFocusableElements(refName, ['input', 'textarea', 'select']); 15670 } 15671 /** 15672 * @description Focus first element found in ref with min timeout 15673 * @param {string} [containerRefName] container ref name to get focusable elements in, or nothing to get from `self` 15674 * @param {string[]} [types] optional, array of elements selectors to search for, or nothing for default set 15675 * @returns {void} 15676 */ 15677 15678 15679 focusFirst(containerRefName = 'self', types = []) { 15680 const focusableElements = this.getFocusableElements(containerRefName, types); 15681 15682 if (focusableElements.length) { 15683 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => focusableElements[0].focus(), 100); 15684 } 15685 } 15686 /** 15687 * @description Method to focus on first focusable input, accepts refName as param to search input in 15688 * @param {string} [containerRefName] container ref name to get focusable elements in, or nothing to get from `self` 15689 * @returns {void} 15690 */ 15691 15692 15693 focusFirstInput(containerRefName = 'self') { 15694 const focusableInputElements = this.getFocusableInputElements(containerRefName); 15695 15696 if (focusableInputElements.length) { 15697 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => focusableInputElements[0].focus(), 100); 15698 } 15699 } 15700 /**
15701 * @description Method to focus on a concrete focusable element, accepts refName as param to search element 15702 * @param {string} [elementRefName] element ref name to check if it focusable, end set focus into it 15703 * @returns {void} 15704 */ 15705 15706 15707 focusElement(elementRefName) { 15708 if (elementRefName) { 15709 this.has(elementRefName, element => { 15710 const domNode = element.get(); 15711 15712 if (domNode && Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["isDOMElementFocusable"])(domNode)) { 15713 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => domNode.focus(), 100); 15714 } 15715 }); 15716 } 15717 } 15718 15719 } 15720 15721 return AccessibilityFocusMixin; 15722}); 15723 15724/***/ }), 15725
15726/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusTrapMixin.js": 15727/*!*********************************************************************************************************************!*\ 15728 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusTrapMixin.js ***! 15729 \*********************************************************************************************************************/ 15730/*! exports provided: default */ 15731/***/ (function(module, __webpack_exports__, __webpack_require__) { 15732 15733"use strict"; 15734__webpack_require__.r(__webpack_exports__); 15735/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 15736 15737/** 15738 * @typedef {typeof import('widgets/Widget').default} Widget 15739 */ 15740 15741/** 15742 * @param {Widget} Widget Base widget for extending 15743 * @returns {typeof AccessibilityFocusTrapMixin} AccessibilityFocusTrapMixin class 15744 */ 15745 15746/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 15747 /** 15748 * @category widgets 15749 * @subcategory global 15750 * @class AccessibilityFocusTrapMixin 15751 * @augments Widget 15752 * @classdesc Base AccessibilityFocusTrapMixin implementation. 15753 * Used to trap focus inside widget according to usability requirements 15754 * Can be either looped or not 15755 * This class is not intended to have a separate DOM representation, but should be used as a mixin. 15756 * Creates in runtime 2 `span` elements inside widget, which has `tabindex="0"` and can handle focus. 15757 * Once one of these spans are focused (depending last or first) - focus will be handled accordingly 15758 * (either stays at previously focused widget element, or will be looped). 15759 * @property {string} data-ref-last-focus-element - Reference to last possible focusable element 15760 * @property {string} data-ref-first-focus-element - Reference to first possible focusable element 15761 * @property {boolean} data-focus-loop - Do we need to loop focus inside widget? 15762 * @property {string} data-ref-traps-container - This ref element would be wrapped with 2 `span` elements - `firstTrapRef` and `lastTrapRef` 15763 * @property {string} data-first-trap-ref - Reference to first focusable `span` element to handle focus trap. 15764 * @property {string} data-last-trap-ref - Reference to last focusable `span` element to handle focus trap. 15765 * @property {number} data-focus-timeout - Timeout to set focus to element 15766 */ 15767 class AccessibilityFocusTrapMixin extends Widget { 15768 prefs() { 15769 return { 15770 refFirstFocusElement: 'firstFocusElement', 15771 refLastFocusElement: 'lastFocusElement', 15772 focusLoop: true, 15773 refTrapsContainer: 'dialog', 15774 firstTrapRef: 'firstTrap', 15775 lastTrapRef: 'lastTrap', 15776 focusTimeout: 400, 15777 ...super.prefs() 15778 }; 15779 } 15780 /** 15781 * @description Handle Focus Trap Last. 15782 * Either focuses on first element (in case of focus loop) or stays at last element. 15783 * If last element is not found - tries to set focus on first element (loop-like behaviour) 15784 * @listens dom#focus 15785 * @returns {void} 15786 */ 15787 15788 15789 handleFocusTrapLast() { 15790 if (this.prefs().focusLoop) { 15791 this.focusFirstElement(); 15792 return; 15793 } 15794 15795 const hasLastElement = this.focusLastElement(); 15796 15797 if (!hasLastElement) { 15798 this.focusFirstElement(); 15799 } 15800 } 15801 /** 15802 * @description Handle Focus Trap First. 15803 * Either focuses on last element (in case of focus loop) or stays at first element. 15804 * @listens dom#focus 15805 * @returns {void} 15806 */ 15807 15808 15809 handleFocusTrapFirst() { 15810 if (this.prefs().focusLoop) { 15811 this.focusLastElement(); 15812 return; 15813 } 15814 15815 this.focusFirstElement(); 15816 } 15817 /** 15818 * @description Method to focus on element by ref id 15819 * @param {string} refId ref id of ref element 15820 * @returns {boolean} boolean indicating whether necessary ref element found 15821 */ 15822 15823 15824 focusElement(refId) { 15825 return this.has(refId, element => { 15826 const domNode = element.get(); 15827 15828 if (domNode) { 15829 domNode.focus(); 15830 } 15831 }); 15832 } 15833 /**
15834 * @description Focus first element 15835 * @returns {boolean} true if browser is able to focus on first element 15836 */ 15837 15838 15839 focusFirstElement() { 15840 return this.focusElement(this.prefs().refFirstFocusElement) || this.focusFirstDescendant(); 15841 } 15842 /** 15843 * @description Focus on first descendant element 15844 * @param {HTMLElement|Element|undefined} element container element 15845 * @returns {boolean} if browser successfully focused on first descendant element 15846 */ 15847 15848 15849 focusFirstDescendant(element = undefined) { 15850 if (!element) { 15851 element = this.ref(this.prefs().refTrapsContainer).get(); 15852 } 15853 15854 if (element) { 15855 for (let i = 0; i < element.children.length; i++) { 15856 const child = element.children[i]; 15857 15858 if (child && (this.focusAttempt(child) || this.focusFirstDescendant(child))) { 15859 return true; 15860 } 15861 } 15862 } 15863 15864 return false; 15865 } 15866 /** 15867 * @description Focus last element 15868 * @returns {boolean} true if browser is able to focus on last element 15869 */ 15870 15871 15872 focusLastElement() { 15873 return this.focusElement(this.prefs().refLastFocusElement) || this.focusLastDescendant(); 15874 } 15875 /** 15876 * @description Focus on last descendant element 15877 * @param {HTMLElement|Element|undefined} element container element 15878 * @returns {boolean} if browser successfully focused on last descendant element 15879 */ 15880 15881 15882 focusLastDescendant(element = undefined) { 15883 if (!element) { 15884 element = this.ref(this.prefs().refTrapsContainer).get(); 15885 } 15886 15887 if (element) { 15888 for (let i = element.children.length - 1; i >= 0; i--) { 15889 const child = element.children[i]; 15890 15891 if (child && (this.focusAttempt(child) || this.focusLastDescendant(child))) { 15892 return true; 15893 } 15894 } 15895 } 15896 15897 return false; 15898 } 15899 /** 15900 * @description Try to focus on element if it's focusable 15901 * @param {HTMLElement|Element} element target element to focus 15902 * @returns {boolean} if focus was successfully set to target element 15903 */ 15904 15905 15906 focusAttempt(element) { 15907 if (!Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["isDOMElementFocusable"])(element)) { 15908 return false; 15909 } 15910 15911 try { 15912 // @ts-ignore 15913 element.focus(); 15914 } catch (e) {// catch error 15915 } 15916 15917 return document.activeElement === element; 15918 } 15919 /** 15920 * @description Overriden `show` method, which will create 2 `span` elements for focus trap 15921 * on {@link Modal} show. 15922 * @returns {this} result 15923 */ 15924 15925 15926 show() { 15927 super.show(); 15928 15929 if (!this.has(this.prefs().firstTrapRef) || !this.has(this.prefs().lastTrapRef)) { 15930 this.addFocusTraps(); 15931 } 15932 15933 return this; 15934 } 15935 /** 15936 * @description Creates 2 `span` element with `tabindex="0"` to be able to handle focus selection as per accessibility requirements. 15937 * @returns {void} 15938 */ 15939 15940 15941 addFocusTraps() { 15942 this.has(this.prefs().refTrapsContainer, trapsContainer => { 15943 const { 15944 firstTrapRef, 15945 lastTrapRef 15946 } = this.prefs(); 15947 trapsContainer.prepend(`<span tabindex="0" data-ref="${firstTrapRef}" data-event-focus.prevent="handleFocusTrapFirst"></span>`); 15948 trapsContainer.append(`<span tabindex="0" data-ref="${lastTrapRef}" data-event-focus.prevent="handleFocusTrapLast"></span>`); 15949 this.onDestroy(() => { 15950 [firstTrapRef, lastTrapRef].forEach(ref => { 15951 this.has(ref, el => { 15952 el.remove(); 15953 }); 15954 }); 15955 }); 15956 }); 15957 } 15958 /** 15959 * @description focus first element after show modal (when keyboard navigation) 15960 * @returns {void} 15961 */ 15962 15963 15964 afterShowModal() { 15965 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => this.focusFirstElement(), this.prefs().focusTimeout)); 15966 } 15967 15968 } 15969 15970 return AccessibilityFocusTrapMixin; 15971}); 15972 15973/***/ }), 15974
15975/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Accordion.js": 15976/*!***************************************************************************************************!*\ 15977 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Accordion.js ***! 15978 \***************************************************************************************************/ 15979/*! exports provided: default */ 15980/***/ (function(module, __webpack_exports__, __webpack_require__) { 15981 15982"use strict"; 15983__webpack_require__.r(__webpack_exports__); 15984const keyCode = Object.freeze({ 15985 END: 35, 15986 HOME: 36, 15987 UP: 38, 15988 DOWN: 40 15989}); 15990/** 15991 * @typedef {ReturnType<typeof import('widgets/global/ListAccessibility').default>} ListAccessibility 15992 * @typedef {ReturnType<typeof import('widgets/global/AccordionItem').default>} AccordionItem 15993 */ 15994 15995/** 15996 * @description Base Accordion implementation 15997 * @param {ListAccessibility} ListAccessibility Base widget for extending 15998 * @returns {typeof Accordion} Accordion widget 15999 */ 16000 16001/* harmony default export */ __webpack_exports__["default"] = (function (ListAccessibility) { 16002 /** 16003 * @category widgets 16004 * @subcategory global 16005 * @class Accordion 16006 * @augments ListAccessibility 16007 * @classdesc Represents Accordion component with next features: 16008 * 1. Configurable via data attributes single or multiple selection of panels 16009 * 2. Allow has opened or closed first panel 16010 * 3. Allow or disallow closing panel on second click 16011 * 4. Support keyboard navigation for accessibility 16012 * 16013 * Accordion widget should contain {@link AccordionItem} widgets that implement one accordion section. 16014 * Widget has next relationship: 16015 * * Accordion widget expand first item if such defined in `data-open-first` attribute by calling method {@link AccordionItem#openPanel} 16016 * * Close all items using method {@link AccordionItem#closePanel} by event {@link AccordionItem#event:closeallitems} from {@link AccordionItem} widget. 16017 * 16018 * @property {string} data-widget - Widget name `accordion` 16019 * @property {string} data-event-keydown - Event listener for `handleKeydown` method 16020 * @property {boolean} [data-allow-toggle=false] - Flag that allow or dissallow toggle 16021 * @property {boolean} [data-open-first=false] - Flag that open first item 16022 * @property {string} data-active-panel - Activate item by provided id 16023 * @property {boolean} [data-allow-multiple=false] - Flag that allow or dissallow multiple open items 16024 * @example <caption>Example of Single Selectable Accordion with one panel that is opened on init</caption> 16025 * <div 16026 * data-widget="accordion" 16027 * data-event-keydown="handleKeydown" 16028 * data-allow-toggle="false" 16029 * data-open-first="true" 16030 * data-allow-multiple="false" 16031 * class="b-footer_nav" 16032 * > 16033 * <section 16034 * data-widget="accordionItem" 16035 * data-widget-event-closeallitems="closeItems" 16036 * > 16037 * <h2 16038 * data-ref="accordionItemBtn" 16039 * data-event-click="togglePanel" 16040 * data-event-keydown="handleKeydown" 16041 * > 16042 * <button type="button"> 16043 * Account 16044 * </button> 16045 * </h2> 16046 * <div data-ref="accordionItemPanel"> 16047 * <div data-ref="accordionItemPanelInner"> 16048 * Account Panel content here 16049 * </div> 16050 * </div> 16051 * </section> 16052 * </div> 16053 * @example <caption>Example of Multi Selectable Accordion with two panel. First panel closed on init</caption> 16054 * <div 16055 * data-widget="accordion" 16056 * data-event-keydown="handleKeydown" 16057 * data-allow-toggle="false" 16058 * data-open-first="false" 16059 * data-allow-multiple="true" 16060 * class="b-footer_nav" 16061 * > 16062 * <section 16063 * data-widget="accordionItem" 16064 * data-widget-event-closeallitems="closeItems" 16065 * > 16066 * <h2 16067 * data-ref="accordionItemBtn" 16068 * data-event-click="togglePanel" 16069 * data-event-keydown="handleKeydown" 16070 * > 16071 * <button 16072 * type="button" 16073 * > 16074 * Account 16075 * </button> 16076 * </h2> 16077 * <div data-ref="accordionItemPanel"> 16078 * <div data-ref="accordionItemPanelInner"> 16079 * Account Panel content here 16080 * </div> 16081 * </div> 16082 * </section> 16083 * <section 16084 * data-widget="accordionItem" 16085 * data-widget-event-closeallitems="closeItems" 16086 * > 16087 * <h2 16088 * data-ref="accordionItemBtn" 16089 * data-event-click="togglePanel" 16090 * data-event-keydown="handleKeydown" 16091 * > 16092 * <button type="button"> 16093 * Wishlist 16094 * </button> 16095 * </h2> 16096 * <div data-ref="accordionItemPanel"> 16097 * <div data-ref="accordionItemPanelInner"> 16098 * Wishlist Panel content here 16099 * </div> 16100 * </div> 16101 * </section> 16102 * </div> 16103 */ 16104 class Accordion extends ListAccessibility { 16105 prefs() { 16106 return { 16107 allowToggle: false, 16108 allowMultiple: false, 16109 activePanel: '', 16110 openFirst: false, 16111 ...super.prefs() 16112 }; 16113 } 16114 /**
16115 * @description Initialize widget logic 16116 * @returns {void} 16117 */ 16118 16119 16120 init() { 16121 super.init(); 16122 this.defineItems(); 16123 this.eachChild(item => { 16124 item.isToggleAllowed = this.prefs().allowToggle; 16125 item.isMultipleSections = this.prefs().allowMultiple; 16126 }); 16127 16128 if (this.prefs().openFirst) { 16129 this.firstItem.openPanel(); 16130 } else if (this.prefs().activePanel && this.items) { 16131 const AccordionItem = 16132 /** @type {AccordionItem} */ 16133 this.getConstructor('accordionItem'); 16134 const activeItem = this.items.find(item => item.config.methodId === this.prefs().activePanel); 16135 16136 if (activeItem instanceof AccordionItem) { 16137 activeItem.openPanel(); 16138 } 16139 } 16140 16141 this.ref('self').addClass('m-inited'); 16142 } 16143 /** 16144 * @description Close items 16145 * @listens AccordionItem#closeallitems 16146 * @returns {void} 16147 */ 16148 16149 16150 closeItems() { 16151 this.eachChild(accordionItem => { 16152 accordionItem.closePanel(); 16153 }); 16154 } 16155 /** 16156 * @description Keydown Event handler 16157 * @listens dom#keydown 16158 * @param {HTMLElement} _ Source of keydown event 16159 * @param {KeyboardEvent} event Event object 16160 * @returns {void} 16161 */ 16162 16163 16164 handleKeydown(_, event) { 16165 let preventEventActions = false; 16166 16167 switch (event.keyCode) { 16168 case keyCode.HOME: 16169 this.setFocusToFirstItem(); 16170 preventEventActions = true; 16171 break; 16172 16173 case keyCode.END: 16174 this.setFocusToLastItem(); 16175 preventEventActions = true; 16176 break; 16177 16178 case keyCode.UP: 16179 this.setFocusToPreviousItem(); 16180 preventEventActions = true; 16181 break; 16182 16183 case keyCode.DOWN: 16184 this.setFocusToNextItem(); 16185 preventEventActions = true; 16186 break; 16187 16188 default: 16189 break; 16190 } 16191 16192 if (preventEventActions) { 16193 event.preventDefault(); 16194 event.stopPropagation(); 16195 } 16196 } 16197 16198 } 16199 16200 return Accordion; 16201}); 16202 16203/***/ }), 16204
16205/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccordionItem.js": 16206/*!*******************************************************************************************************!*\ 16207 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccordionItem.js ***! 16208 \*******************************************************************************************************/ 16209/*! exports provided: default */ 16210/***/ (function(module, __webpack_exports__, __webpack_require__) { 16211 16212"use strict"; 16213__webpack_require__.r(__webpack_exports__); 16214const keyCode = Object.freeze({ 16215 RETURN: 13, 16216 SPACE: 32 16217}); 16218const ARIA_EXPANDED = 'aria-expanded'; 16219const ARIA_HIDDEN = 'aria-hidden'; 16220const ARIA_DISABLED = 'aria-disabled'; 16221/** 16222 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 16223 */ 16224 16225/** 16226 * @description Base AccordionItem implementation 16227 * @param {typeof import('widgets/Widget').default} Widget base widget class 16228 * @returns {typeof AccordionItem} AccordionItem widget 16229 */ 16230 16231/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 16232 /** 16233 * @category widgets 16234 * @subcategory global 16235 * @class AccordionItem 16236 * @augments Widget 16237 * @classdesc Represents AccordionItem with specific logic for accordion item, handling viewtype changes, keyboard navigation 16238 * Represents AccordionItem component with next features: 16239 * 1. Configurable via data attribute epanded state 16240 * 2. Support keyboard navigation for accessibility 16241 * 3. Define accessibility 16242 * @property {string} data-widget - Widget name `accordionItem` 16243 * @property {string} data-event-keydown - Event listener for `handleKeydown` method 16244 * @property {string} data-event-click - Event listener for `togglePanel` method 16245 * @property {boolean} [data-expanded=false] - Expanded flag 16246 * @category widgets 16247 * @subcategory global 16248 * @example 16249 * // use this code to display widget 16250 * <section 16251 * data-widget="accordionItem" 16252 * data-widget-event-closeallitems="closeItems" 16253 * > 16254 * <h2 16255 * data-ref="accordionItemBtn" 16256 * data-event-click="togglePanel" 16257 * data-event-keydown="handleKeydown" 16258 * > 16259 * <button 16260 * type="button" 16261 * > 16262 * Account 16263 * </button> 16264 * </h2> 16265 * <div data-ref="accordionItemPanel"> 16266 * <div data-ref="accordionItemPanelInner"> 16267 * Panel content here 16268 * </div> 16269 * </div> 16270 * </section> 16271 */ 16272 class AccordionItem extends Widget { 16273 /** 16274 * @description Returns Widget configuration object 16275 * @returns {object} Widget configuration object 16276 */ 16277 prefs() { 16278 return { 16279 accordionItemBtn: 'accordionItemBtn', 16280 accordionItemPanel: 'accordionItemPanel', 16281 accordionItemPanelInner: 'accordionItemPanelInner', 16282 expanded: false, 16283 animateToggle: true, 16284 ...super.prefs() 16285 }; 16286 } 16287 /** 16288 * @description Initialize widget logic 16289 * @returns {void} 16290 */ 16291 16292 16293 init() { 16294 this.isPanelOpen = this.prefs().expanded; 16295 this.isToggleAllowed = false; 16296 this.isMultipleSections = false; 16297 this.defineAttributes(this.prefs().expanded); 16298 this.onDestroy(this.clearAttributes.bind(this)); 16299 this.onDestroy(this.cleanPanelHeight.bind(this)); 16300 16301 if (!this.prefs().expanded) { 16302 this.closePanel(); 16303 } 16304 } 16305 /** 16306 * @description Define attributes 16307 * @param {boolean} [isOpen] Panel open flag 16308 * @returns {void} 16309 */ 16310 16311 16312 defineAttributes(isOpen) { 16313 const accordionItemBtn = this.ref('accordionItemBtn'); 16314 const accordionItemPanel = this.ref('accordionItemPanel'); 16315 const accordionItemBtnID = accordionItemBtn.attr('id'); 16316 const accordionItemPanelID = accordionItemPanel.attr('id'); 16317 accordionItemBtn.attr('role', 'button'); 16318 accordionItemBtn.attr('aria-controls', accordionItemPanelID); 16319 accordionItemBtn.attr(ARIA_EXPANDED, 'false'); 16320 accordionItemBtn.attr('tabindex', '0'); 16321 accordionItemPanel.attr('role', 'region'); 16322 accordionItemPanel.attr('aria-labelledby', accordionItemBtnID); 16323 16324 if (isOpen) { 16325 accordionItemPanel.attr(ARIA_HIDDEN, 'false'); 16326 accordionItemBtn.attr(ARIA_EXPANDED, 'true'); 16327 } else { 16328 accordionItemPanel.attr(ARIA_HIDDEN, 'true'); 16329 accordionItemBtn.attr(ARIA_EXPANDED, 'false'); 16330 } 16331 } 16332 /**
16333 * @description Clear Attributes 16334 * @returns {void} 16335 */ 16336 16337 16338 clearAttributes() { 16339 this.has(this.prefs().accordionItemBtn, accordionItemBtn => { 16340 accordionItemBtn.attr('role', false); 16341 accordionItemBtn.attr('aria-controls', false); 16342 accordionItemBtn.attr(ARIA_EXPANDED, false); 16343 accordionItemBtn.attr(ARIA_DISABLED, false); 16344 accordionItemBtn.attr('tabindex', false); 16345 }); 16346 this.has(this.prefs().accordionItemPanel, accordionItemPanel => { 16347 accordionItemPanel.attr('role', false); 16348 accordionItemPanel.attr('aria-labelledby', false); 16349 accordionItemPanel.attr(ARIA_HIDDEN, false); 16350 }); 16351 } 16352 /** 16353 * @description Set Focus 16354 * @returns {void} 16355 */ 16356 16357 16358 focus() { 16359 this.has(this.prefs().accordionItemBtn, accordionItemBtn => { 16360 accordionItemBtn.focus(); 16361 }); 16362 } 16363 /** 16364 * @description On Blur 16365 * @returns {void} 16366 */ 16367 16368 16369 blur() { 16370 this.has(this.prefs().accordionItemBtn && this.prefs().accordionItemPanel, (accordionItemBtn, accordionItemPanel) => { 16371 accordionItemBtn.blur(); 16372 }); 16373 } 16374 /** 16375 * @description On Refresh Hanpdler 16376 * @returns {void} 16377 */ 16378 16379 16380 onRefresh() { 16381 super.onRefresh(); 16382 this.defineAttributes(this.isPanelOpen); 16383 16384 if (!this.isPanelOpen) { 16385 this.closePanel(); 16386 } 16387 } 16388 /** 16389 * @description Open panel 16390 * @emits AccordionItem#closeallitems 16391 * @emits AccordionItem#openpanel 16392 * @returns {void} 16393 */ 16394 16395 16396 openPanel() { 16397 if (!this.isMultipleSections) { 16398 /** 16399 * @description Event to close all items 16400 * @event AccordionItem#closeallitems 16401 */ 16402 this.emit('closeallitems'); 16403 } 16404 16405 this.has(this.prefs().accordionItemBtn, accordionItemBtn => { 16406 accordionItemBtn.attr(ARIA_EXPANDED, 'true'); 16407 16408 if (!this.isToggleAllowed) { 16409 accordionItemBtn.attr(ARIA_DISABLED, 'true'); 16410 } 16411 }); 16412 this.has(this.prefs().accordionItemPanel, accordionItemPanel => this.togglePanelHeight(true, accordionItemPanel)); 16413 this.isPanelOpen = true; 16414 /** 16415 * @description Event for opening panel 16416 * @event AccordionItem#openpanel 16417 */ 16418 16419 this.emit('openpanel'); 16420 } 16421 /** 16422 * @description Close panel 16423 * @returns {void} 16424 */ 16425 16426 16427 closePanel() { 16428 this.has(this.prefs().accordionItemBtn, accordionItemBtn => { 16429 accordionItemBtn.attr(ARIA_EXPANDED, 'false'); 16430 16431 if (!this.isToggleAllowed) { 16432 accordionItemBtn.attr(ARIA_DISABLED, false); 16433 } 16434 }); 16435 this.has(this.prefs().accordionItemPanel, accordionItemPanel => this.togglePanelHeight(false, accordionItemPanel)); 16436 this.isPanelOpen = false; 16437 } 16438 /** 16439 * @description Toggle panel 16440 * @returns {void} 16441 */ 16442 16443 16444 togglePanel() { 16445 if (!this.isPanelOpen) { 16446 this.openPanel(); 16447 } else if (this.isToggleAllowed) { 16448 this.closePanel(); 16449 } 16450 } 16451 /** 16452 * @description Toggle panel height, so it could be properly animated. 16453 * It is required inner element to has content height properly. 16454 * @param {boolean} isOpen Panel Open flag 16455 * @param {RefElement} panel IsOpen flag 16456 * @returns {void} 16457 */ 16458 16459 16460 togglePanelHeight(isOpen, panel) { 16461 panel.attr(ARIA_HIDDEN, isOpen ? 'false' : 'true'); 16462 this.has(this.prefs().accordionItemPanelInner, inner => { 16463 const panelElement = panel.get(); 16464 const innerElement = inner.get(); 16465 16466 if (innerElement && panelElement) { 16467 panelElement.style.height = `${isOpen ? innerElement.offsetHeight : 0}px`; 16468 } 16469 }); 16470 } 16471 /** 16472 * @description Remove hardcoded panel height in case of widget destroyed 16473 * @returns {void} 16474 */ 16475 16476 16477 cleanPanelHeight() { 16478 this.has(this.prefs().accordionItemPanel, accordionItemPanel => { 16479 const element = accordionItemPanel.get(); 16480 16481 if (element && parseInt(element.style.height, 10) > 0) { 16482 element.style.height = 'auto'; 16483 } 16484 }); 16485 } 16486 /** 16487 * @description Update accordion item state, recalculate item height 16488 * TODO: Describe approach for accordion height in case of content change 16489 */ 16490 16491 16492 updateState() { 16493 this.has(this.prefs().accordionItemPanel, accordionItemPanel => this.togglePanelHeight(Boolean(this.isPanelOpen), accordionItemPanel)); 16494 } 16495 /**
16496 * @description Keydown Event handler 16497 * @param {HTMLElement} _ Source of keydown event 16498 * @param {KeyboardEvent} event Event object 16499 * @returns {void} 16500 */ 16501 16502 16503 handleKeydown(_, event) { 16504 let preventEventActions = false; 16505 16506 switch (event.keyCode) { 16507 case keyCode.RETURN: 16508 case keyCode.SPACE: 16509 this.togglePanel(); 16510 preventEventActions = true; 16511 break; 16512 16513 default: 16514 break; 16515 } 16516 16517 if (preventEventActions) { 16518 event.preventDefault(); 16519 event.stopPropagation(); 16520 } 16521 } 16522 16523 } 16524 16525 return AccordionItem; 16526}); 16527 16528/***/ }), 16529
16530/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/BackToTop.js": 16531/*!***************************************************************************************************!*\ 16532 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/BackToTop.js ***! 16533 \***************************************************************************************************/ 16534/*! exports provided: default */ 16535/***/ (function(module, __webpack_exports__, __webpack_require__) { 16536 16537"use strict"; 16538__webpack_require__.r(__webpack_exports__); 16539/* harmony import */ var _toolbox_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../toolbox/scroll */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js"); 16540/* harmony import */ var _toolbox_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../toolbox/debounce */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js"); 16541/* harmony import */ var _toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 16542/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 16543 16544 16545 16546 16547/** 16548 * @typedef {typeof import('widgets/Widget').default} Widget 16549 */ 16550 16551/** 16552 * @param {Widget} Widget Base widget for extending 16553 * @returns {typeof BackToTop} BackToTop widget 16554 */ 16555 16556/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 16557 /** 16558 * @category widgets 16559 * @subcategory global 16560 * @class BackToTop 16561 * @augments Widget 16562 * @classdesc Back to top component. Allows scrolling window to top, pressing on a corresponding element 16563 * @property {string} data-widget - Widget name `backtotop` 16564 * @property {string} data-event-click - Event listener method `backToTop` for click event on widget 16565 * @example <caption>Example of BackToTop widget usage</caption> 16566 * <div 16567 * class="" 16568 * data-widget="backtotop" 16569 * data-event-click="backToTop" 16570 * > 16571 * .... back to top element 16572 * </div> 16573 */ 16574 class BackToTop extends Widget { 16575 prefs() { 16576 return { 16577 pageSize: 1.5, 16578 ...super.prefs() 16579 }; 16580 } 16581 /** 16582 * @description Initialize widget logic 16583 * @listens "viewtype.change" 16584 * @returns {void} 16585 */ 16586 16587 16588 init() { 16589 super.init(); // Async init to not block other widget init 16590 16591 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_3__["timeout"])(() => { 16592 this.doInit(); 16593 this.eventBus().on('viewtype.change', 'doInit'); 16594 }, 0); 16595 } 16596 /** 16597 * @description Attach scroll listener 16598 * @returns {void} 16599 */ 16600 16601 16602 attachScrollListener() { 16603 this.scrollDisposable = this.ev('scroll', Object(_toolbox_debounce__WEBPACK_IMPORTED_MODULE_1__["debounce"])(() => { 16604 this.toggleBackToTopButton(); 16605 }, 50), window, true); 16606 } 16607 /** 16608 * @description Remove scroll listener 16609 * @returns {void} 16610 */ 16611 16612 16613 removeScrollListener() { 16614 if (this.scrollDisposable) { 16615 this.scrollDisposable.forEach(disposable => disposable()); 16616 this.scrollDisposable = null; 16617 } 16618 } 16619 /** 16620 * @description Initialize widget logic 16621 * @returns {void} 16622 */ 16623 16624 16625 doInit() { 16626 if (Object(_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["isSmallView"])()) { 16627 this.removeScrollListener(); 16628 this.show(); 16629 } else { 16630 this.attachScrollListener(); 16631 this.toggleBackToTopButton(); 16632 } 16633 } 16634 /** 16635 * @description Toggle back to top button 16636 * @returns {void} 16637 */ 16638 16639 16640 toggleBackToTopButton() { 16641 const scrolled = document.body.scrollTop || document.documentElement.scrollTop; 16642 const windowHeight = window.innerHeight; 16643 this.toggle(scrolled > windowHeight * this.prefs().pageSize); 16644 } 16645 /** 16646 * @description Back to top 16647 * @listens dom#click 16648 * @returns {void} 16649 */ 16650 16651 16652 backToTop() { 16653 Object(_toolbox_scroll__WEBPACK_IMPORTED_MODULE_0__["scrollToTop"])(); 16654 } 16655 16656 } 16657 16658 return BackToTop; 16659}); 16660 16661/***/ }), 16662
16663/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Button.js": 16664/*!************************************************************************************************!*\ 16665 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Button.js ***! 16666 \************************************************************************************************/ 16667/*! exports provided: default */ 16668/***/ (function(module, __webpack_exports__, __webpack_require__) { 16669 16670"use strict"; 16671__webpack_require__.r(__webpack_exports__); 16672const keyCode = Object.freeze({ 16673 RETURN: 13, 16674 SPACE: 32 16675}); 16676/** 16677 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 16678 */ 16679 16680/** 16681 * @description Base Button implementation 16682 * @param {typeof import('widgets/Widget').default} Widget - widget for extending 16683 * @returns {typeof Button} Button widget 16684 */ 16685 16686/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 16687 /** 16688 * @class Button 16689 * @augments Widget 16690 * @classdesc Button widget, which could be used in different contextes (html-markup, inside widgets etc). 16691 * <br>Could be also used to trigger parent's widget method 16692 * @property {string} data-widget - Widget name `button` 16693 * @property {string} data-widget-event-click - Event listener to call Parent's widget method 16694 * @property {string} data-event-click - Event listener method `handleClick` for click event on widget 16695 * @property {boolean} data-prevent-action - Prevent action flag 16696 * @classdesc Represents Button component with the next features: 16697 * 1. Activate\deactivate button visibility on the storefront 16698 * 2. Enable\disable button visibility on the storefront 16699 * 3. Handles keydown by enter\space keyboard button 16700 * 4. Sets button error 16701 * 5. Marks button as pressed\unpressed 16702 * 16703 * @example <caption>Example of Button widget usage</caption> 16704 * <button type="submit" class="btn btn-block btn-primary" 16705 * data-widget="button" 16706 * data-widget-event-click="handleSubmit" 16707 * data-event-click.prevent="handleClick" 16708 * data-id="submitButton" 16709 * > 16710 * ${Resource.msg('button.text.loginform', 'login', null)} 16711 * </button> 16712 */ 16713 class Button extends Widget { 16714 /** 16715 * @description Returns Widget configuration object 16716 * @returns {object} Widget configuration object 16717 */ 16718 prefs() { 16719 return { 16720 classesError: 'm-error', 16721 classesActive: 'm-active', 16722 preventAction: false, 16723 ...super.prefs() 16724 }; 16725 } 16726 /** 16727 * @description Widget initialization logic 16728 * @returns {void} 16729 */ 16730 16731 16732 init() { 16733 super.init(); 16734 16735 if (!this.id) { 16736 this.id = String(this.config.id); 16737 } 16738 16739 this.disabled = this.ref('self').attr('disabled') === 'disabled'; 16740 } 16741 /** 16742 * @description Handles button click 16743 * @listens dom:click 16744 * @emits Button#click 16745 * @returns {void} 16746 */ 16747 16748 16749 handleClick() { 16750 if (!this.prefs().preventAction) { 16751 /** 16752 * @description Emits button click event 16753 * @event Button#click 16754 */ 16755 this.emit('click', this); 16756 } 16757 } 16758 /** 16759 * @description Returns button value 16760 * @returns {string|refElement} result 16761 */ 16762 16763 16764 getValue() { 16765 return this.ref('self').val(); 16766 } 16767 /** 16768 * @param {(string|number|boolean|undefined)} val - Value to set into widget's val attribute 16769 * @returns {string|refElement} result 16770 */ 16771 16772 16773 setValue(val = '') { 16774 this.setError(); 16775 return this.ref('self').val(val); 16776 } 16777 /** 16778 * @description Returns button text 16779 * @returns {string} result 16780 */ 16781 16782 16783 getText() { 16784 return this.ref('self').getText(); 16785 } 16786 /** 16787 * @param {(string|undefined)} val - Value to set as a text of the Button 16788 * @returns {refElement} result 16789 */ 16790 16791 16792 setText(val = '') { 16793 return this.ref('self').setText(val); 16794 } 16795 /** 16796 * @description Sets button text error 16797 * @param {(string|undefined)} err - Sets `err` as a Button text and 16798 * if `err` is not empty - adds error class to Button 16799 * @returns {void} 16800 */ 16801 16802 16803 setError(err = '') { 16804 this.setText(err); 16805 16806 if (err) { 16807 this.ref('self').addClass(this.prefs().classesError); 16808 } 16809 } 16810 /**
16811 * @description Method to mark element as `active` 16812 * @returns {Button} result 16813 */ 16814 16815 16816 activate() { 16817 this.ref('self').addClass(this.prefs().classesActive); 16818 return this; 16819 } 16820 /** 16821 * @description Method to mark element as `inactive` 16822 * @returns {Button} result 16823 */ 16824 16825 16826 deactivate() { 16827 this.ref('self').removeClass(this.prefs().classesActive); 16828 return this; 16829 } 16830 /** 16831 * @param {(boolean|undefined)} state true to show/false to hide/undefined to auto 16832 */ 16833 16834 16835 toggleActive(state) { 16836 this.ref('self').toggleClass(this.prefs().classesActive, state); 16837 } 16838 /** 16839 * @description Disables button 16840 * @returns {Button} result 16841 */ 16842 16843 16844 disable() { 16845 this.disabled = true; 16846 this.ref('self').disable(); 16847 return this; 16848 } 16849 /** 16850 * @description Enables button 16851 * @returns {Button} result 16852 */ 16853 16854 16855 enable() { 16856 this.disabled = false; 16857 this.ref('self').enable(); 16858 return this; 16859 } 16860 /** 16861 * @description Marks button as busy 16862 * @returns {void} 16863 */ 16864 16865 16866 busy() { 16867 this.isBusy = true; 16868 this.ref('self').attr('aria-busy', 'true'); 16869 } 16870 /** 16871 * @description Marks button as unbusy 16872 * @returns {void} 16873 */ 16874 16875 16876 unbusy() { 16877 this.isBusy = false; 16878 this.ref('self').attr('aria-busy', 'false'); 16879 } 16880 /** 16881 * @description Marks button as selected 16882 * @returns {void} 16883 */ 16884 16885 16886 select() { 16887 this.selected = true; 16888 this.ref('self').attr('aria-selected', 'true'); 16889 } 16890 /** 16891 * @description Marks button as unselected 16892 * @returns {void} 16893 */ 16894 16895 16896 unselect() { 16897 this.selected = false; 16898 this.ref('self').attr('aria-selected', 'false'); 16899 } 16900 /** 16901 * @description Method to mark button as `pressed`. 16902 * Used only for button with 2 different states when pressed and not pressed. Ex: 16903 * Play / Paused; Favorite / Not favorite, etc. 16904 * @returns {Button} result 16905 */ 16906 16907 16908 press() { 16909 this.ref('self').attr('aria-pressed', 'true'); 16910 return this; 16911 } 16912 /** 16913 * @description Method to mark button as `unpressed`. Used only in buttons with 2 states. 16914 * @returns {Button} result 16915 */ 16916 16917 16918 unpress() { 16919 this.ref('self').attr('aria-pressed', 'false'); 16920 return this; 16921 } 16922 /** 16923 * @description Returns button name 16924 * @returns {string|refElement} result 16925 */ 16926 16927 16928 getName() { 16929 return this.ref('self').attr('name'); 16930 } 16931 /** 16932 * @description Focus to element 16933 * @returns {Button} - return instance for chaining 16934 */ 16935 16936 16937 focus() { 16938 this.ref('self').focus(); 16939 return this; 16940 } 16941 /** 16942 * @description Sets button to be accountable with `tab` button navigation 16943 * @returns {Button} - return instance for chaining 16944 */ 16945 16946 16947 setTabindex() { 16948 this.ref('self').attr('tabindex', '0'); 16949 return this; 16950 } 16951 /** 16952 * @description Sets button to be not accountable with `tab` button navigation 16953 * @returns {Button} - return instance for chaining 16954 */ 16955 16956 16957 unsetTabindex() { 16958 this.ref('self').attr('tabindex', '-1'); 16959 return this; 16960 } 16961 /** 16962 * @description Keydown Event handler 16963 * @param {HTMLElement} _ Source of keydown event 16964 * @param {KeyboardEvent} event Event object 16965 * @listens dom:keydown 16966 * @returns {void} 16967 */ 16968 16969 16970 handleKeydown(_, event) { 16971 let preventEventActions = false; 16972 16973 switch (event.keyCode) { 16974 case keyCode.RETURN: 16975 case keyCode.SPACE: 16976 this.handleClick(); 16977 preventEventActions = true; 16978 break; 16979 16980 default: 16981 break; 16982 } 16983 16984 if (preventEventActions) { 16985 event.preventDefault(); 16986 event.stopPropagation(); 16987 } 16988 } 16989 /** 16990 * @description Method to add class to widget container. Allows chaining. 16991 * @param {string} className a class name to add to widget container 16992 * @returns {Button} result 16993 */ 16994 16995 16996 addClass(className) { 16997 this.ref('self').addClass(className); 16998 return this; 16999 } 17000 /** 17001 * @description Method to remove class from widget container. Allows chaining. 17002 * @param {string} className a class name to remove from widget container 17003 * @returns {Button} result 17004 */ 17005 17006 17007 removeClass(className) { 17008 this.ref('self').removeClass(className); 17009 return this; 17010 } 17011 17012 } 17013 17014 return Button; 17015}); 17016 17017/***/ }), 17018
17019/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ButtonWithIcon.js": 17020/*!********************************************************************************************************!*\ 17021 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ButtonWithIcon.js ***! 17022 \********************************************************************************************************/ 17023/*! exports provided: default */ 17024/***/ (function(module, __webpack_exports__, __webpack_require__) { 17025 17026"use strict"; 17027__webpack_require__.r(__webpack_exports__); 17028/** 17029 * @typedef {ReturnType<typeof import('widgets/global/Button').default>} Button 17030 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 17031 */ 17032 17033/** 17034 * @description Base ButtonWithIcon implementation 17035 * @param {Button} Button Base widget for extending 17036 * @returns {typeof ButtonWithIcon} ButtonWithIcon class 17037 */ 17038/* harmony default export */ __webpack_exports__["default"] = (function (Button) { 17039 /** 17040 * @class ButtonWithIcon 17041 * @augments Button 17042 * @classdesc ButtonWithIcon widget, which could be used together with icon 17043 * @property {string} data-widget - Widget name `processButton` 17044 * @property {string} data-widget-event-click - Event listener to call Parent's widget method 17045 * @property {string} data-event-click - Event listener method `handleClick` for click event on widget 17046 * @example 17047 * // use this code to display widget 17048 * <button type="submit" class="btn btn-block btn-primary" 17049 * data-widget="buttonWithIcon" 17050 * > 17051 * <!-- svg icon below --> 17052 * <isinclude template="/common/svg/wishlist" /> 17053 * 17054 * <span class="container"> 17055 * ${Resource.msg('button.text.loginform', 'login', null)} 17056 * </span> 17057 * </button> 17058 */ 17059 class ButtonWithIcon extends Button { 17060 /** 17061 * @description Get Text 17062 * @returns {string} Button Text 17063 */ 17064 getText() { 17065 return this.ref('container').getText(); 17066 } 17067 /** 17068 * @description Set Text 17069 * @param {(string|undefined)} val - Value to set as a text of the Button 17070 * @returns {refElement} Reference element 17071 */ 17072 17073 17074 setText(val = '') { 17075 return this.ref('container').setText(val); 17076 } 17077 17078 } 17079 17080 return ButtonWithIcon; 17081}); 17082 17083/***/ }), 17084
17085/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Carousel.js": 17086/*!**************************************************************************************************!*\ 17087 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Carousel.js ***! 17088 \**************************************************************************************************/ 17089/*! exports provided: default */ 17090/***/ (function(module, __webpack_exports__, __webpack_require__) { 17091 17092"use strict"; 17093__webpack_require__.r(__webpack_exports__); 17094/* harmony import */ var widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/scroll */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js"); 17095/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 17096/* harmony import */ var widgets_toolbox_cssLoadChecker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/cssLoadChecker */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cssLoadChecker.js"); 17097/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 17098 17099 17100 17101 17102const DEFAULT_DIRECTION = 'horizontal'; 17103const keyCode = Object.freeze({ 17104 RETURN: 13, 17105 SPACE: 32 17106}); 17107/** 17108 * @typedef {typeof import('widgets/Widget').default} Widget 17109 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 17110 */ 17111 17112/** 17113 * @description Carousel block implementation 17114 * @param {Widget} Widget Base widget for extending 17115 * @returns {typeof Carousel} Carousel class 17116 */ 17117 17118/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 17119 /** 17120 * @class Carousel 17121 * @augments Widget 17122 * @classdesc Carousel widget 17123 * <br>Uses as a basis slider from here (ScrollCarousel.js): 17124 * <br>https://github.com/dimanech/aria-components/tree/master/cartridge1/js/components/carousels/carousel 17125 * @property {string} data-widget - Widget name `carousel` 17126 * @property {string} data-elem-prev-button - Previous button element 17127 * @property {string} data-elem-next-button - Next button element 17128 * @property {string} data-elem-carousel-track - Carousel inner element 17129 * @property {string} data-direction - Carousel direction - an object, contains direction per viewport 17130 * @example 17131 * // use this code to display widget 17132 * <div 17133 * data-widget="carousel" 17134 * data-elem-prev-button="elemPrevButton" 17135 * data-elem-next-button="elemNextButton" 17136 * data-elem-carousel-track="elemCarouselTrack" 17137 * data-direction='{ 17138 * "small": "horizontal", 17139 * "medium": "horizontal", 17140 * "large": "vertical", 17141 * "extraLarge": "vertical" 17142 * }' 17143 * > 17144 * <button 17145 * class="carousel__ctrl _prev" 17146 * data-elem-prev-button 17147 * tabindex="-1" 17148 * aria-hidden="true" 17149 * data-ref="elemPrevButton" 17150 * data-event-click="scrollToPrevPage" 17151 * >Prev</button> 17152 * <div 17153 * class="carousel__track" 17154 * data-elem-carousel-track 17155 * data-ref="elemCarouselTrack" 17156 * data-event-scroll="onScroll" 17157 * data-event-touchstart="onScroll" 17158 * data-event-mousedown.prevent="onMouseDown" 17159 * data-event-mouseup="onMouseUp" 17160 * > 17161 * <isloop items="${slotcontent.content}" var="contentAsset"> 17162 * <div class="box _single" tabindex="0"> 17163 * <isprint value="${contentAsset.custom.body}" encoding="off" /> 17164 * </div> 17165 * </isloop> 17166 * </div> 17167 * <button 17168 * class="carousel__ctrl _next" 17169 * data-elem-next-button 17170 * tabindex="-1" 17171 * aria-hidden="true" 17172 * data-ref="elemNextButton" 17173 * data-event-click="scrollToNextPage" 17174 * >Next</button> 17175 * <div class="pagination" data-ref="pagination"></div> 17176 * <script type="template/mustache" data-ref="template"> 17177 * <div class="pagination" data-ref="pagination"> 17178 * {{${'#'}pagination}} 17179 * <button 17180 * class="page" 17181 * data-page="{{page}}" 17182 * tabindex="-1" 17183 * data-event-click.prevent="handlePaginationClick" 17184 * > 17185 * </button> 17186 * {{/pagination}} 17187 * </div> 17188 * </script> 17189 * </div> 17190 */ 17191 class Carousel extends Widget { 17192 prefs() { 17193 return { 17194 elemPrevButton: 'elemPrevButton', 17195 elemNextButton: 'elemNextButton', 17196 elemCarouselTrack: 'elemCarouselTrack', 17197 pagerCurrentClass: 'm-current', 17198 direction: { 17199 small: 'horizontal', 17200 medium: 'horizontal', 17201 large: 'horizontal', 17202 extraLarge: 'horizontal' 17203 }, 17204 zoomClass: 'm-zoomed-in', 17205 ...super.prefs() 17206 }; 17207 } 17208 17209 update() { 17210 this.updateCarouselMetric(); 17211 this.updateCarouselState(); 17212 this.initPagination(); 17213 this.setActivePagination(); 17214 this.ref('self').addClass('m-inited'); 17215 return this; 17216 } 17217 17218 defineCarouselDirection() { 17219 this.carouselDirection = this.prefs().direction[Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["getViewType"])()] || DEFAULT_DIRECTION; 17220 } 17221 17222 init() { 17223 super.init(); // Async loading to not block other widget init 17224 17225 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_3__["timeout"])(() => { 17226 widgets_toolbox_cssLoadChecker__WEBPACK_IMPORTED_MODULE_2__["default"].get().then(() => this.initCarousel()); 17227 }, 0); 17228 } 17229
17230 initCarousel() { 17231 this.defineCarouselDirection(); 17232 this.eventBus().on('viewtype.change', 'onViewtypeChange'); 17233 this.ev('focusin', this.handleScrollToFocusedItem, this.ref('elemCarouselTrack').get()); 17234 this.currentPage = 0; 17235 this.scrollingTimeoutValue = 60; 17236 this.grabbingTimeoutValue = 60; 17237 this.deltaPrevPageSensitivity = -10; 17238 this.deltaNextPageSensitivity = 10; // fixes issue with rounding slides width for responsive markup 17239 17240 this.roundingDelta = 1; 17241 this.onScroll(); 17242 this.updateCarouselState(); 17243 this.initPagination(); 17244 this.setActivePagination(); 17245 this.ref('self').addClass('m-inited'); 17246 } 17247 /** 17248 * @description viewtype change event handler. Recalculates carousel dimension and redefines carousel direction. 17249 */ 17250 17251 17252 onViewtypeChange() { 17253 this.carouselDirection = undefined; 17254 this.dimension = undefined; 17255 this.defineCarouselDirection(); 17256 this.getCarouselDimension(); 17257 } 17258 /** 17259 * @description Scrolls active element into carousel viewport. 17260 * This might be useful when using dependant carousels, like on PDP images/thumbnails 17261 * 17262 * @returns {Carousel} carousel instance 17263 */ 17264 17265 17266 scrollIntoView() { 17267 const elemCarouselTrack = this.ref('elemCarouselTrack').get(); 17268 17269 if (elemCarouselTrack) { 17270 const currentElement = [].find.call(elemCarouselTrack.children, 17271 /** @type {HTMLElement} */ 17272 element => { 17273 return element.classList.contains(this.prefs().pagerCurrentClass); 17274 }); 17275 17276 if (currentElement) { 17277 if (this.carouselDirection === DEFAULT_DIRECTION) { 17278 if (currentElement.offsetLeft + currentElement.clientWidth > elemCarouselTrack.scrollLeft + elemCarouselTrack.clientWidth) { 17279 this.scrollToPoint(0, currentElement.offsetLeft); 17280 } else if (currentElement.offsetLeft < elemCarouselTrack.scrollLeft) { 17281 this.scrollToPoint(0, currentElement.offsetLeft); 17282 } 17283 } else { 17284 // eslint-disable-next-line no-lonely-if 17285 if (currentElement.offsetTop + currentElement.clientHeight > elemCarouselTrack.scrollTop + elemCarouselTrack.clientHeight) { 17286 this.scrollToPoint(currentElement.offsetTop, 0); 17287 } else if (currentElement.offsetTop < elemCarouselTrack.scrollTop) { 17288 this.scrollToPoint(currentElement.offsetTop, 0); 17289 } 17290 } 17291 } 17292 } 17293 17294 return this; 17295 } 17296 17297 initPagination() { 17298 if (this.hasNoScroll()) { 17299 return; 17300 } 17301 17302 this.has('pagination', paginationRefEl => { 17303 const pagination = paginationRefEl.get(); 17304 17305 if (pagination) { 17306 // If empty pagination - we need to render it. Otherwise - create. 17307 if (pagination.innerHTML === '') { 17308 this.createPaginationElements(); 17309 } else { 17310 this.pagination = Promise.resolve(pagination); 17311 } 17312 } 17313 }); 17314 } 17315 /** 17316 * @param {refElement} el source of event 17317 */ 17318 17319 17320 handlePaginationClick(el) { 17321 const pageIndex = el.data('page'); 17322 17323 if (pageIndex !== null) { 17324 this.scrollToPage(parseInt(pageIndex + '', 10)); 17325 } 17326 } 17327 17328 createPaginationElements() { 17329 const elemCarouselTrack = this.ref('elemCarouselTrack').get(); 17330 17331 if (!elemCarouselTrack) { 17332 return; 17333 } // We need to use round, not ceil, since it called on scroll, 17334 // in case of last it would generate falls positive 17335 17336 17337 const numberOfPages = Math.round(elemCarouselTrack.scrollWidth / elemCarouselTrack.clientWidth); 17338 const pagination = new Array(numberOfPages).fill(0).map((_el, i) => ({ 17339 page: i 17340 })); 17341 this.pagination = new Promise(resolve => { 17342 this.render(undefined, { 17343 pagination 17344 }, this.ref('pagination')).then(() => { 17345 resolve(this.ref('pagination').get()); 17346 }); 17347 }); 17348 } 17349 17350 setActivePagination() { 17351 if (!this.pagination) { 17352 return; 17353 } 17354 17355 this.pagination.then(pagination => { 17356 var _pagination$children; 17357 17358 if (!pagination) { 17359 return; 17360 } 17361 17362 const currentPageIndex = this.getCurrentPageIndex(); 17363 const currentPageNode = pagination.children[currentPageIndex]; 17364 17365 if (!currentPageNode) { 17366 this.initPagination(); 17367 } 17368 17369 (_pagination$children = pagination.children[this.currentPage || 0]) === null || _pagination$children === void 0 ? void 0 : _pagination$children.classList.remove(this.prefs().pagerCurrentClass); 17370 currentPageNode === null || currentPageNode === void 0 ? void 0 : currentPageNode.classList.add(this.prefs().pagerCurrentClass); 17371 this.currentPage = currentPageIndex; 17372 }); 17373 } 17374 17375 getCurrentPageIndex() { 17376 const carouselTrackElem = this.ref('elemCarouselTrack').get(); 17377 17378 if (carouselTrackElem) { 17379 const currentPosition = this.carouselDirection === 'horizontal' ? carouselTrackElem.scrollLeft : carouselTrackElem.scrollTop; 17380 const pageDimension = this.carouselDirection === 'horizontal' ? carouselTrackElem.clientWidth : carouselTrackElem.clientHeight; 17381 return Math.round((currentPosition || 0) / (pageDimension || 1)); 17382 } else { 17383 return 0; 17384 } 17385 } 17386 17387 getImages() { 17388 const imagesContainer = this.ref('elemCarouselTrack').get(); 17389 return imagesContainer ? imagesContainer.querySelectorAll('img') : []; 17390 } 17391 17392 scrollToNextPage() { 17393 this.scrollToPage(this.getCurrentPageIndex() + 1); 17394 } 17395 17396 scrollToPrevPage() { 17397 this.scrollToPage(this.getCurrentPageIndex() - 1); 17398 } 17399 17400 onPageClick(el) { 17401 if (this.delta === 0) {
17402 this.emit('pageclicked', el.data('page')); 17403 } 17404 } 17405 17406 scrollToPage(pageIndex) { 17407 const self = this.ref('self').get(); 17408 17409 if (this.carouselDirection === 'horizontal') { 17410 this.scrollToPoint(0, Math.round((self && self.clientWidth || 0) * pageIndex)); 17411 } else { 17412 this.scrollToPoint(Math.round((self && self.clientHeight || 0) * pageIndex), 0); 17413 } 17414 17415 return this; 17416 } 17417 /** 17418 * @description Adds some defined class on carousel inner elements 17419 * @param {number} pageIndex - element index 17420 * 17421 * @returns {Carousel} carousel instance 17422 */ 17423 17424 17425 markCurrentPage(pageIndex) { 17426 const elemCarouselTrack = this.ref('elemCarouselTrack').get(); 17427 [].slice.call(elemCarouselTrack && elemCarouselTrack.children).forEach( 17428 /** @type {HTMLElement} */ 17429 element => { 17430 const dataPage = parseInt(element && element.getAttribute('data-page') || '0', 10); 17431 element.classList.toggle(this.prefs().pagerCurrentClass, dataPage === pageIndex); 17432 }); 17433 return this; 17434 } 17435 17436 scrollToPoint(top, left, node) { 17437 const element = node || this.ref('elemCarouselTrack').get(); 17438 17439 if (element) { 17440 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_0__["scrollElementTo"])(element, top, left); 17441 } 17442 } 17443 17444 hasNoScroll() { 17445 return this.isScrollStart && this.isScrollEnd; 17446 } 17447 17448 onScroll() { 17449 this.updateCarouselMetric(); 17450 17451 if (!this.isCallInNextFrameRequested) { 17452 window.requestAnimationFrame(this.updateDuringScroll.bind(this)); 17453 this.isCallInNextFrameRequested = true; 17454 } 17455 } 17456 17457 onScrollEnd() { 17458 this.emit('pagechanged', this.getCurrentPageIndex()); 17459 } 17460 17461 updateDuringScroll() { 17462 this.updateCarouselState(); 17463 17464 if (this.pagination) { 17465 this.setActivePagination(); 17466 } else { 17467 this.initPagination(); 17468 } 17469 17470 if (this.scrollingTimeout) { 17471 clearTimeout(this.scrollingTimeout); 17472 } 17473 17474 this.scrollingTimeout = setTimeout(() => { 17475 this.onScrollEnd(); 17476 }, this.scrollingTimeoutValue); 17477 this.isCallInNextFrameRequested = false; 17478 } 17479 17480 updateCarouselState() { 17481 var _this$ref$get; 17482 17483 const carousel = this.ref('self'); 17484 const elemPrevButton = this.ref('elemPrevButton'); 17485 const elemNextButton = this.ref('elemNextButton'); 17486 17487 if (this.hasNoScroll()) { 17488 // No scroll case 17489 carousel.addClass('m-no_scroll'); 17490 } else { 17491 carousel.removeClass('m-no_scroll'); 17492 } 17493 17494 if (this.isScrollStart) { 17495 carousel.removeClass('m-prev_visible'); 17496 elemPrevButton.attr('disabled', ''); 17497 } else { 17498 carousel.addClass('m-prev_visible'); 17499 elemPrevButton.attr('disabled', false); 17500 } 17501 17502 if (this.isScrollEnd && ((_this$ref$get = this.ref('carouselContianer').get()) === null || _this$ref$get === void 0 ? void 0 : _this$ref$get.dataset.enableAutoplay) != "true") { 17503 carousel.removeClass('m-next_visible'); 17504 elemNextButton.attr('disabled', ''); 17505 } else { 17506 carousel.addClass('m-next_visible'); 17507 elemNextButton.attr('disabled', false); 17508 } 17509 } 17510 17511 updateCarouselMetric() { 17512 const carouselTrackElem = this.ref('elemCarouselTrack').get(); 17513 const carouselElem = this.ref('self').get(); 17514 const roundingDelta = this.roundingDelta || 0; 17515 17516 if (carouselTrackElem && carouselElem) { 17517 if (this.carouselDirection === 'horizontal') { 17518 const totalScrollWidth = carouselTrackElem.scrollLeft + carouselElem.offsetWidth; 17519 this.isScrollStart = carouselTrackElem.scrollLeft <= 0; 17520 this.isScrollEnd = totalScrollWidth + roundingDelta >= carouselTrackElem.scrollWidth; 17521 } else { 17522 const totalScrollHeight = carouselTrackElem.scrollTop + carouselElem.offsetHeight; 17523 this.isScrollStart = carouselTrackElem.scrollTop <= 0; 17524 this.isScrollEnd = totalScrollHeight + roundingDelta >= carouselTrackElem.scrollHeight; 17525 } 17526 } 17527 } 17528 /** 17529 * @description Method to get event coordinate depending on carousel direction 17530 * 17531 * @param {object} event event object 17532 * @returns {number} event coordinate 17533 */ 17534 17535 17536 getCurrentCoordinate(event) { 17537 let currentCoordinate = 0; 17538 17539 if (event instanceof MouseEvent) { 17540 currentCoordinate = this.carouselDirection === 'horizontal' ? event.clientX : event.clientY; 17541 } else if (event instanceof TouchEvent) { 17542 currentCoordinate = this.carouselDirection === 'horizontal' ? event.touches[0].pageX : event.touches[0].pageY; 17543 } 17544 17545 return currentCoordinate; 17546 } 17547 /**
17548 * @description Method to get carousel dimension (width or height) depending on carousel direction 17549 * 17550 * @returns {number} width or height of carousel 17551 */ 17552 17553 17554 getCarouselDimension() { 17555 if (!this.dimension) { 17556 this.dimension = 0; 17557 const self = this.ref('self').get(); 17558 17559 if (self) { 17560 this.dimension = this.carouselDirection === 'horizontal' ? self.clientWidth : self.clientHeight; 17561 } 17562 } 17563 17564 return this.dimension; 17565 } 17566 /** 17567 * @description Programmatically handle scroll to focused carousel item. 17568 * This is the fix for Chrome bug where it could not calculate item boundaries properly 17569 * and threat item like it into view. The bug is on PDP Gallery. 17570 * Applicable only for horizontal scroll. 17571 * @returns {void} 17572 */ 17573 17574 17575 handleScrollToFocusedItem() { 17576 if (this.carouselDirection !== 'horizontal') { 17577 return; 17578 } 17579 17580 const track = this.ref('elemCarouselTrack').get(); 17581 const activeItem = document.activeElement; 17582 17583 if (!activeItem || !(activeItem instanceof HTMLElement) || activeItem.parentElement !== track) { 17584 return; 17585 } 17586 17587 const activeItemLeft = activeItem.getBoundingClientRect().left; 17588 const trackStart = track.getBoundingClientRect().left; 17589 const trackEnd = trackStart + track.clientWidth; 17590 17591 if (activeItemLeft >= trackEnd || activeItemLeft <= trackStart) { 17592 track.scrollTo(activeItem.offsetLeft, 0); 17593 } 17594 } 17595 /** 17596 * @description Next/Prev Buttons Keydown Event handler 17597 * @param {HTMLElement} _ Source of keydown event 17598 * @param {KeyboardEvent} event Event object 17599 * @returns {void} 17600 */ 17601 17602 17603 handleKeydown(_, event) { 17604 let preventEventActions = false; 17605 let scrollDirection; 17606 const button = event.target; 17607 17608 switch (event.keyCode) { 17609 case keyCode.RETURN: 17610 case keyCode.SPACE: 17611 if (!(button instanceof HTMLElement)) { 17612 break; 17613 } 17614 17615 if (event.target && 'thumbnailsArrow' in button.dataset) { 17616 scrollDirection = button.dataset.thumbnailsArrow; 17617 } else { 17618 break; 17619 } 17620 17621 if (scrollDirection === 'next') { 17622 this.scrollToNextPage(); 17623 } else if (scrollDirection === 'prev') { 17624 this.scrollToPrevPage(); 17625 } 17626 17627 preventEventActions = true; 17628 break; 17629 17630 default: 17631 break; 17632 } 17633 17634 if (preventEventActions) { 17635 event.preventDefault(); 17636 event.stopPropagation(); 17637 } 17638 } 17639 /** 17640 * @param {refElement} el source of event 17641 * @param {MouseEvent} event event instance in DOM 17642 */ 17643 17644 17645 onMouseDown(el, event) { 17646 this.initialCoordinate = this.getCurrentCoordinate(event); 17647 this.delta = 0; 17648 this.getCarouselDimension(); 17649 const elemCarouselTrack = this.ref('elemCarouselTrack'); 17650 this.mouseMoveDisposable = this.ev('mousemove', this.onMouseMove, elemCarouselTrack.get()); 17651 this.mouseLeaveDisposable = this.ev('mouseleave', this.onMouseUp, elemCarouselTrack.get()); 17652 clearTimeout(this.grabbingRemoveTimeout); 17653 } 17654 17655 onMouseUp() { 17656 const elemCarouselTrack = this.ref('elemCarouselTrack'); 17657 const GRABBING_CLASS = 'm-grabbing'; 17658 17659 if (this.mouseMoveDisposable) { 17660 this.mouseMoveDisposable.forEach(disposable => disposable()); 17661 delete this.mouseMoveDisposable; 17662 } 17663 17664 if (this.mouseLeaveDisposable) { 17665 this.mouseLeaveDisposable.forEach(disposable => disposable()); 17666 delete this.mouseLeaveDisposable; 17667 } // we should remove scroll-snap-type with delay, otherwise it cause bouncing 17668 17669 17670 this.grabbingRemoveTimeout = setTimeout(() => { 17671 elemCarouselTrack.removeClass(GRABBING_CLASS); 17672 }, this.grabbingTimeoutValue); 17673 17674 if (!this.delta) { 17675 this.delta = 0; 17676 } 17677 17678 if (!this.deltaPrevPageSensitivity) { 17679 this.deltaPrevPageSensitivity = 0; 17680 } 17681 17682 if (!this.deltaNextPageSensitivity) { 17683 this.deltaNextPageSensitivity = 0; 17684 } 17685 17686 if (this.delta <= this.deltaPrevPageSensitivity) { 17687 this.scrollToPrevPage(); 17688 } else if (this.delta >= this.deltaNextPageSensitivity) { 17689 this.scrollToNextPage(); 17690 } else { 17691 // remove immediate for this case 17692 elemCarouselTrack.removeClass(GRABBING_CLASS); 17693 } 17694 } 17695 /**
17696 * @description Handle Mouse/Touch move 17697 * @param {HTMLElement} _el HTMLElement 17698 * @param {Event} event DOM event 17699 */ 17700 17701 17702 onMouseMove(_el, event) { 17703 const currentCoordinate = this.getCurrentCoordinate(event); 17704 17705 if (this.initialCoordinate && this.initialCoordinate !== currentCoordinate) { 17706 // eslint-disable-next-line no-mixed-operators 17707 this.delta = (this.initialCoordinate - currentCoordinate) / this.getCarouselDimension() * 100; 17708 this.has('elemCarouselTrack', carouselTrack => { 17709 carouselTrack.addClass('m-grabbing'); 17710 const elemCarouselTrack = carouselTrack.get(); 17711 17712 if (elemCarouselTrack && this.delta) { 17713 if (this.carouselDirection === 'horizontal') { 17714 this.scrollToPoint(0, elemCarouselTrack.scrollLeft + this.delta); 17715 } else { 17716 this.scrollToPoint(elemCarouselTrack.scrollTop + this.delta, 0); 17717 } 17718 } 17719 }); 17720 } 17721 } 17722 /** 17723 * @description Toggle Zoom state 17724 * @param {boolean} state flag for toggle zoom state 17725 */ 17726 17727 17728 toggleZoomState(state) { 17729 this.ref('self').toggleClass(this.prefs().zoomClass, state); 17730 } 17731 17732 } 17733 17734 return Carousel; 17735}); 17736 17737/***/ }), 17738
17739/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/CarouselSwiper.js": 17740/*!********************************************************************************************************!*\ 17741 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/CarouselSwiper.js ***! 17742 \********************************************************************************************************/ 17743/*! exports provided: default */ 17744/***/ (function(module, __webpack_exports__, __webpack_require__) { 17745 17746"use strict"; 17747__webpack_require__.r(__webpack_exports__); 17748/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 17749/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 17750/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 17751/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 17752 17753// This is the swiper plugin-based carousel implementation, that could be used per specific client needs. 17754 17755/* eslint-disable no-param-reassign */ 17756 17757/* eslint-disable class-methods-use-this */ 17758 17759 17760const allViewPorts = [widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["SMALL"], widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["MEDIUM"], widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["LARGE"], widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["EXTRA_LARGE"]].join(','); 17761/** 17762 * @typedef {typeof import('widgets/Widget').default} Widget 17763 */ 17764 17765/** 17766 * @description Swiper Carousel implementation 17767 * @param {Widget} Widget Base widget for extending 17768 * @returns {typeof CarouselSwiper} Swiper Carousel class 17769 */ 17770 17771/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 17772 /** 17773 * @class CarouselSwiper 17774 * @augments Widget 17775 * @classdesc CarouselSwiper widget for different carousel types, like Product images carousel or Recommendations carousel 17776 * <br>Uses Swiper slider https://swiperjs.com/api/ under the hood 17777 * @property {string} data-widget - Widget name `carouselSwiper` 17778 * @property {string} data-prev - Previous button text 17779 * @property {string} data-next - Next button text 17780 * @property {string} data-slides-per-view - Number of slides per view (slides visible at the same time on slider's container). 17781 * @property {string} data-slides-per-view-tablet - Number of slides per view for tablet devices (slides visible at the same time on slider's container). 17782 * @property {string} data-slides-per-view-mobile - Number of slides per view for mobile devices (slides visible at the same time on slider's container). 17783 * @property {string} data-loop - Enable continuous loop mode 17784 * @example 17785 * // use this code to display widget 17786 * <div 17787 * data-widget="carouselSwiper" 17788 * data-id="carousel-${slotcontent.slotID}" 17789 * class="o-carousel swiper-container o-carousel--recommend carousel slide" 17790 * data-interval="0" 17791 * data-prev="${Resource.msg('button.previous', 'common', null)}" 17792 * data-next="${Resource.msg('button.next', 'common', null)}" 17793 * data-slides-per-view="${Resource.msg('carousel.recommendations.slidesPerView', 'carousel', null)}" 17794 * data-slides-per-view-tablet="${Resource.msg('carousel.recommendations.slidesPerViewTablet', 'carousel', null)}" 17795 * data-slides-per-view-mobile="${Resource.msg('carousel.recommendations.slidesPerViewMobile', 'carousel', null)}" 17796 * data-loop="${products.length > 3 ? true : false}" 17797 * data-quantity="${products.length}" 17798 * > 17799 * <!-- previous button --> 17800 * <button class="carousel-control-prev o-carousel__control-prev" data-ref="prevBtn">
17801 * <span class="icon icon-arrow-to-left" aria-hidden="true"></span> 17802 * </button> 17803 * 17804 * <!-- pagination --> 17805 * <ol class="carousel-indicators swiper-pagination is-hidden" data-ref="pagination" aria-hidden="true"> 17806 * <isloop items="${products}" var="product" status="loopStatus"> 17807 * <li data-target="${'#'}Carousel-${product.ID}" data-slide-to="${loopStatus.index}" class="${!loopStatus.index ? 'active' : ''}" ></li> 17808 * </isloop> 17809 * </ol> 17810 * 17811 * <!-- carousel slides --> 17812 * <div class="swiper-wrapper carousel-inner o-carousel__inner" role="listbox" data-ref="carouselInner" aria-label="carousel"> 17813 * <isloop items="${products}" var="product" status="tile"> 17814 * <div class="swiper-slide carousel-item o-carousel__slide active" data-tile-position="${tile.index}"> 17815 * <div class="homepage-products__item"> 17816 * <isinclude url="${URLUtils.url('Tile-Show', 'pid', product.ID, 'pview', 'tile', 'ratings', true, 'swatches', true, 'showQuickView', false, 'recommendation', true)}"/> 17817 * </div> 17818 * </div> 17819 * </isloop> 17820 * </div> 17821 * 17822 * <!-- next button --> 17823 * <button class="carousel-control-next o-carousel__control-next" data-ref="nextBtn"> 17824 * <span class="icon icon-arrow-to-right" aria-hidden="true"></span> 17825 * </button> 17826 * </div> 17827 */ 17828 class CarouselSwiper extends Widget { 17829 prefs() { 17830 return { 17831 forceInitOnUpdate: false, 17832 slideClass: 'swiper-slide', 17833 slideActiveClass: 'swiper-slide-active', 17834 wrapperClass: 'swiper-wrapper', 17835 navDisabledClass: 'swiper-button-disabled', 17836 navHiddenClass: 'swiper-button-hidden', 17837 watchSlidesVisibility: 'swiper-slide-visible', 17838 autoplay: false, 17839 loop: true, 17840 spaceBetween: 30, 17841 slidesPerView: 4, 17842 slidesPerViewTablet: 3, 17843 slidesPerViewMobile: 1, 17844 activeOnViewType: allViewPorts, 17845 ...super.prefs() 17846 }; 17847 } 17848 17849 activateIfViewPort() { 17850 const viewType = Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["getViewType"])(); 17851 17852 if (this.prefs().activeOnViewType.includes(viewType)) { 17853 this.activate(); 17854 } else { 17855 this.deactivate(); 17856 } 17857 } 17858 17859 activate() { 17860 if (!this.cleanUpSwiper) { 17861 // https://idangero.us/swiper/api/ 17862 Promise.all([Promise.resolve(/*! import() */).then(__webpack_require__.bind(null, /*! swiper */ "./node_modules/swiper/swiper.esm.js"))]).then(([swiperModule]) => { 17863 const Swiper = swiperModule.default; 17864 const carouselContent = this.ref('self').get(); 17865 17866 if (carouselContent) { 17867 /** 17868 * @type {import('swiper').SwiperOptions} 17869 */ 17870 const options = this.getOptions(); 17871 this.initControls(options); 17872 this.swiper = new Swiper(carouselContent, options); 17873 17874 this.cleanUpSwiper = () => { 17875 if (this.swiper) { 17876 this.swiper.destroy(true, true); 17877 this.swiper = undefined; 17878 this.cleanUpSwiper = undefined; 17879 } 17880 }; 17881 17882 this.afterActivate(); 17883 this.onDestroy(this.cleanUpSwiper); 17884 } 17885 }); 17886 } 17887 } 17888 17889 afterActivate() {} 17890 17891 initControls(options) { 17892 this.has('prevBtn', prevBtnEl => { 17893 const prevBtn = prevBtnEl.get(); 17894 17895 if (prevBtn && options.navigation) { 17896 options.navigation.prevEl = prevBtn; 17897 } 17898 }); 17899 this.has('nextBtn', nextBtnEl => { 17900 const nextBtn = nextBtnEl.get(); 17901 17902 if (nextBtn && options.navigation) { 17903 options.navigation.nextEl = nextBtn; 17904 } 17905 }); 17906 this.has('pagination', paginationEl => { 17907 const pagination = paginationEl.get(); 17908 17909 if (pagination) { 17910 options.pagination = { 17911 el: pagination 17912 }; 17913 } 17914 }); 17915 } 17916 17917 deactivate() { 17918 if (this.cleanUpSwiper) { 17919 this.cleanUpSwiper(); 17920 this.cleanUpSwiper = undefined; 17921 } 17922 } 17923 /** 17924 * 17925 * @param {any} sliders data for slide rendering 17926 */ 17927 17928 17929 updateSlides(sliders) { 17930 if (!Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["objectEquals"])(this.prevSlides, sliders)) { 17931 this.prevSlides = sliders; 17932 this.render(undefined, sliders, this.ref('carouselInner')).then(() => { 17933 if (this.swiper) { 17934 if (this.prefs().forceInitOnUpdate) { 17935 this.deactivate(); 17936 this.init(); 17937 } else {
17938 this.swiper.update(); 17939 } 17940 } 17941 }); 17942 } 17943 } 17944 17945 getOptions() { 17946 const prefs = this.prefs(); 17947 return { 17948 slideClass: prefs.slideClass, 17949 slideActiveClass: prefs.slideActiveClass, 17950 watchSlidesVisibility: prefs.watchSlidesVisibility, 17951 wrapperClass: prefs.wrapperClass, 17952 autoplay: prefs.autoplay, 17953 spaceBetween: prefs.spaceBetween, 17954 slidesPerView: prefs.slidesPerView, 17955 breakpoints: { 17956 1024: { 17957 loop: prefs.loop, 17958 slidesPerView: prefs.slidesPerViewTablet 17959 }, 17960 767: { 17961 loop: prefs.loop, 17962 slidesPerView: prefs.slidesPerViewMobile 17963 } 17964 }, 17965 loop: prefs.loop, 17966 navigation: { 17967 disabledClass: prefs.navDisabledClass, 17968 hiddenClass: prefs.navHiddenClass 17969 } 17970 }; 17971 } 17972 17973 init() { 17974 if (this.prefs().activeOnViewType === allViewPorts) { 17975 this.activate(); 17976 } else { 17977 this.activateIfViewPort(); 17978 this.eventBus().on('viewtype.change', 'activateIfViewPort'); 17979 } 17980 } 17981 17982 } 17983 17984 return CarouselSwiper; 17985}); 17986 17987/***/ }), 17988
17989/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ConfirmDialog.js": 17990/*!*******************************************************************************************************!*\ 17991 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ConfirmDialog.js ***! 17992 \*******************************************************************************************************/ 17993/*! exports provided: default */ 17994/***/ (function(module, __webpack_exports__, __webpack_require__) { 17995 17996"use strict"; 17997__webpack_require__.r(__webpack_exports__); 17998/** 17999 * @typedef {ReturnType <typeof import('widgets/global/Modal').default>} Modal 18000 */ 18001 18002/** 18003 * @description Base ConfirmDialog implementation 18004 * @param {Modal} Modal Base Modal widget for extending 18005 * @returns {typeof ConfirmDialog} Confirmation Dialog class 18006 */ 18007/* harmony default export */ __webpack_exports__["default"] = (function (Modal) { 18008 /** 18009 * @category widgets 18010 * @subcategory global 18011 * @class ConfirmDialog 18012 * @augments Modal 18013 * @classdesc Confirm dialog, which could be used to confirm an action in different contexts, like 18014 * - Remove coupon from the cart 18015 * - Remove product from the cart 18016 * Can have different markup, but serves 3 actions: `confirm`, `cancel` and `alternativeconfirm` 18017 * Emits 3 events: {@link ConfirmDialog#event:confirm}, {@link Modal#event:cancel} and {@link ConfirmDialog#event:alternativeconfirm} to notify parents about user triggered action. 18018 * @property {string} data-widget - Widget name `confirmDialog` 18019 * @property {string} data-widget-event-confirm - method to be triggered on parent's widget, once customer confirms dialog 18020 * @property {string} data-widget-event-alternativeConfirm - method to be triggered on parent's widget, once customer confirms dialog 18021 * @property {string} data-widget-event-cancel - method to be triggered on parent's widget, once customer cancels dialog 18022 * @example <caption>Example of Modal widget</caption> 18023 * <div hidden="hidden" data-id="confirmDialog" 18024 * data-widget="confirmDialog" 18025 * data-widget-event-confirm="confirmedRemoveProduct" 18026 * data-widget-event-alternativeconfirm="moveProductToWishlist" 18027 * data-widget-event-cancel="cancelledRemoveProduct" 18028 * > 18029 * ... delete product confirm dialog contents 18030 * <button type="button" data-event-click.prevent="confirm" data-dismiss="modal"> 18031 * ${Resource.msg('button.confirm','cart',null)} 18032 * </button> 18033 * <button type="button" data-event-click.prevent="alternativeconfirm" data-dismiss="modal"> 18034 * ${Resource.msg('button.movetowishlist','cart',null)} 18035 * </button> 18036 * <button type="button" data-event-click.prevent="cancel" data-dismiss="modal"> 18037 * ${Resource.msg('button.cancel','cart',null)} 18038 * </button> 18039 * </div> 18040 */ 18041 class ConfirmDialog extends Modal { 18042 /** 18043 * @description Confirm Handler 18044 * @emits ConfirmDialog#confirm 18045 * @returns {void} 18046 */ 18047 confirm() { 18048 this.closeModal(); 18049 /** 18050 * @description Event dispatched, when modal `confirm` button was pressed 18051 * @event ConfirmDialog#confirm 18052 */ 18053 18054 this.emit('confirm'); 18055 } 18056 /** 18057 * @description alternativeConfirm Handler 18058 * @emits ConfirmDialog#alternativeconfirm 18059 * @returns {void} 18060 */ 18061 18062 18063 alternativeConfirm() { 18064 this.closeModal(); 18065 /** 18066 * @description Event dispatched, when modal alternative button (not `cancel` and not `confirm`) was pressed 18067 * @event ConfirmDialog#alternativeconfirm 18068 */ 18069 18070 this.emit('alternativeconfirm'); 18071 } 18072 18073 } 18074 18075 return ConfirmDialog; 18076}); 18077 18078/***/ }), 18079
18080/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ConsentTracking.js": 18081/*!*********************************************************************************************************!*\ 18082 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ConsentTracking.js ***! 18083 \*********************************************************************************************************/ 18084/*! exports provided: default */ 18085/***/ (function(module, __webpack_exports__, __webpack_require__) { 18086 18087"use strict"; 18088__webpack_require__.r(__webpack_exports__); 18089/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 18090/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 18091/* harmony import */ var _toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 18092/* harmony import */ var _toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../toolbox/cookie */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js"); 18093 18094 18095 18096/** 18097 * @typedef {typeof import('widgets/Widget').default} Widget 18098 */ 18099 18100/** 18101 * @param {Widget} Widget Base widget for extending 18102 * @returns {typeof ConsentTracking} ConsentTracking widget 18103 */ 18104 18105/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 18106 /** 18107 * @category widgets 18108 * @subcategory global 18109 * @class ConsentTracking 18110 * @augments Widget 18111 * @classdesc ConsentTracking Widget - used to expose Consent dialog, where customer can either accept 18112 * <br>or reject Consent matter. Relevant methods will be triggered pressing related buttons 18113 * @property {string} data-widget - Widget name `consentTracking` 18114 * @property {string} data-content-url - Dynamically loaded Consent's content 18115 * @property {string} data-reject-url - Customer chooses `reject` - request will be sent to Reject URL 18116 * @property {string} data-accept-url - Customer chooses `accept` - request will be sent to Accept URL 18117 * @example <caption>Example of ConsentTracking widget usage</caption> 18118 * <div 18119 * data-widget="consentTracking" 18120 * data-content-url="${URLUtils.url('ConsentTracking-GetContent', 'cid', 'tracking_hint')}" 18121 * data-reject-url="${URLUtils.url('ConsentTracking-SetSession', 'consent', 'false')}" 18122 * data-accept-url="${URLUtils.url('ConsentTracking-SetSession', 'consent', 'true')}" 18123 * data-tracking-selected="${pdict.tracking_consent != null}" 18124 * data-consent-api="${pdict.caOnline}" 18125 * > 18126 * <section data-ref="container"></section> 18127 * <script type="template/mustache" data-ref="template"> 18128 * <div class="b-notification_panel-inner"> 18129 * <div class="b-notification_panel-content">{{{assetContent}}}</div> 18130 * <button data-event-click="accept">${Resource.msg('tracking.accept', 'footer', '')}</button> 18131 * <button data-event-click="reject">${Resource.msg('tracking.decline', 'footer', '')}</button> 18132 * </div> 18133 * </script> 18134 * </div> 18135 */ 18136 class ConsentTracking extends Widget { 18137 prefs() { 18138 return { 18139 contentUrl: '', 18140 acceptUrl: '', 18141 rejectUrl: '', 18142 classesEnabled: 'm-visible', 18143 ...super.prefs() 18144 }; 18145 } 18146 /** 18147 * @description Initialize widget logic 18148 * @returns {void} 18149 */ 18150 18151 18152 init() { 18153 this.loadContent(); 18154 } 18155 /** 18156 * @description Load content 18157 * @returns {void} 18158 */ 18159 18160 18161 loadContent() { 18162 Object(_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["getContentByUrl"])(this.prefs().contentUrl).then(content => { 18163 this.render('template', { 18164 assetContent: content 18165 }, this.ref('container')).then(() => this.togglePanel(true)); 18166 }); 18167 } 18168 /**
18169 * @description Toggle Panel 18170 * @param {boolean} isVisible - `true` if Consent's dialog should be shown, `false` - otherwise 18171 * @returns {void} 18172 */ 18173 18174 18175 togglePanel(isVisible) { 18176 this.ref('container').toggleClass(this.prefs().classesEnabled, isVisible); 18177 } 18178 /** 18179 * @description Accept Consent handler 18180 * @listens dom#click 18181 * @returns {void} 18182 */ 18183 18184 18185 accept() { 18186 Object(_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(this.prefs().acceptUrl, undefined, 'GET').finally(() => { 18187 this.togglePanel(false); 18188 Object(_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__["setCookie"])('dw_accept_cookie', '1', 365, true); 18189 Object(_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__["setCookie"])('dw_consent_cookie', '1', 365, true); 18190 }); 18191 } 18192 /** 18193 * @description Reject Consent handler 18194 * @listens dom#click 18195 * @returns {void} 18196 */ 18197 18198 18199 reject() { 18200 Object(_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(this.prefs().rejectUrl, undefined, 'GET').finally(() => { 18201 this.togglePanel(false); 18202 Object(_toolbox_cookie__WEBPACK_IMPORTED_MODULE_2__["setCookie"])('dw_accept_cookie', '1', 365, true); 18203 }); 18204 } 18205 18206 } 18207 18208 return ConsentTracking; 18209}); 18210 18211/***/ }), 18212
18213/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Disclosure.js": 18214/*!****************************************************************************************************!*\ 18215 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Disclosure.js ***! 18216 \****************************************************************************************************/ 18217/*! exports provided: default */ 18218/***/ (function(module, __webpack_exports__, __webpack_require__) { 18219 18220"use strict"; 18221__webpack_require__.r(__webpack_exports__); 18222/** 18223 * @typedef {typeof import('widgets/Widget').default} Widget 18224 */ 18225 18226/** 18227 * @description Base Disclosure implementation 18228 * @param {Widget} Widget Base widget for extending 18229 * @returns {typeof Disclosure} BackToTop class 18230 */ 18231/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 18232 /** 18233 * @category widgets 18234 * @subcategory global 18235 * @class Disclosure 18236 * @augments Widget 18237 * @classdesc Accessibility [Disclosure component](https://www.w3.org/TR/wai-aria-practices/#disclosure). 18238 * @property {string} data-widget - Widget name `disclosure` 18239 * @property {string} data-show-on-init - If we need to show disclosure content on init 18240 * @property {string} data-show-on-refresh - If we need to show disclosure on refresh (for ex. after re-render parent widget) 18241 * @example <caption>Typical Disclosure widget markup</caption> 18242 * <div 18243 * data-widget="disclosure" 18244 * data-show-on-init="true" 18245 * data-show-on-refresh="true" 18246 * > 18247 * <button 18248 * type="button" 18249 * data-event-click="toggleContent" 18250 * aria-expanded="false" 18251 * aria-controls="coupon-form" 18252 * data-ref="disclosureButton" 18253 * >Open me</button> 18254 * <div 18255 * data-ref="disclosureContent" 18256 * id="coupon-form" 18257 * hidden="hidden" 18258 * class="m-hide" 18259 * > 18260 * .... content 18261 * </div> 18262 * </div> 18263 */ 18264 class Disclosure extends Widget { 18265 prefs() { 18266 return { 18267 disclosureButton: 'disclosureButton', 18268 disclosureContent: 'disclosureContent', 18269 showOnInit: false, 18270 showOnRefresh: false, 18271 ...super.prefs() 18272 }; 18273 } 18274 18275 init() { 18276 super.init(); 18277 this.hideContent(); 18278 18279 if (this.prefs().showOnInit) { 18280 this.showContent(); 18281 } 18282 } 18283 /** 18284 * @description Toggles disclosure content 18285 * @listens dom#click 18286 * @returns {void} 18287 */ 18288 18289 18290 toggleContent() { 18291 this[this.shown ? 'hideContent' : 'showContent'](); 18292 } 18293 /** 18294 * @description Happens on widget refresh and is needed to handle updated state 18295 * @returns {void} 18296 */ 18297 18298 18299 onRefresh() { 18300 this[this.prefs().showOnRefresh ? 'showContent' : 'hideContent'](); 18301 } 18302 /** 18303 * @description Show disclosure content and update related attributes 18304 * @returns {void} 18305 */ 18306 18307 18308 showContent() { 18309 this.ref('disclosureContent').show().attr('aria-hidden', 'false'); 18310 this.ref('disclosureButton').attr('aria-expanded', 'true'); 18311 this.shown = true; 18312 } 18313 /** 18314 * @description Hide disclosure content and update related attributes 18315 * @returns {void} 18316 */ 18317 18318 18319 hideContent() { 18320 this.ref('disclosureContent').hide().attr('aria-hidden', 'true'); 18321 this.ref('disclosureButton').attr('aria-expanded', 'false'); 18322 this.shown = false; 18323 } 18324 18325 } 18326 18327 return Disclosure; 18328}); 18329 18330/***/ }), 18331
18332/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/DismissBlock.js": 18333/*!******************************************************************************************************!*\ 18334 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/DismissBlock.js ***! 18335 \******************************************************************************************************/ 18336/*! exports provided: default */ 18337/***/ (function(module, __webpack_exports__, __webpack_require__) { 18338 18339"use strict"; 18340__webpack_require__.r(__webpack_exports__); 18341/** 18342 * @typedef {typeof import('widgets/Widget').default} Widget 18343 */ 18344 18345/** 18346 * @param {Widget} Widget Base widget for extending 18347 * @returns {typeof DismissBlock} DismissBlock widget 18348 */ 18349/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 18350 /** 18351 * @category widgets 18352 * @subcategory global 18353 * @class DismissBlock 18354 * @augments Widget 18355 * @classdesc DismissBlock widget used for display notification about using a cookie. 18356 * Allow dismissing the notification by handle customer's click on the Accept button 18357 * @property {string} data-widget - Widget name `dismissBlock` 18358 * @property {string} data-key - Key for window.sessionStorage to store header banner display status. 18359 * If value exists - header will not be shown. 18360 * @example <caption>Example of DismissBlock widget usage</caption> 18361 * <div 18362 * data-widget="dismissBlock" 18363 * data-key="hide_header_banner" 18364 * > 18365 * ... widget markup 18366 * <button data-event-click.once.prevent="dismiss">close</button> 18367 * </div> 18368 */ 18369 class DismissBlock extends Widget { 18370 prefs() { 18371 return { 18372 classesEnabled: 'm-visible', 18373 key: 'hide_cookies_notification', 18374 ...super.prefs() 18375 }; 18376 } 18377 /** 18378 * @description Initialize widget logic 18379 * @returns {void} 18380 */ 18381 18382 18383 init() { 18384 super.init(); 18385 const dismissBlockStatus = window.sessionStorage.getItem(this.prefs().key); 18386 18387 if (!dismissBlockStatus || dismissBlockStatus === '0') { 18388 this.ref('self').addClass(this.prefs().classesEnabled); 18389 } 18390 } 18391 /** 18392 * @description Dismiss cookie notification 18393 * @listens dom#click 18394 * @returns {void} 18395 */ 18396 18397 18398 dismiss() { 18399 this.ref('self').removeClass(this.prefs().classesEnabled); 18400 window.sessionStorage.setItem(this.prefs().key, '1'); 18401 } 18402 18403 } 18404 18405 return DismissBlock; 18406}); 18407 18408/***/ }), 18409
18410/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/DropDown.js": 18411/*!**************************************************************************************************!*\ 18412 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/DropDown.js ***! 18413 \**************************************************************************************************/ 18414/*! exports provided: default */ 18415/***/ (function(module, __webpack_exports__, __webpack_require__) { 18416 18417"use strict"; 18418__webpack_require__.r(__webpack_exports__); 18419/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 18420 18421const ariaExpanded = 'aria-expanded'; 18422/** 18423 * @typedef {typeof import('widgets/Widget').default} Widget 18424 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 18425 */ 18426 18427/** 18428 * @param {Widget} Widget Base widget for extending 18429 * @returns {typeof DropDown} DropDown widget 18430 */ 18431 18432/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 18433 /** 18434 * @category widgets 18435 * @subcategory global 18436 * @class DropDown 18437 * @augments Widget 18438 * @classdesc Widget to serve different drop down blocks 18439 * DropDown should be imlemented according to https://www.w3.org/TR/wai-aria-practices/#menu specs 18440 * Represents DropDown component with next features: 18441 * 1. Allow open/close or toggle DropDown 18442 * 2. Allow get all DropDown's options or select option 18443 * @property {string} data-widget - Widget name `dropDown` 18444 * @property {string} data-event-mouseenter - Event listener for opening dropdown 18445 * @property {string} data-event-mouseleave - Event listener for closing dropdown 18446 * @property {string} data-event-focus - Event listener for opening dropdown 18447 * @example <caption>Example of DropDown widget usage</caption> 18448 * <div 18449 * data-widget="dropDown" 18450 * data-event-mouseenter="openByMouseOver" 18451 * data-event-mouseleave="close" 18452 * data-event-focus="openByMouseOver" 18453 * class="header-account" tabindex="0" 18454 * aria-label="${Resource.msg('myaccount.link.title', 'accessibility', null)}" 18455 * > 18456 * <button data-ref="dropDownButton" class="o-link--block header-account__user u-p2" 18457 * data-event-click.prevent="toggleDropDown" 18458 * aria-haspopup="true" aria-expanded="false" tabindex="-1" 18459 * >${pdict.monogram}</button> 18460 * 18461 * <div data-ref="dropDownBox" class="header-account-dropdown is-hidden" aria-hidden="true"> 18462 * <div class="header-account__title"> 18463 * <span>${Resource.msgf('label.header.salutation','account', null, pdict.name)}</span> 18464 * </div> 18465 * <iscontentasset aid="account-component-dropdown" /> 18466 * </div> 18467 * </div> 18468 */ 18469 class DropDown extends Widget { 18470 prefs() { 18471 return { 18472 classesOpen: 'is--open', 18473 classesOptionSelected: 'selected', 18474 closeOnOutsideClick: true, 18475 outsideClickPreventDefault: true, 18476 ...super.prefs() 18477 }; 18478 } 18479 /** 18480 * @description Initialize widget logic 18481 * @returns {void} 18482 */ 18483 18484 18485 init() { 18486 super.init(); 18487 this.isOpened = false; // For ignore duplicate method calls 18488 18489 this.toIgnoreDuplicateEvent = false; 18490 this.ref('dropDownBox').hide(); 18491 this.ref('dropDownButton').attr(ariaExpanded, 'false'); 18492 } 18493 /** 18494 * @description Change DropDown state on widget rerender 18495 * @returns {void} 18496 */ 18497 18498 18499 onRefresh() { 18500 super.onRefresh(); 18501 this.isOpened = false; 18502 } 18503 /** 18504 * @description Open DropDown 18505 * @emits DropDown#open 18506 * @listens dom#click 18507 * @returns {boolean} Boolean value that indicates DropDown opened 18508 */ 18509 18510 18511 open() { 18512 if (this.isOpen()) { 18513 return false; 18514 } 18515 18516 this.ref('self').addClass(this.prefs().classesOpen); 18517 this.ref('dropDownBox').show(); 18518 this.ref('dropDownButton').attr(ariaExpanded, 'true'); 18519 this.isOpened = true; 18520 18521 if (this.prefs().closeOnOutsideClick) { 18522 if (this.outSideListener) { 18523 this.outSideListener(); 18524 } else { 18525 this.outSideListener = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["clickOutside"])(this.ref('self'), () => { 18526 this.close(); 18527 }, this.prefs().outsideClickPreventDefault); 18528 18529 if (this.outSideListener) { 18530 this.onDestroy(this.outSideListener); 18531 } 18532 } 18533 } 18534 /**
18535 * @description Event to open DropDown 18536 * @event DropDown#open 18537 */ 18538 18539 18540 this.emit('open'); 18541 return true; 18542 } 18543 /** 18544 * @description Close DropDown 18545 * @emits DropDown#close 18546 * @listens dom#click 18547 * @returns {boolean} Boolean value that indicates DropDown closed 18548 */ 18549 18550 18551 close() { 18552 if (this.outSideListener) { 18553 this.outSideListener(); 18554 this.outSideListener = null; 18555 } 18556 18557 if (!this.isOpen()) { 18558 return false; 18559 } 18560 18561 this.ref('self').removeClass(this.prefs().classesOpen); 18562 this.ref('dropDownBox').hide(); 18563 this.ref('dropDownButton').attr(ariaExpanded, 'false'); 18564 this.isOpened = false; 18565 /** 18566 * @description Event to close DropDown 18567 * @event DropDown#close 18568 */ 18569 18570 this.emit('close'); 18571 return true; 18572 } 18573 /** 18574 * @description Toggle DropDown 18575 * @returns {boolean} value that indicates is DropDown toggled 18576 */ 18577 18578 18579 toggleDropDown() { 18580 if (this.toIgnoreDuplicateEvent) { 18581 this.toIgnoreDuplicateEvent = false; 18582 return false; 18583 } 18584 18585 if (this.isOpen()) { 18586 this.close(); 18587 } else { 18588 this.open(); 18589 } 18590 18591 return true; 18592 } 18593 /** 18594 * @description Check DropDown is opened 18595 * @returns {boolean|undefined} Boolean value that indicates DropDown opened 18596 */ 18597 18598 18599 isOpen() { 18600 return this.isOpened; 18601 } 18602 /** 18603 * @description Open DropDown by mouseover event 18604 * @listens dom#mouseover 18605 * @returns {void} 18606 */ 18607 18608 18609 openByMouseOver() { 18610 this.toIgnoreDuplicateEvent = true; 18611 this.open(); 18612 } 18613 /** 18614 * @description Get DropDown options 18615 * @returns {Array} DropDown options 18616 */ 18617 18618 18619 getOptions() { 18620 const options = []; // @ts-ignore 18621 18622 Object.keys(this.refs).forEach(k => { 18623 if (k.indexOf('option-') !== -1) { 18624 // @ts-ignore 18625 options.push(this.refs[k]); 18626 } 18627 }); 18628 return options; 18629 } 18630 /** 18631 * @description Select option from DropDown options 18632 * @param {any} optionInitial initial option 18633 * @returns {boolean} Boolean value that indicates is DropDown's option was selected or not 18634 */ 18635 18636 18637 selectOption(optionInitial) { 18638 let option = optionInitial; 18639 18640 if (typeof option === 'number') { 18641 if (!this.ref('option-' + option)) { 18642 return false; 18643 } 18644 18645 option = this.ref('option-' + option); 18646 } 18647 18648 this.getOptions().forEach(o => { 18649 o.attr('data-selected', 'false').removeClass(this.prefs().classesOptionSelected); 18650 }); 18651 option.attr('data-selected', 'true').addClass(this.prefs().classesOptionSelected); 18652 this.ref('dropDownButton').setText(option.attr('data-name')); 18653 this.close(); 18654 return true; 18655 } 18656 /** 18657 * @description Handles click 18658 * @emits DropDown#click 18659 * @returns {void} 18660 */ 18661 18662 18663 handleClick() { 18664 /** 18665 * @description Event to DropDown click 18666 * @event DropDown#click 18667 */ 18668 this.emit('click'); 18669 } 18670 18671 } 18672 18673 return DropDown; 18674}); 18675 18676/***/ }), 18677
18678/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/EmitBusEvent.js": 18679/*!******************************************************************************************************!*\ 18680 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/EmitBusEvent.js ***! 18681 \******************************************************************************************************/ 18682/*! exports provided: default */ 18683/***/ (function(module, __webpack_exports__, __webpack_require__) { 18684 18685"use strict"; 18686__webpack_require__.r(__webpack_exports__); 18687/** 18688 * @typedef {typeof import('widgets/Widget').default} Widget 18689 */ 18690 18691/** 18692 * @param {Widget} Widget Base widget for extending 18693 * @returns {typeof EmitBusEvent} EmitBusEvent widget 18694 */ 18695/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 18696 /** 18697 * @category widgets 18698 * @subcategory global 18699 * @class EmitBusEvent 18700 * @augments Widget 18701 * @classdesc Could be used to trigger any global event using interaction element 18702 * <br>Could be useful to emit global events like `page.show.globalmodal` to notify 18703 * <br>concerned widgets, so they could change page layout class etc. 18704 * <br>Event emission could happens mostly on UI elements like links, buttons etc. 18705 * @property {string} data-widget - Widget name `emitBusEvent` 18706 * @property {string} data-bus-event-type - Global event type, which should be triggered 18707 * @property {string} data-event-click - Event listener to trigger `emitBusEvent` method 18708 * @property {string} data-url - any kind of additional properties 18709 * @example <caption>Example of EmitBusEvent widget usage</caption> 18710 * <a 18711 * data-widget="emitBusEvent" 18712 * data-bus-event-type="page.show.globalmodal" 18713 * data-event-click.prevent="emitBusEvent" 18714 * data-url="${URLUtils.url('Login-ShowPasswordResetModal', 'loginmodal', 1, 'rurl', pdict.rurl)}" 18715 * > 18716 * ${Resource.msg('link.login.forgotpassword', 'login', null)} 18717 * </a> 18718 */ 18719 class EmitBusEvent extends Widget { 18720 prefs() { 18721 return { 18722 busEventType: '', 18723 ...super.prefs() 18724 }; 18725 } 18726 /** 18727 * @description Emit event 18728 * @returns {void} 18729 */ 18730 18731 18732 emitBusEvent() { 18733 if (this.prefs().busEventType) { 18734 this.eventBus().emit(this.prefs().busEventType, this); 18735 } 18736 } 18737 18738 } 18739 18740 return EmitBusEvent; 18741}); 18742 18743/***/ }), 18744
18745/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/FocusHighlighter.js": 18746/*!**********************************************************************************************************!*\ 18747 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/FocusHighlighter.js ***! 18748 \**********************************************************************************************************/ 18749/*! exports provided: default */ 18750/***/ (function(module, __webpack_exports__, __webpack_require__) { 18751 18752"use strict"; 18753__webpack_require__.r(__webpack_exports__); 18754/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 18755/* harmony import */ var widgets_toolbox_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/debounce */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js"); 18756 18757 18758const KEY_TAB = 9; 18759/** 18760 * @typedef {typeof import('widgets/Widget').default} Widget 18761 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 18762 */ 18763 18764/** 18765 * @description Focus highlighter 18766 * @param {Widget} Widget Base widget for extending 18767 * @returns {typeof FocusHighlighter} Focus Highlighter class 18768 */ 18769 18770/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 18771 /** 18772 * @category widgets 18773 * @subcategory global 18774 * @class FocusHighlighter 18775 * @augments Widget 18776 * @classdesc This class intended to address Accessibility issue with focus highlighting on links element. 18777 * Usually used on `<body>` tag to observe focus move events 18778 * 18779 * In case if page was focused, next subsequent `TAB` press will leads to next available link/input element focus highlighting 18780 * Shows bordered rectangle, which fits currently focused element and moves rectangle to element's position. 18781 * @property {string} data-widget - Widget name `focusHighlighter` 18782 * @property {string} data-event-keyup - Event handler for `handleKeyup` method 18783 * @property {string} data-event-click - Event handler for `handleClick` method 18784 * @property {string} data-classes-inited - Inited classes, added to element after initialisation 18785 * @property {string} data-classes-hurry - Classes, which don't contains animation and used to move `highlighter` (bordered rectangle) between focused elements without animation. 18786 * @example <caption>FocusHighlighter widget</caption> 18787 * <body 18788 * class="b-page" 18789 * data-widget="focusHighlighter" 18790 * data-event-keyup="handleKeyup" 18791 * data-event-click="handleClick" 18792 * > 18793 * ... page content here 18794 * </body> 18795 */ 18796 class FocusHighlighter extends Widget { 18797 prefs() { 18798 return { 18799 classesInited: 'b-highlighter_inited', 18800 classesEnabled: 'm-visible', 18801 classesHurry: 'm-hurry', 18802 DELAY_TIMEOUT: 200, 18803 // Delay for animation 18804 ...super.prefs() 18805 }; 18806 } 18807 /** 18808 * @description Widget initialisation logic 18809 * @returns {void} 18810 */ 18811 18812 18813 init() { 18814 this.keyboardModality = false; 18815 this.isHighlighterVisible = false; 18816 this.lastFocusedElement = null; 18817 this.lastFocusedElementCoords = ''; 18818 this.highlighter = null; 18819 this.ref('self').addClass(this.prefs().classesInited); 18820 this.ev('resize', Object(widgets_toolbox_debounce__WEBPACK_IMPORTED_MODULE_1__["debounce"])(this.handleResize.bind(this), 200), window); 18821 this.eventBus().on('rendering.applied', 'handleResize'); 18822 } 18823 /** 18824 * @param {refElement} ref - key up event referenced element 18825 * @param {KeyboardEvent} event - key up event 18826 * @listens dom#keyup 18827 * @returns {void} 18828 */ 18829 18830 18831 handleKeyup(ref, event) { 18832 if (event.keyCode === KEY_TAB) { 18833 this.enableHighlighter(); 18834 } 18835 } 18836 /** 18837 * @param {refElement} ref - click event referenced element 18838 * @param {MouseEvent} event - click event 18839 * @listens dom#click 18840 * @returns {void} 18841 */ 18842 18843 18844 handleClick(ref, event) {
18845 // Space keyup on button DomNode generates synthetic click 18846 // so we need to ensure that it is not the one 18847 if (this.isHighlighterVisible && !(event.x === 0 && event.y === 0)) { 18848 this.disableHighlighter(); 18849 } 18850 } 18851 /** 18852 * @description Window resize event handler 18853 * @listens dom#resize 18854 * @returns {void} 18855 */ 18856 18857 18858 handleResize() { 18859 if (this.isHighlighterVisible) { 18860 this.moveTo(this.lastFocusedElement); 18861 } 18862 } 18863 /** 18864 * @description Handles focus change on page 18865 * @listens dom#focusin 18866 * @returns {void} 18867 */ 18868 18869 18870 handleFocus() { 18871 if (!(document.activeElement instanceof HTMLElement)) { 18872 return; 18873 } 18874 18875 const focusedElement = document.activeElement; 18876 18877 if (!this.isValidTarget(focusedElement) || this.isTextInput(focusedElement) && !this.keyboardModality) { 18878 return; 18879 } 18880 18881 this.detectHurryNavigation(); 18882 this.moveTo(focusedElement); // We need to recheck focused element position since coords could 18883 // be changed during scroll in carousels, animation, dynamic page changes 18884 18885 if (this.rechekTimeout) { 18886 this.rechekTimeout(); 18887 } 18888 18889 if (this.rechekSecondTimeout) { 18890 this.rechekSecondTimeout(); 18891 } 18892 18893 this.rechekTimeout = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => this.moveTo(focusedElement), 400); 18894 this.rechekSecondTimeout = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => this.moveTo(focusedElement), 800); 18895 } 18896 /** 18897 * @description Enables a `highlighter` - a bordered box with sizes of currently focused element. 18898 * @returns {void} 18899 */ 18900 18901 18902 enableHighlighter() { 18903 if (this.keyboardModality) { 18904 return; 18905 } 18906 18907 this.keyboardModality = true; 18908 this.ref('highlighter').addClass(this.prefs().classesEnabled); 18909 this.isHighlighterVisible = true; 18910 this.onDestroy(() => this.ref('highlighter').removeClass(this.prefs().classesEnabled)); 18911 this.handleFocus(); 18912 this.focusinHandlers = this.ev('focusin', this.handleFocus, document); // all other events are handled by focusin event 18913 } 18914 /** 18915 * @description Disables a `highlighter` - a bordered box with sizes of currently focused element. 18916 * @returns {void} 18917 */ 18918 18919 18920 disableHighlighter() { 18921 if (!this.keyboardModality) { 18922 return; 18923 } 18924 18925 this.keyboardModality = false; 18926 this.ref('highlighter').removeClass(this.prefs().classesEnabled); 18927 this.isHighlighterVisible = false; 18928 this.hideTimeOut = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(this.hide.bind(this), this.prefs().DELAY_TIMEOUT); 18929 18930 if (this.focusinHandlers) { 18931 this.focusinHandlers.forEach(fn => fn()); 18932 } 18933 18934 this.lastFocusedElement = null; 18935 } 18936 /** 18937 * @description Moves `highlighter` (a bordere box) in place of focused element 18938 * @param {HTMLElement} focusedElement - element, which gets focus 18939 */ 18940 18941 18942 moveTo(focusedElement) { 18943 if (!(focusedElement instanceof HTMLElement)) { 18944 return; 18945 } 18946 18947 const highlighterNode = this.ref('highlighter').get(); 18948 18949 if (!highlighterNode) { 18950 return; 18951 } 18952 18953 const targetRect = focusedElement.getBoundingClientRect(); 18954 const targetTop = targetRect.top + window.scrollY; 18955 const targetLeft = targetRect.left + window.scrollX; 18956 const targetWidth = focusedElement.offsetWidth; 18957 const targetHeight = focusedElement.offsetHeight; 18958 18959 if (focusedElement === this.lastFocusedElement && this.lastFocusedElementCoords === '' + targetTop + targetLeft + targetWidth + targetHeight) { 18960 // If we come from coords recheck do not reapply changes 18961 return; 18962 } 18963 18964 const highlighterStyle = highlighterNode.style; 18965 highlighterStyle.top = `${targetTop - 5}px`; 18966 highlighterStyle.left = `${targetLeft - 5}px`; 18967 highlighterStyle.width = `${targetWidth + 2}px`; 18968 highlighterStyle.height = `${targetHeight + 2}px`; 18969 this.lastFocusedElementCoords = '' + targetTop + targetLeft + targetWidth + targetHeight; 18970 this.lastFocusedElement = focusedElement; 18971 } 18972 /**
18973 * @description Hide `highlighter` 18974 * @returns {this} result 18975 */ 18976 18977 18978 hide() { 18979 const highlighterNode = this.ref('highlighter').get(); 18980 18981 if (!highlighterNode) { 18982 return this; 18983 } 18984 18985 const highlighterStyle = highlighterNode.style; 18986 highlighterStyle.width = '0'; 18987 highlighterStyle.height = '0'; 18988 18989 if (this.hideTimeOut) { 18990 this.hideTimeOut(); 18991 } 18992 18993 return this; 18994 } 18995 /** 18996 * @description Detects too fast customer navigation, and displays `highlighter`, 18997 * moving from previously focused element to currently focused without animation. 18998 * @returns {void} 18999 */ 19000 19001 19002 detectHurryNavigation() { 19003 const currentTime = Date.now(); 19004 const isHurryNavigation = currentTime - (this.lastKeyTime || 0) < 190; 19005 this.ref('highlighter').toggleClass(this.prefs().classesHurry, isHurryNavigation); 19006 this.isHurryNavigation = isHurryNavigation; 19007 this.lastKeyTime = currentTime; 19008 } 19009 /** 19010 * @param {HTMLElement} domNode - focused element 19011 * @returns {boolean} is HTML element valid target for focus 19012 */ 19013 19014 19015 isValidTarget(domNode) { 19016 return domNode !== this.lastFocusedElement && domNode.nodeName !== 'HTML' && domNode.nodeName !== 'BODY'; 19017 } 19018 /** 19019 * @param {HTMLTextAreaElement|HTMLInputElement|HTMLElement} domNode - focused element 19020 * @returns {boolean} is HTML element text input 19021 */ 19022 19023 19024 isTextInput(domNode) { 19025 // @ts-ignore 19026 return domNode.tagName === 'TEXTAREA' && !domNode.readOnly || // @ts-ignore 19027 domNode.tagName === 'INPUT' && !domNode.readOnly || !!domNode.getAttribute('contenteditable'); 19028 } 19029 19030 } 19031 19032 return FocusHighlighter; 19033}); 19034 19035/***/ }), 19036
19037/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/GlobalAlerts.js": 19038/*!******************************************************************************************************!*\ 19039 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/GlobalAlerts.js ***! 19040 \******************************************************************************************************/ 19041/*! exports provided: default */ 19042/***/ (function(module, __webpack_exports__, __webpack_require__) { 19043 19044"use strict"; 19045__webpack_require__.r(__webpack_exports__); 19046/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 19047 19048/** 19049 * @typedef {typeof import('widgets/Widget').default} Widget 19050 */ 19051 19052/** 19053 * @description Base GlobalAlerts implementation. 19054 * @param {Widget} Widget Base widget for extending 19055 * @returns {typeof GlobalAlerts} GlobalAlerts class 19056 */ 19057 19058/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 19059 /** 19060 * @class GlobalAlerts 19061 * @augments Widget 19062 * @classdesc Global Alerts with accessibility alert role possibility. 19063 * Acts as a popup with delayed disappearing. Popup will render user action description. 19064 * @property {boolean} data-widget - Widget name `globalAlerts` 19065 * @property {number} data-timeout - Value of hide timeout in milliseconds 19066 * @property {object} data-global-alerts - Global alerts localisation messages 19067 * Possible values are: `error500` 19068 * @example 19069 * // use this code to display GlobalAlerts widget 19070 * <div 19071 * data-widget="globalAlerts" 19072 * data-timeout="4000" 19073 * data-global-alerts='{ 19074 * "error500": "${Resource.msg('alert.error500', 'global', null)}"" 19075 * }' 19076 * 19077 * > 19078 * <div data-ref="item" hidden="hidden" role="alert"> 19079 * ... alert message will be shown here 19080 * </div> 19081 * </div> 19082 */ 19083 class GlobalAlerts extends Widget { 19084 prefs() { 19085 return { 19086 timeout: 4000, 19087 globalAlerts: {}, 19088 ...super.prefs() 19089 }; 19090 } 19091 /** 19092 * @description Widget intialisation, onDestroy hook to clear pausable timeout. 19093 * Listening `show.alert` event to display a relevant Global Alert 19094 * @listens "alert.show" 19095 * @listens "alert.error" 19096 * @returns {void} 19097 */ 19098 19099 19100 init() { 19101 super.init(); 19102 this.onDestroy(() => this.disposePausableTimeout()); 19103 /** 19104 * @description Event for Global Alert, contains data to be shown inside Global Alert popover 19105 * @event "alert.show" 19106 */ 19107 19108 this.eventBus().on('alert.show', 'showAlert'); 19109 /** 19110 * @description Event for Global Alert, contains data to be shown inside Global Alert popover as an error message 19111 * @event "alert.error" 19112 */ 19113 19114 this.eventBus().on('alert.error', 'showError'); 19115 } 19116 /** 19117 * @description Shows global errors like 500 response 19118 * @param {{errorCode: number}} data - Error data 19119 * @returns {void} 19120 */ 19121 19122 19123 showError(data) { 19124 if (data.errorCode) { 19125 const accessibilityAlert = this.prefs().globalAlerts[`error${data.errorCode}`]; 19126 this.showAlert({ 19127 accessibilityAlert 19128 }); 19129 } 19130 } 19131 /** 19132 * @description Dispose pausable timeout and clear it resources 19133 * @returns {void} 19134 */ 19135 19136 19137 disposePausableTimeout() { 19138 if (this.pausableTimeout) { 19139 this.pausableTimeout.destroy(); 19140 this.pausableTimeout = undefined; 19141 } 19142 } 19143 /** 19144 * @description Show Global Alert by starting pausable timeout 19145 * @param {{accessibilityAlert: string}} data - Message to be shown and pronounced 19146 * @returns {void} 19147 */ 19148 19149 19150 showAlert(data) { 19151 if (data && data.accessibilityAlert) { 19152 if (this.shown) { 19153 this.hideAlert(); 19154 } 19155 19156 this.ref('item').setText(data.accessibilityAlert).show(); 19157 this.shown = true; 19158 this.pausableTimeout = new widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["PausableTimeout"](() => { 19159 this.hideAlert(); 19160 }, this.prefs().timeout); 19161 } 19162 } 19163 /**
19164 * @description Hide Global Alert and clear timeout 19165 * @returns {void} 19166 */ 19167 19168 19169 hideAlert() { 19170 this.ref('item').setText('').hide(); 19171 this.shown = false; 19172 this.disposePausableTimeout(); 19173 } 19174 /** 19175 * @description Pauses Global Alert displaying. 19176 * Pauses hide alert with pausable timeout. 19177 * @returns {void} 19178 */ 19179 19180 19181 pauseAlert() { 19182 if (this.pausableTimeout) { 19183 this.pausableTimeout.pause(); 19184 } 19185 } 19186 /** 19187 * @description Resumes Global Alert displaying. 19188 * Resumes hide alert with pausable timeout. 19189 * @returns {void} 19190 */ 19191 19192 19193 resumeAlert() { 19194 if (this.pausableTimeout) { 19195 this.pausableTimeout.resume(); 19196 } 19197 } 19198 19199 } 19200 19201 return GlobalAlerts; 19202}); 19203 19204/***/ }), 19205
19206/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/GlobalModal.js": 19207/*!*****************************************************************************************************!*\ 19208 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/GlobalModal.js ***! 19209 \*****************************************************************************************************/ 19210/*! exports provided: default */ 19211/***/ (function(module, __webpack_exports__, __webpack_require__) { 19212 19213"use strict"; 19214__webpack_require__.r(__webpack_exports__); 19215/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 19216 19217/** 19218 * @typedef {ReturnType<typeof import('widgets/global/Modal').default>} Modal 19219 * @typedef {ReturnType<typeof import('widgets/global/EmitBusEvent').default>} EmitBusEvent 19220 */ 19221 19222/** 19223 * @description Base GlobalModal implementation 19224 * @param {Modal} Modal Base widget for extending 19225 * @returns {typeof GlobalModal} GlobalModal class 19226 */ 19227 19228/* harmony default export */ __webpack_exports__["default"] = (function (Modal) { 19229 /** 19230 * @category widgets 19231 * @subcategory global 19232 * @class GlobalModal 19233 * @augments Modal 19234 * @classdesc Global Modal component. Allows different modals to be triggered by firing an event {@link module#dialog:dialogshow}. 19235 * <br>Was implemented to get rid from excessive duplicated popups markup in product lists etc. 19236 * <br>Also allow standalone components/link to trigger modal by using {@link EmitBusEvent} widget. 19237 * <br>In general could be triggered either programmatically by firing an event, or using {@link EmitBusEvent} widget in DOM markup. 19238 * <br>Allows: add classes to container; render modal heading; render modal action buttons; render content either via URL, or from string. 19239 * @property {string} data-widget - Widget name `globalModal` 19240 * @property {string} data-disable-rendering - property should be set to `false` to allow rendering inside popup template. 19241 * @example <caption>Global Modal widget markup</caption> 19242 * <div 19243 * data-widget="globalModal" 19244 * data-disable-rendering="false" 19245 * > 19246 * <div class="b-dialog" data-ref="container" hidden></div> 19247 * <script type="template/mustache" data-ref="template"> 19248 * <div 19249 * class="b-dialog {{${'#'}wrapperClasses}}{{wrapperClasses}}{{/wrapperClasses}}" 19250 * {{${'#'}ariaLabel}} 19251 * aria-label="{{ariaLabel}}" 19252 * {{/ariaLabel}} 19253 * data-ref="container" 19254 * > 19255 * <div 19256 * class="b-dialog-window" 19257 * role="dialog" 19258 * data-ref="dialog" 19259 * aria-modal="true" 19260 * > 19261 * <div class="b-dialog-header"> 19262 * ... header rendering 19263 * </div> 19264 * <div class="b-dialog-body b-user_content"> 19265 * {{& content }} 19266 * </div> 19267 * {{${'#'}showActions}} 19268 * <div class="b-dialog-footer m-actions"> 19269 * ... action buttons rendering 19270 * </div> 19271 * {{/showActions}} 19272 * </div> 19273 * </div> 19274 * </script> 19275 * </div> 19276 * 19277 * @example <caption>Global Modal widget triggering via DOM</caption> 19278 * <button 19279 * class="b-promotion-details" 19280 * type="button" 19281 * data-widget="emitBusEvent" 19282 * data-bus-event-type="dialogshow" 19283 * data-event-click.prevent="emitBusEvent" 19284 * data-tau="promotion_details_cta" 19285 * data-modal-config='{ 19286 * "content": "${promotion.detailsJSONSafe}", 19287 * "attributes": { 19288 * "data-tau": "promotion_details_dialog" 19289 * }, 19290 * "ariaLabel": "${Resource.msg('promotion.details.label','product',null)}" 19291 * }' 19292 * > 19293 * ${Resource.msg('promotion.details','product',null)} 19294 * </button> 19295 * 19296 * @example <caption>Global Modal widget triggering via code in {@link ProductTile} widget (synchronous operation)</caption> 19297 * ... 19298 * showQuickView(button) { 19299 * this.eventBus().emit('dialogshow', { 19300 * url: button.data('url'), 19301 * wrapperClasses: 'm-quick_view', 19302 * ariaLabel: this.prefs().productName, 19303 * attributes: { 19304 * 'data-tau-unique': 'quick_view_dialog' 19305 * } 19306 * }); 19307 * this.onModalShow(); 19308 * } 19309 * ... 19310 */ 19311 class GlobalModal extends Modal { 19312 /**
19313 * @description Widget initialisation logic 19314 * @listens module:events#dialogshow 19315 * @returns {void} 19316 */ 19317 init() { 19318 super.init(); 19319 this.eventBus().on('dialogshow', 'showModal'); 19320 } 19321 /** 19322 * @description Shows modal. Depending on needs, content for modal could be loaded via URL, or fetched from parameters. 19323 * Input parameter also contains setup for modal, like container classes, action buttons, heading text etc. 19324 * @example <caption>An object with expected parameters</caption> 19325 * { 19326 * showActions: true, 19327 * headerText: 'Header text', 19328 * actions: [{ 19329 * text: 'Cancel', 19330 * handler: 'cancel', 19331 * classes: 'm-outline' 19332 * },{ 19333 * text: 'Confirm', 19334 * handler: 'cancel', 19335 * lastFocusElement: true 19336 * }], 19337 * wrapperClasses: 'class1 class2', 19338 * ariaLabel: 'test aria label', 19339 * url: 'http://www.google.com', 19340 * contentType: 'json' 19341 * } 19342 * In case if input parameter is an instance of {@link EmitBusEvent}, 19343 * modal setup properties will be taken from `data-modal-config` 19344 * attribute of a {@link EmitBusEvent} widget. 19345 * @emits GlobalModal#show 19346 * @param {object|InstanceType<EmitBusEvent>} templateData Input object for modal popup. See example above. 19347 * @returns {void} 19348 */ 19349 19350 19351 showModal(templateData) { 19352 let modalData = templateData; // @ts-ignore 19353 19354 const EmitBusEventClass = 19355 /** @type {EmitBusEventClass} */ 19356 this.getConstructor('emitBusEvent'); 19357 19358 if (templateData instanceof EmitBusEventClass) { 19359 modalData = { 19360 url: templateData.data('url') 19361 }; 19362 const modalConfig = templateData.data('modalConfig'); 19363 19364 if (modalConfig && Object.keys(modalConfig).length) { 19365 modalData = Object.assign(modalData, modalConfig); 19366 } 19367 } 19368 19369 if (modalData.content) { 19370 super.showModal(modalData); 19371 /** 19372 * @description Event dispatched, when Global Modal was shown 19373 * @event GlobalModal#show 19374 */ 19375 19376 this.emit('show'); 19377 return; 19378 } 19379 19380 if (!modalData.url) { 19381 return; 19382 } 19383 19384 if (modalData.contentType === 'json') { 19385 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["getJSONByUrl"])(modalData.url, undefined, true).then(res => { 19386 if (Object.keys(res).length) { 19387 modalData = Object.assign(modalData, res); 19388 super.showModal(modalData); 19389 this.emit('show'); 19390 } 19391 }); 19392 } else { 19393 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["getContentByUrl"])(modalData.url).then(res => { 19394 modalData = Object.assign(modalData, { 19395 content: res 19396 }); 19397 super.showModal(modalData); 19398 this.emit('show'); 19399 }); 19400 } 19401 } 19402 19403 } 19404 19405 return GlobalModal; 19406}); 19407 19408/***/ }), 19409
19410/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Label.js": 19411/*!***********************************************************************************************!*\ 19412 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Label.js ***! 19413 \***********************************************************************************************/ 19414/*! exports provided: default */ 19415/***/ (function(module, __webpack_exports__, __webpack_require__) { 19416 19417"use strict"; 19418__webpack_require__.r(__webpack_exports__); 19419/** 19420 * @typedef {typeof import('widgets/Widget').default} Widget 19421 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 19422 */ 19423 19424/** 19425 * @param {Widget} Widget Base widget for extending 19426 * @returns {typeof Label} Label widget 19427 */ 19428/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 19429 /** 19430 * @category widgets 19431 * @subcategory global 19432 * @class Label 19433 * @augments Widget 19434 * @classdesc Represents Label component with next features: 19435 * 1. Widget could be used in different context, where we need to display dynamic content depending on different global events using mustache template 19436 * 2. Allow being enabled/disabled 19437 * 3. Allow managing text/value/error messages on the referenced element 19438 * @example <caption>Example of Label widget usage with checkout.step.updated event listener</caption> 19439 * <div 19440 * data-widget="label" 19441 * data-listen-events="checkout.step.updated" 19442 * data-widget-event-click="submitCurrentStep" 19443 * > 19444 * <script data-ref="template" type="template/mustache"> 19445 * <div 19446 * data-widget="label" 19447 * data-listen-events="checkout.step.updated" 19448 * data-widget-event-click="submitCurrentStep" 19449 * > 19450 * {{${'#'}shipping}} 19451 * <button data-event-click="handleClick" type="submit" name="submit" value="submit-shipping"> 19452 * ${Resource.msg('button.next.payment', 'checkout', null)} 19453 * </button> 19454 * {{/shipping}} 19455 * {{${'#'}billing}} 19456 * <button data-event-click="handleClick" type="submit" name="submit" value="submit-payment"> 19457 * ${Resource.msg('button.next.place.order', 'checkout', null)} 19458 * </button> 19459 * {{/billing}} 19460 * {{${'#'}summary}} 19461 * <button data-event-click="handleClick" type="submit" name="submit" value="place-order"> 19462 * ${Resource.msg('button.next.place.order', 'checkout', null)} 19463 * </button> 19464 * {{/summary}} 19465 * </div> 19466 * </script> 19467 * </div> 19468 * @property {string} data-widget - Widget name `label` 19469 * @property {string} data-listen-events - Events used to update template 19470 * Listen to global bus events, separated by comma and updates content based on event data 19471 * @property {string} data-widget-event-click - Triggers parent's method on widget's elements click 19472 */ 19473 class Label extends Widget { 19474 prefs() { 19475 return { 19476 listenEvents: '', 19477 classesError: 'm-error', 19478 classesActive: 'active', 19479 target: 'self', 19480 ...super.prefs() 19481 }; 19482 } 19483 /** 19484 * @description Widget logic initialization 19485 * @returns {void} 19486 */ 19487 19488 19489 init() { 19490 super.init(); 19491 19492 if (!this.id) { 19493 this.id = String(this.config.id); 19494 } 19495 19496 this.shown = true; 19497 19498 if (this.config.hidden || this.ref('self').hasAttr('hidden')) { 19499 this.hide(); 19500 } else { 19501 this.show(); 19502 } 19503 19504 this.disabled = this.ref('self').attr('disabled') === 'disabled'; 19505 const listenEvents = this.config.listenEvents; 19506 19507 if (typeof listenEvents === 'string' && listenEvents) { 19508 listenEvents.split(',').forEach(eventName => { 19509 this.eventBus().on(eventName.trim(), 'updateTemplate'); 19510 }); 19511 } 19512 } 19513 /** 19514 * @description Update template with passed data 19515 * @param {object} data data to render, usually executes with the data, streamed down with an event 19516 * @returns {Promise<any>}
19516 resolved if rendered or rejected if no found template promise 19517 */ 19518 19519 19520 updateTemplate(data = {}) { 19521 return this.render(undefined, data); 19522 } 19523 /** 19524 * @description get Label value 19525 * @returns {string|RefElement} value of widget's target referenced attribute 19526 */ 19527 19528 19529 getValue() { 19530 return this.ref(this.prefs().target).val(); 19531 } 19532 /** 19533 * @description set Label value 19534 * @param {(string|number|boolean|undefined)} val - Value to set into widget's target referenced attribute 19535 * @returns {void} 19536 */ 19537 19538 19539 setValue(val = '') { 19540 this.setError(); 19541 this.ref(this.prefs().target).val(val); 19542 } 19543 /** 19544 * @description get Label text 19545 * @returns {string|RefElement} text of widget's target referenced attribute 19546 */ 19547 19548 19549 getText() { 19550 return this.ref(this.prefs().target).getText(); 19551 } 19552 /** 19553 * @description Set Label text 19554 * @param {(string|undefined)} val - Value to set as a text of the widget's target referenced attribute 19555 * @returns {InstanceType<Label>} result 19556 */ 19557 19558 19559 setText(val = '') { 19560 const currentText = this.getText(); 19561 this.ref(this.prefs().target).removeClass(this.prefs().classesError); 19562 19563 if (currentText !== val) { 19564 this.ref(this.prefs().target).setText(val); 19565 } 19566 19567 return this; 19568 } 19569 /** 19570 * @description Sets `err` as a widget's target referenced attribute text 19571 * and if `err` is not empty - adds error class to widget's target referenced attribute 19572 * @param {(string|undefined)} err - Value to set as a text of the widget's target referenced attribute 19573 * @returns {InstanceType<Label>} result 19574 */ 19575 19576 19577 setError(err = '') { 19578 this.setText(err); 19579 19580 if (err) { 19581 this.ref(this.prefs().target).addClass(this.prefs().classesError); 19582 } 19583 19584 return this; 19585 } 19586 /** 19587 * @description Method to mark element as `active` 19588 * @returns {Label} result 19589 */ 19590 19591 19592 activate() { 19593 this.ref('self').addClass(this.prefs().classesActive); 19594 return this; 19595 } 19596 /** 19597 * @description Method to mark element as `inactive` 19598 * @returns {Label} result 19599 */ 19600 19601 19602 deactivate() { 19603 this.ref('self').removeClass(this.prefs().classesActive); 19604 return this; 19605 } 19606 /** 19607 * @description Disable Label 19608 * @returns {void} 19609 */ 19610 19611 19612 disable() { 19613 this.disabled = true; 19614 this.ref('self').disable(); 19615 } 19616 /** 19617 * @description Enable Label 19618 * @returns {void} 19619 */ 19620 19621 19622 enable() { 19623 this.disabled = false; 19624 this.ref('self').enable(); 19625 } 19626 /** 19627 * @description Emit click event 19628 * @emits Label#click 19629 * @returns {void} 19630 */ 19631 19632 19633 handleClick() { 19634 /** 19635 * @description Event to handle click 19636 * @event Label#click 19637 */ 19638 this.emit('click'); 19639 } 19640 19641 } 19642 19643 return Label; 19644}); 19645 19646/***/ }), 19647
19648/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js": 19649/*!***********************************************************************************************************!*\ 19650 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js ***! 19651 \***********************************************************************************************************/ 19652/*! exports provided: default */ 19653/***/ (function(module, __webpack_exports__, __webpack_require__) { 19654 19655"use strict"; 19656__webpack_require__.r(__webpack_exports__); 19657/** 19658 * @typedef {typeof import('widgets/Widget').default} Widget 19659 */ 19660 19661/** 19662 * @param {Widget} Widget Base widget for extending 19663 * @returns {typeof ListAccessibility} ListAccessibility widget 19664 */ 19665/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 19666 /** 19667 * @category widgets 19668 * @subcategory global 19669 * @class ListAccessibility 19670 * @augments Widget 19671 * @classdesc Represents ListAccessibility component that implement Basic Accessibility requirements for list of elements. 19672 * Has next features: 19673 * 1. Define list of focusable elements inside current widget 19674 * 2. Allow set focus to item or current item 19675 * 3. Allow set focus to first/last item 19676 * 4. Allow set focus to next/previous item 19677 * 19678 * Widget should be not used as standalone widget, it should be mixed to other widgets (see {@tutorial WidgetsMixinsStrategy}) 19679 */ 19680 class ListAccessibility extends Widget { 19681 prefs() { 19682 return { 19683 itemLink: 'itemLink', 19684 ...super.prefs() 19685 }; 19686 } 19687 /** 19688 * @description Define Items 19689 * @param {InstanceType<Widget>} [currentItem] Current Item 19690 * @returns {void} 19691 */ 19692 19693 19694 defineItems(currentItem) { 19695 if (this.items) { 19696 this.focusableItems = []; 19697 this.focusableItems = this.items.filter(item => { 19698 return item.isShown() && 'focus' in item; 19699 }); 19700 19701 if (this.focusableItems.includes(currentItem)) { 19702 this.currentItem = currentItem; 19703 } else { 19704 this.currentItem = this.focusableItems[0]; 19705 } 19706 19707 this.firstItem = this.focusableItems[0]; 19708 this.lastItem = this.focusableItems[this.focusableItems.length - 1]; 19709 } 19710 } 19711 /** 19712 * @description Set focus to item 19713 * @param {HTMLElement|undefined} item item 19714 * @returns {void} 19715 */ 19716 19717 19718 setFocusToItem(item) { 19719 if (item) { 19720 item.focus(); 19721 this.currentItem = item; 19722 } 19723 } 19724 /** 19725 * @description Set focus to current item 19726 * @returns {void} 19727 */ 19728 19729 19730 setFocusToCurrentItem() { 19731 this.setFocusToItem(this.currentItem); 19732 } 19733 /** 19734 * @description Set focus to first item 19735 * @returns {void} 19736 */ 19737 19738 19739 setFocusToFirstItem() { 19740 this.setFocusToItem(this.firstItem); 19741 } 19742 /** 19743 * @description Set focus to last item 19744 * @returns {void} 19745 */ 19746 19747 19748 setFocusToLastItem() { 19749 this.setFocusToItem(this.lastItem); 19750 } 19751 /** 19752 * @description Get item index 19753 * @param {InstanceType<Widget>} item item widget 19754 * @returns {number} Item index 19755 */ 19756 19757 19758 getItemIndex(item) { 19759 return this.focusableItems ? this.focusableItems.indexOf(item) : -1; 19760 } 19761 /** 19762 * @description Set focus to next item 19763 * @returns {void} 19764 */ 19765 19766 19767 setFocusToNextItem() { 19768 if (this.focusableItems) { 19769 const newItem = this.currentItem === this.lastItem ? this.firstItem : this.focusableItems[this.getItemIndex(this.currentItem) + 1]; 19770 this.setFocusToItem(newItem); 19771 } 19772 } 19773 /** 19774 * @description Set focus to previous item 19775 * @returns {void} 19776 */ 19777 19778 19779 setFocusToPreviousItem() { 19780 if (this.focusableItems) { 19781 const newItem = this.currentItem === this.firstItem ? this.lastItem : this.focusableItems[this.getItemIndex(this.currentItem) - 1]; 19782 this.setFocusToItem(newItem); 19783 } 19784 } 19785 /** 19786 * @description Set Focus 19787 * @returns {void} 19788 */ 19789 19790 19791 focus() { 19792 this.has(this.prefs().itemLink, itemLink => { 19793 itemLink.focus(); 19794 }); 19795 } 19796 19797 } 19798 19799 return ListAccessibility; 19800}); 19801 19802/***/ }), 19803
19804/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Modal.js": 19805/*!***********************************************************************************************!*\ 19806 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Modal.js ***! 19807 \***********************************************************************************************/ 19808/*! exports provided: default */ 19809/***/ (function(module, __webpack_exports__, __webpack_require__) { 19810 19811"use strict"; 19812__webpack_require__.r(__webpack_exports__); 19813/* harmony import */ var widgets_toolbox_dialogMgr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/dialogMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/dialogMgr.js"); 19814 19815const ESCAPE_CODE = 27; 19816/** 19817 * @typedef {ReturnType<typeof import('widgets/global/EmitBusEvent').default>} EmitBusEvent 19818 */ 19819 19820/** 19821 * @description Modal implementation 19822 * @param {ReturnType<typeof import('widgets/global/AccessibilityFocusTrapMixin').default>} AccessibilityFocusTrapMixin mixin 19823 * @returns {typeof Modal} Modal class 19824 */ 19825 19826/* harmony default export */ __webpack_exports__["default"] = (function (AccessibilityFocusTrapMixin) { 19827 /** 19828 * @category widgets 19829 * @subcategory global 19830 * @class Modal 19831 * @augments AccessibilityFocusTrapMixin 19832 * @classdesc Generic modal popups implementation.<br/> 19833 * - It renders a modal popup with grayed background. Can be closed by clicking outside modal. 19834 * - Allows to manage multi-modal depth structure (move one modal behind of another) (indirectly, bu using {@link dialogMgr}). 19835 * - If Modal need to be inited only on some viewport can be used modificators (sm,md,lg,xl). For example data-widget.sm.md="modal"</br> 19836 * Note that in this case need also add same modificator to sub events in html elements. This can be easily done via "dialogViewtypes" variable in ISML template (see example below).<br/> 19837 * Don't forget clear this variable after dialog closing tag. 19838 * @property {string} data-widget - Widget name `modal` 19839 * @property {boolean} data-disable-rendering - Disable rendering flag 19840 * @property {string} data-classes-extra - Extra classes 19841 * @property {string} data-classes-global-dialog - a set of space separated addiptional modal classes 19842 * @property {string} data-classes-show - classes added to shown modal 19843 * @property {string} data-classes-top-dialog - top modal class in modals hierarhy depth 19844 * @property {string} data-classes-active - active modal classes 19845 * @property {string} data-ref-container - modal reference container 19846 * @property {string} data-ref-dialog - dialog reference container 19847 * @property {string} data-classes-extra - extra classes for dialog 19848 * @property {boolean} data-click-out-side - `true` if needed to close modal by clicking outside it 19849 * @property {boolean} data-close-by-escape - `true` if needed to close modal by using `Esc` button 19850 * @example <caption>Example of typical Modal widget</caption> 19851 * <div data-widget="modal"> 19852 * // dialogViewtypes need only in case when modal should be inited on some viewports 19853 * <isset name="dialogViewtypes" value="sm.md" scope="page" /> 19854 * 19855 * <div data-ref="container" data-event-click.self="closeModal"></div> 19856 * <script type="template/mustache" data-ref="template"> 19857 * <div class="b-dialog-header"> 19858 * <div 19859 * class="b-dialog m-quick_view" 19860 * id="editProductModal" 19861 * data-ref="container" 19862 * data-event-click.self="closeModal" 19863 * > 19864 * <div 19865 * class="b-dialog-window" 19866 * role="dialog" 19867 * data-ref="dialog" 19868 * aria-modal="true" 19869 * aria-labelledby="editProductModalTitle" 19870 * > 19871 * <div class="b-dialog-header"> 19872 * <button 19873 * class="b-dialog-close" 19874 * title="${Resource.msg('common.close','common',null)}" 19875 * aria-label="${Resource.msg('common.close','common',null)}" 19876 * type="button" 19877 * data-dismiss="modal" 19878 * data-ref="closeEditPopup" 19879 * data-event-click.prevent="cancel" 19880 * data-tau="edit_product_dialog_close" 19881 * > 19882 * <isinclude template="/common/icons/standalone/close" /> 19883 * </button> 19884 * </div> 19885 * {{${'#'}body}} 19886 * <div class="b-dialog-body"> 19887 * {{&body}} 19888 * </div> 19889 * {{/body}} 19890 * {{${'#'}footer}} 19891 * <div class="b-dialog-footer"> 19892 * {{&footer}} 19893 * </div> 19894 * {{/footer}} 19895 * </div> 19896 * </div> 19897 * </script> 19898 * </div> 19899 */ 19900 class Modal extends AccessibilityFocusTrapMixin { 19901 prefs() { 19902 return { 19903 classesGlobalDialog: 'm-has_dialog', 19904 classesShow: 'm-opened', 19905 classesTopDialog: 'm-top_dialog', 19906 classesActive: 'm-active', 19907 refContainer: 'container', 19908 refDialog: 'dialog', 19909 classesExtra: '', 19910 clickOutSide: true, 19911 disableRendering: false, 19912 closeByEscape: true, 19913 ...super.prefs() 19914 }; 19915 } 19916 19917 init() { 19918 super.init(); 19919 this.onDestroy(() => { 19920 const refDialog = this.ref(this.prefs().refDialog); 19921 refDialog.attr('role', false); 19922 refDialog.attr('aria-modal', false); 19923 }); 19924 } 19925 /**
19926 * @description Show Modal and puts it to the top of opened modals hierarhy. 19927 * @param {object|undefined} [templateData] data to be rendered in template 19928 * @param {Function|undefined} [cb] optional callback 19929 * @returns {void} 19930 */ 19931 19932 19933 showModal(templateData, cb) { 19934 const container = this.ref(this.prefs().refContainer); 19935 const classes = [this.prefs().classesShow]; 19936 19937 if (this.prefs().classesExtra) { 19938 classes.push(this.prefs().classesExtra); 19939 } 19940 19941 this.backFocusElement = 19942 /** @type {HTMLElement} */ 19943 document.activeElement; 19944 let renderedPromise = Promise.resolve(); 19945 19946 if (templateData && !this.prefs().disableRendering) { 19947 renderedPromise = this.render(undefined, templateData, container); 19948 } 19949 19950 renderedPromise.then(() => { 19951 this.onBeforeShowModal(templateData); 19952 widgets_toolbox_dialogMgr__WEBPACK_IMPORTED_MODULE_0__["dialogMgr"].openDialog(this); 19953 container.addClass(classes.join(' ')); 19954 this.show(); 19955 19956 if (cb && typeof cb === 'function') { 19957 cb(); 19958 } else { 19959 this.afterShowModal(); 19960 } 19961 }); 19962 } 19963 /** 19964 * @description Open a dialog. This method is executed explicitly or implicitly from `showModal` method. 19965 * @returns {void} 19966 */ 19967 19968 19969 open() { 19970 const dialog = this.ref(this.prefs().refDialog); 19971 dialog.attr('role', 'dialog'); 19972 dialog.attr('aria-modal', 'true'); 19973 this.addGlobalDialogClass(); 19974 this.addListeners(); 19975 dialog.addClass(this.prefs().classesActive); 19976 dialog.addClass(this.prefs().classesTopDialog); 19977 } 19978 /** 19979 * @description Move Behind current modal in opened modals stack. 19980 * @returns {void} 19981 */ 19982 19983 19984 moveBehind() { 19985 this.cleanUpListeners(); 19986 this.ref(this.prefs().refDialog).removeClass(this.prefs().classesTopDialog); 19987 } 19988 /** 19989 * @description Move To Top current modal in opened modals stack. 19990 * @returns {void} 19991 */ 19992 19993 19994 moveToTop() { 19995 this.addListeners(); 19996 this.ref(this.prefs().refDialog).addClass(this.prefs().classesTopDialog); 19997 } 19998 /** 19999 * @description Close modal. 20000 * @returns {void} 20001 */ 20002 20003 20004 close() { 20005 this.cleanUpListeners(); 20006 this.ref(this.prefs().refDialog).removeClass([this.prefs().classesTopDialog, this.prefs().classesActive].join(' ')); 20007 } 20008 /** 20009 * @description Add Global Dialog Class 20010 * @returns {void} 20011 */ 20012 20013 20014 addGlobalDialogClass() { 20015 const html = this.ref('html'); 20016 20017 if (!html.hasClass(this.prefs().classesGlobalDialog)) { 20018 html.addClass(this.prefs().classesGlobalDialog); 20019 } 20020 } 20021 /** 20022 * @description Remove Global Dialog Class 20023 * @returns {void} 20024 */ 20025 20026 20027 removeGlobalDialogClass() { 20028 this.ref('html').removeClass(this.prefs().classesGlobalDialog); 20029 } 20030 /** 20031 * @description Close Modal 20032 * @returns {void} 20033 */ 20034 20035 20036 closeModal() { 20037 const classes = [this.prefs().classesShow]; 20038 20039 if (this.prefs().classesExtra) { 20040 classes.push(this.prefs().classesExtra); 20041 } 20042 20043 this.ref(this.prefs().refContainer).removeClass(classes.join(' ')); 20044 widgets_toolbox_dialogMgr__WEBPACK_IMPORTED_MODULE_0__["dialogMgr"].closeDialog(); 20045 20046 if (this.backFocusElement) { 20047 this.backFocusElement.focus(); 20048 this.backFocusElement = null; 20049 } 20050 20051 if (!this.prefs().disableRendering) { 20052 this.ref(this.prefs().refContainer).empty(); 20053 } 20054 20055 this.onAfterCloseModal(); 20056 } 20057 /** 20058 * @description Clean Up Listeners 20059 * @returns {void} 20060 */ 20061 20062 20063 cleanUpListeners() { 20064 if (this.escHandler) { 20065 this.escHandler(); 20066 this.escHandler = null; 20067 } 20068 20069 if (this.clickOutsideHandler) { 20070 this.clickOutsideHandler(); 20071 this.clickOutsideHandler = null; 20072 } 20073 } 20074 /** 20075 * @description Lifecycle hook `onAfterCloseModal` executes after closing modal window. 20076 * Used to: 20077 * - remove modal DOM element attributes as per modal setup 20078 * @returns {void} 20079 */ 20080 20081 20082 onAfterCloseModal() { 20083 if (this.attributes) {
20084 Object.keys(this.attributes).forEach(key => { 20085 this.ref('container').attr(key, false); 20086 }); 20087 } 20088 } 20089 /** 20090 * @description Lifecycle hook `onBeforeShowModal` executes before opening modal window. 20091 * Used to: 20092 * - add modal DOM element attributes as per modal setup 20093 * @param {object|InstanceType<EmitBusEvent>} [modalData] Input object for modal popup. 20094 * @returns {void} 20095 */ 20096 20097 20098 onBeforeShowModal(modalData = {}) { 20099 if (modalData.attributes) { 20100 this.attributes = modalData.attributes; 20101 Object.keys(modalData.attributes).forEach(key => { 20102 this.ref('container').attr(key, modalData.attributes[key]); 20103 }); 20104 } 20105 } 20106 /** 20107 * @description Cancel Handler 20108 * @emits Modal#cancel 20109 * @returns {void} 20110 */ 20111 20112 20113 cancel() { 20114 this.closeModal(); 20115 /** 20116 * @description Event dispatched, when modal was closed 20117 * @event Modal#cancel 20118 */ 20119 20120 this.emit('cancel'); 20121 } 20122 /** 20123 * @description Add Click Outside / Close by ESC Listener 20124 * @returns {void} 20125 */ 20126 20127 20128 addListeners() { 20129 if (this.prefs().clickOutSide) { 20130 this.clickOutsideHandler = this.ev('click', (_, event) => { 20131 if (event.target === this.ref(this.prefs().refContainer).get()) { 20132 this.cancel(); 20133 } 20134 }, this.ref(this.prefs().refContainer).get()).pop(); 20135 } 20136 20137 if (this.prefs().closeByEscape) { 20138 this.escHandler = this.ev('keyup', (_, event) => { 20139 const kdbEvent = 20140 /** @type {KeyboardEvent} */ 20141 event; 20142 20143 if (kdbEvent.keyCode === ESCAPE_CODE) { 20144 this.cancel(); 20145 } 20146 }, window).pop(); 20147 } 20148 } 20149 /** 20150 * @description Shows modal in a DOM 20151 * @returns {this} this obj - current instance for chaining 20152 */ 20153 20154 20155 show() { 20156 super.show(); 20157 this.ref(this.prefs().refContainer).show(); 20158 return this; 20159 } 20160 /** 20161 * @description Hide modal in DOM 20162 * @returns {this} this obj - current instance for chaining 20163 */ 20164 20165 20166 hide() { 20167 this.ref(this.prefs().refContainer).hide(); 20168 return this; 20169 } 20170 20171 } 20172 20173 return Modal; 20174}); 20175 20176/***/ }), 20177
20178/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ProcessButton.js": 20179/*!*******************************************************************************************************!*\ 20180 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ProcessButton.js ***! 20181 \*******************************************************************************************************/ 20182/*! exports provided: default */ 20183/***/ (function(module, __webpack_exports__, __webpack_require__) { 20184 20185"use strict"; 20186__webpack_require__.r(__webpack_exports__); 20187/** 20188 * @typedef {ReturnType<typeof import('widgets/global/Button').default>} Button 20189 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 20190 */ 20191 20192/** 20193 * @description Base ProcessButton implementation 20194 * @param {Button} Button Base widget for extending 20195 * @returns {typeof ProcessButton} Process Button class 20196 */ 20197/* harmony default export */ __webpack_exports__["default"] = (function (Button) { 20198 /** 20199 * @class ProcessButton 20200 * @augments Button 20201 * @classdesc ProcessButton widget, which could be used in different contextes (html-markup, inside widgets etc). 20202 * <br>Could be also used to trigger parent's widget method 20203 * @property {string} data-widget - Widget name `processButton` 20204 * @property {string} data-widget-event-click - Event listener to call Parent's widget method 20205 * @property {string} data-event-click - Event listener method `handleClick` for click event on widget 20206 * @property {string} data-processing-label - Processing Label 20207 * @property {string} data-processing-class - Processiong Class 20208 * @example 20209 * // use this code to display widget 20210 * <button type="submit" class="btn btn-block btn-primary" 20211 * data-widget="button" 20212 * data-widget-event-click="handleSubmit" 20213 * data-event-click.prevent="handleClick" 20214 * data-processing-label="${Resource.msg('button.processing', 'common', null)}" 20215 * data-processing-class="m-processing" 20216 * data-id="submitButton" 20217 * > 20218 * <div class="container"> 20219 * ${Resource.msg('button.text.loginform', 'login', null)} 20220 * </div> 20221 * </button> 20222 */ 20223 class ProcessButton extends Button { 20224 prefs() { 20225 return { 20226 processingLabel: 'processing...', 20227 processingClass: 'm-processing', 20228 ...super.prefs() 20229 }; 20230 } 20231 /** 20232 * @description Start Progress 20233 * @param {string} [val] - Value to set as a text of the Button 20234 * @returns {void} 20235 */ 20236 20237 20238 startProcess(val) { 20239 this.busy(); 20240 this.currentText = this.getText(); 20241 this.setText(val || this.prefs().processingLabel); 20242 this.ref('self').addClass(this.prefs().processingClass); 20243 } 20244 /** 20245 * @description Stop Progress 20246 * @param {string} [val] - Value to set as a text of the Button 20247 * @returns {void} 20248 */ 20249 20250 20251 stopProcess(val) { 20252 this.unbusy(); 20253 this.setText(val || this.currentText); 20254 this.ref('self').removeClass(this.prefs().processingClass); 20255 } 20256 /** 20257 * @description Get Text 20258 * @returns {string} Button Text 20259 */ 20260 20261 20262 getText() { 20263 return this.ref('container').getText(); 20264 } 20265 /** 20266 * @description Set Text 20267 * @param {(string|undefined)} val - Value to set as a text of the Button 20268 * @returns {refElement} Reference element 20269 */ 20270 20271 20272 setText(val = '') { 20273 return this.ref('container').setText(val); 20274 } 20275 20276 } 20277 20278 return ProcessButton; 20279}); 20280 20281/***/ }), 20282
20283/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SoftKeyboardToggleMixin.js": 20284/*!*****************************************************************************************************************!*\ 20285 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SoftKeyboardToggleMixin.js ***! 20286 \*****************************************************************************************************************/ 20287/*! exports provided: default */ 20288/***/ (function(module, __webpack_exports__, __webpack_require__) { 20289 20290"use strict"; 20291__webpack_require__.r(__webpack_exports__); 20292/** 20293 * @typedef {typeof import('widgets/Widget').default} Widget 20294 */ 20295 20296/** 20297 * @description Base SoftKeyboardToggleMixin implementation. 20298 * <br>Hides software keyboard on touches outside the keyboard to avoid iOS issues. 20299 * <br>This class is not intended to have a separate DOM representation. 20300 * @param {Widget} Widget Base widget for extending 20301 * @returns {typeof SoftKeyboardToggleMixin} SoftKeyboardToggleMixin class 20302 */ 20303/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 20304 /** 20305 * @class SoftKeyboardToggleMixin 20306 * @augments Widget 20307 * @property data-input - Target input 20308 */ 20309 class SoftKeyboardToggleMixin extends Widget { 20310 prefs() { 20311 return { 20312 input: '', 20313 ...super.prefs() 20314 }; 20315 } 20316 20317 init() { 20318 super.init(); 20319 const input = this.ref('input').get(); 20320 20321 if (input) { 20322 this.ev('focus', this.hideKeyboardOnOutsideTouch, input); 20323 this.ev('blur', this.hideKeyboardReset, input); 20324 } 20325 } 20326 20327 hideKdb() { 20328 const input = this.ref('input').get(); 20329 20330 if (input) { 20331 input.blur(); 20332 } 20333 } 20334 20335 hideKeyboardOnOutsideTouch() { 20336 this.touchStartDisposables = this.ev('touchstart', this.hideKdb, window); 20337 } 20338 20339 hideKeyboardReset() { 20340 const disposables = this.touchStartDisposables; 20341 20342 if (typeof disposables !== 'undefined') {
20343 disposables.forEach(fn => fn()); 20344 } 20345 } 20346 20347 } 20348 20349 return SoftKeyboardToggleMixin; 20350}); 20351 20352/***/ }), 20353
20354/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/StickyHeader.js": 20355/*!******************************************************************************************************!*\ 20356 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/StickyHeader.js ***! 20357 \******************************************************************************************************/ 20358/*! exports provided: default */ 20359/***/ (function(module, __webpack_exports__, __webpack_require__) { 20360 20361"use strict"; 20362__webpack_require__.r(__webpack_exports__); 20363/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 20364/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 20365 20366 20367/** 20368 * @typedef {typeof import('widgets/Widget').default} Widget 20369 */ 20370 20371/** 20372 * @param {Widget} Widget Base widget for extending 20373 * @returns {typeof StickyHeader} StickyHeader widget 20374 */ 20375/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 20376 /** 20377 * @category widgets 20378 * @subcategory global 20379 * @class StickyHeader 20380 * @augments Widget 20381 * @classdesc StickyHeader helper. Should be on element before StickyHeader to observe intersection 20382 * Could be reimplemented with getBoundClientRect.top and scroll listener. 20383 * The main purpose is to define anchor for StickyHeader and toggle StickyHeader. 20384 * @example <caption>Example of StickyHeader widget usage</caption> 20385 * <div data-widget="stickyHeader"></div> 20386 */ 20387 class StickyHeader extends Widget { 20388 prefs() { 20389 return { 20390 classesShow: 'b-header_stuck', 20391 dataTau: 'header_sticky', 20392 ...super.prefs() 20393 }; 20394 } 20395 /** 20396 * @description Initialize widget logic 20397 * @returns {void} 20398 */ 20399 20400 20401 init() { 20402 const stickyHeader = this.ref('self').get(); 20403 20404 if (!stickyHeader) { 20405 return; 20406 } 20407 20408 this.observer = new IntersectionObserver(([entry]) => this.toggleStickyState(entry), { 20409 threshold: 1 20410 }); 20411 this.observer.observe(stickyHeader); 20412 } 20413 /** 20414 * @description Toggle sticky header state 20415 * @param {object} entry Anchor for apply sticky header 20416 * @returns {void} 20417 */ 20418 20419 20420 toggleStickyState(entry) { 20421 document.body.classList.toggle(this.prefs().classesShow, entry.intersectionRatio < 1); 20422 20423 if (entry.intersectionRatio < 1) { 20424 document.body.setAttribute('data-tau', this.prefs().dataTau); 20425 } else { 20426 document.body.removeAttribute('data-tau'); 20427 } 20428 } 20429 /** 20430 * @description Destroy widget logic 20431 * @returns {void} 20432 */ 20433 20434 20435 destroy() { 20436 const stickyHeader = this.ref('self').get(); 20437 20438 if (this.observer && stickyHeader) { 20439 this.observer.unobserve(stickyHeader); 20440 this.observer.disconnect(); 20441 } 20442 } 20443 20444 } 20445 20446 return StickyHeader; 20447}); 20448 20449/***/ }), 20450
20451/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SwipeToClose.js": 20452/*!******************************************************************************************************!*\ 20453 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SwipeToClose.js ***! 20454 \******************************************************************************************************/ 20455/*! exports provided: default */ 20456/***/ (function(module, __webpack_exports__, __webpack_require__) { 20457 20458"use strict"; 20459__webpack_require__.r(__webpack_exports__); 20460/** 20461 * @typedef {typeof import('widgets/Widget').default} Widget 20462 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 20463 */ 20464 20465/** 20466 * @param {Widget} Widget Base widget for extending 20467 * @returns {typeof SwipeToClose} SwipeToClose widget 20468 */ 20469/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 20470 /** 20471 * @category widgets 20472 * @subcategory global 20473 * @class SwipeToClose 20474 * @augments Widget 20475 * @classdesc Represents SwipeToClose component that implement logic for closing panel by swipe gesture. 20476 * It has next features: 20477 * 1. Allow set panel close direction (left/right) 20478 * 2. Handle touch events for smooth panel closing 20479 * 20480 * @example <caption>Example of SwipeToClose widget usage with left drag direction</caption> 20481 * <div 20482 * id="main-navigation" 20483 * class="b-menu_panel" 20484 * aria-labelledby="main-navigation-toggle" 20485 * data-widget="swipeToClose" 20486 * data-panel-container="panelContainer" 20487 * data-drag-direction-x="left" 20488 * > 20489 * <div 20490 * data-ref="dialog" class="b-menu_panel-inner" 20491 * data-event-touchstart.sm.md="handleTouchStart" 20492 * > 20493 * <div data-ref="panelContainer" class="b-menu_subpanel m-active_level_1"> 20494 * ... widget content 20495 * </div> 20496 * </div> 20497 * </div> 20498 * @property {string} data-widget - Widget name `swipeToClose` 20499 * @property {string} data-menu - reference id of child element (inner container), value of its data-ref attribute 20500 * @property {string} data-panel-container - reference id of child element (panels wrapper), value of its data-ref attribute 20501 * @property {string} data-drag-direction-x - whether closing swipe should be performed right to left (value 'left') or left to right (value 'right'). 20502 */ 20503 class SwipeToClose extends Widget { 20504 prefs() { 20505 return { 20506 menu: 'dialog', 20507 panelContainer: 'panelContainer', 20508 dragDirectionX: 'left', 20509 ...super.prefs() 20510 }; 20511 } 20512 /** 20513 * @description Widget logic initialization 20514 * @returns {void} 20515 */ 20516 20517 20518 init() { 20519 super.init(); 20520 this.dragDirectionX = this.prefs().dragDirectionX === 'left' ? 1 : -1; 20521 } 20522 /** 20523 * @description TouchStart Event handler 20524 * @listens dom#touchstart 20525 * @param {HTMLElement} _ Source of keydown event 20526 * @param {TouchEvent} evt Event object 20527 * @returns {void} 20528 */ 20529 20530 20531 handleTouchStart(_, evt) { 20532 // @ts-ignore 20533 this.touchMoveDisposable = this.ev('touchmove', this.handleTouchMove, this.ref(this.prefs().menu).get()); 20534 this.touchEndDisposable = this.ev('touchend', this.handleTouchEnd, this.ref(this.prefs().menu).get()); 20535 this.touchCancelDisposable = this.ev('touchcancel', this.handleTouchCancel, this.ref(this.prefs().menu).get()); 20536 this.startTime = new Date().getTime(); 20537 const coordX = evt.touches[0].pageX || 0; 20538 const coordY = evt.touches[0].pageY || 0; 20539 this.isMoving = false; 20540 this.startX = coordX; 20541 this.startY = coordY; 20542 this.currentX = coordX; 20543 this.currentY = coordY; 20544 this.touchStart(this.startX, this.startY); 20545 } 20546 /** 20547 * @description TouchMove Event handler 20548 * @listens dom#touchmove 20549 * @param {HTMLElement} _ Source of keydown event 20550 * @param {TouchEvent} evt Event object 20551 * @returns {void} 20552 */ 20553 20554 20555 handleTouchMove(_, evt) { 20556 this.isMoving = true; 20557 this.currentX = evt.touches[0].pageX; 20558 this.currentY = evt.touches[0].pageY; // @ts-ignore 20559 20560 const translateX = this.currentX - this.startX; // @ts-ignore 20561 20562 const translateY = this.currentY - this.startY; 20563 this.touchMove(evt, this.currentX, this.currentY, translateX, translateY); 20564 } 20565 /**
20566 * @description TouchEnd Event handler 20567 * @listens dom#touchend 20568 * @param {HTMLElement} _ Source of keydown event 20569 * @param {Event} evt Event object 20570 * @returns {void} 20571 */ 20572 // eslint-disable-next-line no-unused-vars 20573 20574 20575 handleTouchEnd(_, evt) { 20576 // @ts-ignore 20577 const translateX = this.dragDirectionX * (this.currentX - this.startX); // @ts-ignore 20578 20579 const translateY = this.currentY - this.startY; // @ts-ignore 20580 20581 const timeTaken = new Date().getTime() - this.startTime; // @ts-ignore 20582 20583 this.touchEnd(this.currentX, this.currentY, translateX, translateY, timeTaken); 20584 } 20585 /** 20586 * @description TouchCancel Event handler 20587 * @listens dom#touchcancel 20588 * @param {HTMLElement} _ Source of keydown event 20589 * @param {Event} evt Event object 20590 * @returns {void} 20591 */ 20592 // eslint-disable-next-line no-unused-vars 20593 20594 20595 handleTouchCancel(_, evt) { 20596 this.disposableListeners(); 20597 } 20598 /** 20599 * @description Preparing panel to move 20600 * @param {number} startX x coordinate of where the finger is placed in the DOM 20601 * @param {number} startY y coordinate of where the finger is placed in the DOM 20602 * @returns {void} 20603 */ 20604 20605 20606 touchStart(startX, startY) { 20607 const menu = this.ref(this.prefs().menu); 20608 this.isOpen = menu !== null; 20609 this.toggleTransition(menu, true); 20610 this.toggleTransition(this.ref(this.prefs().panelContainer), true); 20611 const menuNode = menu.get(); 20612 this.menuWidth = menuNode ? menuNode.offsetWidth : 0; 20613 this.lastX = startX; 20614 this.lastY = startY; 20615 20616 if (this.isOpen) { 20617 this.moveX = 0; 20618 } else { 20619 this.moveX = -this.menuWidth; 20620 } 20621 20622 this.dragDirection = ''; 20623 } 20624 /** 20625 * @description Update UI 20626 * @returns {void} 20627 */ 20628 20629 20630 updateUi() { 20631 if (this.isMoving) { 20632 const element = this.ref(this.prefs().menu).get(); 20633 20634 if (element) { 20635 element.style.transform = 'translateX(' + this.moveX + 'px)'; 20636 } 20637 20638 window.requestAnimationFrame(this.updateUi.bind(this)); 20639 } 20640 } 20641 /** 20642 * @description Toggle menu 20643 * @param {number} translateX x coordinate of where the finger is placed in the viewport 20644 * @returns {void} 20645 */ 20646 20647 20648 toggleMenu(translateX) { 20649 const menu = this.ref(this.prefs().menu); 20650 const menuNode = menu.get(); 20651 20652 if (menuNode) { 20653 menuNode.style.transform = ''; 20654 } 20655 20656 this.toggleTransition(menu, false); 20657 20658 if (translateX < 0 || !this.isOpen) { 20659 this.closePanel(); 20660 this.isOpen = false; 20661 } else { 20662 this.openPanel(false); 20663 this.isOpen = true; 20664 } 20665 } 20666 /** 20667 * @description Open Menu Panel.Interface can be override 20668 * @param {object} data data 20669 * @returns {void} 20670 */ 20671 // eslint-disable-next-line no-unused-vars 20672 20673 20674 openPanel(data) { 20675 throw new Error('Method not implemented.'); 20676 } 20677 /** 20678 * @description Close Menu Panel.Interface can be override 20679 * @returns {void} 20680 */ 20681 20682 20683 closePanel() { 20684 throw new Error('Method not implemented.'); 20685 } 20686 /** 20687 * @description Toggle transition class 20688 * @param {RefElement} element DOM element 20689 * @param {boolean} isTransitionOn transition flag 20690 * @returns {void} 20691 */ 20692 20693 20694 toggleTransition(element, isTransitionOn) { 20695 if (isTransitionOn) { 20696 element.addClass('m-no_transition'); 20697 } else { 20698 element.removeClass('m-no_transition'); 20699 } 20700 } 20701 /** 20702 * @description calculate opacity 20703 * @returns {number} New opacity value 20704 */ 20705 20706 20707 calculateOpacity() { 20708 // @ts-ignore 20709 const percentageBeforeDif = Math.abs(this.moveX) * 100 / this.menuWidth; 20710 const percentage = 100 - percentageBeforeDif; 20711 return percentage / 100; 20712 } 20713 /** 20714 * @description calculate opacity 20715 * @param {RefElement} element Ref element 20716 * @param {any} opacity New opacity value 20717 * @returns {void} 20718 */ 20719 20720 20721 setNewOpacity(element, opacity) { 20722 const htmlElement = element.get(); 20723 20724 if (!htmlElement) { 20725 return; 20726 } 20727 20728 htmlElement.style.setProperty('--backdrop-opacity', opacity); 20729 } 20730 /**
20731 * @description Disposable listeners 20732 * @returns {void} 20733 */ 20734 20735 20736 disposableListeners() { 20737 if (this.touchMoveDisposable) { 20738 this.touchMoveDisposable.forEach(disposable => disposable()); 20739 delete this.touchMoveDisposable; 20740 } 20741 20742 if (this.touchEndDisposable) { 20743 this.touchEndDisposable.forEach(disposable => disposable()); 20744 delete this.touchEndDisposable; 20745 } 20746 20747 if (this.touchCancelDisposable) { 20748 this.touchCancelDisposable.forEach(disposable => disposable()); 20749 delete this.touchCancelDisposable; 20750 } 20751 } 20752 /** 20753 * @description calculate new postion.Set drag direction 20754 * @param {Event} evt Event object 20755 * @param {number} currentX current X position 20756 * @param {number} currentY current Y position 20757 * @param {number} translateX new position X value 20758 * @param {number} translateY new position Y value 20759 * @returns {void} 20760 */ 20761 20762 20763 touchMove(evt, currentX, currentY, translateX, translateY) { 20764 if (!this.dragDirection) { 20765 if (Math.abs(translateX) >= Math.abs(translateY)) { 20766 this.dragDirection = 'horizontal'; 20767 } else { 20768 this.dragDirection = 'vertical'; 20769 } 20770 20771 window.requestAnimationFrame(this.updateUi.bind(this)); 20772 } 20773 20774 if (this.dragDirection === 'vertical') { 20775 this.lastX = currentX; 20776 this.lastY = currentY; 20777 } else { 20778 // @ts-ignore 20779 const movedPath = this.dragDirectionX * (this.moveX + (currentX - this.lastX)); // @ts-ignore 20780 20781 if (movedPath < 0 && movedPath > -this.menuWidth) { 20782 // @ts-ignore 20783 this.moveX += currentX - this.lastX; 20784 } 20785 20786 this.lastX = currentX; 20787 this.lastY = currentY; 20788 this.setNewOpacity(this.ref('html'), this.calculateOpacity()); 20789 } 20790 } 20791 /** 20792 * @description Open/Close panel based on position. Remove transition classes. Remove event listeners. 20793 * @param {number} currentX current X position 20794 * @param {number} currentY current Y position 20795 * @param {number} translateX new position X value 20796 * @param {number} translateY new position Y value 20797 * @param {number} timeTaken timediff between touch start and touch end 20798 * @returns {void} 20799 */ 20800 20801 20802 touchEnd(currentX, currentY, translateX, translateY, timeTaken) { 20803 const velocity = 0.3; 20804 20805 if (this.isMoving && this.isOpen) { 20806 this.isMoving = false; // @ts-ignore 20807 20808 if (translateX < -this.menuWidth / 2 || Math.abs(translateX) / timeTaken > velocity) { 20809 this.toggleMenu(translateX); 20810 } else { 20811 this.toggleMenu(0); 20812 } 20813 } 20814 20815 this.toggleTransition(this.ref(this.prefs().menu), false); 20816 this.toggleTransition(this.ref(this.prefs().panelContainer), false); 20817 this.setNewOpacity(this.ref('html'), ''); 20818 this.disposableListeners(); 20819 } 20820 20821 } 20822 20823 return SwipeToClose; 20824}); 20825 20826/***/ }), 20827
20828/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/TabPanel.js": 20829/*!**************************************************************************************************!*\ 20830 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/TabPanel.js ***! 20831 \**************************************************************************************************/ 20832/*! exports provided: default */ 20833/***/ (function(module, __webpack_exports__, __webpack_require__) { 20834 20835"use strict"; 20836__webpack_require__.r(__webpack_exports__); 20837/** 20838 * @param {typeof import('widgets/Widget').default} Widget - widget for extending 20839 * @returns {typeof TabPanel} Tab Panel widget 20840 */ 20841/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 20842 /** 20843 * @class TabPanel 20844 * @augments Widget 20845 * @property {string} data-widget - Widget name `tabPanel` 20846 * @classdesc Represents a TabPanel widget with the next features: 20847 * 1. Toggle active\inactive tab panel state 20848 * 20849 * @example <caption>Example of TabPanel widget usage</caption> 20850 * <div data-widget="tabs"> 20851 * <ul class="nav nav-tabs nav-fill"> 20852 * <li class="nav-item"> 20853 * <a 20854 * data-widget="button" 20855 * data-panel-name="login" 20856 * data-widget-event-click="handleTabClick" 20857 * data-id="button-login" 20858 * data-event-click.prevent="handleClick" 20859 * href="#login" role="tab" 20860 * > 20861 * ${Resource.msg('link.header.login.module', 'login', null)} 20862 * </a> 20863 * </li> 20864 * <li class="nav-item"> 20865 * <a 20866 * data-widget="button" 20867 * data-panel-name="register" 20868 * data-widget-event-click="handleTabClick" 20869 * data-id="button-register" 20870 * data-event-click.prevent="handleClick" 20871 * href="#register" role="tab" 20872 * > 20873 * ${Resource.msg('link.header.register.module', 'login', null)} 20874 * </a> 20875 * </li> 20876 * </ul> 20877 * <div class="tab-content"> 20878 * <div id="login" role="tabpanel" data-widget="tabPanel"> 20879 * ... tab content 20880 * <isinclude template="account/components/loginForm" /> 20881 * <isinclude template="account/components/oauth" /> 20882 * </div> 20883 * <div id="register" role="tabanel" data-widget="tabPanel"> 20884 * ... tab content 20885 * <isinclude template="account/components/registerForm" /> 20886 * </div> 20887 * </div> 20888 * </div> 20889 */ 20890 class TabPanel extends Widget { 20891 /** 20892 * @description Returns Widget configuration object 20893 * @returns {object} Widget configuration object 20894 */ 20895 prefs() { 20896 return { 20897 classesActive: 'm-active', 20898 ...super.prefs() 20899 }; 20900 } 20901 /** 20902 * @description Refresh widget handler 20903 * @returns {void} 20904 */ 20905 20906 20907 onRefresh() { 20908 this.toggleActive(this.isActive); 20909 } 20910 /** 20911 * @description Activates tab panel 20912 * @returns {void} 20913 */ 20914 20915 20916 activate() { 20917 this.toggleActive(true); 20918 } 20919 /** 20920 * @description Deactivates tab panel 20921 * @returns {void} 20922 */ 20923 20924 20925 deactivate() { 20926 this.toggleActive(false); 20927 } 20928 /** 20929 * @param {(boolean|undefined)} state true to show/false to hide/undefined to auto 20930 * @returns {void} 20931 */ 20932 20933 20934 toggleActive(state) { 20935 this.isActive = this.ref('self').toggleClass(this.prefs().classesActive, state).hasClass(this.prefs().classesActive); 20936 } 20937 20938 } 20939 20940 return TabPanel; 20941}); 20942 20943/***/ }), 20944
20945/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Tabs.js": 20946/*!**********************************************************************************************!*\ 20947 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Tabs.js ***! 20948 \**********************************************************************************************/ 20949/*! exports provided: default */ 20950/***/ (function(module, __webpack_exports__, __webpack_require__) { 20951 20952"use strict"; 20953__webpack_require__.r(__webpack_exports__); 20954/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 20955/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 20956/* harmony import */ var widgets_toolbox_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/debounce */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js"); 20957 20958 20959const keyCode = Object.freeze({ 20960 END: 35, 20961 HOME: 36, 20962 LEFT: 37, 20963 RIGHT: 39 20964}); 20965/** 20966 * @typedef {typeof import('widgets/Widget').default} Widget 20967 * @typedef {ReturnType<typeof import('widgets/global/Button').default>} Button 20968 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 20969 * @typedef {InstanceType<Button>} button 20970 * @typedef {InstanceType<ReturnType<typeof import('widgets/global/TabPanel').default>>} tabPanel 20971 */ 20972 20973/** 20974 * @description Base Tabs implementation 20975 * @param {Widget} Widget - widget for extending 20976 * @returns {typeof Tabs} Tabs widget 20977 */ 20978 20979/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 20980 /** 20981 * @class Tabs 20982 * @augments Widget 20983 * 20984 * @property {string} data-widget - Widget name `tabs` 20985 * @property {boolean} data-active-first - activate first tab and first tab panel 20986 * @property {string} data-active-panel - activate tab and tab panel by provided panel id 20987 * @property {boolean} data-auto-activation - if tabs list should follow accessibility `Tabs with Automatic Activation` feature 20988 * @property {boolean} data-use-url-anchor - in case if true, each tab change will add a related hash to document location. 20989 * @classdesc Represents tabbed contents displaying and navigation. 20990 * Has the next features: 20991 * 1. Mark selected tab as active 20992 * 2. Handles keydown by enter\space keyboard button to manipulate the active tab 20993 * 3. Sets focus to the current tab 20994 * 4. Adds hash to document location if enabled 20995 * 20996 * @example <caption>Example of Tabs widget usage</caption> 20997 * <div data-widget="tabs"> 20998 * <ul class="nav nav-tabs nav-fill"> 20999 * <li class="nav-item"> 21000 * <a 21001 * data-widget="button" 21002 * data-panel-name="login" 21003 * data-widget-event-click="handleTabClick" 21004 * data-id="button-login" 21005 * data-event-click.prevent="handleClick" 21006 * href="#login" role="tab" 21007 * > 21008 * ${Resource.msg('link.header.login.module', 'login', null)} 21009 * </a> 21010 * </li> 21011 * <li class="nav-item"> 21012 * <a 21013 * data-widget="button" 21014 * data-panel-name="register" 21015 * data-widget-event-click="handleTabClick" 21016 * data-id="button-register" 21017 * data-event-click.prevent="handleClick" 21018 * href="#register" role="tab" 21019 * > 21020 * ${Resource.msg('link.header.register.module', 'login', null)} 21021 * </a> 21022 * </li> 21023 * </ul> 21024 * <div class="tab-content"> 21025 * <div id="login" role="tabpanel" data-widget="tabPanel"> 21026 * ... tab content 21027 * <isinclude template="account/components/loginForm" /> 21028 * <isinclude template="account/components/oauth" /> 21029 * </div> 21030 * <div id="register" role="tabanel" data-widget="tabPanel"> 21031 * ... tab content 21032 * <isinclude template="account/components/registerForm" /> 21033 * </div>
21034 * </div> 21035 * </div> 21036 */ 21037 class Tabs extends Widget { 21038 /** 21039 * @description Returns Widget configuration object 21040 * @returns {object} Widget configuration object 21041 */ 21042 prefs() { 21043 return { 21044 classesActive: 'm-active', 21045 activePanel: '', 21046 activeFirst: false, 21047 autoActivation: false, 21048 useUrlAnchor: false, 21049 ...super.prefs() 21050 }; 21051 } 21052 /** 21053 * @description Refresh widget handler 21054 * @returns {void} 21055 */ 21056 21057 21058 onRefresh() { 21059 super.onRefresh(); 21060 this.fulfillPanelNames(); 21061 } 21062 /** 21063 * @description Widget initialization logic 21064 * @returns {void} 21065 */ 21066 21067 21068 init() { 21069 super.init(); 21070 this.fulfillPanelNames(); 21071 21072 if (this.prefs().activePanel) { 21073 this.activatePanel(this.prefs().activePanel); 21074 } else if (this.prefs().useUrlAnchor) { 21075 this.handleUrlChange(); 21076 } else if (this.prefs().activeFirst && this.panelNames && this.panelNames.length) { 21077 this.activatePanel(this.panelNames[0]); 21078 } 21079 21080 this.state = {}; 21081 this.tablist = this.ref('tablist').get(); 21082 21083 if (this.tablist) { 21084 this.tabsControlsScrollInit(); 21085 } 21086 } 21087 /** 21088 * @description Init tabs controll scrolling functionality. 21089 * @returns {void} 21090 */ 21091 21092 21093 tabsControlsScrollInit() { 21094 this.tabsControlsScroll = this.tabsControlsHandleScroll.bind(this); 21095 this.tabsControlsHandleScroll(); 21096 this.state.scrollStart = true; 21097 this.state.scrollEnd = false; 21098 this.ev('scroll', this.tabsControlsHandleScroll, this.tablist, true); 21099 this.ev('resize', Object(widgets_toolbox_debounce__WEBPACK_IMPORTED_MODULE_1__["debounce"])(() => { 21100 this.tabsControlsScrollabilityCheck(); 21101 }, 300), window, true); 21102 } 21103 /** 21104 * @description Scrollability check for tabs control. 21105 * @returns {boolean} scrollability state 21106 */ 21107 21108 21109 tabsControlsScrollabilityCheck() { 21110 this.state.scrollable = this.tablist.offsetWidth < this.tablist.scrollWidth; 21111 this.tablist.classList.toggle('m-scrollable', this.state.scrollable); 21112 return this.state.scrollable; 21113 } 21114 /** 21115 * @description Handler for tabs control scrolling. 21116 * @returns {void} 21117 */ 21118 21119 21120 tabsControlsHandleScroll() { 21121 if (!this.tabsControlsScrollabilityCheck()) { 21122 return; 21123 } 21124 21125 this.state.scrollStart = !this.tablist.scrollLeft; 21126 this.state.scrollEnd = this.tablist.scrollWidth === this.tablist.scrollLeft + this.tablist.offsetWidth; 21127 this.tablist.classList.toggle('m-scroll_start', this.state.scrollStart); 21128 this.tablist.classList.toggle('m-scroll_end', this.state.scrollEnd); 21129 } 21130 /** 21131 * @description Registers all available panels by adding their IDs into array. 21132 * @returns {void} 21133 */ 21134 21135 21136 fulfillPanelNames() { 21137 /** 21138 * @type {string[]} 21139 */ 21140 this.panelNames = []; 21141 const Button = 21142 /** @type {Button} */ 21143 this.getConstructor('button'); 21144 this.eachChild(child => { 21145 if (child instanceof Button && this.panelNames) { 21146 this.panelNames.push(String(child.config.panelName)); 21147 } 21148 }); 21149 } 21150 /** 21151 * @param {InstanceType<Widget>} clickedButton - Widget, representing customer's tab clicked element 21152 * @returns {void} 21153 */ 21154 21155 21156 handleTabClick(clickedButton) { 21157 this.activatePanel(String(clickedButton.config.panelName)); 21158 } 21159 /** 21160 * @param {string} panelName name of panel to activate 21161 * @param {boolean} saveToPushState - If we need to save hash in history 21162 * @returns {void} 21163 */ 21164 21165 21166 activatePanel(panelName, saveToPushState = true) { 21167 if (this.panelNames) { 21168 this.panelNames.forEach(id => { 21169 const isActive = id === panelName; 21170 21171 if (isActive) { 21172 this.activePanel = panelName; 21173 this.focusedTab = panelName; 21174 } 21175 21176 const currentTabPanel = this.getById(id, 21177 /** @type {tabPanel} */ 21178 tabPanel => { 21179 tabPanel[isActive ? 'activate' : 'deactivate'](); 21180 21181 if (isActive && saveToPushState) { 21182 this.handleUrlAnchor(id); 21183 } 21184 21185 return tabPanel; 21186 }); 21187 21188 if (!currentTabPanel && this.ref(id)) { 21189 this.toggleActiveRefPanel(this.ref(id), isActive); 21190 21191 if (isActive && saveToPushState) { 21192 this.handleUrlAnchor(id); 21193 } 21194 } 21195 21196 this.getById(`button-${id}`, 21197 /** @type {button} */ 21198 button => { 21199 if (isActive) { 21200 button.activate(); 21201 button.select(); 21202 } else { 21203 button.deactivate(); 21204 button.unselect(); 21205 } 21206 }); 21207 }); 21208 } 21209 } 21210 /**
21211 * @description In addition to tab switch, action will be reflected in URL anchor, if enabled. 21212 * This will further allow to select proper tab, when returning back from browser history. 21213 * @param {string} tabName tab name to reflect in browser location hash. 21214 * @returns {void} 21215 */ 21216 21217 21218 handleUrlAnchor(tabName) { 21219 if (this.prefs().useUrlAnchor) { 21220 window.history.pushState({ 21221 hashChangedOnly: true 21222 }, document.title, `#${tabName}`); 21223 } 21224 } 21225 /** 21226 * @description Triggers needed tab activation, when URL changed 21227 * in case of history push/replace state and using browser's `back` button. 21228 * @param {boolean} saveToPushState - If we need to save hash in history 21229 * @returns {void} 21230 */ 21231 21232 21233 handleUrlChange(saveToPushState = true) { 21234 if (document.location.hash) { 21235 const panelToActivate = this.panelNames && this.panelNames.find(panelName => panelName === document.location.hash.replace('#', '')); 21236 21237 if (panelToActivate) { 21238 this.activatePanel(panelToActivate, saveToPushState); 21239 } 21240 } 21241 } 21242 /** 21243 * @description Method to toggle active panel, if it is not a separate widget `TabPanel` 21244 * but an ordinary `ref` element inside `Tabs` widget. 21245 * @param {refElement} panel target panel name 21246 * @param {boolean} state is target panel is selected or not 21247 * @returns {void} 21248 */ 21249 21250 21251 toggleActiveRefPanel(panel, state) { 21252 panel.toggleClass(this.prefs().classesActive, state); 21253 } 21254 /** 21255 * @description Gets last focused panel name 21256 * <br>(focused panel is not necessarily active panel) 21257 * @returns {string} Focused panel name if founded. Empty string otherwise 21258 */ 21259 21260 21261 getLastFocusedTab() { 21262 return this.focusedTab ? this.focusedTab : this.activePanel || this.panelNames && this.panelNames[0] || ''; 21263 } 21264 /** 21265 * @description Sets focus to panel with given name 21266 * <br>Uses `roving focus` accessibility feature 21267 * <br>https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex 21268 * @param {string} tab Tab name to set focus to 21269 * @returns {void} 21270 */ 21271 21272 21273 setFocusToTab(tab) { 21274 if (!tab) { 21275 return; 21276 } 21277 21278 this.focusedTab = tab; 21279 21280 if (this.panelNames) { 21281 this.panelNames.forEach(id => { 21282 const isTargetTab = id === tab; 21283 this.getById(`button-${id}`, 21284 /** @type {button} */ 21285 button => { 21286 if (isTargetTab) { 21287 button.focus().setTabindex(); 21288 } else { 21289 button.unsetTabindex(); 21290 } 21291 }); 21292 }); 21293 } 21294 21295 if (this.prefs().autoActivation) { 21296 this.activatePanel(tab); 21297 } 21298 } 21299 /** 21300 * @description Sets focus to the very first panel 21301 * @returns {void} 21302 */ 21303 21304 21305 setFocusToFirstTab() { 21306 const firstTab = this.panelNames && this.panelNames.length && this.panelNames[0] || ''; 21307 this.setFocusToTab(firstTab); 21308 } 21309 /** 21310 * @description Sets focus to the very last panel 21311 * @returns {void} 21312 */ 21313 21314 21315 setFocusToLastTab() { 21316 const lastTab = this.panelNames && this.panelNames.length && this.panelNames[this.panelNames.length - 1] || ''; 21317 this.setFocusToTab(lastTab); 21318 } 21319 /** 21320 * @description Sets focus to previous panel. Loops focus, if first panel reached 21321 * @returns {void} 21322 */ 21323 21324 21325 setFocusToPreviousTab() { 21326 if (this.panelNames && this.panelNames.length) { 21327 const currentFocusedTab = this.getLastFocusedTab(); 21328 const currentFocusedTabIndex = this.panelNames.indexOf(currentFocusedTab); 21329 const previousTab = currentFocusedTabIndex === 0 ? this.panelNames[this.panelNames.length - 1] : this.panelNames[currentFocusedTabIndex - 1]; 21330 this.setFocusToTab(previousTab); 21331 } 21332 } 21333 /** 21334 * @description Sets focus to next panel. Loops focus, if last panel reached 21335 * @returns {void} 21336 */ 21337 21338 21339 setFocusToNextTab() { 21340 if (this.panelNames && this.panelNames.length) { 21341 const currentFocusedTab = this.getLastFocusedTab(); 21342 const currentFocusedTabIndex = this.panelNames.indexOf(currentFocusedTab); 21343 const nextTab = currentFocusedTabIndex === this.panelNames.length - 1 ? this.panelNames[0] : this.panelNames[currentFocusedTabIndex + 1]; 21344 this.setFocusToTab(nextTab); 21345 } 21346 } 21347 /**
21348 * @description Keydown Event handler 21349 * @param {HTMLElement} _ Source of keydown event 21350 * @param {KeyboardEvent} event Event object 21351 * @returns {void} 21352 */ 21353 21354 21355 handleKeydown(_, event) { 21356 let preventEventActions = false; 21357 21358 switch (event.keyCode) { 21359 case keyCode.HOME: 21360 this.setFocusToFirstTab(); 21361 preventEventActions = true; 21362 break; 21363 21364 case keyCode.END: 21365 this.setFocusToLastTab(); 21366 preventEventActions = true; 21367 break; 21368 21369 case keyCode.LEFT: 21370 this.setFocusToPreviousTab(); 21371 preventEventActions = true; 21372 break; 21373 21374 case keyCode.RIGHT: 21375 this.setFocusToNextTab(); 21376 preventEventActions = true; 21377 break; 21378 21379 default: 21380 break; 21381 } 21382 21383 if (preventEventActions) { 21384 event.preventDefault(); 21385 event.stopPropagation(); 21386 } 21387 } 21388 21389 } 21390 21391 return Tabs; 21392}); 21393 21394/***/ }), 21395
21396/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Token.js": 21397/*!***********************************************************************************************!*\ 21398 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Token.js ***! 21399 \***********************************************************************************************/ 21400/*! exports provided: default */ 21401/***/ (function(module, __webpack_exports__, __webpack_require__) { 21402 21403"use strict"; 21404__webpack_require__.r(__webpack_exports__); 21405/* harmony import */ var _toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 21406 21407/** 21408 * @param {typeof import('widgets/Widget').default} Widget - widget for extending 21409 * @returns {typeof Token} Token widget 21410 */ 21411 21412/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 21413 /** 21414 * @category widgets 21415 * @subcategory global 21416 * @class Token 21417 * @augments Widget 21418 * @property {string} data-widget - Widget name `token` 21419 * @property {string} data-token-name - Name of CSRF token 21420 * @property {string} data-token-value - Value of CSRF token 21421 * @classdesc Represents Token component with the next features: 21422 * 1. If available on page - adds CSRF data in context of ajax requests. 21423 * 2. Widget container is usually empty and hidden. 21424 * 21425 * @example <caption>Example of Token widget usage</caption> 21426 * <div 21427 * data-widget="token" 21428 * data-token-name="${require('dw/web/CSRFProtection').getTokenName()}" 21429 * data-token-value="${require('dw/web/CSRFProtection').generateToken()}" 21430 * hidden="hidden" 21431 * ></div> 21432 */ 21433 class Token extends Widget { 21434 /** 21435 * @description Widget initialization logic 21436 * @returns {void} 21437 */ 21438 init() { 21439 Object(_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["setCurrentToken"])(this.config.tokenName, this.config.tokenValue); 21440 } 21441 21442 } 21443 21444 return Token; 21445}); 21446 21447/***/ }), 21448
21449/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/CountrySelector.js": 21450/*!*********************************************************************************************************!*\ 21451 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/CountrySelector.js ***! 21452 \*********************************************************************************************************/ 21453/*! exports provided: default */ 21454/***/ (function(module, __webpack_exports__, __webpack_require__) { 21455 21456"use strict"; 21457__webpack_require__.r(__webpack_exports__); 21458/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 21459/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 21460/* harmony import */ var _toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 21461 21462 21463const keyCode = Object.freeze({ 21464 RETURN: 13, 21465 SPACE: 32 21466}); 21467/** 21468 * @typedef {typeof import('widgets/Widget').default} Widget 21469 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 21470 */ 21471 21472/** 21473 * @description Country selector switcher 21474 * @param {Widget} Widget Base widget for extending 21475 * @returns {typeof CountrySelector} Country Selector class 21476 */ 21477 21478/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 21479 /** 21480 * @category widgets 21481 * @subcategory header 21482 * @class CountrySelector 21483 * @augments Widget 21484 * @classdesc Represents `CountrySelector` implementation: 21485 * - Acts as a usability [component {@link MenuButton}](https://www.w3.org/TR/wai-aria-practices/#menubutton) on lg/xl viewports and as {@link HamburgerMenuItem} on sm/md viewports 21486 * For sm/md viewports {@link CountrySelector} class will be mixed into special {@link HamburgerMenuItem}-like class {@link CountrySelectorMenuItem} 21487 * - Allows customer to choose target localized version of the site for both, locales and external sites. Also changes currency in accordance to selected locale/country. 21488 * @property {string} data-widget - Widget name `countrySelector` 21489 * @property {string} data-url-locale - Set chosen localization info URL for current site locale 21490 * @property {string} data-url-site - Set chosen site info URL for target site locale 21491 * @example <caption>Example of CountrySelector for lg/xl viewport</caption> 21492 * <div 21493 * data-widget="countrySelector" 21494 * data-url-locale="${URLUtils.url('Page-SetLocale')}" 21495 * data-url-site="${URLUtils.url('Page-SetSite')}" 21496 * > 21497 * <div 21498 * class="b-country_selector" 21499 * data-widget.lg.xl="menuButton" 21500 * data-event-keydown.lg.xl="handleKeydown" 21501 * data-event-click.lg.xl="toggleMenu" 21502 * data-forward-to-parent="switchLocale" 21503 * > 21504 * <button 21505 * onclick="" 21506 * class="b-country_selector-switcher" 21507 * ... 21508 * > 21509 * <span class="b-country_selector-locale"> 21510 * ... selected locale 21511 * </span> 21512 * </button> 21513 * 21514 * <ul 21515 * role="menu" 21516 * ... 21517 * > 21518 * <isloop items="${pdict.localeModel.locale.localeLinks}" var="localeLink"> 21519 * <li 21520 * data-widget.lg.xl="menuBarItem" 21521 * data-forward-to-parent="switchLocale" 21522 * ... 21523 * > 21524 * <button 21525 * data-locale-config="${JSON.stringify(localeLink)}" 21526 * data-event-click.prevent="switchLocale" 21527 * data-event-keydown="switchLocale" 21528 * ... 21529 * > 21530 * ...
21531 * <span class="b-country_selector-locale_language">${localeLink.displayName}</span> 21532 * </button> 21533 * </li> 21534 * </isloop> 21535 * </ul> 21536 * </div> 21537 * </div> 21538 * @example <caption>Example of CountrySelector for md/sm viewport</caption> 21539 * ... 21540 * <isloop items="${pdict.localeModel.locale.localeLinks}" var="localeLink"> 21541 * <div role="none" class="b-menu_bar-flyout_column"> 21542 * <div 21543 * data-widget.sm.md="countrySelectorMenuItem" 21544 * data-event-click.sm.md="handleClick" 21545 * data-event-keydown.sm.md="handleKeydown" 21546 * data-locale-config="${JSON.stringify(localeLink)}" 21547 * data-url-locale="${URLUtils.url('Page-SetLocale')}" 21548 * data-url-site="${URLUtils.url('Page-SetSite')}" 21549 * ... 21550 * > 21551 * <button ...> 21552 * ... locale data 21553 * </button> 21554 * </div> 21555 * </div> 21556 * </isloop> 21557 */ 21558 class CountrySelector extends Widget { 21559 prefs() { 21560 return { 21561 urlLocale: '', 21562 urlSite: '', 21563 ...super.prefs() 21564 }; 21565 } 21566 /** 21567 * @description Method to switch locale depending on event. Is used for switching locale either by mouse click or by pressing `enter` or `space` on button from keyboard 21568 * @listens dom#keydown 21569 * @listens dom#click 21570 * @param {refElement} button An element, which was chosen by customer and contains all info about selected localization in data attributes 21571 * @param {Event} event Source event, happened on button element 21572 * @returns {void} 21573 */ 21574 21575 21576 switchLocale(button, event) { 21577 if (!(event instanceof KeyboardEvent)) { 21578 this.changeLocale(button.data('localeConfig')); 21579 return; 21580 } 21581 21582 let preventEventActions = false; 21583 21584 switch (event.keyCode) { 21585 case keyCode.RETURN: 21586 case keyCode.SPACE: 21587 preventEventActions = true; 21588 this.changeLocale(button.data('localeConfig')); 21589 break; 21590 21591 default: 21592 break; 21593 } 21594 21595 if (preventEventActions) { 21596 event.preventDefault(); 21597 event.stopPropagation(); 21598 } 21599 } 21600 /** 21601 * @description Change locale. Sends change locale request, 21602 * obtains updated URL and follows it to display target locale/site 21603 * @param {object} localeConfig - Target Locale configuration object 21604 * @param {string} localeConfig.localeID - Target Locale ID 21605 * @param {string} localeConfig.currencyCode - Target Locale currency code 21606 * @param {string} localeConfig.siteID - Target Locale site ID 21607 * @param {boolean} localeConfig.isOtherSite - If Target Locale not belongs to current site 21608 */ 21609 21610 21611 changeLocale(localeConfig) { 21612 const queryString = (this.ref('html').data('querystring') || '').replace(/&/g, '&'); 21613 const data = { 21614 code: localeConfig.localeID, 21615 CurrencyCode: localeConfig.currencyCode, 21616 queryString: queryString || '', 21617 action: this.ref('html').data('action'), 21618 siteID: localeConfig.siteID 21619 }; 21620 const url = localeConfig.isOtherSite ? this.prefs().urlSite : this.prefs().urlLocale; 21621 Object(_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["getJSONByUrl"])(url, data).then(response => { 21622 if (response && response.redirectUrl) { 21623 const brandcode = 'BrandSDK-brandJSON_'; 21624 let brandcodeItem = brandcode.concat($('#ejgContactUs').data('brandcode')); 21625 sessionStorage.removeItem(brandcodeItem); 21626 window.location.assign(response.redirectUrl); 21627 } 21628 }); 21629 } 21630 21631 } 21632 21633 return CountrySelector; 21634}); 21635 21636/***/ }), 21637
21638/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/CountrySelectorMenuItem.js": 21639/*!*****************************************************************************************************************!*\ 21640 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/CountrySelectorMenuItem.js ***! 21641 \*****************************************************************************************************************/ 21642/*! exports provided: default */ 21643/***/ (function(module, __webpack_exports__, __webpack_require__) { 21644 21645"use strict"; 21646__webpack_require__.r(__webpack_exports__); 21647/** 21648 * @typedef {ReturnType<typeof import('widgets/global/HamburgerMenuItem').default>} HamburgerMenuItem 21649 */ 21650const keyCode = Object.freeze({ 21651 RETURN: 13, 21652 SPACE: 32 21653}); 21654/** 21655 * @description Base CountrySelectorMenuItem implementation 21656 * @param {HamburgerMenuItem} HamburgerMenuItem Base widget for extending 21657 * @returns {typeof CountrySelectorMenuItem} BackToTop class 21658 */ 21659 21660/* harmony default export */ __webpack_exports__["default"] = (function (HamburgerMenuItem) { 21661 /** 21662 * @category widgets 21663 * @subcategory header 21664 * @class CountrySelectorMenuItem 21665 * @augments HamburgerMenuItem 21666 * @classdesc CountrySelectorMenuItem component. Used to switch locales on small viewports. Mixes in 2 widgets: 21667 * - {@link HamburgerMenuItem} - to be able to behave correctly as a hamburger menu item on small viewports 21668 * - {@link CountrySelector} - to be able to handle Locale Switcher functionality 21669 * <br>Was created due to extend {@link HamburgerMenuItem} `click` and `keydown` and use {@link CountrySelector} mixin to switch locale/country 21670 * @property {string} data-widget - Widget name `countrySelectorMenuItem` 21671 * @property {object} data-locale-config - Locale item config object 21672 * @example 21673 * // use this code to display widget 21674 * <div 21675 * data-widget.sm.md="countrySelectorMenuItem" 21676 * data-event-click.sm.md="handleClick" 21677 * data-event-keydown.sm.md="handleKeydown" 21678 * data-locale-config="${JSON.stringify(localeLink)}" 21679 * data-url-locale="${URLUtils.url('Page-SetLocale')}" 21680 * data-url-site="${URLUtils.url('Page-SetSite')}" 21681 * role="none" 21682 * class="b-menu_item" 21683 * > 21684 * <button 21685 * role="menuitem" 21686 * b-menu_item-link 21687 * tabindex="-1" 21688 * data-ref="itemLink" 21689 * class="b-menu_item-link" 21690 * aria-label="${Resource.msgf('countrySelector.link.wai', 'global', null, localeLink.displayName)}" 21691 * lang="${localeLink.language}" 21692 * > 21693 * .... 21694 * </button> 21695 * </div> 21696 */ 21697 class CountrySelectorMenuItem extends HamburgerMenuItem { 21698 /** 21699 * @description Click Event handler 21700 * @listens dom#click 21701 * @returns {void} 21702 */ 21703 handleClick() { 21704 // class CountrySelector, method changeLocale 21705 this.callIfExists('changeLocale', this.ref('self').data('localeConfig')); 21706 } 21707 /** 21708 * @description Keydown Event handler 21709 * @listens dom#keydown 21710 * @param {HTMLElement} _ Source of keydown event 21711 * @param {KeyboardEvent} event Event object 21712 * @returns {void} 21713 */ 21714 21715 21716 handleKeydown(_, event) { 21717 super.handleKeydown(_, event); 21718 let preventEventActions = false; 21719 21720 switch (event.keyCode) { 21721 case keyCode.SPACE: 21722 case keyCode.RETURN: 21723 // class CountrySelector, method changeLocale 21724 this.callIfExists('changeLocale', this.ref('self').data('localeConfig')); 21725 preventEventActions = true; 21726 break; 21727 21728 default: 21729 break; 21730 } 21731 21732 if (preventEventActions) { 21733 event.preventDefault(); 21734 event.stopPropagation(); 21735 } 21736 } 21737 21738 } 21739 21740 return CountrySelectorMenuItem; 21741}); 21742 21743/***/ }), 21744
21745/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/HamburgerMenuItem.js": 21746/*!***********************************************************************************************************!*\ 21747 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/HamburgerMenuItem.js ***! 21748 \***********************************************************************************************************/ 21749/*! exports provided: default */ 21750/***/ (function(module, __webpack_exports__, __webpack_require__) { 21751 21752"use strict"; 21753__webpack_require__.r(__webpack_exports__); 21754const keyCode = Object.freeze({ 21755 ESC: 27, 21756 PAGEUP: 33, 21757 PAGEDOWN: 34, 21758 END: 35, 21759 HOME: 36, 21760 UP: 38, 21761 DOWN: 40, 21762 RIGHT: 39, 21763 LEFT: 37 21764}); 21765/** 21766 * @typedef {ReturnType<typeof import('widgets/global/ListAccessibility').default>} ListAccessibility 21767 * @typedef {ReturnType<typeof import('widgets/header/MenuBarItem').default>} MenuBarItem 21768 */ 21769 21770/** 21771 * @param {ListAccessibility} ListAccessibility Base widget for extending 21772 * @returns {typeof HamburgerMenuItem} HamburgerMenuItem widget 21773 */ 21774 21775/* harmony default export */ __webpack_exports__["default"] = (function (ListAccessibility) { 21776 /** 21777 * @category widgets 21778 * @subcategory header 21779 * @class HamburgerMenuItem 21780 * @augments ListAccessibility 21781 * @classdesc Represents MenuPanel component with next features: 21782 * 1. Represents Menu Item with specific logic for submenus, handling viewtype changes, keyboard navigation, mouse click. 21783 * 2. Allow open/close menu 21784 * 3. Allow set/clear Submenu HTML 21785 * Submenu implemented as empty container where pasted html of selected category taken from original markup that was implemented for MegaMenu, 21786 * in order to not dublicate nav structure and reuse it as much as possible and to implement reliable slide animation 21787 * {@link HamburgerMenuItem} may contain another {@link HamburgerMenuItem}. {@link MenuBarItem} Widget can contain another {@link MenuBarItem} like submenu. 21788 * @example <caption>Example of HamburgerMenuItem widget usage</caption> 21789 * <li role="none" 21790 * class="b-menu_bar-item" 21791 * data-widget="hamburgerMenuItem" 21792 * data-prevent-show-submenu="false" 21793 * data-event-keydown="handleKeydown" 21794 *> 21795 * <a 21796 * role="menuitem" 21797 * class="b-menu_bar-link m-has-submenu" 21798 * aria-label="${category.name}" 21799 * aria-haspopup="true" 21800 * aria-expanded="false" 21801 * itemprop="url name" 21802 * tabindex="${status.first ? 0 : -1}" 21803 * href="<isprint value="${category.url}" encoding="htmldoublequote"/>" 21804 * data-ref="itemLink" 21805 * > 21806 * ${category.name} 21807 * </a> 21808 * <isset name="menuItem" value="${category}" scope="page" /> 21809 * <div 21810 * role="menu" 21811 * class="b-menu_bar-flyout" 21812 * aria-label="${category.name}" 21813 * aria-hidden="true" 21814 * data-ref="submenu" 21815 * > 21816 * <div role="none" class="b-menu_bar-flyout_inner"> 21817 * <isinclude template="components/header/menuItem" /> 21818 * 21819 * <button 21820 * role="menuitem" 21821 * class="b-menu_bar-flyout_close" 21822 * aria-label="${Resource.msg('common.close', 'common', null)}" 21823 * title="${Resource.msg('common.close', 'common', null)}" 21824 * type="button" 21825 * tabindex="-1" 21826 * > 21827 * <isinclude template="/common/svg/close" /> 21828 * </button> 21829 * </div> 21830 * </div> 21831 *</li> 21832 * @property {string} data-widget - Widget name `hamburgerMenuItem` 21833 * @property {string} data-event-keydown - Event listener for `handleKeydown` method 21834 * @property {boolean} [data-prevent-show-submenu=false] - prevent showing submenu 21835 */ 21836 class HamburgerMenuItem extends ListAccessibility { 21837 /** 21838 * @description calls super constructor, adds initial states etc. 21839 * 21840 * @param {HTMLElement} el DOM element 21841 * @param {{[x: string]: object|string|number|boolean|null|undefined}} config widget config 21842 */ 21843 constructor(el, config = {}) { 21844 super(el, config); 21845 this.isSubmenuOpen = false;
21846 } 21847 21848 prefs() { 21849 return { 21850 preventShowSubmenu: false, 21851 submenu: 'submenu', 21852 ...super.prefs() 21853 }; 21854 } 21855 /** 21856 * @description Initialize widget logic 21857 * @returns {void} 21858 */ 21859 21860 21861 init() { 21862 this.defineItems(); 21863 this.ref('self').attr('role', 'presentation'); 21864 this.has(this.prefs().itemLink, () => { 21865 this.ref(this.prefs().itemLink).attr('role', 'menuitem'); 21866 }); 21867 this.onDestroy(() => { 21868 this.ref('self').attr('role', null); 21869 this.has(this.prefs().itemLink, () => { 21870 this.ref(this.prefs().itemLink).attr('role', null); 21871 }); 21872 }); 21873 } 21874 /** 21875 * @description Mark Submenu Opened 21876 * @returns {void} 21877 */ 21878 21879 21880 markSubmenuOpened() { 21881 this.isSubmenuOpen = true; 21882 } 21883 /** 21884 * @description Returns true if have submenu 21885 * @returns {boolean} Return true if submenu exist 21886 */ 21887 21888 21889 hasSubmenu() { 21890 return this.has(this.prefs().submenu) && !this.prefs().preventShowSubmenu; 21891 } 21892 /** 21893 * @description Returns true if submenu open 21894 * @returns {boolean} Return true if submenu opened 21895 */ 21896 21897 21898 hasOpenedSubmenu() { 21899 return !!this.isSubmenuOpen; 21900 } 21901 /** 21902 * @description Open next menu level if exist 21903 * @emits HamburgerMenuItem#navPanelNextLevel 21904 * @returns {void} 21905 */ 21906 21907 21908 openMenu() { 21909 if (this.hasSubmenu()) { 21910 let submenuHTML; 21911 let itemLinkRefEl; 21912 this.has(this.prefs().itemLink, itemLink => { 21913 itemLinkRefEl = itemLink; 21914 }); 21915 this.has(this.prefs().submenu, submenu => { 21916 const submenuElement = submenu.get(); 21917 21918 if (submenuElement) { 21919 submenuHTML = submenuElement.innerHTML; 21920 } 21921 }); 21922 /** 21923 * @description Event to open nav panel next level 21924 * @event HamburgerMenuItem#navPanelNextLevel 21925 */ 21926 21927 this.eventBus().emit('nav.panel.next.level', { 21928 htmlMarkup: submenuHTML, 21929 parentMenuItem: itemLinkRefEl 21930 }); 21931 } 21932 } 21933 /** 21934 * @description Clear submenu HTML 21935 * @returns {void} 21936 */ 21937 21938 21939 clearSubmenuHTML() { 21940 this.has(this.prefs().submenu, submenu => { 21941 const submenuElement = submenu.get(); 21942 21943 if (submenuElement) { 21944 submenuElement.innerHTML = ''; 21945 } 21946 }); 21947 } 21948 /** 21949 * @description Set Submenu HTML 21950 * @param {string} submenuHTML Submenu HTML 21951 * @returns {void} 21952 */ 21953 21954 21955 setSubmenuHTML(submenuHTML) { 21956 this.has(this.prefs().submenu, submenu => { 21957 const submenuElement = submenu.get(); 21958 21959 if (submenuElement) { 21960 submenuElement.innerHTML = submenuHTML; 21961 } 21962 }); 21963 } 21964 /** 21965 * @description Click Event handler 21966 * @listens dom#click 21967 * @param {HTMLElement} _ Source of keydown event 21968 * @param {Event} event Event object 21969 * @returns {void} 21970 */ 21971 21972 21973 handleClick(_, event) { 21974 if (this.hasSubmenu()) { 21975 event.preventDefault(); 21976 this.openMenu(); 21977 } 21978 } 21979 /** 21980 * @description Keydown Event handler 21981 * @listens dom#keydown 21982 * @emits HamburgerMenuItem#navPanelPreviousLevel 21983 * @param {HTMLElement} _ Source of keydown event 21984 * @param {KeyboardEvent} event Event object 21985 * @returns {void} 21986 */ 21987 21988 21989 handleKeydown(_, event) { 21990 let preventEventActions = false; 21991 21992 if (!this.hasOpenedSubmenu()) { 21993 return; 21994 } 21995 21996 switch (event.keyCode) { 21997 case keyCode.LEFT: 21998 /** 21999 * @description Event to nav panel previous level 22000 * @event HamburgerMenuItem#navPanelPreviousLevel 22001 */ 22002 this.eventBus().emit('nav.panel.previous.level'); 22003 preventEventActions = true; 22004 break; 22005 22006 case keyCode.RIGHT: 22007 this.currentItem.openMenu(); 22008 preventEventActions = true; 22009 break; 22010 22011 case keyCode.PAGEUP: 22012 case keyCode.HOME: 22013 this.setFocusToFirstItem(); 22014 preventEventActions = true; 22015 break; 22016 22017 case keyCode.PAGEDOWN: 22018 case keyCode.END: 22019 this.setFocusToLastItem(); 22020 preventEventActions = true; 22021 break; 22022 22023 case keyCode.UP: 22024 this.setFocusToPreviousItem(); 22025 preventEventActions = true; 22026 break; 22027 22028 case keyCode.DOWN: 22029 this.setFocusToNextItem(); 22030 preventEventActions = true; 22031 break; 22032 22033 default: 22034 break; 22035 } 22036 22037 if (preventEventActions) { 22038 event.preventDefault(); 22039 event.stopPropagation(); 22040 } 22041 } 22042 22043 } 22044 22045 return HamburgerMenuItem; 22046}); 22047 22048/***/ }), 22049
22050/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MegaMenu.js": 22051/*!**************************************************************************************************!*\ 22052 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MegaMenu.js ***! 22053 \**************************************************************************************************/ 22054/*! exports provided: default */ 22055/***/ (function(module, __webpack_exports__, __webpack_require__) { 22056 22057"use strict"; 22058__webpack_require__.r(__webpack_exports__); 22059const keyCode = Object.freeze({ 22060 TAB: 9, 22061 RETURN: 13, 22062 SPACE: 32, 22063 PAGEUP: 33, 22064 PAGEDOWN: 34, 22065 END: 35, 22066 HOME: 36, 22067 LEFT: 37, 22068 UP: 38, 22069 RIGHT: 39, 22070 DOWN: 40 22071}); 22072/** 22073 * @typedef {ReturnType<typeof import('widgets/global/ListAccessibility').default>} ListAccessibility 22074 * @typedef {InstanceType<ReturnType<typeof import('widgets/header/MenuBarItem').default>>} menuBarItem 22075 */ 22076 22077/** 22078 * @param {ListAccessibility} ListAccessibility Base widget for extending 22079 * @returns {typeof MegaMenu} MegaMenu widget 22080 */ 22081 22082/* harmony default export */ __webpack_exports__["default"] = (function (ListAccessibility) { 22083 /** 22084 * @category widgets 22085 * @subcategory header 22086 * @class MegaMenu 22087 * @augments ListAccessibility 22088 * @classdesc Menu bar widget for Top Navigation menu. 22089 * Represents MegaMenu component with next features: 22090 * 1. Support keyboard navigation for accessibility using as basis ListAccessibility mixin and implement specific for Mega Menu accessibility behaviour 22091 * 2. Implementing opening/closing of mega menu flyout 22092 * 22093 * MegaMenu widget should contain {@link MenuBarItem} widgets that implement one menu item. 22094 * For additional information you can check: 22095 * cartridges/app_storefront_widgets/cartridge/templates/default/components/header/menu.isml 22096 * MegaMenu widget (menubar in specs) should be imlemented according to https://www.w3.org/TR/wai-aria-practices/#menu specs 22097 * @example <caption>Example of MegaMenu usage</caption> 22098 <ul 22099 id="main-menu" 22100 class="b-menu_bar-inner" 22101 aria-label="Main categories" 22102 data-widget.lg.xl="megaMenu" 22103 data-event-keydown.lg.xl="handleKeydown" 22104 > 22105 ...Menu bar items 22106 </ul> 22107 * @property {string} data-widget - Widget name `MegaMenu` 22108 * @property {string} data-event-keydown - Event listener for `handleKeydown` method 22109 */ 22110 class MegaMenu extends ListAccessibility { 22111 /** 22112 * @description Initialize widget logic. 22113 * Define current, first and last menu item. 22114 * Set the role of menu. 22115 * @returns {void} 22116 */ 22117 init() { 22118 this.defineItems(); 22119 this.eventBus().on('mega.menu.close.items', 'closeItems'); 22120 this.ref('self').attr('role', 'menubar'); 22121 this.onDestroy(() => { 22122 this.ref('self').attr('role', false); 22123 }); 22124 } 22125 /** 22126 * @description Set focus to item 22127 * @param {any} menuItem menuItem Widget 22128 * @returns {void} 22129 */ 22130 22131 22132 setFocusToItem(menuItem) { 22133 let hasOpenedMenu = false;
22134 const MenuBarItem = this.getConstructor('menuBarItem'); 22135 this.eachChild(child => { 22136 if (!(child instanceof MenuBarItem)) { 22137 return; 22138 } 22139 22140 if (child.hasOpenedSubmenu()) { 22141 hasOpenedMenu = true; 22142 } 22143 22144 child.removeTabIndex(); 22145 child.closeMenu(); 22146 }); 22147 menuItem.addTabIndex(); 22148 menuItem.focus(); 22149 22150 if (hasOpenedMenu) { 22151 menuItem.openMenu(); 22152 } 22153 22154 this.currentItem = menuItem; 22155 } 22156 /** 22157 * @description Close all menu Items 22158 * @returns {void} 22159 */ 22160 22161 22162 closeItems() { 22163 this.eachChild(child => { 22164 if (typeof child.closeMenu === 'function') { 22165 child.closeMenu(); 22166 } 22167 }); 22168 } 22169 /** 22170 * @description Handle Enter key event 22171 * @listens dom:keydown 22172 * @param {KeyboardEvent} event Event Object 22173 * @returns {void} 22174 */ 22175 22176 22177 handleEnterKey(event) { 22178 const domNode = 22179 /** @type {HTMLAnchorElement} */ 22180 event.target; 22181 22182 if (domNode && domNode.href) { 22183 window.location.assign(domNode.href); 22184 } 22185 } 22186 /** 22187 * @description Keydown Event handler 22188 * @listens dom:keydown 22189 * @param {HTMLElement} _ Source of keydown event 22190 * @param {KeyboardEvent} event Event object 22191 * @returns {void} 22192 */ 22193 22194 22195 handleKeydown(_, event) { 22196 let preventEventActions = false; 22197 22198 switch (event.keyCode) { 22199 case keyCode.PAGEUP: 22200 case keyCode.HOME: 22201 this.setFocusToFirstItem(); 22202 preventEventActions = true; 22203 break; 22204 22205 case keyCode.PAGEDOWN: 22206 case keyCode.END: 22207 this.setFocusToLastItem(); 22208 preventEventActions = true; 22209 break; 22210 22211 case keyCode.RIGHT: 22212 this.setFocusToNextItem(); 22213 preventEventActions = true; 22214 break; 22215 22216 case keyCode.LEFT: 22217 this.setFocusToPreviousItem(); 22218 preventEventActions = true; 22219 break; 22220 22221 case keyCode.UP: 22222 this.currentItem.openMenu(false, true); 22223 preventEventActions = true; 22224 break; 22225 22226 case keyCode.DOWN: 22227 this.currentItem.openMenu(true, false); 22228 preventEventActions = true; 22229 break; 22230 22231 case keyCode.TAB: 22232 this.closeItems(); 22233 break; 22234 22235 case keyCode.RETURN: 22236 case keyCode.SPACE: 22237 this.handleEnterKey(event); 22238 preventEventActions = true; 22239 break; 22240 22241 default: 22242 break; 22243 } 22244 22245 if (preventEventActions) { 22246 event.preventDefault(); 22247 event.stopPropagation(); 22248 } 22249 } 22250 22251 } 22252 22253 return MegaMenu; 22254}); 22255 22256/***/ }), 22257
22258/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuBarItem.js": 22259/*!*****************************************************************************************************!*\ 22260 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuBarItem.js ***! 22261 \*****************************************************************************************************/ 22262/*! exports provided: default */ 22263/***/ (function(module, __webpack_exports__, __webpack_require__) { 22264 22265"use strict"; 22266__webpack_require__.r(__webpack_exports__); 22267/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 22268/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 22269/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 22270 22271 22272 22273/** 22274 * @typedef {ReturnType<typeof import('widgets/global/ListAccessibility').default>} ListAccessibility 22275 * @typedef {InstanceType<ReturnType<typeof import('widgets/header/MegaMenu').default>>} MegaMenu 22276 */ 22277 22278const keyCode = Object.freeze({ 22279 ESC: 27, 22280 PAGEUP: 33, 22281 PAGEDOWN: 34, 22282 END: 35, 22283 HOME: 36, 22284 UP: 38, 22285 DOWN: 40 22286}); 22287const ITEM_SWITCH_TIMEOUT = 200; 22288/** 22289 * @param {ListAccessibility} ListAccessibility Base widget for extending 22290 * @returns {typeof MenuBarItem} MenuBarItem widget 22291 */ 22292 22293/* harmony default export */ __webpack_exports__["default"] = (function (ListAccessibility) { 22294 /** 22295 * @category widgets 22296 * @subcategory header 22297 * @class MenuBarItem 22298 * @augments ListAccessibility 22299 * @classdesc Represents MenuBarItem component with next features: 22300 * 2. MenuBarItem Widget can contain another MenuBarItem like submenu. 22301 * 3. Allow open/close menu 22302 * 4. Allow handling mouse, keyboard events 22303 * 5. Allow check if submenus exist and its state(opened/closed) 22304 * 22305 * MenuBarItem widget should be a part of {@link MegaMenu} widget that implements the menu. 22306 * MenuBarItem widget should be imlemented according to https://www.w3.org/TR/wai-aria-practices/#menu specs 22307 * @example <caption>Example of menuBarItem widget usage</caption> 22308 * <li role="none" 22309 * class="b-menu_bar-item" 22310 * data-widget="menuBarItem" 22311 * data-event-mouseenter="mouseEnter" 22312 * data-event-mouseleave="mouseLeave" 22313 * data-event-keydown="handleKeydown" 22314 *> 22315 * <a 22316 * role="menuitem" 22317 * class="b-menu_bar-link m-has-submenu" 22318 * aria-label="${category.name}" 22319 * aria-haspopup="true" 22320 * aria-expanded="false" 22321 * itemprop="url name" 22322 * tabindex="${status.first ? 0 : -1}" 22323 * href="<isprint value="${category.url}" encoding="htmldoublequote"/>" 22324 * data-ref="itemLink" 22325 * data-event-blur="handleClose" 22326 * > 22327 * ${category.name} 22328 * </a> 22329 * <isset name="menuItem" value="${category}" scope="page" /> 22330 * <div 22331 * role="menu" 22332 * class="b-menu_bar-flyout" 22333 * aria-label="${category.name}" 22334 * aria-hidden="true" 22335 * data-ref="submenu" 22336 * > 22337 * <div role="none" class="b-menu_bar-flyout_inner"> 22338 * <isinclude template="components/header/menuItem" /> 22339 * 22340 * <button 22341 * role="menuitem" 22342 * class="b-menu_bar-flyout_close" 22343 * aria-label="${Resource.msg('common.close', 'common', null)}" 22344 * title="${Resource.msg('common.close', 'common', null)}" 22345 * data-event-click="handleClose" 22346 * type="button" 22347 * tabindex="-1" 22348 * > 22349 * <isinclude template="/common/svg/close" /> 22350 * </button> 22351 * </div> 22352 * </div> 22353 *</li> 22354 * @property {string} data-widget - Widget name `MenuBarItem` 22355 * @property {string} data-event-mouseenter - Event listener for `mouseEnter` method 22356 * @property {string} data-event-mouseleave - Event listener for `mouseLeave` method 22357 * @property {string} data-event-keydown - Event listener for `handleKeydown` method 22358 * @property {string} data-event-click - Event listener for `handleClose` method 22359 */ 22360 class MenuBarItem extends ListAccessibility { 22361 prefs() { 22362 return { 22363 submenu: 'submenu', 22364 menuMoreLink: 'menuMoreLink', 22365 ...super.prefs() 22366 }; 22367 } 22368 /**
22369 * @description Initialize widget logic. 22370 * @returns {void} 22371 */ 22372 22373 22374 init() { 22375 super.init(); // Async init to not block other widget init 22376 22377 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 22378 this.focusableItems = this.getMenuItems(); 22379 this.firstItem = this.focusableItems[0]; 22380 this.lastItem = this.focusableItems[this.focusableItems.length - 1]; 22381 this.currentItem = this.focusableItems[0]; 22382 }, 0); 22383 this.isSubmenuOpen = false; 22384 this.isSubmenuInFocus = false; 22385 } 22386 /** 22387 * @description Returns menu item array 22388 * @returns {Array<HTMLElement>} MenuItems array 22389 */ 22390 22391 22392 getMenuItems() { 22393 const menuItems = []; 22394 this.eachChild(child => { 22395 if (!(child instanceof MenuBarItem)) { 22396 return; 22397 } 22398 22399 child.has(this.prefs().itemLink, itemLink => { 22400 menuItems.push(itemLink.get()); 22401 }); 22402 menuItems.push(...child.getMenuItems()); 22403 child.has(this.prefs().menuMoreLink, menuMoreLink => { 22404 menuItems.push(menuMoreLink.get()); 22405 }); 22406 }); 22407 return menuItems; 22408 } 22409 /** 22410 * @description Returns true if widget has submenu 22411 * @returns {boolean} Return true if submenu exist 22412 */ 22413 22414 22415 hasSubmenu() { 22416 return this.has(this.prefs().submenu); 22417 } 22418 /** 22419 * @description Returns true if submenu open 22420 * @returns {boolean} Return true if submenu opened 22421 */ 22422 22423 22424 hasOpenedSubmenu() { 22425 return !!this.isSubmenuOpen; 22426 } 22427 /** 22428 * @description Returns true if submenu in focus 22429 * @returns {boolean} Return true if submenu focused 22430 */ 22431 22432 22433 hasFocusedSubmenu() { 22434 return !!this.isSubmenuInFocus; 22435 } 22436 /** 22437 * @description Remove Tab Index from element 22438 * @returns {void} 22439 */ 22440 22441 22442 removeTabIndex() { 22443 this.ref(this.prefs().itemLink).attr('tabindex', '-1'); 22444 } 22445 /** 22446 * @description Add Tab Index to element 22447 * @returns {void} 22448 */ 22449 22450 22451 addTabIndex() { 22452 this.ref(this.prefs().itemLink).attr('tabindex', '0'); 22453 } 22454 /** 22455 * @description Open menu if exist and focus first/last element 22456 * @emits MenuBarItem#megaMenuCloseItems 22457 * @param {boolean} [focusFirstItem] Item focus flag 22458 * @param {boolean} [focusLastItem] Item focus flag 22459 * @returns {void} 22460 */ 22461 22462 22463 openMenu(focusFirstItem, focusLastItem) { 22464 if (this.hasSubmenu()) { 22465 this.ref(this.prefs().itemLink).attr('aria-expanded', 'true'); 22466 this.ref(this.prefs().submenu).attr('aria-hidden', 'false'); 22467 this.ref(this.prefs().submenu).attr('data-tau', 'menu_flyout'); 22468 this.isSubmenuOpen = true; 22469 this.isSubmenuInFocus = focusFirstItem || focusLastItem; 22470 22471 if (focusFirstItem) { 22472 this.setFocusToFirstItem(); 22473 } 22474 22475 if (focusLastItem) { 22476 this.setFocusToLastItem(); 22477 } 22478 22479 this.outSideListener = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["clickOutside"])(this.ref('self'), () => { 22480 /** 22481 * @description Event to close all items 22482 * @event MenuBarItem#megaMenuCloseItems 22483 */ 22484 this.emit('mega.menu.close.items'); 22485 }, false); 22486 22487 if (this.outSideListener) { 22488 this.onDestroy(this.outSideListener); 22489 } 22490 } 22491 } 22492 /** 22493 * @description Close menu 22494 * @param {boolean} [returnFocus] Focus flag 22495 * @returns {void} 22496 */ 22497 22498 22499 closeMenu(returnFocus) { 22500 if (this.hasSubmenu()) { 22501 this.ref(this.prefs().itemLink).attr('aria-expanded', 'false'); 22502 this.ref(this.prefs().submenu).attr('aria-hidden', 'true'); 22503 this.ref(this.prefs().submenu).attr('data-tau', false); 22504 this.isSubmenuOpen = false; 22505 this.isSubmenuInFocus = false; 22506 22507 if (returnFocus) { 22508 this.focus(); 22509 } 22510 22511 if (this.outSideListener) { 22512 this.outSideListener(); 22513 this.outSideListener = null; 22514 } 22515 } 22516 } 22517 /** 22518 * @description Mouse enter event handler 22519 * @listens dom#mouseenter 22520 * @emits MenuBarItem#megaMenuCloseItems 22521 * @returns {void} 22522 */ 22523 22524 22525 mouseEnter() { 22526 if (this.timerCleanerLeave) { 22527 this.timerCleanerLeave(); 22528 } 22529 22530 this.timerCleanerEnter = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 22531 /**
22532 * @description Event to close all items 22533 * @event MenuBarItem#megaMenuCloseItems 22534 */ 22535 this.eventBus().emit('mega.menu.close.items'); 22536 this.openMenu(); 22537 }, ITEM_SWITCH_TIMEOUT); 22538 } 22539 /** 22540 * @description Mouse leave event handler 22541 * @listens dom#mouseleave 22542 * @returns {void} 22543 */ 22544 22545 22546 mouseLeave() { 22547 if (this.timerCleanerEnter) { 22548 this.timerCleanerEnter(); 22549 } 22550 22551 this.timerCleanerLeave = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 22552 this.closeMenu(); 22553 }, ITEM_SWITCH_TIMEOUT); 22554 } 22555 /** 22556 * @description Close Event handler 22557 * @listens dom#click 22558 * @param {HTMLElement} _ Source of keydown event 22559 * @param {Event} event Event object 22560 * @returns {void} 22561 */ 22562 22563 22564 handleClose(_, event) { 22565 event.preventDefault(); 22566 this.closeMenu(); 22567 } 22568 /** 22569 * @description Click Event handler 22570 * @listens dom#click 22571 * @param {HTMLElement} _ Source of keydown event 22572 * @param {Event} event Event object 22573 * @returns {void} 22574 */ 22575 22576 22577 handleClick(_, event) { 22578 if (this.hasSubmenu() && !this.hasOpenedSubmenu()) { 22579 event.preventDefault(); 22580 this.openMenu(); 22581 } 22582 } 22583 /** 22584 * @description Keydown Event handler 22585 * @listens dom#keydown 22586 * @param {HTMLElement} _ Source of keydown event 22587 * @param {KeyboardEvent} event Event object 22588 * @returns {void} 22589 */ 22590 22591 22592 handleKeydown(_, event) { 22593 let preventEventActions = false; 22594 22595 if (!this.hasFocusedSubmenu()) { 22596 return; 22597 } 22598 22599 switch (event.keyCode) { 22600 case keyCode.ESC: 22601 this.closeMenu(true); 22602 preventEventActions = true; 22603 break; 22604 22605 case keyCode.PAGEUP: 22606 case keyCode.HOME: 22607 this.setFocusToFirstItem(); 22608 preventEventActions = true; 22609 break; 22610 22611 case keyCode.PAGEDOWN: 22612 case keyCode.END: 22613 this.setFocusToLastItem(); 22614 preventEventActions = true; 22615 break; 22616 22617 case keyCode.UP: 22618 this.setFocusToPreviousItem(); 22619 preventEventActions = true; 22620 break; 22621 22622 case keyCode.DOWN: 22623 this.setFocusToNextItem(); 22624 preventEventActions = true; 22625 break; 22626 22627 default: 22628 break; 22629 } 22630 22631 if (preventEventActions) { 22632 event.preventDefault(); 22633 event.stopPropagation(); 22634 } 22635 } 22636 22637 } 22638 22639 return MenuBarItem; 22640}); 22641 22642/***/ }), 22643
22644/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuButton.js": 22645/*!****************************************************************************************************!*\ 22646 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuButton.js ***! 22647 \****************************************************************************************************/ 22648/*! exports provided: default */ 22649/***/ (function(module, __webpack_exports__, __webpack_require__) { 22650 22651"use strict"; 22652__webpack_require__.r(__webpack_exports__); 22653/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 22654 22655const keyCode = Object.freeze({ 22656 ESC: 27, 22657 TAB: 9, 22658 RETURN: 13, 22659 SPACE: 32, 22660 PAGEUP: 33, 22661 PAGEDOWN: 34, 22662 END: 35, 22663 HOME: 36, 22664 LEFT: 37, 22665 UP: 38, 22666 RIGHT: 39, 22667 DOWN: 40 22668}); 22669const MENU_ACTIVATION_DELAY = 200; 22670/** 22671 * @typedef {ReturnType<typeof import('widgets/global/ListAccessibility').default>} ListAccessibility 22672 */ 22673 22674/** 22675 * @param {ListAccessibility} ListAccessibility Base widget for extending 22676 * @returns {typeof MenuButton} MenuButton widget 22677 */ 22678 22679/* harmony default export */ __webpack_exports__["default"] = (function (ListAccessibility) { 22680 /** 22681 * @category widgets 22682 * @subcategory header 22683 * @class MenuButton 22684 * @augments ListAccessibility 22685 * @classdesc Represents MenuButton component with next features: 22686 * 1. Allow open/close menu 22687 * 2. Allow handling mouse, keyboard events to be able react to user's actions 22688 * 3. Allow check if submenus exist and its state(opened/closed) to set focus the correct place 22689 * 4. Support keyboard navigation for accessibility 22690 * MenuButton component should be imlemented according to https://www.w3.org/TR/wai-aria-practices/#menubutton specs 22691 * @example <caption>Example of MenuButton widget usage</caption> 22692 * <div 22693 * data-widget="menuButton" 22694 * data-event-mouseenter="mouseEnter" 22695 * data-event-mouseleave="mouseLeave" 22696 * data-event-keydown="handleKeydown" 22697 * .... 22698 * > 22699 * <a 22700 * role="menuitem" 22701 * aria-haspopup="true" 22702 * aria-expanded="false" 22703 * tabindex="0" 22704 * data-ref="itemLink" 22705 * > 22706 * .... menu button text 22707 * </a> 22708 * <ul 22709 * role="menu" 22710 * aria-hidden="true" 22711 * data-ref="submenu" 22712 * > 22713 * <isloop items="${lLinks}" var="link"> 22714 * <li 22715 * data-widget.lg.xl="menuBarItem" 22716 * role="none" 22717 * > 22718 * <button 22719 * role="menuitem" 22720 * tabindex="-1" 22721 * data-ref="itemLink" 22722 * > 22723 * .... item link 22724 * </button> 22725 * </li> 22726 * </isloop> 22727 * </ul> 22728 * </div> 22729 */ 22730 class MenuButton extends ListAccessibility { 22731 prefs() { 22732 return { 22733 submenu: 'submenu', 22734 ...super.prefs() 22735 }; 22736 } 22737 /** 22738 * @description Initialize widget logic. 22739 * @returns {void} 22740 */ 22741 22742 22743 init() { 22744 super.init(); 22745 this.defineItems(); 22746 } 22747 /** 22748 * @description Keydown Event handler 22749 * @listens dom#keydown 22750 * @param {HTMLElement} _ Source of keydown event 22751 * @param {KeyboardEvent} event Event object 22752 * @returns {void} 22753 */ 22754 22755 22756 handleKeydown(_, event) { 22757 let preventEventActions = false; 22758 22759 switch (event.keyCode) { 22760 case keyCode.PAGEUP: 22761 case keyCode.HOME: 22762 if (this.isSubmenuOpen) { 22763 this.setFocusToFirstItem(); 22764 } 22765 22766 preventEventActions = true; 22767 break; 22768 22769 case keyCode.PAGEDOWN: 22770 case keyCode.END: 22771 if (this.isSubmenuOpen) { 22772 this.setFocusToLastItem(); 22773 } 22774 22775 preventEventActions = true; 22776 break; 22777 22778 case keyCode.UP: 22779 if (!this.isSubmenuOpen) { 22780 this.openMenu(event, false, true); 22781 } else { 22782 this.setFocusToPreviousItem(); 22783 } 22784 22785 preventEventActions = true; 22786 break; 22787 22788 case keyCode.DOWN: 22789 if (!this.isSubmenuOpen) { 22790 this.openMenu(event, true, false); 22791 } else { 22792 this.setFocusToNextItem(); 22793 } 22794 22795 preventEventActions = true; 22796 break; 22797 22798 case keyCode.TAB: 22799 case keyCode.ESC: 22800 this.closeMenu(event, true); 22801 break; 22802 22803 case keyCode.RETURN: 22804 case keyCode.SPACE: 22805 this.openMenu(event, true, false); 22806 preventEventActions = true; 22807 break; 22808 22809 default: 22810 break; 22811 } 22812 22813 if (preventEventActions) { 22814 event.preventDefault(); 22815 event.stopPropagation(); 22816 } 22817 } 22818 /**
22819 * @description Has submenu 22820 * @returns {boolean} Return true if submenu exist 22821 */ 22822 22823 22824 hasSubmenu() { 22825 return this.has(this.prefs().submenu); 22826 } 22827 /** 22828 * @description Open menu if exist 22829 * @param {boolean} [focusFirstItem] Item focus flag 22830 * @param {boolean} [focusLastItem] Item focus flag 22831 * @returns {void} 22832 */ 22833 22834 22835 openMenu(e, focusFirstItem, focusLastItem) { 22836 if (this.hasSubmenu()) { 22837 this.ref(this.prefs().itemLink).attr('aria-expanded', 'true'); 22838 this.ref(this.prefs().submenu).attr('aria-hidden', 'false'); 22839 this.isSubmenuOpen = true; 22840 this.isSubmenuInFocus = focusFirstItem || focusLastItem; 22841 22842 if (focusFirstItem) { 22843 this.setFocusToFirstItem(); 22844 } 22845 22846 if (focusLastItem) { 22847 this.setFocusToLastItem(); 22848 } 22849 } 22850 22851 let ele = e.target; 22852 22853 if (ele.classList.contains('b-country_selector-locale_language') || ele.classList.contains('b-country_selector-switcher')) { 22854 let countrySelectorContainer = document.getElementById('language-switcher-menu'); 22855 22856 if (countrySelectorContainer) { 22857 countrySelectorContainer.classList.remove('h-hidden'); 22858 } 22859 } 22860 } 22861 /** 22862 * @description Close menu 22863 * @param {boolean} [returnFocus] Focus flag 22864 * @returns {void} 22865 */ 22866 22867 22868 closeMenu(e, returnFocus) { 22869 if (this.hasSubmenu()) { 22870 this.ref(this.prefs().itemLink).attr('aria-expanded', 'false'); 22871 this.ref(this.prefs().submenu).attr('aria-hidden', 'true'); 22872 this.isSubmenuOpen = false; 22873 this.isSubmenuInFocus = false; 22874 22875 if (returnFocus) { 22876 this.focus(); 22877 } 22878 } 22879 22880 let ele = e.currentTarget; 22881 22882 if (ele.classList.contains('b-country_selector')) { 22883 let countrySelectorContainer = document.getElementById('language-switcher-menu'); 22884 22885 if (countrySelectorContainer) { 22886 countrySelectorContainer.classList.add('h-hidden'); 22887 } 22888 } 22889 } 22890 /** 22891 * @description Toggle menu 22892 * @returns {boolean|void} boolean value indicates is menu open or close 22893 */ 22894 22895 22896 toggleMenu(_, event) { 22897 return this.isSubmenuOpen ? this.closeMenu(event) : this.openMenu(event); 22898 } 22899 /** 22900 * @description Mouse enter event handler 22901 * @listens dom#mouseenter 22902 * @returns {void} 22903 */ 22904 22905 22906 mouseEnter(_, event) { 22907 if (this.timerCleanerLeave) { 22908 this.timerCleanerLeave(); 22909 } 22910 22911 if (this.isSubmenuOpen) { 22912 return; 22913 } 22914 22915 this.timerCleanerEnter = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 22916 this.openMenu(event); 22917 }, MENU_ACTIVATION_DELAY); 22918 } 22919 /** 22920 * @description Mouse leave event handler 22921 * @listens dom#mouseleave 22922 * @returns {void} 22923 */ 22924 22925 22926 mouseLeave(_, event) { 22927 if (this.timerCleanerEnter) { 22928 this.timerCleanerEnter(); 22929 } 22930 22931 if (!this.isSubmenuOpen) { 22932 return; 22933 } 22934 22935 this.timerCleanerLeave = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 22936 this.closeMenu(event); 22937 }, MENU_ACTIVATION_DELAY); 22938 } 22939 22940 } 22941 22942 return MenuButton; 22943}); 22944 22945/***/ }), 22946
22947/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuPanel.js": 22948/*!***************************************************************************************************!*\ 22949 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuPanel.js ***! 22950 \***************************************************************************************************/ 22951/*! exports provided: default */ 22952/***/ (function(module, __webpack_exports__, __webpack_require__) { 22953 22954"use strict"; 22955__webpack_require__.r(__webpack_exports__); 22956/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 22957/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 22958/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 22959/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 22960 22961 22962 22963const ARIA_EXPANDED = 'aria-expanded'; 22964const keyCode = Object.freeze({ 22965 RETURN: 13, 22966 SPACE: 32, 22967 TAB: 9, 22968 ESC: 27, 22969 DOWN: 40, 22970 UP: 38, 22971 RIGHT: 39, 22972 PAGEUP: 33, 22973 PAGEDOWN: 34, 22974 END: 35, 22975 HOME: 36 22976}); 22977/** 22978 * @typedef {InstanceType <typeof import('widgets/toolbox/RefElement').RefElement>} RefElement 22979 * @typedef {ReturnType<typeof import('widgets/global/SwipeToClose').default>} SwipeToClose 22980 * @typedef {ReturnType<typeof import('widgets/header/MenuPanelToggle').default>} MenuPanelToggle 22981 * @typedef {ReturnType<typeof import('widgets/header/HamburgerMenuItem').default>} HamburgerMenuItem 22982 */ 22983 22984/** 22985 * @param {SwipeToClose} SwipeToClose Base widget for extending 22986 * @returns {typeof MenuPanel} MenuPanel widget 22987 */ 22988 22989/* harmony default export */ __webpack_exports__["default"] = (function (SwipeToClose) { 22990 /** 22991 * @category widgets 22992 * @subcategory header 22993 * @class MenuPanel 22994 * @augments SwipeToClose 22995 * @classdesc Represents MenuPanel component with next features: 22996 * 1. Support keyboard navigation for accessibility 22997 * 2. Allow handling mouse, keyboard events 22998 * 3. Allow switch panel (next/previous) 22999 * 4. Allow open/close panel 23000 * 5. Allow close panel on Backdrop click 23001 * 6. Allow focus manipulation 23002 * 7. Control hamburger menu subpanels, copy and pasting submenu content into this panels 23003 * 23004 * MenuPanel widget should inside {@link HamburgerMenuItem} like menu item. 23005 * Widget has next relationship: 23006 * * Open panel using method {@link MenuPanel#openPanel} by event {@link MenuPanelToggle#event:navPanelOpen} from {@link MenuPanelToggle} widget. 23007 * * Open next panel using method {@link MenuPanel#nextPanel} by event {@link HamburgerMenuItem#event:navPanelNextLevel} from {@link HamburgerMenuItem} widget. 23008 * * Open next panel using method {@link MenuPanel#previousPanel} by event {@link HamburgerMenuItem#event:navPanelPreviousLevel} from {@link HamburgerMenuItem} widget. 23009 * 23010 * @example <caption>Example of MenuPanel widget usage</caption> 23011 * <div 23012 * id="main-navigation" 23013 * class="b-menu_panel" 23014 * aria-labelledby="main-navigation-toggle" 23015 * data-widget="menuPanel" 23016 * data-event-click="closeOnBackdrop" 23017 * data-event-keydown.sm.md="handleKeydown" 23018 * > 23019 * <div class="b-menu_panel-head"> 23020 * <button data-event-click.prevent="closePanel">close</button> 23021 * </div> 23022 * ... widget content 23023 * </div> 23024 * @property {string} data-widget - Widget name `menuPanel` 23025 * @property {string} data-event-click - Event listener handler for click events 23026 * @property {string} data-event-keydown - Event listener handler for keydown events 23027 * @property {number} data-panel-items-count - count of items 23028 * @property {number} data-panel-count - count of panels 23029 * @property {string}
23029 data-panel-container - reference id of child element, value of its data-ref attribute 23030 * @property {string} data-classes-backdrop-active - class added/removed on 'self' element on openPanel/closePanel 23031 * @property {string} data-classes-dialog-open - class added/removed on ref element 'dialog' on openPanel/closePanel 23032 * @property {string} data-classes-has-dialog - class added/removed on 'html' element on openPanel/closePanel 23033 * @property {string} data-classes-active-level - prefix for class that is added/removed from panelContainer when navigating between panels 23034 * @property {string} data-panel-items-prefix - prefix of ID of panel items 23035 * @property {string} data-main-manu - id of menu element 23036 * @property {string} data-panel - prefix of ID of panels 23037 * @property {string} data-item-switch-timeout - timeout (in ms) between panels focus changes 23038 */ 23039 class MenuPanel extends SwipeToClose { 23040 /** 23041 * @description calls super constructor, adds initial states etc. 23042 * 23043 * @param {HTMLElement} el DOM element 23044 * @param {{[x: string]: object|string|number|boolean|null|undefined}} config widget config 23045 */ 23046 constructor(el, config = {}) { 23047 super(el, config); 23048 this.parentMenuItems = []; 23049 this.panelItems = []; 23050 this.currentLevel = 1; 23051 } 23052 23053 prefs() { 23054 return { 23055 classesBackdropActive: 'm-active', 23056 classesDialogOpen: 'm-opened', 23057 classesDialogClosed: 'm-closed', 23058 classesHasDialog: 'm-has_dialog', 23059 classesActiveLevel: 'm-active_level_', 23060 panelItemsCount: 0, 23061 panelCount: 3, 23062 panelItemsPrefix: 'panelItem-', 23063 mainMenu: 'main-menu', 23064 mainMenuFooter: 'menu-footer', 23065 panelTitle: 'panelTitleLevel', 23066 panel: 'panel-level-', 23067 itemSwitchTimeout: 500, 23068 ...super.prefs() 23069 }; 23070 } 23071 /** 23072 * @description Initialize widget logic 23073 * @listens MenuPanelToggle#navPanelOpen 23074 * @listens HamburgerMenuItem#navPanelNextLevel 23075 * @listens HamburgerMenuItem#navPanelPreviousLevel 23076 * @returns {void} 23077 */ 23078 23079 23080 init() { 23081 super.init(); 23082 this.definePanelItems(); 23083 this.checkAriaAttributes(); 23084 this.eventBus().on('viewtype.change', 'checkAriaAttributes'); 23085 this.eventBus().on('viewtype.change', 'closePanel'); 23086 this.eventBus().on('nav.panel.open', 'openPanel'); 23087 this.eventBus().on('nav.panel.next.level', 'nextPanel'); 23088 this.eventBus().on('nav.panel.previous.level', 'previousPanel'); 23089 this.applyMenuRole(true); 23090 this.onDestroy(() => { 23091 this.clearState(); 23092 this.applyMenuRole(false); 23093 }); 23094 } 23095 /** 23096 * @description Clear menu panel state 23097 * @returns {void} 23098 */ 23099 23100 23101 clearState() { 23102 this.ref('html').removeClass(this.prefs().classesHasDialog); 23103 this.ref('self').removeClass(this.prefs().classesBackdropActive); 23104 this.ref('dialog').removeClass(this.prefs().classesDialogOpen); 23105 this.ref('dialog').removeClass(this.prefs().classesDialogClosed); 23106 } 23107 /** 23108 * @description Toggle menu roles 23109 * @param {boolean} isMenu Menu type 23110 * @returns {void} 23111 */ 23112 23113 23114 applyMenuRole(isMenu) { 23115 this.eachChild(child => { 23116 if (child.id && child.id === 'main-menu') { 23117 child.ref('self').attr('role', 'menubar'); 23118 } 23119 }); 23120 } 23121 /** 23122 * @description Define Panel Items 23123 * @returns {void} 23124 */ 23125 23126 23127 definePanelItems() { 23128 this.panelItems = this.getPanelItems(); 23129 this.currentPanelItem = this.panelItems[0]; 23130 this.firstPanelItem = this.panelItems[0]; 23131 this.lastPanelItem = this.panelItems[this.panelItems.length - 1]; 23132 } 23133 /** 23134 * @description Check Aria attributes and updated it for custom menu items depend on viewport. 23135 * <br> Custom Menu has sub item on Large and XLarge viewports but doesn't have on Small and Medium, as per FSD. 23136 * To correctly support accessibility requirements aria attributes dynamically updated. 23137 * @returns {void} 23138 */ 23139 23140 23141 checkAriaAttributes() { 23142 this.panelItems.map(menuItem => menuItem.ref('itemLink')).filter(itemLink =>
23142 itemLink.data('isCustomMenuHtml')).forEach(itemLink => { 23143 if (Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_2__["isDesktopView"])()) { 23144 itemLink.attr(ARIA_EXPANDED, 'true'); 23145 itemLink.attr('aria-haspopup', 'true'); 23146 } else { 23147 itemLink.attr(ARIA_EXPANDED, 'false'); 23148 itemLink.attr('aria-haspopup', 'false'); 23149 } 23150 }); 23151 } 23152 /** 23153 * @description Open next panel level 23154 * @param {object} data data 23155 * @returns {void} 23156 */ 23157 23158 23159 nextPanel(data) { 23160 data.parentMenuItem.attr(ARIA_EXPANDED, 'true'); 23161 data.parentMenuItem.attr('aria-owns', 'submenu-level-' + (this.currentLevel + 1)); 23162 this.parentMenuItems.push(data.parentMenuItem); 23163 this.handlePanel(this.currentLevel + 1, true, data.parentMenuItem.getText(), data.htmlMarkup); 23164 } 23165 /** 23166 * @description Open previos panel level 23167 * @returns {void} 23168 */ 23169 23170 23171 previousPanel() { 23172 if (this.parentMenuItems.length) { 23173 const last = this.parentMenuItems.pop(); 23174 last.attr('aria-owns', null); 23175 last.attr(ARIA_EXPANDED, 'false'); 23176 } 23177 23178 this.handlePanel(this.currentLevel - 1, true); 23179 } 23180 /** 23181 * @description Handle panel level 23182 * @param {number} level Level 23183 * @param {boolean} focusPanelItem Focus panel item flag 23184 * @param {string} [panelName] Panel Name 23185 * @param {string} [htmlMarkup] HTML Markup 23186 * @returns {void} 23187 */ 23188 23189 23190 handlePanel(level, focusPanelItem, panelName, htmlMarkup) { 23191 if (panelName) { 23192 this.has(this.prefs().panelTitle + level, panelTitle => { 23193 panelTitle.setText(panelName); 23194 }); 23195 } 23196 23197 if (htmlMarkup) { 23198 this.getById(this.prefs().panel + level, panel => { 23199 panel.ref('self').attr('aria-busy', 'true'); 23200 panel.setSubmenuHTML(htmlMarkup); 23201 }); 23202 } 23203 23204 if (level === 1) { 23205 this.ref('self').attr('aria-busy', 'true'); 23206 } 23207 23208 this.has(this.prefs().panelContainer, panelContainer => { 23209 panelContainer.removeClass(this.prefs().classesActiveLevel + this.currentLevel); 23210 panelContainer.addClass(this.prefs().classesActiveLevel + level); 23211 }); 23212 23213 if (focusPanelItem) { 23214 this.setFocusToPanelItem(level, level > this.currentLevel); 23215 } 23216 23217 this.currentLevel = level; 23218 } 23219 /** 23220 * @description Set focus to panel item 23221 * @param {number} level Level 23222 * @param {boolean}
23222 updateItems Update item flag 23223 * @returns {void} 23224 */ 23225 23226 23227 setFocusToPanelItem(level, updateItems) { 23228 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 23229 if (level === 1) { 23230 this.setFocusToItem(this.currentPanelItem); 23231 this.ref('self').attr('aria-busy', 'false'); 23232 } else { 23233 this.getById(this.prefs().panel + level, panel => { 23234 panel.markSubmenuOpened(); 23235 23236 if (updateItems) { 23237 panel.defineItems(); 23238 } 23239 23240 panel.setFocusToCurrentItem(); 23241 panel.ref('self').attr('aria-busy', 'false'); 23242 }); 23243 } 23244 }, this.prefs().itemSwitchTimeout)); 23245 } 23246 /** 23247 * @description Set focus to first item 23248 * @returns {void} 23249 */ 23250 23251 23252 setFocusToFirstItem() { 23253 this.ref('self').attr('aria-busy', 'true'); 23254 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 23255 this.setFocusToItem(this.firstPanelItem); 23256 this.ref('self').attr('aria-busy', 'false'); 23257 }, this.prefs().itemSwitchTimeout)); 23258 } 23259 /** 23260 * @description Set focus to last item 23261 * @returns {void} 23262 */ 23263 23264 23265 setFocusToLastItem() { 23266 this.ref('self').attr('aria-busy', 'true'); 23267 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 23268 this.setFocusToItem(this.lastPanelItem); 23269 this.ref('self').attr('aria-busy', 'false'); 23270 }, this.prefs().itemSwitchTimeout)); 23271 } 23272 /** 23273 * @description Set focus to next item 23274 * @returns {void} 23275 */ 23276 23277 23278 setFocusToNextItem() { 23279 if (this.panelItems === undefined) { 23280 return; 23281 } 23282 23283 if (this.panelItems.length) { 23284 const newItem = this.currentPanelItem === this.lastPanelItem ? this.firstPanelItem : this.panelItems[this.getItemIndex(this.currentPanelItem) + 1]; 23285 this.setFocusToItem(newItem); 23286 } 23287 } 23288 /** 23289 * @description Set focus to previos item 23290 * @returns {void} 23291 */ 23292 23293 23294 setFocusToPreviosItem() { 23295 if (this.panelItems === undefined) { 23296 return; 23297 } 23298 23299 if (this.panelItems.length) { 23300 const newItem = this.currentPanelItem === this.firstPanelItem ? this.lastPanelItem : this.panelItems[this.getItemIndex(this.currentPanelItem) - 1]; 23301 this.setFocusToItem(newItem); 23302 } 23303 } 23304 /** 23305 * @description Set focus to item 23306 * @param {object} panelItem Panel item 23307 * @returns {void} 23308 */ 23309 23310 23311 setFocusToItem(panelItem) { 23312 panelItem.focus(); 23313 this.currentPanelItem = panelItem; 23314 } 23315 /** 23316 * @description Get item index 23317 * @param {object} panelItem panel item 23318 * @returns {number} Item index 23319 */ 23320 23321 23322 getItemIndex(panelItem) { 23323 return this.panelItems ? this.panelItems.indexOf(panelItem) : -1; 23324 } 23325 /** 23326 * @description Get Panel Items 23327 * @returns {Array} Panel items 23328 */ 23329 23330 23331 getPanelItems() { 23332 const panelItems = []; 23333 this.getById(this.prefs().mainMenu, item => { 23334 panelItems.push(...item.items); 23335 }); 23336 this.getById(this.prefs().mainMenuFooter, item => { 23337 panelItems.push(...item.items); 23338 }); 23339 23340 for (let i = 0; i < this.prefs().panelItemsCount; i++) { 23341 this.getById(this.prefs().panelItemsPrefix + i, item => { 23342 panelItems.push(item); 23343 }); 23344 } 23345 23346 return panelItems; 23347 } 23348 /** 23349 * @description Open Menu Panel 23350 * @param {object} data data 23351 * @returns {void} 23352 */ 23353 23354 23355 openPanel(data) { 23356 this.ref('html').addClass(this.prefs().classesHasDialog); 23357 this.ref('self').addClass(this.prefs().classesBackdropActive); 23358 this.ref('dialog').addClass(this.prefs().classesDialogOpen).removeClass(this.prefs().classesDialogClosed); 23359 this.ref('self').attr('data-tau', 'menu_panel'); 23360 this.definePanelItems(); 23361 23362 if (data.focusToLastItem) { 23363 this.setFocusToLastItem(); 23364 } else { 23365 this.setFocusToFirstItem(); 23366 } 23367 23368 this.isOpened = true; 23369 } 23370 /** 23371 * @description Close Menu Panel 23372 * @emits MenuPanel#navPanelClose 23373 * @emits MenuPanel#navPanelToggleFocus 23374 * @returns {void} 23375 */ 23376 23377 23378 closePanel() { 23379 if (this.parentMenuItems.length) { 23380 this.parentMenuItems = []; 23381 } 23382 23383 if (this.isOpened) { 23384 this.ref('html').removeClass(this.prefs().classesHasDialog);
23385 this.ref('self').removeClass(this.prefs().classesBackdropActive); 23386 this.ref('dialog').removeClass(this.prefs().classesDialogOpen).addClass(this.prefs().classesDialogClosed); 23387 this.ref('self').attr('data-tau', false); 23388 /** 23389 * @description Event to close panel 23390 * @event MenuPanel#navPanelClose 23391 */ 23392 23393 this.eventBus().emit('nav.panel.close'); 23394 /** 23395 * @description Event to toggle focus 23396 * @event MenuPanel#navPanelToggleFocus 23397 */ 23398 23399 this.eventBus().emit('nav.panel.toggle.focus'); 23400 this.handlePanel(1, false); 23401 this.onDestroy(Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_1__["timeout"])(() => { 23402 for (let i = 1; i <= this.prefs().panelCount; i++) { 23403 this.getById(this.prefs().panel + i, panel => { 23404 panel.clearSubmenuHTML(); 23405 }); 23406 } 23407 }, this.prefs().itemSwitchTimeout)); 23408 this.isOpened = false; 23409 } 23410 } 23411 /** 23412 * @description Close On Backdrop handler 23413 * @listens dom#click 23414 * @param {RefElement} ref - interacted element 23415 * @param {Event} event - event object 23416 * @returns {void} 23417 */ 23418 23419 23420 closeOnBackdrop(ref, event) { 23421 if (event.target === this.ref('self').get()) { 23422 this.closePanel(); 23423 } 23424 } 23425 /** 23426 * @description Handle Enter key event 23427 * @listens dom#keydown 23428 * @param {Event} event Event Object 23429 * @returns {void} 23430 */ 23431 23432 23433 handleEnterKey(event) { 23434 const domNode = 23435 /** @type {HTMLAnchorElement} */ 23436 event.target; 23437 23438 if (domNode && domNode.href) { 23439 window.location.assign(domNode.href); 23440 } 23441 } 23442 /** 23443 * @description Keydown Event handler 23444 * @listens dom#keydown 23445 * @param {HTMLElement} _ Source of keydown event 23446 * @param {KeyboardEvent} event Event object 23447 * @returns {void} 23448 */ 23449 23450 23451 handleKeydown(_, event) { 23452 let preventEventActions = false; 23453 23454 switch (event.keyCode) { 23455 case keyCode.PAGEUP: 23456 case keyCode.HOME: 23457 this.setFocusToFirstItem(); 23458 preventEventActions = true; 23459 break; 23460 23461 case keyCode.PAGEDOWN: 23462 case keyCode.END: 23463 this.setFocusToLastItem(); 23464 preventEventActions = true; 23465 break; 23466 23467 case keyCode.TAB: 23468 this.closePanel(); 23469 break; 23470 23471 case keyCode.ESC: 23472 this.closePanel(); 23473 preventEventActions = true; 23474 break; 23475 23476 case keyCode.RETURN: 23477 case keyCode.SPACE: 23478 this.handleEnterKey(event); 23479 preventEventActions = true; 23480 break; 23481 23482 case keyCode.DOWN: 23483 this.setFocusToNextItem(); 23484 preventEventActions = true; 23485 break; 23486 23487 case keyCode.UP: 23488 this.setFocusToPreviosItem(); 23489 preventEventActions = true; 23490 break; 23491 23492 case keyCode.RIGHT: 23493 this.currentPanelItem.openMenu(); 23494 preventEventActions = true; 23495 break; 23496 23497 default: 23498 break; 23499 } 23500 23501 if (preventEventActions) { 23502 event.preventDefault(); 23503 event.stopPropagation(); 23504 } 23505 } 23506 23507 } 23508 23509 return MenuPanel; 23510}); 23511 23512/***/ }), 23513
23514/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuPanelToggle.js": 23515/*!*********************************************************************************************************!*\ 23516 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuPanelToggle.js ***! 23517 \*********************************************************************************************************/ 23518/*! exports provided: default */ 23519/***/ (function(module, __webpack_exports__, __webpack_require__) { 23520 23521"use strict"; 23522__webpack_require__.r(__webpack_exports__); 23523const keyCode = Object.freeze({ 23524 RETURN: 13, 23525 SPACE: 32, 23526 UP: 38, 23527 DOWN: 40 23528}); 23529/** 23530 * @typedef {typeof import('widgets/Widget').default} Widget 23531 */ 23532 23533/** 23534 * @param {Widget} Widget Base widget for extending 23535 * @returns {typeof MenuPanelToggle} MenuPanelToggle widget 23536 */ 23537 23538/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 23539 /** 23540 * @category widgets 23541 * @subcategory header 23542 * @class MenuPanelToggle 23543 * @augments Widget 23544 * @classdesc Represents MenuPanelToggle component with next features: 23545 * 1. Widget, which triggers touch/mobile navigation menu panel to open/close 23546 * 2. This widget work same as menubutton https://www.w3.org/TR/wai-aria-practices/#menubutton and open Hamburger menu, that act as regular menu, but styled as panel 23547 * Widget has next relationship: 23548 * * Open panel using method {@link MenuPanelToggle#openPanel} by event {@link MenuPanelToggle#event:navPanelOpen} from {@link MenuPanelToggle} widget. 23549 * * Close panel using method {@link MenuPanelToggle#closePanel} by event {@link MenuPanel#event:navPanelClose} from {@link MenuPanel} widget. 23550 * * Toggle panel focus using method {@link MenuPanelToggle#focus} by event {@link MenuPanel#event:navPanelToggleFocus} from {@link MenuPanel} widget. 23551 * @example <caption>Example of MenuPanelToggle widget usage</caption> 23552 * <button id="main-navigation-toggle" type="button" 23553 * data-widget="menuPanelToggle" 23554 * data-event-click.prevent="showPanel" 23555 * data-event-keydown="handleKeydown" 23556 * data-widget="menuPanelToggle" 23557 * > 23558 * ...button content 23559 * </button> 23560 * @property {string} data-widget - Widget name `menuPanelToggle` 23561 * @property {string} data-event-click - Event handler method for click event 23562 * @property {string} data-event-keydown - Event handler method for keydown event 23563 */ 23564 class MenuPanelToggle extends Widget { 23565 prefs() { 23566 return { 23567 classesOpenedNav: 'm-active', 23568 ...super.prefs() 23569 }; 23570 } 23571 /** 23572 * @description Initialize widget logic. 23573 * @listens MenuPanel#navPanelClose 23574 * @listens MenuPanelToggle#navPanelOpen 23575 * @listens MenuPanel#navPanelToggleFocus 23576 * @returns {void} 23577 */ 23578 23579 23580 init() { 23581 this.eventBus().on('nav.panel.close', 'closePanel'); 23582 this.eventBus().on('nav.panel.open', 'openPanel'); 23583 this.eventBus().on('nav.panel.toggle.focus', 'focus'); 23584 } 23585 /** 23586 * @description Focus 'self' element 23587 * @returns {void} 23588 */ 23589 23590 23591 focus() { 23592 this.ref('self').focus(); 23593 } 23594 /** 23595 * @description Show panel 23596 * @emits MenuPanelToggle#navPanelOpen 23597 * @param {boolean} [focusToLastItem] Focus to last item flag 23598 * @returns {void} 23599 */ 23600 23601 23602 showPanel(focusToLastItem) { 23603 this.openPanel(); 23604 /** 23605 * @description Event to open nav panel 23606 * @event MenuPanelToggle#navPanelOpen 23607 */ 23608 23609 this.eventBus().emit('nav.panel.open', { 23610 focusToLastItem: focusToLastItem 23611 }); 23612 } 23613 /** 23614 * @description On click handler 23615 * @listens dom#click 23616 * @returns {void} 23617 */ 23618 23619 23620 onClick() { 23621 this.showPanel(); 23622 } 23623 /** 23624 * @description Marked toggle as opened 23625 * @returns {void} 23626 */ 23627 23628 23629 openPanel() { 23630 this.ref('self').addClass(this.prefs().classesOpenedNav).attr('aria-expanded', 'true'); 23631 this.isOpenDialog = true; 23632 } 23633 /** 23634 * @description Close panel 23635 * @returns {void} 23636 */ 23637 23638 23639 closePanel() { 23640 this.ref('self').removeClass(this.prefs().classesOpenedNav).attr('aria-expanded', 'false'); 23641 23642 if (this.isOpenDialog) { 23643 this.focus(); 23644 this.isOpenDialog = false;
23645 } 23646 } 23647 /** 23648 * @description Keydown Event handler 23649 * @listens dom#keydown 23650 * @param {HTMLElement} _ Source of keydown event 23651 * @param {KeyboardEvent} event Event object 23652 * @returns {void} 23653 */ 23654 23655 23656 handleKeydown(_, event) { 23657 let preventEventActions = false; 23658 23659 switch (event.keyCode) { 23660 case keyCode.UP: 23661 this.showPanel(true); 23662 preventEventActions = true; 23663 break; 23664 23665 case keyCode.RETURN: 23666 case keyCode.SPACE: 23667 case keyCode.DOWN: 23668 this.showPanel(); 23669 preventEventActions = true; 23670 break; 23671 23672 default: 23673 break; 23674 } 23675 23676 if (preventEventActions) { 23677 event.preventDefault(); 23678 event.stopPropagation(); 23679 } 23680 } 23681 23682 } 23683 23684 return MenuPanelToggle; 23685}); 23686 23687/***/ }), 23688
23689/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/ProductTile.js": 23690/*!******************************************************************************************************!*\ 23691 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/ProductTile.js ***! 23692 \******************************************************************************************************/ 23693/*! exports provided: default */ 23694/***/ (function(module, __webpack_exports__, __webpack_require__) { 23695 23696"use strict"; 23697__webpack_require__.r(__webpack_exports__); 23698/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 23699 // TODO: JSDoc for all methods 23700 23701/** 23702 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 23703 */ 23704 23705/** 23706 * @description Base ProductTile implementation 23707 * @param {typeof import('widgets/Widget').default} Widget Base widget for extending 23708 * @returns {typeof ProductTile} Product Tile class 23709 */ 23710 23711/* harmony default export */ __webpack_exports__["default"] = (function (Widget) { 23712 /** 23713 * @class ProductTile 23714 * @augments Widget 23715 * @classdesc Product Tile component. Used in different product grids. 23716 * @property {string} data-widget - Widget name `productTile` 23717 * @property {string} data-pid - product ID 23718 * @property {string} data-product-name - product name 23719 * @property {object} data-analytics - analytics data for product tile 23720 * @property {string} data-text-network-error - network error text, when current ajax operation ended up with network error 23721 * @property {string} data-text-added-to-wishlist - a text which is used to indicate, that product has being added to wishlist 23722 * @property {string} data-add-to-wishlist-hide-texts - indicates, that some texts should not be displayed while adding product in a wishlist from product tile 23723 * @property {object} data-accessibility-alerts - contains accessibility alerts for product tile actions 23724 * @property {object} data-grid-item - indicates, that product tile is used inside product grid 23725 * @example 23726 * // use this code to display widget 23727 * <section 23728 * class="b-product_tile" 23729 * <isif condition="${pdict.first}"> 23730 * data-id="firstTile" 23731 * </isif> 23732 * data-pid="${product.id}" 23733 * data-product-name="${product.productName}" 23734 * data-widget="productTile" 23735 * data-analytics="${JSON.stringify(product.gtmInfo)}" 23736 * data-text-network-error="${Resource.msg('error.alert.network', 'product', null)}" 23737 * data-text-added-to-wishlist="${Resource.msg('button.added.to.wishlist', 'wishlist', null)}" 23738 * data-add-to-wishlist-hide-texts="true" 23739 * data-accessibility-alerts='{ 23740 * "addedtowishlist": "${Resource.msg('alert.addedtowishlist', 'product', null)}" 23741 * }' 23742 * data-grid-item=true 23743 * data-tau="product_tile" 23744 * data-tau-product-id="${product.id}" 23745 * > 23746 * <isinclude template="product/productTile" /> 23747 * </section> 23748 */ 23749 class ProductTile extends Widget { 23750 /** 23751 * @description Inits widget 23752 * @emits "product.tile.init" 23753 * @returns {void} 23754 */ 23755 init() { 23756 super.init(); 23757 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 23758 this.eventBus().emit('product.tile.init', this.ref('self')); 23759 }, 0); 23760 } 23761 /** 23762 * @description Executes when user clicks on product details link on product tile. 23763 * Usually used by analytics etc. 23764 * @emits tile.product.link.click 23765 * @param {refElement} link - product link 23766 */ 23767 23768 23769 onProductLinkClick(link) { 23770 this.eventBus().emit('tile.product.link.click', link); 23771 } 23772 /** 23773 * @description On modal window show callback 23774 * @emits "product.tile.qv.open" 23775 */ 23776 23777 23778 onModalShow() { 23779 this.eventBus().emit('product.tile.qv.open', { 23780 gtmInfo: this.data('analytics') 23781 }); 23782 } 23783 23784 showQuickView(button) { 23785 /**
23786 * @description Event dispatched, when Global Modal should be triggered 23787 * @event module:events#dialogshow 23788 */ 23789 this.eventBus().emit('dialogshow', { 23790 url: button.data('url'), 23791 wrapperClasses: 'm-quick_view', 23792 ariaLabel: this.prefs().productName, 23793 attributes: { 23794 'data-tau-unique': 'quick_view_dialog' 23795 } 23796 }); 23797 this.onModalShow(); 23798 } 23799 /** 23800 * @description Focus 23801 */ 23802 23803 23804 focus() { 23805 this.ref('tileImageLink').focus(); 23806 } 23807 23808 } 23809 23810 return ProductTile; 23811}); 23812 23813/***/ }), 23814
23815/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBox.js": 23816/*!***************************************************************************************************!*\ 23817 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBox.js ***! 23818 \***************************************************************************************************/ 23819/*! exports provided: default */ 23820/***/ (function(module, __webpack_exports__, __webpack_require__) { 23821 23822"use strict"; 23823__webpack_require__.r(__webpack_exports__); 23824/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 23825/* harmony import */ var widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/scroll */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js"); 23826/* harmony
23826import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 23827// TO BE REVIEWED 23828 23829 23830 23831/** 23832 * @typedef {ReturnType<typeof import('widgets/forms/Combobox').default>} Combobox 23833 * @typedef {InstanceType<typeof import('widgets/toolbox/RefElement').RefElement>} refElement 23834 * @typedef {ReturnType<typeof import('widgets/global/Modal').default>} Modal 23835 */ 23836 23837/** 23838 * @description Search form implementation. That consists of form and combobox with suggestion functionality 23839 * @param {Combobox} Combobox Base widget for extending 23840 * @returns {typeof SearchBox} SearchBox class 23841 */ 23842 23843/* harmony default export */ __webpack_exports__["default"] = (function (Combobox) { 23844 /** 23845 * @class SearchBox 23846 * @augments Combobox 23847 * @classdesc Search suggestion box. Handles input, shows and interacts with suggestions box. 23848 * <br>Implements `SFCC search suggestions` provider functionality in `getSuggestions` method 23849 * <br>It also override combobox logic - when we select suggestion the default action not fill input, but navigate to 23850 * <br>suggestion that implemented as links (reference combobox should have listbox items). 23851 * <br>If user interactive with keyboard and select link form should not submitted. 23852 * @property {string} data-widget - Widget name `searchBox` 23853 * @property {string} data-url - URL to obtain serach suggestions from server based on customer's input 23854 * @property {boolean} data-close-on-tab - If true - `tab` keypress will close listbox 23855 * @property {string} data-widget-event-closesearch - An event, fired when `close` element was pressed 23856 * @property {string} data-event-keydown - event handler for `keydown` event 23857 * @property {boolean} data-close-from-outside - config, which shows, if combobox should be closed when click outside 23858 * @property {number} data-show-spinner-delay - config delay in ms to show spinner 23859 * @property {string} data-ref-first-focus-element - reference to first focus element for focus trap 23860 * @property {string} data-ref-last-focus-element - reference to last focus element for focus trap 23861 * @example 23862 * // use this code to display minicart widget 23863 * <div 23864 * data-widget="searchBox" 23865 * data-url="${URLUtils.url('SearchServices-GetSuggestions')}" 23866 * data-close-on-tab="false" 23867 * > 23868 * <form> 23869 * ... serach input 23870 * </form> 23871 * ... 23872 * <div data-ref="listbox" data-event-mouseenter="markHover" data-event-mouseleave="unMarkHover"> 23873 * <div role="none" class="b-suggestions-inner" data-ref="listboxInner"></div> 23874 * </div> 23875 * <script data-ref="template" type="template/mustache"> 23876 * <div data-ref="listboxInner"> 23877 * ... search suggestions 23878 * </div> 23879 * </script> 23880 * </div> 23881 */ 23882 class SearchBox extends Combobox { 23883 prefs() { 23884 return { 23885 showSpinnerDelay: 500, 23886 outlineSpace: 5, 23887 classesClearEnabled: 'm-visible', 23888 classesLoadingSuggestions: 'm-loading', 23889 classesLoadingSuggestionsLong: 'm-loading-long', 23890 url: '', 23891 disableRendering: true, 23892 ...super.prefs() 23893 }; 23894 } 23895 23896 init() { 23897 super.init(); 23898 this.eventBus().on('page.show.searchbox', 'openSearch'); 23899 } 23900 /** 23901 * @description Shows suggestions popup in initial state. 23902 * <br>Initial state can be a slot/asset markup, rendered in backed 23903 * <br>and placed in `searchSuggestionsInitial` template 23904 * @param {boolean} setInputFocus - if we need to focus search input 23905 * @returns {void} 23906 */ 23907 23908 23909 showInDefaultState(setInputFocus = true) { 23910 if (setInputFocus) { 23911 this.focusInput(); 23912 } 23913 23914 this.lastSearchedTerm = ''; 23915 this.render('searchSuggestionsInitial', null, this.ref('listboxInner')).then(() => { 23916 this.selectedIndex = -1; 23917 this.resultsCount = this.getRealItemsCount(); 23918 this.openListbox(); 23919 }); 23920 } 23921 /** 23922 * @param {string} query - requested search query 23923 */ 23924 23925 23926 getSuggestions(query) { 23927 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_0__["getJSONByUrl"])(this.prefs().url, { 23928 q: query 23929 }).then(response => this.processResponse(query, response)).catch(this.handleError.bind(this)); 23930 this.toggleSpinner(true); 23931 } 23932 /** 23933 * @param {string} query - customer's search query 23934 * @param {object} response - backend response with suggestions 23935 */ 23936 23937 23938 processResponse(query, response) { 23939 if (response && response.suggestions) { 23940 if (this.ref('input').val() !== query) { 23941 // if value changed during request, we do not show outdated suggestions 23942 return; 23943 } 23944 23945 if (document.activeElement !== this.ref('input').get()) { 23946 this.toggleSpinner(false); 23947 this.showInDefaultState(); 23948 return; 23949 } 23950 23951 this.render(undefined, response, this.ref('listboxInner')).then(() => { 23952 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__["timeout"])(() => { 23953 const listbox = this.ref('listbox').get(); 23954 23955 if (listbox) { 23956 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_1__["scrollElementTo"])(listbox); 23957 } 23958 }, 10); 23959 this.afterSuggestionsUpdate(query, response.suggestions.total); 23960 }); 23961 } else { 23962 this.showInDefaultState(); 23963 } 23964 23965 this.toggleSpinner(false); 23966 } 23967 /** 23968 * @param {string} query - customer's search query 23969 */ 23970 23971 23972 handleError(query) { 23973 this.render('templateError', {}, this.ref('listboxInner')).then(() => { 23974 this.toggleSpinner(false); 23975 this.afterSuggestionsUpdate(query, 0); 23976 }); 23977 } 23978 23979 afterCloseListbox() { 23980 this.ref('listboxInner').empty(); 23981 } 23982 /** 23983 * @param {refElement} selectedItem - search suggestion item selected by customer 23984 */ 23985 23986 23987 activateItem(selectedItem) { 23988 // We do not need default combobox behaviour. 23989 // Instead of pasting suggestion value we go by the link 23990 // if we have selected item in listbox 23991 if (selectedItem) { 23992 this.ref('input').val(selectedItem.attr('data-suggestion-value')); 23993 this.goingByLink = true; 23994 window.location.assign(selectedItem.attr('href').toString()); 23995 } 23996 } 23997 23998 handleInput() { 23999 const inputValue = this.ref('input'); 24000 let inputLength = 0; 24001 24002 if (inputValue.length) { 24003 inputLength = inputValue.prop('value') && inputValue.prop('value').length || 0; 24004 } 24005 24006 if (inputLength >= this.prefs().minChars && inputLength <= this.prefs().maxChars) { 24007 this.updateListbox(); 24008 } else { 24009 if (this.timeout) { 24010 clearTimeout(this.timeout); 24011 } 24012 24013 this.showInDefaultState(); 24014 } 24015 24016 this.toggleClearButton(!!this.ref('input').val()); 24017 } 24018 /** 24019 * @param {boolean} isShown - Indicated is spinner display 24020 */ 24021 24022 24023 toggleSpinner(isShown) { 24024 const listbox = this.ref('listbox'); 24025 listbox.attr('aria-busy', String(isShown)); 24026 listbox.toggleClass(this.prefs().classesLoadingSuggestions, isShown); 24027 24028 if (isShown) { 24029 this.longLoadingTimer = Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_2__["timeout"])(() => { 24030 this.ref('listbox').addClass(this.prefs().classesLoadingSuggestionsLong); 24031 }, this.prefs().showSpinnerDelay); 24032 } else { 24033 if (this.longLoadingTimer) { 24034 this.longLoadingTimer(); 24035 } 24036 24037 this.ref('listbox').removeClass(this.prefs().classesLoadingSuggestionsLong); 24038 } 24039 } 24040 /** 24041 * @param {refElement} selectedItem - search suggestion item selected by customer 24042 */ 24043 24044 24045 afterItemSelected(selectedItem) { 24046 const item = selectedItem.get(); 24047 24048 if (item) { 24049 const listbox = this.ref('listbox').get(); 24050 const top = item.offsetTop - this.prefs().outlineSpace; 24051 24052 if (listbox) { 24053 Object(widgets_toolbox_scroll__WEBPACK_IMPORTED_MODULE_1__["scrollElementTo"])(listbox, top); 24054 } 24055 } 24056 } 24057 /**
24058 * @description Executes when user clicks on product details link in the search box results. 24059 * Usually used by analytics etc. 24060 * @emits "searchbox.product.link.click" 24061 * @param {refElement} link - product link 24062 */ 24063 24064 24065 onProductLinkClick(link) { 24066 this.eventBus().emit('searchbox.product.link.click', link); 24067 } // Form functionality 24068 24069 24070 handleSubmit(_, event) { 24071 const inputVal = this.ref('input').val(); 24072 24073 if (this.goingByLink || !inputVal) { 24074 event.preventDefault(); 24075 } 24076 24077 if (!inputVal) { 24078 this.focusInput(); 24079 } else { 24080 this.closeListbox(); 24081 } 24082 } 24083 /** 24084 * @description Clears search input and show suggestions from default state. Optionally sets focus to search field. 24085 * @param {boolean} setInputFocus - if we need to focus input 24086 */ 24087 24088 24089 clearInput(setInputFocus) { 24090 this.toggleSpinner(false); 24091 const searchInput = this.ref('input'); 24092 searchInput.val(''); 24093 24094 if (setInputFocus) { 24095 this.focusInput(); 24096 } 24097 24098 this.toggleClearButton(false); 24099 this.showInDefaultState(setInputFocus); 24100 } 24101 /** 24102 * @param {boolean} isInputHasValue - is search input has value 24103 */ 24104 24105 24106 toggleClearButton(isInputHasValue) { 24107 this.ref('clearButton').toggleClass(this.prefs().classesClearEnabled, isInputHasValue); 24108 } 24109 /** 24110 * @description Gets the real count of suggestions items. 24111 * <br>Could be used in case, when no backend suggestion count are set. 24112 * <br>As an example: case of rendering content assets with 24113 * <br>unknown suggestions set 24114 * @returns {number} - a number of listbox inner elements 24115 */ 24116 24117 24118 getRealItemsCount() { 24119 const listboxInner = this.ref('listboxInner').get(); 24120 return listboxInner ? listboxInner.querySelectorAll('[data-suggestion-value]').length : 0; 24121 } 24122 /** 24123 * @description Cancel handler 24124 */ 24125 24126 24127 cancel() { 24128 this.closeSearch(); 24129 } 24130 24131 openSearch() { 24132 // @ts-ignore 24133 this.showModal({ 24134 attributes: { 24135 'data-tau': 'search_dialog' 24136 } 24137 }, this.showInDefaultState.bind(this)); 24138 } 24139 24140 focusInput() { 24141 // iOS could disable focus method on HTMLInputElement https://bugs.webkit.org/show_bug.cgi?id=195884 24142 // to not annoy the user with software keyboard. To get keyboard we should prevent that input and parent 24143 // get hidden with display none + focus should be set without delay. 24144 const input = this.ref('input').get(); 24145 24146 if (!input) { 24147 return; 24148 } 24149 24150 input.focus(); 24151 } 24152 /** 24153 * @description Used to notify concerning widget to close suggestions popup and do all other actions 24154 */ 24155 24156 24157 closeSearch() { 24158 this.emit('closesearch'); // @ts-ignore 24159 24160 this.closeModal(); 24161 this.closeListbox(); 24162 this.clearInput(false); 24163 } 24164 24165 toggleSearch(ref) { 24166 if (ref.attr('aria-expanded') === 'true') { 24167 this.closeSearch(); 24168 } else { 24169 this.openSearch(); 24170 } 24171 } 24172 24173 hide() { 24174 super.hide(); 24175 this.closeListbox(); 24176 this.clearInput(false); 24177 return this; 24178 } 24179 24180 } 24181 24182 return SearchBox; 24183}); 24184 24185/***/ }), 24186
24187/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBoxToggle.js": 24188/*!*********************************************************************************************************!*\ 24189 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBoxToggle.js ***! 24190 \*********************************************************************************************************/ 24191/*! exports provided: default */ 24192/***/ (function(module, __webpack_exports__, __webpack_require__) { 24193 24194"use strict"; 24195__webpack_require__.r(__webpack_exports__); 24196/* harmony import */ var widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 24197 24198const TRIGGER_SHOW_IN_DEFAULT_STATE = 100; 24199/** 24200 * @typedef {ReturnType<typeof import('widgets/global/Modal').default>} Modal 24201 * @typedef {ReturnType<typeof import('widgets/search/SearchBox').default>} SearchBox 24202 */ 24203 24204/** 24205 * @description Search box mobile toggle 24206 * @param {Modal} Modal Base widget for extending 24207 * @returns {typeof SearchBoxToggle} SearchBox Toggle class 24208 */ 24209 24210/* harmony default export */ __webpack_exports__["default"] = (function (Modal) { 24211 /** 24212 * @class SearchBoxToggle 24213 * @augments Modal 24214 */ 24215 class SearchBoxToggle extends Modal { 24216 init() { 24217 super.init(); 24218 const SearchBox = 24219 /** @type {SearchBox} */ 24220 this.getConstructor('searchBox'); 24221 this.eachChild(childCmp => { 24222 if (childCmp instanceof SearchBox) { 24223 this.searchBox = childCmp; 24224 } 24225 }); 24226 this.eventBus().on('page.show.searchbox', 'openSearch'); 24227 } 24228 /** 24229 * @description Cancel handler 24230 */ 24231 24232 24233 cancel() { 24234 this.closeSearch(); 24235 } 24236 24237 openSearch() { 24238 this.showModal({ 24239 attributes: { 24240 'data-tau': 'search_dialog' 24241 } 24242 }); 24243 Object(widgets_toolbox_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => { 24244 if (this.searchBox) { 24245 this.searchBox.showInDefaultState(); 24246 } 24247 }, TRIGGER_SHOW_IN_DEFAULT_STATE); 24248 } 24249 24250 closeSearch() { 24251 this.closeModal(); 24252 24253 if (this.searchBox) { 24254 this.searchBox.closeListbox(); 24255 this.searchBox.clearInput(false); 24256 } 24257 } 24258 24259 toggleSearch(ref) { 24260 if (ref.attr('aria-expanded') === 'true') { 24261 this.closeSearch(); 24262 } else { 24263 this.openSearch(); 24264 } 24265 } 24266 24267 hide() { 24268 super.hide(); 24269 24270 if (this.searchBox) { 24271 this.searchBox.closeListbox(); 24272 this.searchBox.clearInput(false); 24273 } 24274 } 24275 24276 } 24277 24278 return SearchBoxToggle; 24279}); 24280 24281/***/ }), 24282
24283/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/EventBusWrapper.js": 24284/*!**********************************************************************************************************!*\ 24285 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/EventBusWrapper.js ***! 24286 \**********************************************************************************************************/ 24287/*! exports provided: default */ 24288/***/ (function(module, __webpack_exports__, __webpack_require__) { 24289 24290"use strict"; 24291__webpack_require__.r(__webpack_exports__); 24292/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 24293/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 24294/* harmony import */ var widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/eventBus */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/eventBus.js"); 24295 24296// TODO: Add full description for methods 24297 24298/** 24299 * @class EventBusWrapper 24300 * @category widgets 24301 * @subcategory toolbox 24302 */ 24303 24304class EventBusWrapper { 24305 /** 24306 * @param {import('widgets/Widget').default} widgetInstance usually this of widget 24307 */ 24308 constructor(widgetInstance) { 24309 this.widgetInstance = widgetInstance; 24310 } 24311 /** 24312 * @param {string} eventName name of event 24313 * @param {string} methodName name of method to call if/when event happen 24314 */ 24315 24316 24317 on(eventName, methodName) { 24318 /** 24319 * @type {(...args: any[]) => void} 24320 */ 24321 let fn = (...args) => { 24322 this.widgetInstance[methodName].call(this.widgetInstance, ...args); 24323 }; 24324 24325 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].addListener(eventName, fn); 24326 this.widgetInstance.onDestroy(() => { 24327 if (fn) { 24328 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].removeListener(eventName, fn); // @ts-ignore 24329 24330 fn = null; 24331 } 24332 }); 24333 } 24334 /** 24335 * @param {string} eventName name of event 24336 * @param {string} methodName name of method to call if/when event happen 24337 */ 24338 24339 24340 once(eventName, methodName) { 24341 let onceFn = (...args) => { 24342 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].removeListener(eventName, onceFn); 24343 this.widgetInstance[methodName].call(this.widgetInstance, ...args); // @ts-ignore 24344 24345 onceFn = null; 24346 }; 24347 24348 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].addListener(eventName, onceFn); 24349 this.widgetInstance.onDestroy(() => { 24350 if (onceFn) { 24351 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].removeListener(eventName, onceFn); // @ts-ignore 24352 24353 onceFn = null; 24354 } 24355 }); 24356 } 24357 24358 emit(...args) { 24359 // @ts-ignore 24360 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].emit(...args); 24361 } 24362 24363} 24364 24365/* harmony default export */ __webpack_exports__["default"] = (EventBusWrapper); 24366 24367/***/ }), 24368
24369/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/RefElement.js": 24370/*!*****************************************************************************************************!*\ 24371 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/RefElement.js ***! 24372 \*****************************************************************************************************/ 24373/*! exports provided: RefElement */ 24374/***/ (function(module, __webpack_exports__, __webpack_require__) { 24375 24376"use strict"; 24377__webpack_require__.r(__webpack_exports__); 24378/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RefElement", function() { return RefElement; }); 24379/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 24380/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 24381/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 24382 24383 24384const HIDDEN_CLASS = 'm-hide'; 24385/** 24386 * @description Convert string to snake-case 24387 * @param {string} s String in camelCase to convert 24388 * @returns {string} Converted to snake-case string 24389 * @example myCustomProperty => my-custom-property 24390 */ 24391 24392function toSnakeCase(s) { 24393 return s.replace(/(?:^|\.?)([A-Z])/g, (x, y) => '-' + y.toLowerCase()).replace(/^_/, ''); 24394} 24395/** 24396 * @class RefElement 24397 * @classdesc jQuery like wrapper for simple access to DOM. It will be added into `Widget.items` array of first parent widget 24398 * @category widgets 24399 * @subcategory toolbox 24400 * @example 24401 * // to use just add data-ref attribute 24402 * <div data-ref="myRefElement"></div> 24403 * 24404 * // to get it in any widget method 24405 * this.ref('myRefElement') 24406 */ 24407 24408 24409class RefElement { 24410 /** 24411 * @param {HTMLElement[]} els array of elements 24412 */ 24413 constructor(els) { 24414 /** @member {HTMLElement[]} */ 24415 this.els = els; 24416 } 24417 /** 24418 * @description Get amount of elements in set 24419 * @returns {number} Number of elements in set 24420 */ 24421 24422 24423 get length() { 24424 return this.els.length; 24425 } 24426 /** 24427 * @description Get or Set data attribute depends on provided/not provided value 24428 * @param {string} name Name of data attribute in camelCase, f.e. `testIt` to get `data-test-it` 24429 * @param {any} [value] to set 24430 * @returns {this|object|string|number|boolean|null|undefined} 24431 * - if value provided - returns current instance for chaining 24432 * - otherwise provided value of data attribute with appropriate type or undefined if attribute doesn't exist 24433 */ 24434 24435 24436 data(name, value) { 24437 const attrName = 'data-' + toSnakeCase(name); 24438 24439 if (typeof value === 'undefined') { 24440 if (this.hasAttr(attrName)) { 24441 const attrValue = this.attr(attrName); 24442 24443 if (typeof attrValue === 'string') { 24444 return Object(_util__WEBPACK_IMPORTED_MODULE_1__["getData"])(attrValue); 24445 } 24446 } 24447 24448 return undefined; 24449 } 24450 24451 return this.attr(attrName, value); 24452 } 24453 /** 24454 * @description Get or set the value into elements in set 24455 * @param {any} [value] If not empty set value into inputs in set 24456 * @returns {string|this} 24457 * - If value: undefined - returns joined string of values in set of inputs 24458 * - Otherwise returns current instance for chaining 24459 */ 24460 24461 24462 val(value) { 24463 if (typeof value === 'undefined') { 24464 return this.els.map(el => 24465 /** @type {HTMLInputElement} */ 24466 el.value).join(''); 24467 } 24468 24469 if (typeof value === 'string') {
24470 this.els.forEach(el => { 24471 /** @type {HTMLInputElement} */ 24472 el.value = value; 24473 }); 24474 } 24475 24476 return this; 24477 } 24478 /** 24479 * @description Get validity object for first element in set 24480 * @returns {{state: ValidityState, msg: string}|undefined} 24481 * - If element instance of `HTMLInputElement|HTMLSelectElement` returns validity object 24482 * - Otherwise returns `undefined` 24483 */ 24484 24485 24486 getValidity() { 24487 const element = this.els[0]; 24488 24489 if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement) { 24490 return { 24491 state: element.validity, 24492 msg: element.validationMessage 24493 }; 24494 } 24495 24496 return undefined; 24497 } 24498 /** 24499 * @description Appends string into each element from set 24500 * @param {string} content String to append 24501 * @returns {void} 24502 */ 24503 24504 24505 append(content) { 24506 this.els.forEach(el => { 24507 const tempEl = document.createElement('div'); 24508 tempEl.innerHTML = content; 24509 const scripts = 24510 /** @type {NodeListOf<HTMLScriptElement>} */ 24511 tempEl.querySelectorAll('script[type="text/javascript"]'); 24512 Array.from(scripts).forEach(script => { 24513 if (script && script.parentNode) { 24514 script.parentNode.removeChild(script); 24515 } 24516 }); 24517 Array.from(tempEl.childNodes).forEach(child => { 24518 el.appendChild(child); 24519 }); 24520 Array.from(scripts).forEach( 24521 /** @type {HTMLScriptElement} */ 24522 script => { 24523 const tempScript = document.createElement('script'); 24524 tempScript.text = script.text; 24525 el.appendChild(tempScript); 24526 }); 24527 tempEl.innerHTML = ''; 24528 }); 24529 } 24530 /** 24531 * @description Prepends string into each element from set 24532 * @param {string} content String to prepend 24533 * @returns {void} 24534 */ 24535 24536 24537 prepend(content) {
24538 this.els.forEach(el => { 24539 const tempEl = document.createElement('div'); 24540 tempEl.innerHTML = content; 24541 const scripts = 24542 /** @type {NodeListOf<HTMLScriptElement>} */ 24543 tempEl.querySelectorAll('script[type="text/javascript"]'); 24544 Array.from(scripts).forEach(script => { 24545 if (script && script.parentNode) { 24546 script.parentNode.removeChild(script); 24547 } 24548 }); 24549 Array.from(tempEl.childNodes).reverse().forEach(child => el.prepend(child)); 24550 Array.from(scripts).forEach( 24551 /** @type {HTMLScriptElement} */ 24552 script => { 24553 const tempScript = document.createElement('script'); 24554 tempScript.text = script.text; 24555 el.appendChild(tempScript); 24556 }); 24557 tempEl.innerHTML = ''; 24558 }); 24559 } 24560 /** 24561 * @description 24562 * Get/Set/Remove attribute for each element of set depends on params: 24563 * - if value: undefined - Get attribute value 24564 * - if value: true - Set attribute attribute="attribute", f.e. `attr('disabled', true)` => `disabled="disabled"` 24565 * - if value: null|false - Remove attribute if `value` 24566 * - any another type - Convert value to string and set as attributeValue 24567 * @param {string} attributeName Name of attribute 24568 * @param {any} [value] to set (null or false to remove attribute) 24569 * @returns {string|this} 24570 * - If value: undefined - Returns string with joined values from attribute 24571 * - Otherwise returns current instance for chaining 24572 */ 24573 24574 24575 attr(attributeName, value) { 24576 if (value === false || value === null) {
24577 this.els.forEach(el => el.removeAttribute(attributeName)); 24578 } else if (value === true) { 24579 this.els.forEach(el => el.setAttribute(attributeName, attributeName)); 24580 } else if (value !== undefined) { 24581 this.els.forEach(el => el.setAttribute(attributeName, value)); 24582 } else { 24583 return this.els.map(el => el.getAttribute(attributeName)).join(''); 24584 } 24585 24586 return this; 24587 } 24588 /** 24589 * @description Check that some element in the set of elements has attribute `attributeName` 24590 * @param {string} attributeName name of attribute 24591 * @returns {boolean} `true` if has such attribute 24592 */ 24593 24594 24595 hasAttr(attributeName) { 24596 return this.els.some(el => el.hasAttribute(attributeName)); 24597 } 24598 /** 24599 * @description 24600 * - Get property value by `propertyName` from first element in set if `value` parameter is not provided 24601 * - Set property value for `propertyName` property for each element in set 24602 * @param {keyof HTMLInputElement} propertyName The name of the property to get or set. 24603 * @param {string|boolean|undefined} [value] A value to set for the property. 24604 * @returns {any} Returns undefined for the value of a property that has not been set 24605 * or property value if exists 24606 */ 24607 24608 24609 prop(propertyName, value) { 24610 if (typeof value === 'undefined') { 24611 /** @type {HTMLInputElement} */ 24612 const el = this.els[0]; 24613 return el[propertyName]; 24614 } 24615
24616 this.els.forEach(el => { 24617 /** @type {any} */ 24618 el[propertyName] = value; 24619 }); 24620 return undefined; 24621 } 24622 /** 24623 * @description Get element of set by idx 24624 * @param {number} [idx] Identificator of element, first by default 24625 * @returns {HTMLElement|undefined} element if founded 24626 */ 24627 24628 24629 get(idx = 0) { 24630 if (this.els[idx]) { 24631 return this.els[idx]; 24632 } 24633 24634 return undefined; 24635 } 24636 /** 24637 * @description Remove set of elements 24638 * @returns {this} current instance for chaining 24639 */ 24640 24641 24642 empty() { 24643 this.els.forEach(el => { 24644 el.textContent = ''; 24645 }); 24646 return this; 24647 } 24648 /** 24649 * @description Replace content of each element in set by empty string 24650 * @returns {this} current instance for chaining 24651 */ 24652 24653 24654 remove() { 24655 this.els.forEach(el => el.parentNode && el.parentNode.removeChild(el)); 24656 return this; 24657 } 24658 /** 24659 * @description Remove attribute disabled="disabled" 24660 * @returns {this} current instance for chaining 24661 */ 24662 24663 24664 disable() { 24665 this.attr('disabled', true); 24666 this.addClass('m-disabled'); 24667 return this; 24668 } 24669 /** 24670 * @description Add attribute disabled="disabled" 24671 * @returns {this} current instance for chaining 24672 */ 24673 24674 24675 enable() { 24676 this.removeClass('m-disabled'); 24677 this.attr('disabled', false); 24678 return this; 24679 } 24680 /** 24681 * @description Check if every element in set has disabled attribute 24682 * @returns {boolean} true if disabled 24683 */ 24684 24685 24686 isDisabled() { 24687 return this.attr('disabled') === 'disabled'; 24688 } 24689 /** 24690 * @description Set the content `text` into each element in the set 24691 * @param {string} text The text to place as content 24692 * @returns {this} current instance for chaining 24693 */ 24694 24695 24696 setText(text) {
24697 this.els.forEach(el => { 24698 if (el.innerHTML !== text) { 24699 el.innerHTML = text; 24700 } 24701 }); 24702 return this; 24703 } 24704 /** 24705 * @description Get the content of each element from set and join it to string 24706 * @returns {string} Joined text from set of elements 24707 */ 24708 24709 24710 getText() { 24711 return this.els.map(el => el.innerHTML).join(); 24712 } 24713 /** 24714 * @description Focus first element 24715 * @returns {void} 24716 */ 24717 24718 24719 focus() { 24720 if (this.els[0]) { 24721 this.els[0].focus(); 24722 } 24723 } 24724 /** 24725 * @description Blurs first element 24726 * @returns {void} 24727 */ 24728 24729 24730 blur() { 24731 if (this.els[0]) { 24732 this.els[0].blur(); 24733 } 24734 } 24735 /** 24736 * @description Hide element 24737 * @returns {this} current instance for chaining 24738 */ 24739 24740 24741 hide() { 24742 if (!this.hasClass(HIDDEN_CLASS)) { 24743 this.attr('hidden', true); 24744 this.addClass(HIDDEN_CLASS); 24745 } 24746 24747 return this; 24748 } 24749 /** 24750 * @description Show element 24751 * @returns {this} current instance for chaining 24752 */ 24753 24754 24755 show() { 24756 this.attr('hidden', false); 24757 this.removeClass(HIDDEN_CLASS); 24758 return this; 24759 } 24760 /** 24761 * @description Show or hide element depending on either the presence or `initialState` parameter 24762 * @param {boolean} [initialState] true - show else false hide 24763 * @returns {this} current instance for chaining 24764 */ 24765 24766 24767 toggle(initialState) { 24768 const state = typeof initialState !== 'undefined' ? initialState : this.hasClass(HIDDEN_CLASS); 24769 this[state ? 'show' : 'hide'](); 24770 return this; 24771 } 24772 /** 24773 * @description Add or Remove class depending on either the class's presence or the `state` parameter 24774 * @param {string} className name of class 24775 * @param {boolean} [state] true to add, false to remove class 24776 * @returns {this} current instance for chaining 24777 */ 24778 24779 24780 toggleClass(className, state) { 24781 if (state === undefined) { 24782 if (this.hasClass(className)) { 24783 this.removeClass(className); 24784 } else { 24785 this.addClass(className); 24786 } 24787 } else if (state) { 24788 this.addClass(className); 24789 } else { 24790 this.removeClass(className); 24791 } 24792 24793 return this; 24794 } 24795 /** 24796 * @description Add single class or multiple classes into element 24797 * @param {string|string[]} classNames string or strings array of class name(s) 24798 * @returns {this} current instance for chaining 24799 */ 24800 24801 24802 addClass(classNames) { 24803 if (typeof classNames === 'string') { 24804 classNames = classNames.split(' '); 24805 } 24806 24807 classNames.forEach(className => {
24808 this.els.forEach(el => { 24809 if (!this.hasClass(className)) { 24810 el.classList.add(className); 24811 } 24812 }); 24813 }); 24814 return this; 24815 } 24816 /** 24817 * @description Remove single class or multiple classes for element in set 24818 * @param {string|string[]} classNames array or string of classnames 24819 * @returns {this} current instance for chaining 24820 */ 24821 24822 24823 removeClass(classNames) { 24824 if (typeof classNames === 'string') { 24825 classNames = classNames.split(' '); 24826 } 24827 24828 classNames.forEach(className => { 24829 this.els.forEach(el => { 24830 if (this.hasClass(className)) { 24831 el.classList.remove(className); 24832 } 24833 }); 24834 }); 24835 return this; 24836 } 24837 /** 24838 * @description Determine whether each element in set have assigned the given class 24839 * @param {string} className The class name to search for. 24840 * @returns {boolean} `true` if yes 24841 */ 24842 24843 24844 hasClass(className) { 24845 return this.els.every(el => el.classList.contains(className)); 24846 } 24847 /** 24848 * @description Specifies the position of the element in the window 24849 * @returns {{top: number, left: number}} object with top and left position in px 24850 */ 24851 24852 24853 offset() { 24854 const ret = { 24855 top: 0, 24856 left: 0 24857 }; 24858 24859 if (this.els.length) { 24860 const docElem = document.documentElement; 24861 const elemBox = this.els[0].getBoundingClientRect(); 24862 ret.top = elemBox.top + window.pageYOffset - docElem.clientTop; 24863 ret.left = elemBox.left + window.pageXOffset - docElem.clientLeft; 24864 } 24865 24866 return ret; 24867 } 24868 24869} 24870 24871/***/ }), 24872
24873/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js": 24874/*!***********************************************************************************************!*\ 24875 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js ***! 24876 \***********************************************************************************************/ 24877/*! exports provided: errorFallbackMessage, setCurrentToken, submitFormJson, getContentByUrl, getJSONByUrl, writeErrorInBackendErrorLogs */ 24878/***/ (function(module, __webpack_exports__, __webpack_require__) { 24879 24880"use strict"; 24881__webpack_require__.r(__webpack_exports__); 24882/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "errorFallbackMessage", function() { return errorFallbackMessage; }); 24883/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCurrentToken", function() { return setCurrentToken; }); 24884/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "submitFormJson", function() { return submitFormJson; }); 24885/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContentByUrl", function() { return getContentByUrl; }); 24886/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getJSONByUrl", function() { return getJSONByUrl; }); 24887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "writeErrorInBackendErrorLogs", function() { return writeErrorInBackendErrorLogs; }); 24888/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 24889/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./eventBus */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/eventBus.js"); 24890/** 24891 * @module ajax 24892 * @category widgets 24893 * @subcategory toolbox 24894 */ 24895// TODO: Add descriptions or full JSDoc for functions 24896 24897 // eslint-disable-next-line max-len 24898 24899const errorFallbackMessage = 'For technical reasons, your request could not be handled properly at this time. We apologize for any inconvenience.'; 24900const SAME_ORIGIN = 'same-origin'; 24901let tokenName = ''; 24902let tokenValue = ''; 24903/** 24904 * @param {string} name tokenName 24905 * @param {string} val tokenValue 24906 */ 24907 24908function setCurrentToken(name, val) { 24909 tokenName = name; 24910 tokenValue = val; 24911} 24912 24913function getFetch() { 24914 if (window.fetch) { 24915 return Promise.resolve(window.fetch); 24916 } // @ts-ignore 24917 24918 24919 return __webpack_require__.e(/*! import() | fetch */ "vendors~fetch").then(__webpack_require__.bind(null, /*! whatwg-fetch */ "./node_modules/whatwg-fetch/fetch.js")); // use polyfill 24920} 24921/** 24922 * 24923 * @param {string} method - HTTP method 24924 * @param {{[keys: string]: string;}} data - request data 24925 * @param {boolean} skipToken - Checks if CSRF token should be skipped in the request 24926 * @param {string} url - request url 24927 * @returns {{valuedUrl: string, formData: string|undefined}} result 24928 */ 24929 24930 24931function handleUrlOrFormData(method, data, skipToken, url) { 24932 /** 24933 * @type {string|undefined} 24934 */ 24935 let formData; 24936 /** 24937 * @type {string}undefined 24938 */ 24939 24940 var valuedUrl; 24941 24942 if (method === 'POST') { 24943 const token = tokenName && !skipToken ? { 24944 [tokenName]: tokenValue 24945 } : {}; 24946 const dataToSend = { ...data, 24947 ...token 24948 }; 24949 formData = Object.keys(dataToSend).map(key => key + '=' + encodeURIComponent(dataToSend[key])).join('&'); 24950 valuedUrl = url; 24951 } else if (skipToken) { 24952 valuedUrl = Object(_util__WEBPACK_IMPORTED_MODULE_0__["appendParamsToUrl"])(url, data); 24953 } else { 24954 valuedUrl = Object(_util__WEBPACK_IMPORTED_MODULE_0__["appendParamsToUrl"])(url, { ...data, 24955 ...{ 24956 [tokenName]: tokenValue 24957 } 24958 }); 24959 } // parameter to identify ajax request 24960 24961 24962 valuedUrl = Object(_util__WEBPACK_IMPORTED_MODULE_0__["appendParamsToUrl"])(valuedUrl, { 24963 ajax: 'true' 24964 }); 24965 return { 24966 valuedUrl, 24967 formData 24968 }; 24969} 24970/** 24971 * @param {Response} response Response object 24972 * @returns {Promise<any>} A Promise for the completion of which ever callback is executed. 24973 */ 24974 24975 24976function handleResponse500(response) { 24977 return response.text().then(textResponse => { 24978 // checks if response contains redirectUrl, does redirect and rejects promise. 24979 // In other case shows '500' alert on storefront and continues error handling 24980 if (textResponse.includes('"error":') && textResponse.includes('"redirectUrl":')) { 24981 const error = JSON.parse(textResponse); 24982 24983 if (error && error.redirectUrl) { 24984 window.location.assign(error.redirectUrl); 24985 return Promise.reject(new Error()); 24986 } // in some cases we must have possibility don't show global alert, according to FSD 24987 24988 }
24988 else if (!textResponse.includes('"skipErrorGlobalAlert"')) { 24989 _eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].emit('alert.error', { 24990 errorCode: 500 24991 }); 24992 } 24993 24994 if (textResponse.includes('"csrfError": true')) { 24995 const error = JSON.parse(textResponse); 24996 24997 if (error) { 24998 if (error.csrfError && error.redirectUrl) { 24999 window.location.assign(error.redirectUrl); 25000 } else { 25001 Object(_util__WEBPACK_IMPORTED_MODULE_0__["showErrorLayout"])(error); 25002 } 25003 } 25004 } else if (textResponse.includes('"errorMessage":')) { 25005 return Promise.reject(new Error(JSON.parse(textResponse).errorMessage)); 25006 } else { 25007 var div = document.createElement('div'); 25008 div.innerHTML = textResponse; 25009 const err = Array.from(div.querySelectorAll('code')).map(code => code.innerHTML).join('<br/>'); 25010 Object(_util__WEBPACK_IMPORTED_MODULE_0__["showErrorLayout"])(err); 25011 } 25012 25013 return Promise.reject(new Error()); 25014 }); 25015} 25016/** 25017 * @description A function, called after each success ajax call. Emits an event with given response context. 25018 * @param {object|string} response Response formatted object 25019 * @returns {object|string} Response formatted object 25020 */ 25021 25022 25023function handleOkResponse(response) { 25024 /** 25025 * @description Event about success ajax server response 25026 * @event module:ajax#responseok 25027 */ 25028 Object(_util__WEBPACK_IMPORTED_MODULE_0__["timeout"])(() => _eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].emit('responseok', response), 0); 25029 return response; 25030} 25031/** 25032 * @param {string} url url of resource 25033 * @param {{[x: string]: string}} [data] form content 25034 * @param {'POST'|'GET'} [method] typeof request 25035 * @param {boolean} [skipToken] skip token for request 25036 * @returns {Promise<object>} Fetching result promise 25037 */ 25038 25039 25040const submitFormJson = (url, data = {}, method = 'POST', skipToken = false) => { 25041 return getFetch().then(() => { 25042 var { 25043 valuedUrl, 25044 formData 25045 } = handleUrlOrFormData(method, data, skipToken, url); 25046 /** 25047 * This magic is mandatory for MS Edge because fetch polyfill is returning not polyfilled Promise object 25048 */ 25049 25050 if (valuedUrl.split('?')[0] !== 'null') { 25051 return Promise.resolve(fetch(valuedUrl, { 25052 method: method, 25053 // *GET, POST, PUT, DELETE, etc. 25054 mode: SAME_ORIGIN, 25055 // no-cors, cors, *same-origin 25056 cache: 'default', 25057 // *default, no-cache, reload, force-cache, only-if-cached 25058 credentials: SAME_ORIGIN, 25059 // include, *same-origin, omit 25060 headers: { 25061 'Content-Type': 'application/x-www-form-urlencoded', 25062 Accept: 'application/json', 25063 'x-requested-with': 'XMLHttpRequest' 25064 }, 25065 redirect: 'follow', 25066 // manual, *follow, error 25067 referrer: 'no-referrer', 25068 // no-referrer, *client 25069 body: formData // body data type must match "Content-Type" header 25070 25071 })).then(response => { 25072 var contentType = response.headers.get('content-type'); 25073 25074 if (response.ok) { 25075 if (contentType && contentType.includes('application/json')) { 25076 return handleOkResponse(response.json()); 25077 } 25078 25079 Object(_util__WEBPACK_IMPORTED_MODULE_0__["showErrorLayout"])(errorFallbackMessage); 25080 throw new TypeError(errorFallbackMessage); 25081 } else if (response.status === 404) { 25082 Object(_util__WEBPACK_IMPORTED_MODULE_0__["showErrorLayout"])(errorFallbackMessage); 25083 throw new TypeError(errorFallbackMessage); 25084 } else if (response.status === 500) { 25085 return handleResponse500(response); 25086 } 25087 25088 return response.json().then(errorJson => { 25089 return Promise.reject(errorJson); 25090 }); 25091 }); 25092 } 25093 }); 25094}; 25095/** 25096 * @param {string} url URL to get data 25097 * @param {{[keys: string]: string;}} [params] optional params to url 25098 * @returns {Promise<Response>} Fetching result promise 25099 */ 25100 25101function getContentByUrl(url, params = {}) { 25102 params.ajax = 'true'; 25103 /** 25104 * This magic is mandatory for MS Edge because fetch polyfill is returning not polyfilled Promise object 25105 */ 25106 25107 return Promise.resolve(fetch(Object(_util__WEBPACK_IMPORTED_MODULE_0__["appendParamsToUrl"])(url, params), { 25108 method: 'GET', 25109 // *GET, POST, PUT, DELETE, etc. 25110 mode: SAME_ORIGIN, 25111 // no-cors, cors, *same-origin 25112 cache: 'default', 25113 // *default, no-cache, reload, force-cache, only-if-cached 25114 credentials: SAME_ORIGIN, 25115 // include, *same-origin, omit 25116 headers: { 25117 Accept: 'text/html' // // 'Content-Type': 'application/json' 25118 // 'Content-Type': 'application/x-www-form-urlencoded' 25119 25120 }, 25121 redirect: 'follow', 25122 // manual, *follow, error
25123 referrer: 'no-referrer' // no-referrer, *client 25124 // body: formData // body data type must match "Content-Type" header 25125 25126 })).then(response => { 25127 var contentType = response.headers.get('content-type'); 25128 25129 if (response.ok) { 25130 if (contentType && contentType.includes('text/html')) { 25131 return handleOkResponse(response.text()); 25132 } 25133 25134 if (response.status !== 204) { 25135 Object(_util__WEBPACK_IMPORTED_MODULE_0__["showErrorLayout"])(errorFallbackMessage); 25136 throw new TypeError(errorFallbackMessage); 25137 } 25138 } else if (response.status === 404) { 25139 Object(_util__WEBPACK_IMPORTED_MODULE_0__["showErrorLayout"])(errorFallbackMessage); 25140 throw new TypeError(errorFallbackMessage); 25141 } else if (response.status === 500) { 25142 return handleResponse500(response); 25143 } 25144 25145 return response.json().then(errorJson => { 25146 return Promise.reject(errorJson); 25147 }); 25148 }); 25149} 25150/** 25151 * 25152 * @param {string} url URL to get data 25153 * @param {{[keys: string]: string;}} [params] optional params to url 25154 * @param {boolean} [skipToken] skip token for request 25155 * @returns {Promise<object>} Fetching result promise 25156 */ 25157 25158function getJSONByUrl(url, params = {}, skipToken = true) { 25159 return submitFormJson(url, params, 'GET', skipToken); 25160} 25161/** 25162 * Writes the error to the backend error logs by sending it via AJAX to the specified URL. 25163 * 25164 * @param {Object} error - The error object to be sent to the backend. 25165 * @returns {void} 25166 */ 25167 25168function writeErrorInBackendErrorLogs(error) { 25169 var errorActionUrl = $('.m-registration').data('error-action'); // Get the data-error-action attribute value 25170 25171 $.ajax({ 25172 url: errorActionUrl, 25173 type: 'POST', 25174 data: { 25175 error: JSON.stringify(error) 25176 }, 25177 success: function (response) {// Handle the success response here if needed 25178 }, 25179 error: function (xhr, status, error) { 25180 console.log('Error sending error message:', error); 25181 } 25182 }); 25183} 25184 25185/***/ }), 25186
25187/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js": 25188/*!*************************************************************************************************!*\ 25189 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cookie.js ***! 25190 \*************************************************************************************************/ 25191/*! exports provided: setCookie, getCookie */ 25192/***/ (function(module, __webpack_exports__, __webpack_require__) { 25193 25194"use strict"; 25195__webpack_require__.r(__webpack_exports__); 25196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCookie", function() { return setCookie; }); 25197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCookie", function() { return getCookie; }); 25198/** 25199 * @module cookie 25200 * @category widgets 25201 * @subcategory toolbox 25202 */ 25203 25204/** 25205 * @description Uses to set cookies to the document 25206 * 25207 * @param {string} cookieName - cookie name 25208 * @param {string} cookieValue - cookie value 25209 * @param {number} expireInDays - number of days before cookie expiration. 0 - end of a session, 365 - default value 25210 * @param {boolean} isSecure - adds secure cookie if true 25211 */ 25212function setCookie(cookieName, cookieValue, expireInDays = 365, isSecure = false) { 25213 const d = new Date(); 25214 d.setTime(d.getTime() + expireInDays * 24 * 60 * 60 * 1000); 25215 const expires = expireInDays === 0 ? '' : `expires=${d.toUTCString()}`; 25216 document.cookie = `${cookieName}=${cookieValue};${expires};path=/${isSecure ? ';secure' : ''}`; 25217} 25218/** 25219 * @description Gets cookie value from document. 25220 * Empty string is returned by default 25221 * 25222 * @param {string} cookieName - cookie name 25223 * @returns {string} - cookie value 25224 */ 25225 25226function getCookie(cookieName) { 25227 const name = `${cookieName}=`; 25228 const ca = document.cookie.split(';'); 25229 25230 for (let i = 0; i < ca.length; i += 1) {
25231 let c = ca[i]; 25232 25233 while (c.charAt(0) === ' ') { 25234 c = c.substring(1); 25235 } 25236 25237 if (c.indexOf(name) === 0) { 25238 return c.substring(name.length, c.length); 25239 } 25240 } 25241 25242 return ''; 25243} 25244 25245/***/ }), 25246
25247/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cssLoadChecker.js": 25248/*!*********************************************************************************************************!*\ 25249 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/cssLoadChecker.js ***! 25250 \*********************************************************************************************************/ 25251/*! exports provided: default */ 25252/***/ (function(module, __webpack_exports__, __webpack_require__) { 25253 25254"use strict"; 25255__webpack_require__.r(__webpack_exports__); 25256/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 25257/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 25258 25259 25260/** 25261 * @module cssLoadChecker 25262 * @description 25263 * Util that used for checking if CSS was loaded. 25264 * Return Promise that resolved as soon as CSS loaded. 25265 * @example 25266 * cssLoadChecker.get().then(() => { 25267 * do some staff after css load 25268 * }); 25269 */ 25270const CSS_SELECTOR = '.js-styles'; 25271/* harmony default export */ __webpack_exports__["default"] = ({ 25272 get: function () { 25273 return Promise.all(Array.from(document.querySelectorAll(CSS_SELECTOR), link => this.getLoadedState(link))); 25274 }, 25275 25276 /** 25277 * Get loading state of particular link node 25278 * 25279 * @param {object} css - link DOM node 25280 * @returns {Promise} - loading state 25281 */ 25282 getLoadedState(css) { 25283 // @ts-ignore 25284 if (false) {} 25285 25286 return new Promise(resolve => { 25287 if (css.media === 'all' || css.media === '') { 25288 try { 25289 /** 25290 * This trick is needed to be sure css are loaded across all browsers 25291 * `document.styleSheets` is not suitable since FF changes the length prematurely 25292 * Combined solution from https://www.phpied.com/when-is-a-stylesheet-really-loaded/ 25293 */ 25294 const cssRules = css.sheet.cssRules; // Only populated when css is loaded. This is cross-browser solution. 25295 25296 if (cssRules) { 25297 resolve(); 25298 } 25299 } catch (e) { 25300 css.addEventListener('load', resolve); 25301 css.addEventListener('error', resolve); 25302 } 25303 } else { 25304 css.addEventListener('load', resolve); 25305 css.addEventListener('error', resolve); 25306 } 25307 }); 25308 } 25309 25310}); 25311 25312/***/ }), 25313
25314/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js": 25315/*!***************************************************************************************************!*\ 25316 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js ***! 25317 \***************************************************************************************************/ 25318/*! exports provided: debounce, throttle */ 25319/***/ (function(module, __webpack_exports__, __webpack_require__) { 25320 25321"use strict"; 25322__webpack_require__.r(__webpack_exports__); 25323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); 25324/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; }); 25325/** 25326 * @module debounce 25327 * @category widgets 25328 * @subcategory toolbox 25329 */ 25330// CLARIFY: Do we need default behaviour when both invokeLeading & invokeTrailing are not passed or they are false ? 25331 25332/* eslint-disable jsdoc/check-tag-names */ 25333 25334/** 25335 * Returns a function, that, as long as it continues to be invoked, will not be triggered. 25336 * The function will be called after it stops being called for N milliseconds. 25337 * If `invokeLeading` is passed, trigger the function on the leading edge, instead of the trailing. 25338 * If `invokeTrailing` is passed, trigger the function on the trailing edge additionally. 25339 * 25340 * @template T 25341 * @param {(args0: T) => void} callbackFunction - callback 25342 * @param {number} delay - timeout duration 25343 * @param {boolean} [invokeLeading] - executing the debounce without waiting 25344 * @param {boolean} [invokeTrailing] 25345 * execute trailing function after timeout: could be used in combination with 'invokeLeading' parameter 25346 * to execute both functions - leading and trailing ones 25347 * @returns {(args0: T) => void} - Debounce function 25348 */ 25349function debounce(callbackFunction, delay, invokeLeading = false, invokeTrailing = false) { 25350 /** 25351 * @type {NodeJS.Timeout|null} 25352 */ 25353 let timeout; 25354 const executeTrailing = !invokeLeading || invokeTrailing; 25355 return function debounceInner(...args) { 25356 // @ts-ignore 25357 const context = this; // Leading function execution 25358 25359 if (invokeLeading && !timeout) { 25360 callbackFunction.apply(context, args); 25361 } // Set timeout for trailing function execution 25362 25363 25364 if (executeTrailing) { 25365 if (timeout) { 25366 clearTimeout(timeout); 25367 } 25368 25369 timeout = setTimeout(() => { 25370 timeout = null; 25371 callbackFunction.apply(context, args); 25372 }, delay); 25373 } 25374 }; 25375} // Creates and returns a new, throttled version of the passed function, that, when invoked repeatedly, 25376// will only be triggered at most once 25377// during a given window of time. Normally, the throttled function will run 25378// as much as it can, without ever going more than once per `wait` duration; 25379// but if you'd like to disable the execution on the leading edge, pass 25380// `{leading: false}`. To disable execution on the trailing edge, ditto. 25381 25382/** 25383 * @description Creates and returns a new, throttled version of the passed function, that, 25384 * when invoked repeatedly, will only actually call the original function at most once per every 25385 * `wait` milliseconds. Useful for rate-limiting events that occur faster than you can keep up with. 25386 * By default, `throttle` will execute the function as soon as you call it for the first time, and, 25387 * if you call it again any number of times during the `wait` period,as soon as that period is over. 25388 * If you'd like to disable the leading-edge call, pass `{leading: false}`, and if you'd like to disable 25389 * the execution on the trailing-edge, pass `{trailing: false}`. 25390 * @param {Function} func Function to execute 25391 * @param {number} wait Execution period 25392 * @param {{leading: boolean, trailing: boolean}} [options] Configurations 25393 * @returns {Function} Throttled version of passed function 25394 */ 25395 25396function throttle(func, wait, options = { 25397 leading: false, 25398 trailing: false 25399}) { 25400 /** @type {NodeJS.Timeout|null} */ 25401 var timeout; 25402 /** @type {any} */ 25403 25404 var context; 25405 /** @type {any} */ 25406 25407 var args; 25408 /** @type {any} */ 25409 25410 var result; 25411 var previous = 0; 25412 25413 var later = function () { 25414 previous = options.leading === false ? 0 : Date.now(); 25415 timeout = null; // @ts-ignore 25416
vendor: 765 bytes, lines 25417-25459
25417 result = func.apply(context, args); 25418 25419 if (!timeout) { 25420 context = null; 25421 args = null; 25422 } 25423 }; 25424 25425 return function () { 25426 var now = Date.now(); 25427 25428 if (!previous && options.leading === false) { 25429 previous = now; 25430 } 25431 25432 var remaining = wait - (now - previous); // @ts-ignore 25433 25434 context = this; 25435 args = arguments; 25436 25437 if (remaining <= 0 || remaining > wait) { 25438 if (timeout) { 25439 clearTimeout(timeout); 25440 timeout = null; 25441 } 25442 25443 previous = now; 25444 result = func.apply(context, args); 25445 25446 if (!timeout) { 25447 context = null; 25448 args = null; 25449 } 25450 } else if (!timeout && options.trailing !== false) { 25451 timeout = setTimeout(later, remaining); 25452 } 25453 25454 return result; 25455 }; 25456} 25457 25458/***/ }), 25459
25460/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/dialogMgr.js": 25461/*!****************************************************************************************************!*\ 25462 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/dialogMgr.js ***! 25463 \****************************************************************************************************/ 25464/*! exports provided: dialogMgr */ 25465/***/ (function(module, __webpack_exports__, __webpack_require__) { 25466 25467"use strict"; 25468__webpack_require__.r(__webpack_exports__); 25469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dialogMgr", function() { return dialogMgr; }); 25470/** 25471 * @typedef {InstanceType <ReturnType <typeof import('widgets/global/Modal').default>>} modal 25472 */ 25473 25474/** 25475 * @module dialogMgr 25476 * @category widgets 25477 * @subcategory toolbox 25478 * @class DialogMgr 25479 * @classdesc Contains all needed logic for managing dialog stack e.g. open second dialog above first one. 25480 * @example <caption>Usage of dialogMgr instance. In this case `dialogMgr` used in class {@link Modal} to show it's content above any other opened dialog</caption> 25481 * class Modal extends AccessibilityFocusTrapMixin { 25482 * ... 25483 showModal(templateData, cb) { 25484 ... 25485 renderedPromise.then(() => { 25486 ... 25487 dialogMgr.openDialog(this); 25488 }); 25489 } 25490 * } 25491 */ 25492class DialogMgr { 25493 constructor() { 25494 this.dialogsStack = []; 25495 } 25496 /** 25497 * @description Open Modal. If any other opened dialog exists - move it behind newly opened modal. 25498 * @param {modal} dialog - Dialog object 25499 */ 25500 25501 25502 openDialog(dialog) { 25503 const topDialog = this.dialogsStack.length ? this.dialogsStack[this.dialogsStack.length - 1] : null; 25504 25505 if (topDialog !== dialog) { 25506 if (topDialog) { 25507 topDialog.moveBehind(); 25508 } 25509 25510 dialog.open(); 25511 this.dialogsStack.push(dialog); 25512 } 25513 } 25514 /** 25515 * @description Close Modal. If any other opened dialog exists, moves it to top. 25516 */ 25517 25518 25519 closeDialog() { 25520 const dialog = this.dialogsStack.pop(); 25521 25522 if (dialog) { 25523 dialog.close(); 25524 25525 if (this.dialogsStack.length) { 25526 const previousDialog = this.dialogsStack[this.dialogsStack.length - 1]; 25527 previousDialog.moveToTop(); 25528 } else { 25529 dialog.removeGlobalDialogClass(); 25530 } 25531 } 25532 } 25533 25534} 25535 25536const dialogMgr = new DialogMgr(); 25537 25538/***/ }), 25539
25540/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/eventBus.js": 25541/*!***************************************************************************************************!*\ 25542 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/eventBus.js ***! 25543 \***************************************************************************************************/ 25544/*! exports provided: default */ 25545/***/ (function(module, __webpack_exports__, __webpack_require__) { 25546 25547"use strict"; 25548__webpack_require__.r(__webpack_exports__); 25549/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! eventemitter3 */ "./node_modules/eventemitter3/index.js"); 25550/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__); 25551/** 25552 * @module events 25553 * @category widgets 25554 * @subcategory toolbox 25555 * @description Create and returns an instance of EventEmitter. Refer [eventemitter3 documentation](https://www.npmjs.com/package/eventemitter3). 25556 */ 25557 25558const EventBus = new eventemitter3__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); 25559/* harmony default export */ __webpack_exports__["default"] = (EventBus); 25560 25561/***/ }), 25562
25563/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js": 25564/*!*************************************************************************************************!*\ 25565 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/scroll.js ***! 25566 \*************************************************************************************************/ 25567/*! exports provided: scrollIntoView, scrollElementTo, scrollWindowTo, scrollToTop, getScrollPosition, onScroll */ 25568/***/ (function(module, __webpack_exports__, __webpack_require__) { 25569 25570"use strict"; 25571__webpack_require__.r(__webpack_exports__); 25572/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollIntoView", function() { return scrollIntoView; }); 25573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollElementTo", function() { return scrollElementTo; }); 25574/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollWindowTo", function() { return scrollWindowTo; }); 25575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToTop", function() { return scrollToTop; }); 25576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollPosition", function() { return getScrollPosition; }); 25577/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onScroll", function() { return onScroll; }); 25578/* harmony import */ var widgets_toolbox_debounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! widgets/toolbox/debounce */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js"); 25579/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 25580// TODO: Add class description and description for all methods 25581 25582/** 25583 * @module scroll 25584 * @category widgets 25585 * @subcategory toolbox 25586 */ 25587 25588 25589const stickyHeaderHeightMap = { 25590 [widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["SMALL"]]: 64, 25591 [widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["MEDIUM"]]: 64, 25592 [widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["LARGE"]]: 80, 25593 [widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["EXTRA_LARGE"]]: 80 25594}; 25595/** 25596 * @param {HTMLElement|undefined} element - HTML Element 25597 */ 25598 25599function scrollIntoView(element) { 25600 if (!element) { 25601 return; 25602 } 25603 25604 if ('scrollBehavior' in document.documentElement.style) { 25605 element.scrollIntoView({ 25606 behavior: 'smooth', 25607 block: 'start', 25608 inline: 'nearest' 25609 }); 25610 } else { 25611 element.scrollIntoView(false); 25612 } 25613} 25614/** 25615 * @param {HTMLElement} element - HTML Element 25616 * @param {number} [top] - top coordinate 25617 * @param {number} [left] - left coordinate 25618 */ 25619 25620function scrollElementTo(element, top = 0, left = 0) { 25621 if (element && typeof element.scrollTo === 'function') { 25622 element.scrollTo({ 25623 top: top, 25624 left: left, 25625 behavior: 'smooth' 25626 }); 25627 } 25628} 25629/** 25630 * @param {HTMLElement|undefined} element - HTML Element 25631 * @param {boolean} [countHeaderHeight] - add to top header height 25632 */ 25633 25634function scrollWindowTo(element, countHeaderHeight = false) { 25635 if (!element) { 25636 return; 25637 } 25638 25639 const headerHeight = stickyHeaderHeightMap[Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_1__["getViewType"])()]; 25640 const top = element.getBoundingClientRect().top + window.pageYOffset; 25641 const left = 0; 25642 25643 if (countHeaderHeight) { 25644 window.scrollTo({ 25645 top: top - headerHeight, 25646 left: left, 25647 behavior: 'smooth' 25648 }); 25649 } else { 25650 window.scrollTo({ 25651 top: top, 25652 left: left, 25653 behavior: 'smooth' 25654 }); 25655 } 25656} 25657/** 25658 * Scrolling to top. 25659 */ 25660 25661function scrollToTop() { 25662 window.scrollTo(0, 0); 25663} 25664const DEBOUNCE_INTERVAL = 20; 25665/** 25666 * @type {((arg0: {currentPosition: number, lastScrollPosition: number, diff: number}) => void)[]} 25667 */ 25668 25669const scrollHandlers = []; 25670function getScrollPosition() { 25671 if (document.documentElement.scrollTop !== undefined) { 25672 return document.documentElement.scrollTop; 25673 } 25674 25675 if (document.scrollingElement && document.scrollingElement.scrollTop !== undefined) { 25676 return document.scrollingElement.scrollTop; 25677 } 25678 25679 return -1; 25680} 25681let lastScrollPosition = 0; 25682const debounceScroll = Object(widgets_toolbox_debounce__WEBPACK_IMPORTED_MODULE_0__["debounce"])(() => { 25683 const currentPosition = getScrollPosition();
25684 scrollHandlers.forEach(handler => handler({ 25685 currentPosition, 25686 lastScrollPosition, 25687 diff: currentPosition - lastScrollPosition 25688 })); 25689 lastScrollPosition = currentPosition; 25690}, DEBOUNCE_INTERVAL, true, true); 25691/** 25692 * 25693 * @param {(arg0: {currentPosition: number, lastScrollPosition: number, diff: number}) => void} callback - on scroll callback 25694 * @returns {Function} result 25695 */ 25696 25697function onScroll(callback) { 25698 if (!scrollHandlers.length) { 25699 window.addEventListener('scroll', debounceScroll, { 25700 passive: true 25701 }); 25702 } 25703 25704 scrollHandlers.push(callback); 25705 return () => { 25706 scrollHandlers.splice(scrollHandlers.indexOf(callback), 1); 25707 25708 if (!scrollHandlers.length) { 25709 window.removeEventListener('scroll', debounceScroll); 25710 } 25711 }; 25712} 25713 25714/***/ }), 25715
25716/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js": 25717/*!***********************************************************************************************!*\ 25718 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js ***! 25719 \***********************************************************************************************/ 25720/*! exports provided: log, format, transitionEnd, timeout, interval, PausableTimeout, appendParamToURL, removeParamFromURL, appendParamsToUrl, getUrlParams, showErrorLayout, isEventTriggeredOutsideElement, clickOutside, objectEquals, range, getData, memoize, loadScript, get, isDOMElementFocusable */ 25721/***/ (function(module, __webpack_exports__, __webpack_require__) { 25722 25723"use strict"; 25724__webpack_require__.r(__webpack_exports__); 25725/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; }); 25726/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "format", function() { return format; }); 25727/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transitionEnd", function() { return transitionEnd; }); 25728/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); 25729/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return interval; }); 25730/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PausableTimeout", function() { return PausableTimeout; }); 25731/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendParamToURL", function() { return appendParamToURL; }); 25732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeParamFromURL", function() { return removeParamFromURL; }); 25733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendParamsToUrl", function() { return appendParamsToUrl; }); 25734/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUrlParams", function() { return getUrlParams; }); 25735/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showErrorLayout", function() { return showErrorLayout; }); 25736/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventTriggeredOutsideElement", function() { return isEventTriggeredOutsideElement; }); 25737/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clickOutside", function() { return clickOutside; }); 25738/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "objectEquals", function() { return objectEquals; }); 25739/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "range", function() { return range; }); 25740/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getData", function() { return getData; }); 25741/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "memoize", function() { return memoize; }); 25742/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadScript", function() { return loadScript; }); 25743/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; }); 25744/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDOMElementFocusable", function() { return isDOMElementFocusable; }); 25745/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 25746/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 25747/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 25748/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 25749 25750 25751// TODO: document as much as possible all methods 25752// CLARIFY: do we need to split some methods into other classes ? ie strings, console, object manipulations? 25753 25754/** 25755 * @module util 25756 * @category widgets 25757 * @subcategory toolbox 25758 */ 25759
25760/* eslint-disable no-use-before-define */ 25761const log = window.console; // IE11 fix 25762 25763if (!log.table) { 25764 log.table = () => {}; 25765} 25766/** 25767 * @param {string} message message with placeholders i.e. {0} 25768 * @param {...string} params values for placeholders 25769 * @returns {string} faormatted message 25770 */ 25771 25772 25773function format(message, ...params) { 25774 return params.reduce((msg, param, idx) => { 25775 const reg = new RegExp('\\{' + idx + '\\}', 'gm'); 25776 return msg.replace(reg, param); 25777 }, message); 25778} 25779/** 25780 * 25781 * @param {HTMLElement} element HTML element which will have a transition 25782 * @param {string} transitionClass CSS class which triggers transition animation 25783 * @param {Function} cb Callback function upon transition ends 25784 */ 25785 25786function transitionEnd(element, transitionClass, cb) { 25787 const eventFunction = () => { 25788 cb(); 25789 element.removeEventListener('transitionend', eventFunction); 25790 }; 25791 25792 element.addEventListener('transitionend', eventFunction); 25793 element.classList.add(transitionClass); 25794} 25795/** 25796 * @param {Function|undefined} fn function to be called after specified time 25797 * @param {number} [time] time before call callback 25798 * @returns {Function} Timeout disposable 25799 */ 25800 25801function timeout(fn, time = 0) { 25802 /** 25803 * @type {NodeJS.Timeout|undefined} 25804 */ 25805 var timer = setTimeout(() => { 25806 if (fn) { 25807 fn(); 25808 } 25809 25810 timer = undefined; 25811 fn = undefined; 25812 }, time); 25813 return () => { 25814 if (timer) { 25815 clearTimeout(timer); 25816 timer = undefined; 25817 fn = undefined; 25818 } 25819 }; 25820} 25821/** 25822 * @param {Function|undefined} fn function to be called regularly, after specified time delay 25823 * @param {number} [time] time regularity for callback execution 25824 * @returns {Function} disposable 25825 */ 25826 25827function interval(fn, time = 0) { 25828 /** 25829 * @type {NodeJS.Timeout|undefined} 25830 */ 25831 var intervalID = setInterval(() => { 25832 if (fn) { 25833 fn(); 25834 } 25835 }, time); 25836 return () => { 25837 if (intervalID) { 25838 clearInterval(intervalID); 25839 intervalID = undefined; 25840 fn = undefined; 25841 } 25842 }; 25843} 25844/** 25845 * @description Class represents the `setTimeout` with an ability to perform pause/resume actions 25846 */ 25847 25848class PausableTimeout { 25849 /** 25850 * @param {Function|undefined} callback function to be called after specified time 25851 * @param {number} [time] time before call callback 25852 */ 25853 constructor(callback, time = 0) { 25854 this.done = false; 25855 25856 this.callback = () => { 25857 if (callback) { 25858 callback(); 25859 } 25860 25861 this.done = true; 25862 this.durationTimeout = undefined; 25863 callback = undefined; 25864 }; 25865 25866 this.remaining = time; 25867 this.resume(); 25868 } 25869 /** 25870 * @description Pauses Timeout 25871 * @returns {InstanceType<PausableTimeout>} Instance of the PausableTimeout class 25872 */ 25873 25874 25875 pause() { 25876 if (this.durationTimeout && !this.done) { 25877 this.clearTimeoutRef(); 25878 this.remaining -= new Date().getTime() - (this.start ? this.start.getTime() : 0); 25879 } 25880 25881 return this; 25882 } 25883 /** 25884 * @description Resumes Timeout 25885 * @returns {InstanceType<PausableTimeout>} Instance of the PausableTimeout class 25886 */ 25887 25888 25889 resume() { 25890 if (!this.durationTimeout && !this.done) { 25891 this.start = new Date(); 25892 this.durationTimeout = timeout(this.callback, this.remaining); 25893 } 25894 25895 return this; 25896 } 25897 /** 25898 * @description Clear resources on demand 25899 */ 25900 25901 25902 destroy() { 25903 this.clearTimeout(); 25904 } 25905 /** 25906 * @description Clears the timeout and marks it as done. 25907 * After called, the timeout will not resume. 25908 */ 25909 25910 25911 clearTimeout() { 25912 this.clearTimeoutRef(); 25913 this.done = true; 25914 } 25915 /** 25916 * @description Clears resources 25917 */ 25918 25919 25920 clearTimeoutRef() { 25921 if (this.durationTimeout) { 25922 this.durationTimeout(); 25923 this.durationTimeout = undefined; 25924 } 25925 } 25926 25927} 25928/** 25929 * @param {string} url initial url 25930 * @param {string} name name of params 25931 * @param {string} value value of param 25932 * @returns {string} url with appended param 25933 */ 25934 25935function appendParamToURL(url, name, value) { 25936 // quit if the param already exists 25937 if (url.includes(name + '=')) { 25938 return url; 25939 } 25940 25941 const [urlWithoutHash, hash] = url.split('#'); 25942 const separator = urlWithoutHash.includes('?') ? '&' : '?'; 25943 return urlWithoutHash + separator + name + '=' + encodeURIComponent(value) + (hash ? '#' + hash : ''); 25944} 25945/** 25946 * @param {string} url Source Url 25947 * @param {string} name Parameter to remove 25948 * @returns {string} Url without parameter 25949 */ 25950 25951function removeParamFromURL(url, name) { 25952 if (url.includes('?') && url.includes(name + '=')) { 25953 var hash = ''; 25954 var [domain, paramUrl] = url.split('?'); // if there is a hash at the end, store the hash 25955 25956 if (paramUrl.includes('#')) { 25957 [paramUrl, hash] = paramUrl.split('#'); 25958 } 25959 /** 25960 * @type {string[]} 25961 */ 25962 25963 25964 var newParams = []; 25965 paramUrl.split('&').forEach(param => { 25966 // put back param to newParams array if it is not the one to be removed 25967 if (param.split('=')[0] !== name) { 25968 newParams.push(param); 25969 } 25970 }); 25971 return domain + (newParams.length ? '?' + newParams.join('&') : '') + (hash ? '#' + hash : ''); 25972 } 25973 25974 return url; 25975} 25976/** 25977 * @param {string} url initial url 25978 * @param {{[keys: string]: string}} params parmas as key value-object 25979 * @returns {string} Url with appended parameters 25980 */ 25981 25982function appendParamsToUrl(url, params) { 25983 return Object.entries(params).reduce((acc, [name, value]) => { 25984 return appendParamToURL(acc, name, value); 25985 }, url); 25986} 25987/** 25988 * 25989 * @param {string|undefined} [url] Source Url 25990 * @returns {{[x: string]: string|number|boolean|Array<string|boolean>}} Hash map of Url parameters 25991 */ 25992 25993function getUrlParams(url) { 25994 // get query string from url (optional) or window 25995 var queryString = url ? url.split('?')[1] : window.location.search.slice(1); // we'll store the parameters here 25996 25997 /** 25998 * @type {{[x: string]: string|number|boolean|Array<string|boolean>}} 25999 */ 26000 26001 var obj = {}; // if query string exists 26002 26003 if (queryString) { 26004 // stuff after # is not part of query string, so get rid of it 26005 queryString = queryString.split('#')[0]; // split our query string into its component parts 26006 26007 var qsTokens = queryString.split('&'); 26008 qsTokens.forEach(qsToken => { 26009 // separate the keys and the values 26010 var a = qsToken.split('='); // set parameter name and value (use 'true' if empty) 26011 26012 var paramName = a[0]; 26013 var paramValue = typeof a[1] === 'undefined' ? true : a[1]; // if the paramName ends with square brackets, e.g. colors[] or colors[2] 26014 26015 if (paramName.match(/\[(\d+)?\]$/)) { 26016 // create key if it doesn't exist 26017 var key = paramName.replace(/\[(\d+)?\]/, ''); 26018 obj[key] = obj[key] || []; 26019 var objValue = obj[key]; // if it's an indexed array e.g. colors[2] 26020 26021 if (paramName.match(/\[\d+\]$/)) { 26022 // get the index value and add the entry at the appropriate position 26023 var regexpArray = /\[(\d+)\]/.exec(paramName); 26024 26025 if (regexpArray) { 26026 if (Array.isArray(objValue)) { 26027 var index = +regexpArray[1]; 26028 objValue[index] = paramValue; 26029 } 26030 } 26031 } else if (Array.isArray(objValue)) { 26032 // otherwise add the value to the end of the array 26033 objValue.push(paramValue); 26034 } 26035 } else if (!obj[paramName]) { 26036 // if it doesn't exist, create property 26037 obj[paramName] = decodeURIComponent(paramValue + ''); 26038 } else if (obj[paramName] && typeof obj[paramName] === 'string') { 26039 // if property does exist and it's a string, convert it to an array 26040 // @ts-ignore 26041 obj[paramName] = [obj[paramName]]; // @ts-ignore 26042 26043 obj[paramName].push(paramValue); 26044 } else { 26045 // otherwise add the property 26046 // @ts-ignore 26047 obj[paramName].push(paramValue); 26048 } 26049 }); 26050 } 26051 26052 return obj; 26053} 26054/** 26055 * @type {string[]} 26056 */ 26057 26058let errors = []; 26059/** 26060 * 26061 * @param {string|Error} message to show 26062 */ 26063 26064function showErrorLayout(message) { 26065 const errorLayout = document.querySelector('#errorLayout'); 26066 26067 if (errorLayout) { 26068 if (message instanceof Error) { 26069 if (message.stack) { 26070 errors.unshift(message.stack); 26071 } 26072 26073 errors.unshift(message.message); 26074 } else { 26075 errors.unshift(message); 26076 } 26077 26078 log.error(message); 26079 errorLayout.addEventListener('click', () => { 26080 errorLayout.innerHTML = ''; 26081 errors = []; 26082 }, {
26083 once: true 26084 }); 26085 errorLayout.innerHTML = `<div class="danger" style=" 26086 bottom: 0; 26087 right: 0; 26088 position: fixed; 26089 background-color: #ff0000c7; 26090 border: black; 26091 padding: 5px; 26092 z-index: 9999999; 26093 border-radius: 10px; 26094 "> 26095 Error: <br/> 26096 ${errors.join('<hr/>')} 26097 </div>`; 26098 } 26099} 26100/** 26101 * @description Check if event `event` is triggered outside of element `el` 26102 * @param {Event} event DOM event 26103 * @param {HTMLElement} el element to track click on 26104 * @returns {boolean} `true` if triggered outside of element 26105 */ 26106 26107function isEventTriggeredOutsideElement(event, el) { 26108 if (event.target && event.target instanceof Element) { 26109 let currElement = event.target; 26110 26111 while (currElement.parentElement) { 26112 if (currElement === el) { 26113 return false; 26114 } 26115 26116 currElement = currElement.parentElement; 26117 } 26118 26119 return true; 26120 } 26121 26122 return false; 26123} 26124/** 26125 * @description Create a function to unsubscribe listener 26126 * @param {EventListener | undefined} listener Listener to unsubscribe 26127 * @param {string} eventName Event to unsubscribe 26128 * @returns {EventListener | undefined} Unsubscribed listener or undefined 26129 */ 26130 26131function makeExposableListener(listener, eventName) { 26132 if (listener) { 26133 document.removeEventListener(eventName, listener); 26134 listener = undefined; 26135 } 26136 26137 return listener; 26138} 26139/** 26140 * @description Create listener for click outside of element `el` to execute callback `cb` 26141 * @param {import('./RefElement').RefElement} el Element to track click on 26142 * @param {Function} cb Callback 26143 * @param {boolean} [preventDefault] Optional to prevent the default event 26144 * @returns {Function|undefined} Disposable function for listener (for unsubscription) 26145 */ 26146 26147 26148function clickOutside(el, cb, preventDefault = true) { 26149 // need for support desktop emulation 26150 const eventName = 'click'; 26151 const domEl = el.get(); 26152 /** 26153 * @type {EventListener|undefined} 26154 */ 26155 26156 let listener; 26157 26158 function expose() { 26159 listener = makeExposableListener(listener, eventName); 26160 } 26161 26162 if (domEl) { 26163 listener = event => { 26164 if (isEventTriggeredOutsideElement(event, domEl)) { 26165 if (cb(event) === false) { 26166 expose(); 26167 } 26168 26169 if (preventDefault === true) { 26170 event.preventDefault(); 26171 } 26172 } 26173 }; 26174 26175 setTimeout(() => { 26176 if (listener) { 26177 document.addEventListener(eventName, listener); 26178 } 26179 }, 0); 26180 return expose; 26181 } 26182 26183 throw new Error('Missing required el'); 26184} 26185/** 26186 * @description Compare object instances 26187 * @param {any} x Source object 26188 * @param {any} y Object for compare 26189 * @returns {boolean} `true` if objects are equal 26190 */ 26191// eslint-disable-next-line complexity 26192 26193function objectEquals(x, y) { 26194 if (x === null || x === undefined || y === null || y === undefined) { 26195 return x === y; 26196 } // after this just checking type of one would be enough 26197 26198 26199 if (x.constructor !== y.constructor) { 26200 return false; 26201 } // if they are functions, they should exactly refer to same one (because of closures) 26202 26203 26204 if (x instanceof Function) { 26205 return x === y; 26206 } // if they are regexps, they should exactly refer to same one (it is hard to better equality check on current ES) 26207 26208 26209 if (x instanceof RegExp) { 26210 return x === y; 26211 } 26212 26213 if (x === y || x.valueOf() === y.valueOf()) { 26214 return true; 26215 } 26216 26217 if (Array.isArray(x) && x.length !== y.length) { 26218 return false; 26219 } // if they are dates, they must had equal valueOf 26220 26221 26222 if (x instanceof Date) { 26223 return false; 26224 } // if they are strictly equal, they both need to be object at least 26225 26226 26227 if (!(x instanceof Object)) { 26228 return false; 26229 } 26230 26231 if (!(y instanceof Object)) { 26232 return false; 26233 } // recursive object equality check 26234 26235 26236 var p = Object.keys(x); 26237 return Object.keys(y).every(i =>
26237 p.indexOf(i) !== -1) && p.every(i => objectEquals(x[i], y[i])); 26238} 26239/** 26240 * @description Generate an integer Array containing an arithmetic progression 26241 * @param {number} start start from 26242 * @param {number|null} [stop] end on 26243 * @param {number} [step] step 26244 * @returns {number[]} Array with an arithmetic progression 26245 */ 26246 26247function range(start, stop = null, step) { 26248 if (stop === null) { 26249 stop = start || 0; 26250 start = 0; 26251 } 26252 26253 if (!step) { 26254 step = stop < start ? -1 : 1; 26255 } 26256 26257 var length = Math.max(Math.ceil((stop - start) / step), 0); 26258 var newRange = Array(length); 26259 26260 for (var idx = 0; idx < length; idx += 1, start += step) { 26261 newRange[idx] = start; 26262 } 26263 26264 return newRange; 26265} 26266const rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/; 26267/** 26268 * @description converts value from data attribute into js type value 26269 * @param {string} data value to convert 26270 * @returns {object|string|number|boolean|null|undefined} converted value 26271 */ 26272 26273function getData(data) { 26274 if (data === 'true') { 26275 return true; 26276 } 26277 26278 if (data === 'false') { 26279 return false; 26280 } 26281 26282 if (data === 'null') { 26283 return null; 26284 } // Only convert to a number if it doesn't change the string 26285 26286 26287 if (data === +data + '') { 26288 return +data; 26289 } 26290 26291 if (rbrace.test(data)) { 26292 return JSON.parse(data); 26293 } 26294 26295 return data; 26296} 26297/** 26298 * @description Creates a function that memoizes the result of `func`. 26299 * If resolver `hasher` is provided, it determines the cache key for storing 26300 * the result based on the arguments provided to the memoized function. 26301 * By default, the first argument provided to the memoized function is used as the map cache key. 26302 * The func is invoked with the this binding of the memoized function. 26303 * @param {Function} func The function to have its output memoized. 26304 * @param {Function} [hasher] The function to resolve the cache key. 26305 * @returns {Function} Returns the new memoized function. 26306 */ 26307 26308function memoize(func, hasher) { 26309 /** 26310 * @description Memoize function wrapper 26311 * @param {string} key Memoize key 26312 * @returns {any} Memoize cache value 26313 */ 26314 function memoizeInner(key) { 26315 /** 26316 * @type {{[x: string]: any}} 26317 */ 26318 var cache = memoizeInner.cache; // @ts-ignore 26319 26320 var address = '' + (hasher ? hasher.apply(this, arguments) : key); 26321 26322 if (typeof cache[address] === 'undefined') { 26323 // @ts-ignore 26324 cache[address] = func.apply(this, arguments); 26325 } 26326 26327 return cache[address]; 26328 } 26329 26330 memoizeInner.cache = {}; 26331 return memoizeInner; 26332} 26333/** 26334 * @description Add script tag on page 26335 * @param {string} source Url of script 26336 * @param {string} [globalObject] To check script loaded by global object 26337 * @param {string} [integrity] To add scripts integrity 26338 * @returns {Promise<any>} Promise when script loading is done or rejected 26339 */ 26340 26341const loadScriptHandler = (source, globalObject, integrity) => { 26342 return new Promise((resolve, reject) => { 26343 var script = document.createElement('script'); 26344 var prior = document.getElementsByTagName('script')[0]; 26345 26346 if (!prior || !prior.parentNode) { 26347 throw Error('No document'); 26348 } 26349 26350 script.async = true; 26351 26352 if (integrity) { 26353 script.integrity = integrity; 26354 } 26355 26356 script.type = 'text/javascript'; 26357 prior.parentNode.insertBefore(script, prior); 26358 26359 script.onload = () => { 26360 script.onload = null; // @ts-ignore 26361 26362 script = undefined; 26363 26364 if (globalObject) { 26365 // @ts-ignore 26366 if (window[globalObject]) { 26367 // @ts-ignore 26368 resolve(window[globalObject]); 26369 } else { 26370 reject(); 26371 } 26372 } else { 26373 resolve(); 26374 } 26375 }; 26376 26377 script.onabort = () => { 26378 reject(); 26379 }; 26380 26381 script.onerror = () => { 26382 reject(); 26383 }; 26384 26385 script.src = source; 26386 }); 26387}; 26388 26389const loadScript = memoize(loadScriptHandler); 26390/** 26391 * @description Get value in tree object `target` by path `path` 26392 * @param {any} target Source object 26393 * @param {string} path In `target` object 26394 * @param {any} [defaults] Will be returned instead of result if value doesn't exist 26395 * @returns {any} Value in `target` object by path `path` 26396 */ 26397 26398function get(target, path, defaults) { 26399 const parts = (path + '').split('.'); 26400 let part; 26401 26402 while (parts.length) { 26403 part = parts.shift(); 26404 26405 if (typeof target === 'object' && target !== null && part && part in target) { 26406 target = target[part]; 26407 } else if (typeof target === 'string' && part) { 26408 target = target[+part]; 26409 break; 26410 } else { 26411 target = defaults; 26412 break; 26413 } 26414 } 26415 26416 return target; 26417} 26418/** 26419 * @description Checks if DOM element is focusable 26420 * @param {object} element HTML element to check if it is focusable 26421 * @returns {boolean} true if focusable, false if not 26422 */ 26423 26424function isDOMElementFocusable(element) { 26425 if (element.tabIndex > 0 || element.tabIndex === 0 && element.hasAttribute('tabIndex') || element.hasAttribute('contenteditable')) { 26426 return true; 26427 } 26428 26429 if (element.hasAttribute('disabled') || element.hasAttribute('hidden')) { 26430 return false;
26431 } 26432 26433 switch (element.nodeName) { 26434 case 'A': 26435 return !!element.href && element.rel !== 'ignore'; 26436 26437 case 'INPUT': 26438 return element.type !== 'hidden' && element.type !== 'file'; 26439 26440 case 'BUTTON': 26441 case 'SELECT': 26442 case 'TEXTAREA': 26443 return true; 26444 26445 default: 26446 return false; 26447 } 26448} 26449 26450/***/ }), 26451
26452/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js": 26453/*!***************************************************************************************************!*\ 26454 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js ***! 26455 \***************************************************************************************************/ 26456/*! exports provided: SMALL, MEDIUM, LARGE, EXTRA_LARGE, getViewType, isTouchDevice, isSmallView, isMediumView, isMediumViewAndUp, isMediumViewAndDown, isExtraLargeView, isLargeView, isLargeViewAndUp, isLargeViewAndDown, isDesktopView, ALL_VIEW_TYPES, getActiveViewtypeName, init */ 26457/***/ (function(module, __webpack_exports__, __webpack_require__) { 26458 26459"use strict"; 26460__webpack_require__.r(__webpack_exports__); 26461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SMALL", function() { return SMALL; }); 26462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MEDIUM", function() { return MEDIUM; }); 26463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LARGE", function() { return LARGE; }); 26464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EXTRA_LARGE", function() { return EXTRA_LARGE; }); 26465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getViewType", function() { return getViewType; }); 26466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTouchDevice", function() { return isTouchDevice; }); 26467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSmallView", function() { return isSmallView; }); 26468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMediumView", function() { return isMediumView; }); 26469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMediumViewAndUp", function() { return isMediumViewAndUp; }); 26470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMediumViewAndDown", function() { return isMediumViewAndDown; }); 26471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isExtraLargeView", function() { return isExtraLargeView; }); 26472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLargeView", function() { return isLargeView; }); 26473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLargeViewAndUp", function() { return isLargeViewAndUp; }); 26474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLargeViewAndDown", function() { return isLargeViewAndDown; }); 26475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDesktopView", function() { return isDesktopView; }); 26476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ALL_VIEW_TYPES", function() { return ALL_VIEW_TYPES; }); 26477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getActiveViewtypeName", function() { return getActiveViewtypeName; }); 26478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "init", function() { return init; }); 26479/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 26480/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 26481/* harmony import */ var _eventBus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./eventBus */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/eventBus.js"); 26482/* harmony import */ var _debounce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./debounce */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/debounce.js"); 26483/* harmony import */ var widgets_viewTypeConfig__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/viewTypeConfig */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/viewTypeConfig.js"); 26484/* harmony import */ var config_breakpoints__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! config/breakpoints */ "./cartridges/app_harmony/cartridge/client/default/js/config/breakpoints.js"); 26485 26486// TODO: Need to update breakpoint for 375 / 768 and test/refactor viewtype.js 26487// TODO: resources shimming are loaded after bundle is parsed that results to undefined window.view.breakpoint.* 26488// TODO: add description to methods 26489// CLARIFY: isTypeView rename to isViewTypeMatch/isViewMatch ? 26490 26491/** 26492 * @module viewtype 26493 * @category widgets 26494 * @subcategory toolbox 26495 */ 26496 26497 26498 26499 26500const smallID = 'small'; 26501const mediumID = 'medium'; 26502const largeID = 'large'; 26503const extraLargeID = 'extraLarge'; 26504/** 26505 * @typedef {typeof smallID|typeof mediumID| typeof largeID|typeof extraLargeID} viewtype 26506 */ 26507 26508const breakMd = config_breakpoints__WEBPACK_IMPORTED_MODULE_4__["default"].md; 26509const breakLg = config_breakpoints__WEBPACK_IMPORTED_MODULE_4__["default"].lg; 26510const breakXl = config_breakpoints__WEBPACK_IMPORTED_MODULE_4__["default"].xl; 26511const smallView = `screen and (max-width: ${breakMd - 1}px)`; 26512const mediumView = `screen and (min-width: ${breakMd}px) and (max-width: ${breakLg - 1}px)`; 26513const largeView = `screen and (min-width: ${breakLg}px) and (max-width: ${breakXl - 1}px)`; 26514const exLargeView = `screen and (min-width: ${breakXl - 1}px)`; 26515let queriesMap = [[smallID, smallView], [mediumID, mediumView], [largeID, largeView], [extraLargeID, exLargeView]]; 26516let currentWindowWidth = window.innerWidth; 26517let currentWindowHeight = window.innerHeight; 26518/** 26519 * @description get current viewtype 26520 * @returns {viewtype} current viewtype 26521 */ 26522 26523function getCurrentViewType() { 26524 const matchQuery = queriesMap.find(([, query]) => window.matchMedia(query).matches); // @ts-ignore 26525 26526 return matchQuery && matchQuery[0] || smallID; 26527} 26528 26529const onWindowChange = () => { 26530 if (currentWindowWidth !== window.innerWidth || currentWindowHeight !== window.innerHeight) { 26531 currentWindowWidth = window.innerWidth; 26532 currentWindowHeight = window.innerHeight; 26533 _eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].emit('viewtype.windowChange', { 26534 currentWindowWidth: currentWindowWidth, 26535 currentWindowHeight: currentWindowHeight 26536 }); 26537 } 26538}; 26539/** 26540 * @type {viewtype} current viewtype 26541 */ 26542 26543 26544let currentViewType = smallID; 26545const SMALL = smallID; 26546const MEDIUM = mediumID; 26547const LARGE = largeID; 26548const EXTRA_LARGE = extraLargeID; 26549const getViewType = () => currentViewType; 26550const isTouchDevice = () => 'ontouchstart' in window || // @ts-ignore 26551!!(window.DocumentTouch && document instanceof window.DocumentTouch); 26552/** 26553 * @description check viewtype is current by string 26554 * @param {typeof currentViewType} type name to check 26555 * @returns {boolean} return true if current type is same as current viewtype 26556 */ 26557 26558function isTypeView(type) { 26559 return getViewType() === type; 26560} 26561 26562const isSmallView = () => isTypeView(smallID); 26563const isMediumView = () => isTypeView(mediumID); 26564const isMediumViewAndUp = () => !isSmallView(); // CLARIFY: isMediumAndMoreView/isMediumViewAndMore 26565 26566const isMediumViewAndDown = () => isSmallView() || isMediumView(); // CLARIFY: isMediumAndLessView/isMediumViewAndLess 26567 26568const isExtraLargeView = () => isTypeView(extraLargeID); 26569const isLargeView = () => isTypeView(largeID); 26570const isLargeViewAndUp = () => isLargeView() || isExtraLargeView(); 26571const isLargeViewAndDown = () => !isExtraLargeView(); 26572const isDesktopView = isLargeViewAndUp; 26573const modifiersMapping = { 26574 sm: isSmallView, 26575 md: isMediumView, 26576 lg: isLargeView, 26577 xl: isExtraLargeView 26578}; 26579/** 26580 * @type {Array<keyof modifiersMapping>} 26581 */ 26582 26583const ALL_VIEW_TYPES = ['sm', 'md', 'lg', 'xl']; 26584const getActiveViewtypeName = () => ALL_VIEW_TYPES.find(m => modifiersMapping[m]()) || 'xl'; 26585/** 26586 * @description match viewport by device name 26587 * @param {typeof smallID|typeof mediumID| typeof largeID|typeof extraLargeID} newDevice device type 26588 */ 26589 26590function matchViewport(newDevice) { 26591 const previousDevice = currentViewType; 26592 currentViewType = newDevice; 26593 26594 if (previousDevice !== currentViewType) { 26595 _eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].emit('viewtype.change', currentViewType); 26596 } 26597} 26598/** 26599 * @description To init viewtypes, you shouldn't use methods of modules before this executing 26600 * @param {object} [config] object 26601 * @param {boolean} config.useWindowListeners use listeners or MediaQueryListener 26602 * @param {string[][]} [config.queriesMap] size of mobile in pixels 26603 * @returns {void} 26604 */ 26605 26606 26607function init(config = { 26608 useWindowListeners: false 26609}) { 26610 const currentConfig = { ...config, 26611 ...widgets_viewTypeConfig__WEBPACK_IMPORTED_MODULE_3__["default"] 26612 }; 26613 26614 if (currentConfig.queriesMap) { 26615 queriesMap = currentConfig.queriesMap; 26616 } 26617 26618 if (currentConfig.useWindowListeners) { 26619 const windowResize = Object(_debounce__WEBPACK_IMPORTED_MODULE_2__["debounce"])(() => { 26620 onWindowChange(); 26621 matchViewport(getCurrentViewType()); 26622 }, 50); 26623 window.addEventListener('resize', windowResize, { 26624 passive: true 26625 }); 26626 window.addEventListener('orientationchange', windowResize, { 26627 passive: true 26628 }); 26629 } else { 26630 const applyCurrentDeviceType = Object(_debounce__WEBPACK_IMPORTED_MODULE_2__["debounce"])(() => matchViewport(getCurrentViewType()), 50);
26631 queriesMap.forEach(([, query]) => window.matchMedia(query).addListener(applyCurrentDeviceType)); 26632 } 26633 26634 currentViewType = getCurrentViewType(); 26635 _eventBus__WEBPACK_IMPORTED_MODULE_1__["default"].emit('viewtype.change', currentViewType); 26636} 26637 26638/***/ }), 26639
26640/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/viewTypeConfig.js": 26641/*!*************************************************************************************************!*\ 26642 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/viewTypeConfig.js ***! 26643 \*************************************************************************************************/ 26644/*! exports provided: default */ 26645/***/ (function(module, __webpack_exports__, __webpack_require__) { 26646 26647"use strict"; 26648__webpack_require__.r(__webpack_exports__); 26649/* harmony default export */ __webpack_exports__["default"] = ({ 26650 useWindowListeners: true 26651}); 26652 26653/***/ }), 26654
26655/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsList.js": 26656/*!**********************************************************************************************!*\ 26657 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsList.js ***! 26658 \**********************************************************************************************/ 26659/*! no exports provided */ 26660/***/ (function(module, __webpack_exports__, __webpack_require__) { 26661 26662"use strict"; 26663__webpack_require__.r(__webpack_exports__); 26664/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 26665/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_0__); 26666/* harmony import */ var widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/widgetsMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js"); 26667/* harmony import */ var widgets_global_Accordion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! widgets/global/Accordion */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Accordion.js"); 26668/* harmony import */ var widgets_global_AccordionItem__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! widgets/global/AccordionItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccordionItem.js"); 26669/* harmony import */ var widgets_global_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! widgets/global/Button */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Button.js"); 26670/* harmony import */ var widgets_global_ListAccessibility__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! widgets/global/ListAccessibility */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ListAccessibility.js"); 26671/* harmony import */ var widgets_header_MegaMenu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! widgets/header/MegaMenu */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MegaMenu.js"); 26672/* harmony import */ var widgets_global_SwipeToClose__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! widgets/global/SwipeToClose */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SwipeToClose.js"); 26673/* harmony import */ var widgets_header_MenuPanel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! widgets/header/MenuPanel */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuPanel.js"); 26674/* harmony import */ var widgets_header_MenuPanelToggle__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! widgets/header/MenuPanelToggle */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuPanelToggle.js"); 26675/* harmony import */ var widgets_header_MenuBarItem__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! widgets/header/MenuBarItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuBarItem.js"); 26676/* harmony import */ var widgets_header_HamburgerMenuItem__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! widgets/header/HamburgerMenuItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/HamburgerMenuItem.js"); 26677/* harmony import */ var widgets_global_DismissBlock__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! widgets/global/DismissBlock */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/DismissBlock.js"); 26678/* harmony import */ var widgets_forms_Form__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! widgets/forms/Form */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/Form.js"); 26679/* harmony import */ var widgets_forms_BasicForm__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! widgets/forms/BasicForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/BasicForm.js"); 26680/* harmony import */ var widgets_header_CountrySelector__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! widgets/header/CountrySelector */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/CountrySelector.js"); 26681/* harmony import */ var widgets_header_CountrySelectorMenuItem__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! widgets/header/CountrySelectorMenuItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/CountrySelectorMenuItem.js"); 26682/* harmony import */ var widgets_forms_AjaxForm__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! widgets/forms/AjaxForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AjaxForm.js"); 26683/* harmony import */ var widgets_global_Token__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! widgets/global/Token */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Token.js"); 26684/* harmony import */ var widgets_forms_BasicInput__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! widgets/forms/BasicInput */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/BasicInput.js"); 26685/* harmony import */ var widgets_forms_InputEmail__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! widgets/forms/InputEmail */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputEmail.js"); 26686/* harmony import */ var widgets_forms_InputPassword__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! widgets/forms/InputPassword */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputPassword.js"); 26687/* harmony import */ var widgets_forms_InputCheckbox__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! widgets/forms/InputCheckbox */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputCheckbox.js"); 26688/* harmony import */ var widgets_forms_InputText__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! widgets/forms/InputText */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputText.js"); 26689/* harmony import */ var widgets_forms_InputTextarea__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! widgets/forms/InputTextarea */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputTextarea.js"); 26690/* harmony import */ var widgets_forms_InputHidden__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! widgets/forms/InputHidden */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputHidden.js"); 26691/* harmony import */ var widgets_forms_InputTel__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! widgets/forms/InputTel */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputTel.js"); 26692/* harmony import */ var widgets_forms_MaskableInput__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! widgets/forms/MaskableInput */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/MaskableInput.js"); 26693/* harmony import */ var widgets_global_Tabs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! widgets/global/Tabs */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Tabs.js"); 26694/* harmony import */ var widgets_global_TabPanel__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! widgets/global/TabPanel */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/TabPanel.js"); 26695/* harmony import */ var widgets_forms_InputSelect__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! widgets/forms/InputSelect */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputSelect.js"); 26696/* harmony import */ var widgets_global_Label__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! widgets/global/Label */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Label.js"); 26697/* harmony import */ var widgets_forms_ajax_EmailSubscribe__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! widgets/forms/ajax/EmailSubscribe */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/EmailSubscribe.js"); 26698/* harmony import */ var widgets_global_ConfirmDialog__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! widgets/global/ConfirmDialog */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ConfirmDialog.js"); 26699/* harmony import */ var widgets_global_Carousel__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! widgets/global/Carousel */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Carousel.js"); 26700/* harmony import */ var widgets_global_BackToTop__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! widgets/global/BackToTop */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/BackToTop.js"); 26701/* harmony import */ var widgets_global_Modal__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! widgets/global/Modal */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Modal.js"); 26702/* harmony import */ var widgets_forms_InputRadio__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! widgets/forms/InputRadio */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/InputRadio.js"); 26703/* harmony import */ var widgets_global_ConsentTracking__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! widgets/global/ConsentTracking */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ConsentTracking.js"); 26704/* harmony import */ var widgets_global_DropDown__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! widgets/global/DropDown */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/DropDown.js"); 26705/* harmony import */ var widgets_global_EmitBusEvent__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! widgets/global/EmitBusEvent */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/EmitBusEvent.js"); 26706/* harmony import */ var widgets_forms_AjaxFormResponseContainer__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! widgets/forms/AjaxFormResponseContainer */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AjaxFormResponseContainer.js"); 26707/* harmony import */ var widgets_forms_Combobox__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! widgets/forms/Combobox */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/Combobox.js"); 26708/* harmony import */ var widgets_search_SearchBox__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! widgets/search/SearchBox */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBox.js"); 26709/* harmony import */ var widgets_global_FocusHighlighter__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! widgets/global/FocusHighlighter */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/FocusHighlighter.js"); 26710/* harmony import */ var widgets_search_SearchBoxToggle__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! widgets/search/SearchBoxToggle */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/SearchBoxToggle.js"); 26711/* harmony import */ var widgets_global_StickyHeader__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! widgets/global/StickyHeader */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/StickyHeader.js"); 26712/* harmony import */ var widgets_global_ButtonWithIcon__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! widgets/global/ButtonWithIcon */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ButtonWithIcon.js"); 26713/* harmony import */ var widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! widgets/global/AccessibilityFocusTrapMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusTrapMixin.js"); 26714/* harmony import */ var widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! widgets/global/AccessibilityFocusMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/AccessibilityFocusMixin.js"); 26715/* harmony import */ var widgets_global_SoftKeyboardToggleMixin__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! widgets/global/SoftKeyboardToggleMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SoftKeyboardToggleMixin.js"); 26716/* harmony import */ var widgets_product_ProductTile__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! widgets/product/ProductTile */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/ProductTile.js"); 26717/* harmony import */ var widgets_wishlist_AddToWishlistMixin__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(/*! widgets/wishlist/AddToWishlistMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/AddToWishlistMixin.js"); 26718/* harmony import */ var widgets_global_Disclosure__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(/*! widgets/global/Disclosure */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Disclosure.js"); 26719/* harmony import */ var widgets_global_GlobalAlerts__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(/*! widgets/global/GlobalAlerts */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/GlobalAlerts.js"); 26720/* harmony import */ var widgets_global_GlobalModal__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(/*! widgets/global/GlobalModal */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/GlobalModal.js"); 26721/* harmony import */ var widgets_header_MenuButton__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! widgets/header/MenuButton */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/header/MenuButton.js"); 26722 26723 26724/* eslint-disable indent */ 26725 26726/* eslint-disable sonarjs/no-duplicate-string */ 26727 26728/* sonar-ignore-start */ 26729const [, pdp,, plp, wishlist, cart, checkout, orderconfirmation, account, content] = ['home', 'pdp', 'clp', 'plp', 'wishlist', 'cart', 'checkout', 'orderconfirmation', 'account', 'static'] // @ts-ignore 26730.map(ctx => window.contexts.includes(ctx)); 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 26744 26745 26746 26747 26748 26749 26750 26751 26752 26753 26754 26755 26756 26757 26758 26759 26760 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26786 26787widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].addWidgetsList('global.widgets', () => [['token', widgets_global_Token__WEBPACK_IMPORTED_MODULE_18__["default"]], ['label', widgets_global_Label__WEBPACK_IMPORTED_MODULE_31__["default"]], ['carousel', widgets_global_Carousel__WEBPACK_IMPORTED_MODULE_34__["default"]], ['button', widgets_global_Button__WEBPACK_IMPORTED_MODULE_4__["default"]], ['buttonWithIcon', widgets_global_ButtonWithIcon__WEBPACK_IMPORTED_MODULE_47__["default"], 'button'], ['listAccessibility', widgets_global_ListAccessibility__WEBPACK_IMPORTED_MODULE_5__["default"]], ['refinementsPanel', widgets_global_Modal__WEBPACK_IMPORTED_MODULE_36__["default"], 'listAccessibility'], ['refinementsPanel', widgets_global_SwipeToClose__WEBPACK_IMPORTED_MODULE_7__["default"], 'refinementsPanel'], ['megaMenu', widgets_header_MegaMenu__WEBPACK_IMPORTED_MODULE_6__["default"], 'listAccessibility'], ['menuBarItem', widgets_header_MenuBarItem__WEBPACK_IMPORTED_MODULE_10__["default"], 'listAccessibility'], ['hamburgerMenuItem', widgets_header_HamburgerMenuItem__WEBPACK_IMPORTED_MODULE_11__["default"], 'listAccessibility'], ['countrySelectorMenuItem', widgets_header_CountrySelectorMenuItem__WEBPACK_IMPORTED_MODULE_16__["default"], 'hamburgerMenuItem'], ['countrySelectorMenuItem', widgets_header_CountrySelector__WEBPACK_IMPORTED_MODULE_15__["default"], 'countrySelectorMenuItem'], ['accordion', widgets_global_Accordion__WEBPACK_IMPORTED_MODULE_2__["default"], 'listAccessibility'], ['menuButton', widgets_header_MenuButton__WEBPACK_IMPORTED_MODULE_56__["default"], 'listAccessibility'], ['accordionItem', widgets_global_Acco
26787rdionItem__WEBPACK_IMPORTED_MODULE_3__["default"]], ['swipeToClose', widgets_global_SwipeToClose__WEBPACK_IMPORTED_MODULE_7__["default"]], ['menuPanel', widgets_header_MenuPanel__WEBPACK_IMPORTED_MODULE_8__["default"], 'swipeToClose'], ['menuPanelToggle', widgets_header_MenuPanelToggle__WEBPACK_IMPORTED_MODULE_9__["default"]], ['dropDown', widgets_global_DropDown__WEBPACK_IMPORTED_MODULE_39__["default"]], ['dismissBlock', widgets_global_DismissBlock__WEBPACK_IMPORTED_MODULE_12__["default"]], ['countrySelector', widgets_header_CountrySelector__WEBPACK_IMPORTED_MODULE_15__["default"], 'menuButton'], ['backtotop', widgets_global_BackToTop__WEBPACK_IMPORTED_MODULE_35__["default"]], ['consentTracking', widgets_global_ConsentTracking__WEBPACK_IMPORTED_MODULE_38__["default"]], ['emitBusEvent', widgets_global_EmitBusEvent__WEBPACK_IMPORTED_MODULE_40__["default"]], ['focusHighlighter', widgets_global_FocusHighlighter__WEBPACK_IMPORTED_MODULE_44__["default"]], ['searchBoxToggle', widgets_search_SearchBoxToggle__WEBPACK_IMPORTED_MODULE_45__["default"]], ['stickyHeader', widgets_global_StickyHeader__WEBPACK_IMPORTED_MODULE_46__["default"]], ['basicForm', widgets_forms_BasicForm__WEBPACK_IMPORTED_MODULE_14__["default"]], ['form', widgets_forms_Form__WEBPACK_IMPORTED_MODULE_13__["default"], 'basicForm'], ['ajaxform', widgets_forms_AjaxForm__WEBPACK_IMPORTED_MODULE_17__["default"], 'basicForm'], ['emailSubscribe', widgets_forms_ajax_EmailSubscribe__WEBPACK_IMPORTED_MODULE_32__["default"], 'ajaxform'], ['basicInput', widgets_forms_BasicInput__WEBPACK_IMPORTED_MODULE_19__["default"]], ['inputPassword', widgets_forms_InputPassword__WEBPACK_IMPORTED_MODULE_21__["default"], 'basicInput'], ['inputCheckbox', widgets_forms_InputCheckbox__WEBPACK_IMPORTED_MODULE_22__["default"], 'basicInput'], ['inputSelect', widgets_forms_InputSelect__WEBPACK_IMPORTED_MODULE_30__["default"], 'basicInput'], ['inputText', widgets_forms_InputText__WEBPACK_IMPORTED_MODULE_23__["default"], 'basicInput'], ['inputEmail', widgets_forms_InputEmail__WEBPACK_IMPORTED_MODULE_20__["default"], 'inputText'], ['inputTextarea', widgets_forms_InputTextarea__WEBPACK_IMPORTED_MODULE_24__["default"], 'inputText'], ['inputTel', widgets_forms_InputTel__WEBPACK_IMPORTED_MODULE_26__["default"], 'inputText'], ['inputTel', widgets_forms_MaskableInput__WEBPACK_IMPORTED_MODULE_27__["default"], 'inputTel'], ['inputRadio', widgets_forms_InputRadio__WEBPACK_IMPORTED_MODULE_37__["default"], 'basicInput'], ['inputHidden', widgets_forms_InputHidden__WEBPACK_IMPORTED_MODULE_25__["default"], 'basicInput'], ['modal', widgets_global_Modal__WEBPACK_IMPORTED_MODULE_36__["default"]], ['modal', widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_48__["default"], 'modal'], ['globalModal', widgets_global_GlobalModal__WEBPACK_IMPORTED_MODULE_55__["default"], 'modal'], ['confirmDialog', widgets_global_ConfirmDialog__WEBPACK_IMPORTED_MODULE_33__["default"], 'modal'], ['searchBoxToggle', widgets_search_SearchBoxToggle__WEBPACK_IMPORTED_MODULE_45__["default"], 'modal'], ['combobox', widgets_forms_Combobox__WEBPACK_IMPORTED_MODULE_42__["default"]], ['searchBox', widgets_search_SearchBox__WEBPACK_IMPORTED_MODULE_43__["default"], 'combobox'], ['searchBox', widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_48__["default"], 'searchBox'], ['searchBox', widgets_global_SoftKeyboardToggleMixin__WEBPACK_IMPORTED_MODULE_50__["default"], 'searchBox'], ['searchBox', widgets_global_Modal__WEBPACK_IMPORTED_MODULE_36__["default"], 'searchBox'], ['tabs', widgets_global_Tabs__WEBPACK_IMPORTED_MODULE_28__["default"]], ['tabPanel', widgets_global_TabPanel__WEBPACK_IMPORTED_MODULE_29__["default"]], ['productTile', widgets_product_ProductTile__WEBPACK_IMPORTED_MODULE_51__["default"]], ['productTile', widgets_wishlist_AddToWishlistMixin__WEBPACK_IMPORTED_MODULE_52__["default"], 'productTile'], ['ajaxFormResponseContainer', widgets_forms_AjaxFormResponseContainer__WEBPACK_IMPORTED_MODULE_41__["default"], 'modal'], ['disclosure', widgets_global_Disclosure__WEBPACK_IMPORTED_MODULE_53__["default"]], ['globalAlerts', widgets_global_GlobalAlerts__WEBPACK_IMPORTED_MODULE_54__["default"]]]); 26788 26789if (content) { 26790 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
26790ise.all([__webpack_require__.e(/*! import() | content.widgets */ "content.widgets").then(__webpack_require__.bind(null, /*! widgets/content/ContactUs */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/content/ContactUs.js"))]).then(deps => { 26791 const [ContactUs] = deps.map(dep => dep.default); 26792 return { 26793 listId: 'content.widgets', 26794 widgetsDefinition: () => [['contactUs', ContactUs]] 26795 }; 26796 })); 26797} 26798 26799if (!checkout) { 26800 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | minicart.widgets */ "minicart.widgets").then(__webpack_require__.bind(null, /*! widgets/cart/Minicart */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/cart/Minicart.js")), __webpack_require__.e(/*! import() | minicart.widgets */ "minicart.widgets").then(__webpack_require__.bind(null, /*! widgets/cart/MinicartDialog */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/cart/MinicartDialog.js"))]).then(deps => { 26801 const [Minicart, MinicartDialog] = deps.map(dep => dep.default); 26802 return { 26803 listId: 'minicart.widgets', 26804 widgetsDefinition: () => [['minicart', Minicart], // modal 26805 ['minicartDialog', MinicartDialog, 'modal']] 26806 }; 26807 })); 26808} 26809 26810if (wishlist) { 26811 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! widgets/wishlist/WishlistMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/WishlistMgr.js")), __webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! widgets/wishlist/WishListItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/WishListItem.js")), __webpack_require__.e(/*! import() | wishlist.widgets */ "wishlist.widgets").then(__webpack_require__.bind(null, /*! widgets/product/AddToCartMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/AddToCartMixin.js"))]).then(deps => { 26812 const [WishlistMgr, WishListItem, AddToCartMixin] = deps.map(dep => dep.default); 26813 return { 26814 listId: 'wishlist.widgets', 26815 widgetsDefinition: () => [['wishlistMgr', WishlistMgr], ['wishListItem', WishListItem], ['wishListItem', AddToCartMixin, 'wishListItem']] 26816 }; 26817 })); 26818} 26819 26820if (pdp || plp || cart || wishlist) { 26821 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([__webpack_require__.e(/*! import() | product.widgets */ "product.widgets").then(__webpack_require__.bind(null, /*! widgets/product/ProductDetail */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/ProductDetail.js")), __webpack_require__.e(/*! import() | product.widgets */ "product.widgets").then(__webpack_require__.bind(null, /*! widgets/product/ProductImages */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/ProductImages.js")), __webpack_require__.e(/*! import() | product.widgets */ "product.widgets").then(__webpack_require__.bind(null, /*! widgets/product/ColorSwatch */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/ColorSwatch.js")), __webpack_require__.e(/*! import() | product.widgets */ "product.widgets").then(__webpack_require__.bind(null, /*! widgets/product/AddToCartMixin */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/product/AddToCartMixin.js")), __webpack_require__.e(/*! import() | product.widgets */ "product.widgets").then(__webpack_require__.bind(null, /*! widgets/global/ProcessButton */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/ProcessButton.js"))]).then(deps => { 26822 const [ProductDetail, ProductImages, ColorSwatch, AddToCartMixin, ProcessButton] = deps.map(dep => dep.default); 26823 return { 26824 listId: 'product.widgets', 26825 widgetsDefinition: () => [['productDetail', ProductDetail], ['productDetail', AddToCartMixin, 'productDetail'], ['productDetail', widgets_wishlist_AddToWishlistMixin__WEBPACK_IMPORTED_MODULE_52__["default"], 'productDetail'], ['productImages', ProductImages], ['productImages', widgets_global_AccessibilityFocusTrapMixin__WEBPACK_IMPORTED_MODULE_48__["default"], 'productImages'], ['colorSwatch', ColorSwatch], // button 26826 ['processButton', ProcessButton, 'button']] 26827 }; 26828 })); 26829} 26830 26831if (plp) { 26832 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
26832ise.all([__webpack_require__.e(/*! import() | search.widgets */ "search.widgets").then(__webpack_require__.bind(null, /*! widgets/search/ProductListingMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/ProductListingMgr.js")), __webpack_require__.e(/*! import() | search.widgets */ "search.widgets").then(__webpack_require__.bind(null, /*! widgets/search/RefinementsPanel */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/RefinementsPanel.js")), __webpack_require__.e(/*! import() | search.widgets */ "search.widgets").then(__webpack_require__.bind(null, /*! widgets/search/RefinementsPanelToggle */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/RefinementsPanelToggle.js")), __webpack_require__.e(/*! import() | search.widgets */ "search.widgets").then(__webpack_require__.bind(null, /*! widgets/search/RefinementMenuItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/RefinementMenuItem.js")), __webpack_require__.e(/*! import() | search.widgets */ "search.widgets").then(__webpack_require__.bind(null, /*! widgets/global/Refinement */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/Refinement.js")), __webpack_require__.e(/*! import() | search.widgets */ "search.widgets").then(__webpack_require__.bind(null, /*! widgets/search/NoSearchResultsForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/search/NoSearchResultsForm.js"))]).then(plpDeps => { 26833 const [ProductListingMgr, RefinementsPanel, RefinementsPanelToggle, RefinementMenuItem, Refinement, NoSearchResultsForm] = plpDeps.map(dep => dep.default); 26834 return { 26835 listId: 'search.widgets', 26836 widgetsDefinition: () => [// listAccessibility 26837 ['refinementsPanel', RefinementsPanel, 'refinementsPanel'], ['refinementMenuItem', RefinementMenuItem, 'listAccessibility'], // tabs 26838 ['productListingMgr', ProductListingMgr, 'tabs'], ['refinementsPanelToggle', RefinementsPanelToggle], ['refinement', Refinement], // basicForm 26839 ['noSearchResultsForm', NoSearchResultsForm, 'basicForm']] 26840 }; 26841 })); 26842} 26843 26844if (account) { 26845 // @ts-ignore 26846 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/account/PaymentsList */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/account/PaymentsList.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/account/AddressList */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/account/AddressList.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/account/OrderHistoryMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/account/OrderHistoryMgr.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/AddressBookForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AddressBookForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/account/PasswordResetForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/account/PasswordResetForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/AddressForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AddressForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/ajax/LoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/GoogleAutocompleteField */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/GoogleAutocompleteField.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/SessionExpiration */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SessionExpiration.js")), Promise.all(/*! import() | account.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("account.widgets")]).then(__webpack_require__.bind(null, /*! widgets/order/OrderProductSummary */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/order/OrderProductSummary.js"))]).then(deps => { 26847 const [PaymentsList, AddressList, OrderHistoryMgr, AddressBookForm, PasswordResetForm, AddressForm, LoginForm, GoogleAutocompleteField, SessionExpiration, OrderProductSummary] = deps.map(dep => dep.default); 26848 return { 26849 listId: 'account.widgets', 26850 widgetsDefinition: () => [['addressList', AddressList], ['paymentsList', PaymentsList], ['orderHistoryMgr', OrderHistoryMgr], ['sessionExpiration', SessionExpiration, 'modal'], // basicForm / ajaxform 26851 ['addressForm', AddressForm, 'ajaxform'], ['addressBookForm', AddressBookForm, 'addressForm'], ['loginForm', LoginForm, 'ajaxform'], ['passwordResetForm', PasswordResetForm, 'ajaxform'], // inputText 26852 ['googleAutocompleteField', GoogleAutocompleteField, 'inputText'], ['orderProductSummary', OrderProductSummary]] 26853 }; 26854 })); 26855} 26856 26857if (cart) { 26858 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
26858ise.all([Promise.all(/*! import() | cart.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("cart.widgets")]).then(__webpack_require__.bind(null, /*! widgets/cart/CartMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/cart/CartMgr.js")), Promise.all(/*! import() | cart.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("cart.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/CouponForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/CouponForm.js")), Promise.all(/*! import() | cart.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("cart.widgets")]).then(__webpack_require__.bind(null, /*! widgets/cart/PromoCodeDisclosure */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/cart/PromoCodeDisclosure.js")), Promise.all(/*! import() | cart.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("cart.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/SessionExpiration */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SessionExpiration.js"))]).then(deps => { 26859 const [CartMgr, CouponForm, PromoCodeDisclosure, SessionExpiration] = deps.map(dep => dep.default); 26860 return { 26861 listId: 'cart.widgets', 26862 widgetsDefinition: () => [['cartMgr', CartMgr], // modal 26863 ['sessionExpiration', SessionExpiration, 'modal'], // basicForm / form / ajaxForm 26864 ['couponform', CouponForm, 'ajaxform'], // disclosure 26865 ['promoCodeDisclosure', PromoCodeDisclosure, 'disclosure']] 26866 }; 26867 })); 26868} 26869 26870if (checkout) { 26871 // @ts-ignore 26872 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Promise.all([Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/ajax/LoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/LoginForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/ajax/CheckoutLoginForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/ajax/CheckoutLoginForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/account/PasswordResetForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/account/PasswordResetForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/CheckoutMgr */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/CheckoutMgr.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/AddressCheckoutForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/AddressCheckoutForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/ShippingForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/ShippingForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/BillingForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/BillingForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/PaymentAccordion */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/PaymentAccordion.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/PaymentAccordionItem */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/PaymentAccordionItem.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/PaymentAccordionItemCREDIT_CARD */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/PaymentAccordionItemCREDIT_CARD.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/PaymentAccordionItemZERO_PAYMENT */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/PaymentAccordionItemZERO_PAYMENT.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/PaymentAccordionItemDW_APPLE_PAY */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/PaymentAccordionItemDW_APPLE_PAY.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/PaymentAccordionItemPAYPAL_EXPRESS */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/PaymentAccordionItemPAYPAL_EXPRESS.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/InputCreditCardNumber */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/InputCreditCardNumber.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/checkout/RadioSelector */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/checkout/RadioSelector.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/GoogleAutocompleteField */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/GoogleAutocompleteField.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/forms/AddressForm */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/forms/AddressForm.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/global/SessionExpiration */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SessionExpiration.js")), Promise.all(/*! import() | checkout.widgets */[__webpack_require__.e("account.widgets~cart.widgets~checkout.widgets"), __webpack_require__.e("account.widgets~checkout.widgets"), __webpack_require__.e("checkout.widgets")]).then(__webpack_require__.bind(null, /*! widgets/content/ContactUs */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/content/ContactUs.js"))]).then(deps => { 26873 const [LoginForm, CheckoutLoginForm, PasswordResetForm, CheckoutMgr, AddressCheckoutForm, ShippingFrom, BillingForm, PaymentAccordion, PaymentAccordionItem, PaymentAccordionItemCREDITCARD, PaymentAccordionItemZEROPAYMENT, PaymentAccordionItemAPPLEPAY, PaymentAccordionItemPAYPALEXPRESS, InputCreditCardNumber, RadioSelector, GoogleAutocompleteField, AddressForm, SessionExpiration, ContactUs] = deps.map(dep => dep.default); 26874 return { 26875 listId: 'checkout.widgets', 26876 widgetsDefinition: () => [['checkoutMgr', CheckoutMgr], ['checkoutMgr', widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_49__["default"], 'checkoutMgr'], // modal 26877 ['sessionExpiration', SessionExpiration, 'modal'], // basicForm / form / ajaxform 26878 ['loginForm', LoginForm, 'ajaxform'], ['checkoutLoginForm', CheckoutLoginForm, 'loginForm'], ['passwordResetForm', PasswordResetForm, 'ajaxform'], ['addressForm', AddressForm, 'ajaxform'], ['addressCheckoutForm', AddressCheckoutForm, 'addressForm'], ['addressCheckoutForm', widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_49__["default"], 'addressCheckoutForm'], ['shippingForm', ShippingFrom, 'addressCheckoutForm'], ['billingForm', BillingForm, 'addressCheckoutForm'], // basicInput 26879 ['inputCreditCardNumber', InputCreditCardNumber, 'basicInput'], ['googleAutocompleteField', GoogleAutocompleteField, 'inputText'], // inputRadio 26880 ['radioSelector', RadioSelector, 'inputRadio'], // accordion 26881 ['paymentAccordion', PaymentAccordion, 'accordion'], // accordionItems 26882 ['paymentAccordionItem', PaymentAccordionItem, 'accordionItem'], ['paymentAccordionItemCREDIT_CARD', PaymentAccordionItemCREDITCARD, 'paymentAccordionItem'], ['paymentAccordionItemCREDIT_CARD', widgets_global_AccessibilityFocusMixin__WEBPACK_IMPORTED_MODULE_49__["default"], 'paymentAccordionItemCREDIT_CARD'], ['paymentAccordionItemPAYPAL_EXPRESS', PaymentAccordionItemPAYPALEXPRESS, 'paymentAccordionItem'], ['paymentAccordionItemZERO_PAYMENT', PaymentAccordionItemZEROPAYMENT, 'paymentAccordionItem'], ['paymentAccordionItemDW_APPLE_PAY', PaymentAccordionItemAPPLEPAY, 'paymentAccordionItem'], ['contactUs', ContactUs]] 26883 }; 26884 })); 26885} 26886 26887if (orderconfirmation) { 26888 widgets_widgetsMgr__WEBPACK_IMPORTED_MODULE_1__["default"].asyncListsPromises.push(Prom
26888ise.all([__webpack_require__.e(/*! import() | orderconfirmation.widgets */ "orderconfirmation.widgets").then(__webpack_require__.bind(null, /*! widgets/order/OrderProductSummary */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/order/OrderProductSummary.js"))]).then(deps => { 26889 const [OrderProductSummary] = deps.map(dep => dep.default); 26890 return { 26891 listId: 'content.widgets', 26892 widgetsDefinition: () => [['orderProductSummary', OrderProductSummary]] 26893 }; 26894 })); 26895} 26896/* sonar-ignore-end */ 26897 26898/***/ }), 26899
26900/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js": 26901/*!*********************************************************************************************!*\ 26902 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsMgr.js ***! 26903 \*********************************************************************************************/ 26904/*! exports provided: default */ 26905/***/ (function(module, __webpack_exports__, __webpack_require__) { 26906 26907"use strict"; 26908__webpack_require__.r(__webpack_exports__); 26909/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.string.replace */ "./node_modules/core-js/modules/es.string.replace.js"); 26910/* harmony import */ var core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_replace__WEBPACK_IMPORTED_MODULE_0__); 26911/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator */ "./node_modules/core-js/modules/web.dom-collections.iterator.js"); 26912/* harmony import */ var core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator__WEBPACK_IMPORTED_MODULE_1__); 26913/* harmony import */ var _polyfills__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_polyfills */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/_polyfills/index.js"); 26914/* harmony import */ var _toolbox_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toolbox/util */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/util.js"); 26915/* harmony import */ var widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! widgets/toolbox/RefElement */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/RefElement.js"); 26916/* harmony import */ var widgets_Widget__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! widgets/Widget */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/Widget.js"); 26917/* harmony import */ var widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! widgets/toolbox/viewtype */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/viewtype.js"); 26918/* harmony import */ var widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! widgets/toolbox/eventBus */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/eventBus.js"); 26919 26920 26921 26922/** 26923 * @module widgetsMgr 26924 * @category widgets 26925 * @subcategory framework 26926 */ 26927 26928/* eslint-disable no-use-before-define */ 26929 26930/* eslint-disable max-classes-per-file */ 26931if ('assetsStaticURL' in window) { 26932 // @ts-ignore 26933 // eslint-disable-next-line no-undef, camelcase 26934 __webpack_require__.p = window.assetsStaticURL; 26935} 26936 26937 26938 // import eventMgr from './EventMgr'; 26939 26940 26941 26942 26943 26944const WIDGET_PROP_NAME = '@@_widget_instance_@@'; 26945const WIDGET_DISPOSABLE_VALUES = '@@_widget_events_disposable_@@'; 26946const WIDGET_DOM_EVENT_PREFIX = 'data-event-'; 26947const WIDGET_DOM_GLOBAL_EVENT_PREFIX = 'data-global-event-'; 26948const DATA_ATTR_PREFIX = 'data-'; 26949const DATA_WIDGET = 'data-widget'; 26950const DATA_WIDGET_VIEWTYPE_RELATED = 'data-widget.'; 26951const WIDGET_EVENT_PREFIX = 'data-widget-event-'; 26952const DATA_INITIALIZED = 'data-initialized'; 26953const DATA_REF = 'data-ref'; 26954/** 26955 * @description check if there are viewtype modifiers 26956 * @param {string[]} modifiers to check 26957 * @returns {boolean} true if any viewtype modifier exist 26958 */ 26959// @ts-ignore 26960 26961const isViewtypeModifiers = modifiers => modifiers.some(m => widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].includes(m)); 26962/** 26963 * @description check if HTML Element is widget 26964 * @param {HTMLElement} el element to check 26965 * @returns {boolean} true if widget 26966 */ 26967 26968 26969const isWidget = el => el.hasAttribute(DATA_WIDGET) || el.getAttributeNames().some(name => name.startsWith(DATA_WIDGET_VIEWTYPE_RELATED)); 26970/** 26971 * @description get widget name for current viewtype 26972 * @param {HTMLElement} el widget element 26973 * @returns {string|null} widget name if exist 26974 */ 26975 26976 26977const getViewtypeRelatedWidgetName = el => { 26978 const activeViewtypeName = Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["getActiveViewtypeName"])(); 26979 const viewtypeWidgetConfigs = el.getAttributeNames().filter(name => name.startsWith(DATA_WIDGET_VIEWTYPE_RELATED)); 26980 26981 if (viewtypeWidgetConfigs.length) { 26982 const attrName = viewtypeWidgetConfigs.find(name => name.includes(activeViewtypeName)); 26983 return attrName ? el.getAttribute(attrName) : 'widget'; 26984 } else { 26985 return null; 26986 } 26987}; 26988/** 26989 * @description check if element has viewtype-related widget definition or widget properties 26990 * @param {HTMLElement} el element 26991 * @returns {boolean} widget name if exist 26992 */ 26993 26994 26995const isViewtypeRelatedWidget = el => { 26996 if (el.getAttribute(DATA_WIDGET)) { 26997 return el.getAttributeNames().some(name => name.startsWith(DATA_ATTR_PREFIX) // is data attr
26998 && !name.startsWith(WIDGET_EVENT_PREFIX) // not widget event 26999 && !name.startsWith(WIDGET_DOM_EVENT_PREFIX) // not dom event 27000 && !name.startsWith(WIDGET_DOM_GLOBAL_EVENT_PREFIX) // not gtm event 27001 && widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].some(m => name.includes(m))); // is viewtype related property 27002 } else { 27003 return isWidget(el); // is viewtype related widget definition 27004 } 27005}; 27006 27007class RootWidget extends widgets_Widget__WEBPACK_IMPORTED_MODULE_5__["default"] {} 27008 27009if (!document.head.parentElement) { 27010 throw Error('No document'); 27011} 27012/** 27013 * @description get initial widget state from data attributes 27014 * @param {HTMLElement} domNode element of widget 27015 * @returns {{[x: string]: object|string|number|boolean|null|undefined}} json-like configuration 27016 */ 27017 27018 27019function getWidgetConfig(domNode) { 27020 /** 27021 * @type {{[x: string]: object|string|number|boolean|null|undefined}} 27022 */ 27023 const config = {}; 27024 const activeViewtype = Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["getActiveViewtypeName"])(); 27025 domNode.getAttributeNames().forEach(attrName => { 27026 if (typeof attrName === 'string' && attrName.includes(DATA_ATTR_PREFIX) && !attrName.startsWith(WIDGET_DOM_EVENT_PREFIX) && !attrName.startsWith(WIDGET_DOM_GLOBAL_EVENT_PREFIX) && !attrName.startsWith(DATA_WIDGET)) { 27027 const [key, ...modifiers] = attrName.replace(DATA_ATTR_PREFIX, '').split('.'); 27028 const camelCaseKey = camelCase(key); 27029 const isActiveViewtypeModifier = modifiers.includes(activeViewtype); 27030 const isViewtypeModifier = isViewtypeModifiers(modifiers); 27031 const isConfigNotExist = typeof config[camelCaseKey] === 'undefined'; // If modifiers has activeViewtype that we definitely need set it to config, even if we already have value in config (most probable there can be only default value set) 27032 // If not check if it is default value (not have modifiers) and if value was not previosly set by attribute with modifiers then we will set default value to config 27033 27034 if (isActiveViewtypeModifier || !isViewtypeModifier && isConfigNotExist) { 27035 // @ts-ignore we may ignore it because attribute existing because provided by method getAttributeNames 27036 config[camelCaseKey] = Object(_toolbox_util__WEBPACK_IMPORTED_MODULE_3__["getData"])(domNode.getAttribute(attrName)); 27037 } 27038 } 27039 }); 27040 const jsonConfig = domNode.getAttribute('data-json-config'); 27041 27042 if (jsonConfig) { 27043 try { 27044 const parsedConfig = JSON.parse(jsonConfig); 27045 return { ...config, 27046 ...parsedConfig 27047 }; 27048 } catch (error) { 27049 throw new Error(`Invalid json config for widget ${domNode} ${error}`); 27050 } 27051 } 27052 27053 return config; 27054} 27055 27056const rootWidget = new RootWidget(document.head.parentElement, {}); 27057const widgetsInitMetric = Object.create(null); 27058let initialized = false; 27059/** 27060 * @typedef {[(baseWidget: typeof Widget) => typeof Widget, string|undefined]} widgetConfig 27061 */ 27062 27063/** 27064 * @typedef {[string, (baseWidget: typeof Widget) => typeof Widget, string|undefined]} widgetRegistry 27065 */ 27066 27067/** 27068 * @category widgets 27069 * @subcategory framework 27070 */ 27071 27072class WidgetMgr { 27073 constructor() { 27074 /** 27075 * @description Map of widgets configurations in format: `widgetId: [widgetFunction, dependencyWidgetId] 27076 * @type {{[key : string] : widgetConfig | undefined}} 27077 */ 27078 this.widgets = Object.create(null); 27079 /** 27080 * @description Map of widgets list generators in format `listId: generatorFunction` 27081 * Generator function return widgets list 27082 * @type {{[key : string] : () => [widgetRegistry]}} 27083 */ 27084 27085 this.widgetsLists = Object.create(null); 27086 /** 27087 * @description Array of registered widgets lists IDs 27088 * @type {string[]} 27089 */ 27090 27091 this.widgetsListsNameSpaceOrder = []; 27092 /** 27093 * @description Map of cached widgets classes in format `widgetId: returnsClassFunction` 27094 * @type {{[key : string] : typeof Widget|undefined}} 27095 */ 27096 27097 this.widgetsClassCache = Object.create(null); 27098 /** 27099 * @description Map of widgets extending in format `widgetId: ['widgetIdA', 'widgetIdB', ...]` 27100 * @type {{[key: string] : string[]|undefined}} 27101 */ 27102 27103 this.hashRegistry = Object.create(null); 27104 this.timeOfEvaluate = Date.now(); 27105 this.widgets.widget = [() => widgets_Widget__WEBPACK_IMPORTED_MODULE_5__["default"], '']; 27106 /**
27107 * @description Array of list promises 27108 * @type {Promise[]} 27109 */ 27110 27111 this.asyncListsPromises = []; 27112 this.getting = false; 27113 Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["init"])(); 27114 } 27115 /** 27116 * @description When DOM is ready, the method starts registering widgets, 27117 * for each assigned widgets list, and executes WidgetMgr.init() 27118 */ 27119 27120 27121 run() { 27122 Promise.all(this.asyncListsPromises).then(asyncLists => { 27123 asyncLists.forEach(({ 27124 listId, 27125 widgetsDefinition 27126 }) => this.addWidgetsList(listId, widgetsDefinition)); 27127 this.widgetsListsNameSpaceOrder.forEach(this.registerWidgetsList, this); 27128 this.timeOfRun = Date.now(); // Init widgets once DOM is ready 27129 27130 if (document.readyState === 'loading') { 27131 this.hasDomLoadedFirst = false; 27132 document.addEventListener('DOMContentLoaded', () => { 27133 setTimeout(() => this.init(), 0); 27134 }, { 27135 once: true 27136 }); 27137 } else { 27138 this.hasDomLoadedFirst = true; 27139 this.init(); 27140 } 27141 }); 27142 } 27143 /** 27144 * @description Returns all registered widgets. 27145 * @returns {object} all widgets 27146 */ 27147 27148 27149 getAll() { 27150 return this.widgets; 27151 } 27152 /** 27153 * @description Returns registered widget by name. 27154 * @param {string|undefined} name Name of registered widget (used as data-widget="<name>" in DOM) 27155 * @returns {typeof Widget} return widget class by name 27156 */ 27157 27158 27159 get(name) { 27160 if (name) { 27161 this.getting = true; 27162 const cachedClass = this.widgetsClassCache[name]; 27163 27164 if (cachedClass) { 27165 return cachedClass; 27166 } 27167 27168 const widgetsConfig = this.widgets[name]; 27169 27170 if (widgetsConfig) { 27171 const [getWidgetClass, baseWidget] = widgetsConfig; 27172 const widgetClass = getWidgetClass(this.get(baseWidget)); 27173 this.widgetsClassCache[name] = widgetClass; 27174 return widgetClass; 27175 } 27176 } 27177 27178 return widgets_Widget__WEBPACK_IMPORTED_MODULE_5__["default"]; 27179 } 27180 /** 27181 * @description add widget by name into registry 27182 * @param {string} name of widget in registry 27183 * @param {widgetConfig} widget configuration to set 27184 * @returns {widgetConfig} widget return set widget config 27185 */ 27186 27187 27188 set(name, widget) { 27189 this.widgets[name] = widget; 27190 return widget; 27191 } 27192 /** 27193 * @description Add widgets list into registry 27194 * @param {string} nameSpace - name of widgets list 27195 * @param {() => [widgetRegistry]} cb - function that returns widget list 27196 */ 27197 27198 27199 addWidgetsList(nameSpace, cb) { 27200 if (!this.widgetsListsNameSpaceOrder.includes(nameSpace)) { 27201 this.widgetsListsNameSpaceOrder.push(nameSpace); 27202 } 27203 27204 this.widgetsLists[nameSpace] = cb; 27205 } 27206 /** 27207 * @description Register all widgets from widgets list by name space 27208 * @param {string} nameSpace - widgets list namespace 27209 * @returns {void} 27210 */ 27211 27212 27213 registerWidgetsList(nameSpace) { 27214 if (true) { 27215 // eslint-disable-next-line no-console 27216 console.groupCollapsed(`${nameSpace} widgets registration`); // console.profile('Registration widgets'); 27217 } 27218 27219 this.widgetsLists[nameSpace]().forEach(args => this.register(...args), this); 27220 27221 if (true) { 27222 // console.profileEnd('Registration widgets'); 27223 // eslint-disable-next-line no-console 27224 console.groupEnd(); 27225 } 27226 } 27227 /** 27228 * @description set hash to registry by widget name with widget dependency 27229 * @param {{[key: string]: string[]|undefined}} hashRegistry registry object 27230 * @param {string} name widget in hashRegistry 27231 * @param {string} baseWidget name of base widget 27232 */ 27233 27234 27235 setHash(hashRegistry, name, baseWidget = '') { 27236 if (!hashRegistry[name]) { 27237 hashRegistry[name] = [name]; 27238 } 27239 27240 const currentHash = hashRegistry[name]; 27241 27242 if (baseWidget && currentHash) { 27243 currentHash.push(baseWidget); 27244 } 27245 } 27246 /** 27247 * @description get widget hash from registry by name 27248 * @param {{[key: string]: string[]|undefined}} hashRegistry registry object 27249 * @param {string} name widget in hashRegistry 27250 * @returns {string} hash for widget 27251 */ 27252 27253 27254 getHash(hashRegistry, name) { 27255 return (hashRegistry[name] || []).reduce((currentWidget, baseWidget) => { 27256 var hash; 27257
27258 if (name === baseWidget) { 27259 hash = baseWidget; 27260 } else { 27261 hash = this.getHash(hashRegistry, baseWidget); 27262 } 27263 27264 return currentWidget + hash; 27265 }); 27266 } 27267 /** 27268 * @description add widget into registry 27269 * @param {string} name name of widget (will be used in `data-widget="name"`) 27270 * @param {(baseWidget: typeof Widget) => typeof Widget} widgetConstructor function mixin that returns class 27271 * @param {string|undefined} baseWidget base widget to extend 27272 * @returns {void} 27273 */ 27274 27275 27276 register(name, widgetConstructor, baseWidget = undefined) { 27277 if ( true && this.getting) { 27278 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].warn('register widget after getting'); 27279 } 27280 27281 const widgetConfig = this.widgets[name]; 27282 27283 if (widgetConfig && baseWidget === name) { 27284 const [superWidgetConstructor, superBaseWidget] = widgetConfig; 27285 this.set(name, [base => widgetConstructor(superWidgetConstructor(base)), superBaseWidget]); 27286 } else { 27287 this.set(name, [widgetConstructor, baseWidget]); 27288 } 27289 27290 this.setHash(this.hashRegistry, name, baseWidget); 27291 } 27292 /** 27293 * @description Returns list of widgets changed during 'viewtype.change' event 27294 * @returns {Array<widgetRegistry>} widgets that was changed due to viewport change 27295 */ 27296 27297 27298 getChangedWidgets() { 27299 /** 27300 * @type {Array<widgetRegistry>} 27301 */ 27302 const emptyArray = []; 27303 const newRegistry = this.widgetsListsNameSpaceOrder.map(ns => this.widgetsLists[ns]()).reduce((prev, nsList) => [...prev, ...nsList], emptyArray); // find extandable widgets 27304 27305 /* 27306 * @type {{[key : string] : string[]}} 27307 */ 27308 27309 const newHash = Object.create(null); 27310 newRegistry.forEach(([wname,, bname]) => this.setHash(newHash, wname, bname)); 27311 const changedWidgets = newRegistry.filter(([wname]) => { 27312 return this.getHash(newHash, wname) !== this.getHash(this.hashRegistry, wname); 27313 }); 27314 return changedWidgets; 27315 } 27316 /** 27317 * @description Re-init widgets changed during 'viewtype.change' event and re-assign viewtype related events 27318 */ 27319 27320 27321 updateMutableComponents() { 27322 const changedWidgets = this.getChangedWidgets(); 27323 27324 if (!changedWidgets.length) { 27325 reinitElementByWidgetsNamesList(); 27326 return; 27327 } 27328 27329 const widgetsNames = changedWidgets.map(w => w[0]); 27330 this.getting = false; // remove definitions 27331 27332 changedWidgets.forEach(([name]) => { 27333 this.hashRegistry[name] = undefined; 27334 this.widgets[name] = undefined; 27335 this.widgetsClassCache[name] = undefined; 27336 }); // register again 27337 27338 changedWidgets.forEach(args => this.register(...args)); 27339 reinitElementByWidgetsNamesList(document.head.parentElement, widgetsNames); 27340 /** 27341 * @description detach/attach widgets to elements by name 27342 * @param {HTMLElement|null} el root element for re-initialization widgets 27343 * @param {string[]} widgetsListNames - widgets list 27344 * @returns {undefined} 27345 */ 27346 27347 function reinitElementByWidgetsNamesList(el = document.head.parentElement, widgetsListNames = []) { 27348 if (!el) { 27349 return; 27350 } 27351 27352 const widgetName = el && el.getAttribute(DATA_WIDGET); 27353 27354 if (widgetName && widgetsListNames.includes(widgetName) || isViewtypeRelatedWidget(el)) { 27355 detachElement(el); 27356 attachElements(el); 27357 } else if (el.children) { 27358 // recursion 27359 // disposible not view type events 27360 // assign view type events 27361 const attrs = el.getAttributeNames().filter(name => name.startsWith(WIDGET_DOM_EVENT_PREFIX)); 27362 const reloadEvents = attrs.some(attr => { 27363 const [, ...modifiers] = attr.replace(WIDGET_DOM_EVENT_PREFIX, '').split('.'); // @ts-ignore 27364 27365 return modifiers.some(mod => widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].includes(mod)); 27366 }); 27367 const parentWidget = el[WIDGET_PROP_NAME] || findParentWidget(el); 27368 27369 if (reloadEvents) { 27370 const disposableValues = el[WIDGET_DISPOSABLE_VALUES]; 27371 27372 if (disposableValues) { 27373 el[WIDGET_DISPOSABLE_VALUES] = disposableValues.filter(dispose => { 27374 // @ts-ignore 27375 if (dispose.eventName) { 27376 // Dispose only events 27377 dispose(); 27378 return false;
27379 } 27380 27381 return true; 27382 }); 27383 } 27384 27385 attrs.forEach(attachEventToElement(el, parentWidget)); 27386 } // assign view type gtm events 27387 27388 27389 const globalAttrs = el.getAttributeNames().filter(name => name.startsWith(WIDGET_DOM_GLOBAL_EVENT_PREFIX)); 27390 const reloadGtmEvents = globalAttrs.some(attr => { 27391 const [, ...modifiers] = attr.replace(WIDGET_DOM_GLOBAL_EVENT_PREFIX, '').split('.'); // @ts-ignore 27392 27393 return modifiers.some(mod => widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].includes(mod)); 27394 }); 27395 27396 if (reloadGtmEvents) { 27397 attrs.forEach(attachGlobalEventToElement(el, parentWidget)); 27398 } 27399 27400 Array.from(el.children).forEach(child => { 27401 reinitElementByWidgetsNamesList( 27402 /** @type {HTMLElement} */ 27403 child, widgetsListNames); 27404 }); 27405 } 27406 } 27407 } 27408 /** 27409 * @description Destroy all widgets/events and construct them again. Needed for webpack HMR during change code for any widget 27410 * @param {HTMLElement|null} el - root element from which start restart of widgets 27411 */ 27412 27413 27414 restartWidgets(el = document.head.parentElement) { 27415 if (el) { 27416 detachElement(el); 27417 this.getting = false; 27418 this.hashRegistry = {}; 27419 this.widgets = {}; 27420 this.widgetsClassCache = {}; 27421 this.widgetsListsNameSpaceOrder.forEach(this.registerWidgetsList, this); 27422 attachElements(el); 27423 } 27424 } 27425 /** 27426 * @typedef Diff 27427 * @property {string} name 27428 * @property {string} action 27429 * @property {string} value 27430 * @property {string} oldValue 27431 * @property {string} newValue 27432 */ 27433 27434 /** 27435 * @description destroy widget or refElement, run disposible for events for element 27436 * @param {HTMLElement} el element for processin attributes 27437 * @param {Diff} diff diffDom internal object of changes 27438 * @returns {void} 27439 */ 27440 27441 27442 removeAttribute(el, diff) { 27443 if (diff.name === DATA_REF) { 27444 el[WIDGET_DISPOSABLE_VALUES] = (el[WIDGET_DISPOSABLE_VALUES] || []).filter(disposable => { 27445 // @ts-ignore 27446 if (disposable.attrName === 'ref') { 27447 disposable(); 27448 return false; 27449 } 27450 27451 return true; 27452 }); 27453 } else if (DATA_WIDGET === diff.name || diff.name.startsWith(DATA_WIDGET_VIEWTYPE_RELATED)) { 27454 detachElement(el); 27455 } else if (diff.name.startsWith(WIDGET_DOM_EVENT_PREFIX)) { 27456 const name = diff.name.replace(WIDGET_DOM_EVENT_PREFIX, '').split('.')[0]; 27457 const value = diff.value || diff.oldValue; 27458 el[WIDGET_DISPOSABLE_VALUES] = (el[WIDGET_DISPOSABLE_VALUES] || []).filter(disposable => { 27459 // @ts-ignore 27460 if (disposable.eventName === name && disposable.methodToCall === value) { 27461 disposable(); 27462 return false; 27463 } 27464 27465 return true; 27466 }); 27467 } else if (el[WIDGET_PROP_NAME]) { 27468 handleWidgetPropertyChange(el, diff); 27469 } 27470 } 27471 /** 27472 * @description Create widget or refElement, assign events for element 27473 * @param {HTMLElement} el element for processin attributes 27474 * @param {Diff} diff diffDom internal object of changes 27475 * @returns {void} 27476 */ 27477 27478 27479 addAttribute(el, diff) { 27480 if (diff.name === DATA_REF) { 27481 const widget = el[WIDGET_PROP_NAME] || findParentWidget(el); 27482 27483 if (widget && widget.refs) { 27484 const refEl = new widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_4__["RefElement"]([el]); 27485 widget.refs[diff.value || diff.newValue] = refEl; 27486 disposableForParent(el, widget, refEl, diff.value || diff.newValue); 27487 } 27488 } else if (DATA_WIDGET === diff.name || diff.name.startsWith(DATA_WIDGET_VIEWTYPE_RELATED)) { 27489 attachElements(el); 27490 } else if (diff.name.startsWith(WIDGET_DOM_EVENT_PREFIX)) { 27491 attachEventToElement(el, el[WIDGET_PROP_NAME] || findParentWidget(el))(diff.name); 27492 } else if (diff.name.startsWith(WIDGET_DOM_GLOBAL_EVENT_PREFIX)) { 27493 attachGlobalEventToElement(el, el[WIDGET_PROP_NAME] || findParentWidget(el))(diff.name); 27494 } else if (el[WIDGET_PROP_NAME]) { 27495 const widget = el[WIDGET_PROP_NAME]; 27496 27497 if (widget && diff.name !== DATA_INITIALIZED) { 27498 widget.config = getWidgetConfig(el); 27499 } 27500 } 27501 } 27502 /** 27503 * Attaching widget to DOM elements from parent to child recursively, by Widgets.attachElements(element) 27504 * Initialize mutation observer 27505 */ 27506 27507 27508 init() { 27509 if (true) { 27510 this.timeOfInit = Date.now(); // log.profile('Initialization widgets'); 27511 } 27512 27513 if (!document.head.parentElement) { 27514 throw Error('No document'); 27515 } 27516 27517 const observer = new MutationObserver(mutations => mutations.forEach(mutation => { 27518 this.handleMutations(mutation); 27519 })); 27520 observer.observe(document.body, { 27521 attributes: false, 27522 characterData: false, 27523 childList: true, 27524 subtree: true 27525 }); 27526 attachElements(document.head.parentElement); 27527 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_7__["default"].on('viewtype.change', () => this.updateMutableComponents()); 27528 27529 if (true) { 27530 // @ts-ignore 27531 const total = Date.now() - window.headInitTime; // @ts-ignore 27532 27533 const timeInitWidgets = Date.now() - this.timeOfInit; // @ts-ignore 27534 27535 const timeToRegisterWidgets = this.timeOfRun - this.timeOfEvaluate; // @ts-ignore 27536 27537 const loadAndScriptingTime = this.timeOfEvaluate - window.headInitTime; 27538 var waitToDomLoaded = 0; // @ts-ignore 27539 27540 waitToDomLoaded = this.hasDomLoadedFirst ? window.domReadyTime - this.timeOfInit : this.timeOfInit - this.timeOfRun; // @ts-ignore 27541 27542 const headToDomReady = (window.domReadyTime || this.timeOfRun) - window.headInitTime; 27543 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].table({ 27544 headToDomReady: { 27545 ms: headToDomReady, 27546 percentage: 0 27547 }, 27548 loadAndScriptingTime: { 27549 ms: loadAndScriptingTime, 27550 percentage: Math.round(loadAndScriptingTime / total * 100) 27551 }, 27552 registerWidgetsTime: { 27553 ms: timeToRegisterWidgets, 27554 percentage: Math.round(timeToRegisterWidgets / total * 100) 27555 }, 27556 waitToDomLoaded: { 27557 ms: waitToDomLoaded, 27558 percentage: waitToDomLoaded > 0 ? Math.round(waitToDomLoaded / total * 100) : 0 27559 }, 27560 initWidgetsTime: { 27561 ms: timeInitWidgets, 27562 percentage: Math.round(timeInitWidgets / total * 100) 27563 }, 27564 total: { 27565 ms: total, 27566 percentage: Math.round(100) 27567 } 27568 }); 27569 27570 if (timeToRegisterWidgets > 50) { 27571 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].warn('High time of widgets registration'); 27572 } 27573 27574 if (timeInitWidgets > 50) { 27575 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].warn('High time of widgets initialization'); 27576 } 27577 27578 widgetsInitMetric.total = Object.values(widgetsInitMetric).reduce((a, b) => a + b, 0); 27579 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].groupCollapsed('Widgets initialization time (init method)'); 27580 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].table(widgetsInitMetric); 27581 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].groupEnd(); // log.profileEnd('Initialization widgets'); 27582 } // CLARIFY: What is magic timeout for 500 ms? 27583 27584 27585 setTimeout(() => { 27586 initialized = true; 27587 }, 500); 27588 } 27589 /** 27590 * @description mutations handler for MutationObserver 27591 * @param {MutationRecord} mutation record of MutationObserver 27592 * @returns {void} 27593 */ 27594 27595 27596 handleMutations(mutation) { 27597 const { 27598 addedNodes, 27599 removedNodes 27600 } = mutation;
27601 removedNodes.forEach(removedNode => { 27602 if (removedNode.nodeType === removedNode.ELEMENT_NODE) { 27603 detachElement( 27604 /** @type {HTMLElement} */ 27605 removedNode); 27606 } 27607 }); 27608 addedNodes.forEach(addedNode => { 27609 if (addedNode.nodeType === addedNode.ELEMENT_NODE && document.body.contains(addedNode)) { 27610 attachElements( 27611 /** @type {HTMLElement} */ 27612 addedNode); 27613 } 27614 }); 27615 } 27616 27617} 27618 27619const widgetsMgr = new WidgetMgr(); // Matches dashed string for camelizing 27620 27621var rmsPrefix = /^-ms-/; 27622var rdashAlpha = /-([a-z])/g; 27623/** 27624 * @description handler for Widget.onRefresh() lifecycle hook 27625 * @param {HTMLElement} el element for processin attributes 27626 * @param {Diff} diff diffDom internal object of changes 27627 * @returns {void} 27628 */ 27629 27630function handleWidgetPropertyChange(el, diff) { 27631 const widget = el[WIDGET_PROP_NAME]; 27632 27633 if (widget) { 27634 if (diff.name === DATA_INITIALIZED) { 27635 if (!widget.isRefreshingWidget) { 27636 widget.isRefreshingWidget = true; 27637 widget.onRefresh(); 27638 widget.isRefreshingWidget = false; 27639 } 27640 27641 el.setAttribute(DATA_INITIALIZED, '1'); 27642 } else { 27643 widget.config = getWidgetConfig(el); 27644 } 27645 } 27646} 27647/** 27648 * @description Convert dashed to camelCase; used by the css and data modules 27649 * @param {string} string String to convert 27650 * @returns {string} Converted string 27651 */ 27652 27653 27654function camelCase(string) { 27655 return string.replace(rmsPrefix, 'ms-').replace(rdashAlpha, (_all, letter) => letter.toUpperCase()); 27656} 27657/** 27658 * @description Create callback that will attach DOM events to element through `attachEventToWidget` using data-event- attributes 27659 * @param {HTMLElement} el DOM element 27660 * @param {Widget} widgetInstance Widget instance 27661 * @returns {(attr: string) => void} callback 27662 */ 27663 27664 27665function attachEventToElement(el, widgetInstance) { 27666 return attr => { 27667 const [attrName, ...modifiers] = attr.replace(WIDGET_DOM_EVENT_PREFIX, '').split('.'); 27668 const attrValue = el.getAttribute(attr) || '@'; 27669 27670 if ( true && modifiers.length && widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].every(m => modifiers.includes(m))) { 27671 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].error(`you shouldn't use ${WIDGET_DOM_EVENT_PREFIX}eventName.${widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].join('.')} use it without modifiers`); 27672 } 27673 27674 if (isViewtypeModifiers(modifiers) && !modifiers.includes(Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["getActiveViewtypeName"])())) { 27675 return; 27676 } // @ts-ignore 27677 27678 27679 if (typeof widgetInstance[attrValue] === 'function') { 27680 attachEventToWidget(modifiers, widgetInstance, attrName, attrValue, el); 27681 } else { 27682 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].error('Widget "' + widgetInstance.constructor.name + '" don\'t have method "' + attrValue + '". Unable to assign event', { 27683 el 27684 }); 27685 } 27686 }; 27687} 27688/** 27689 * @description Create callback that will attach global events to element through `attachGlobalEventToWidget` using data-global-event- attributes 27690 * @param {HTMLElement} el DOM element 27691 * @param {Widget} widgetInstance Widget instance 27692 * @returns {(attr: string) => void} callback 27693 */ 27694 27695 27696function attachGlobalEventToElement(el, widgetInstance) { 27697 return attr => { 27698 const [attrName, ...modifiers] = attr.replace(WIDGET_DOM_GLOBAL_EVENT_PREFIX, '').split('.'); 27699 const attrValue = el.getAttribute(attr) || '@'; 27700 27701 if ( true && modifiers.length && widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].every(m => modifiers.includes(m))) { 27702 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].error(`you shouldnt use ${WIDGET_DOM_GLOBAL_EVENT_PREFIX}eventName.${widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["ALL_VIEW_TYPES"].join('.')} use it without modifiers`); 27703 } 27704 27705 if (isViewtypeModifiers(modifiers) && !modifiers.includes(Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["getActiveViewtypeName"])())) { 27706 return; 27707 } 27708 27709 attachGlobalEventToWidget(modifiers, widgetInstance, attrName, attrValue, el); 27710 }; 27711} 27712/** 27713 * @description Attach DOM events to widget instance specified in data-event- attributes 27714 * @param {string[]} modifiers Event modifiers 27715 * @param {Widget} widgetInstance Widget for event assignment 27716 * @param {string} eventName DOM event 27717 * @param {string} methodToCall widget method to call 27718 * @param {HTMLElement} el Widget self element to store disposables 27719 */ 27720 27721 27722function attachEventToWidget(modifiers, widgetInstance, eventName, methodToCall, el) { 27723 var disposableValues = el[WIDGET_DISPOSABLE_VALUES] || []; 27724 const prevent = modifiers.includes('prevent'); 27725 const stop = modifiers.includes('stop'); 27726 const once = modifiers.includes('once'); 27727 const self = modifiers.includes('self'); 27728 disposableValues = disposableValues.filter(disposable => { 27729 // If such event already exist need to remove it before attaching new event 27730 // @ts-ignore 27731 if (disposable.eventName === eventName && disposable.methodToCall === methodToCall && disposable.el === el) { 27732 disposable(); 27733 return false;
27734 } 27735 27736 return true; 27737 }); // @ts-ignore 27738 27739 const disposables = widgetInstance.ev(eventName, function eventHandler(element, event) { 27740 if (prevent) { 27741 event.preventDefault(); 27742 } 27743 27744 if (stop) { 27745 event.stopPropagation(); 27746 } 27747 27748 if (once && disposables) { 27749 disposables.forEach(diposable => diposable()); 27750 } 27751 27752 if (event.currentTarget !== event.target && self) { 27753 return; 27754 } 27755 27756 const target = Object.values(widgetInstance.refs || {}).find(refEl => Boolean(refEl && refEl instanceof widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_4__["RefElement"] && refEl.get() === element)) || new widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_4__["RefElement"]([element]); // @ts-ignore 27757 27758 widgetInstance[methodToCall].call(this, target, event); 27759 }, el, modifiers.includes('passive')).map(disposable => { 27760 // @ts-ignore 27761 disposable.methodToCall = methodToCall; // @ts-ignore 27762 27763 disposable.el = el; 27764 return disposable; 27765 }); // register events to remove once removed from DOM 27766 27767 disposableValues.push(...disposables); 27768 el[WIDGET_DISPOSABLE_VALUES] = disposableValues; 27769} 27770/** 27771 * @description Attach global events to widget instance specified in data-global-event- attributes 27772 * @param {string[]} modifiers Event modifiers 27773 * @param {Widget} widgetInstance Widget for event assignment 27774 * @param {string} eventName DOM event 27775 * @param {string} eventToCall gtm event to emit 27776 * @param {HTMLElement} el Widget self element to store disposables 27777 */ 27778 27779 27780function attachGlobalEventToWidget(modifiers, widgetInstance, eventName, eventToCall, el) { 27781 const prevent = modifiers.includes('prevent'); 27782 const stop = modifiers.includes('stop'); 27783 const self = modifiers.includes('self'); // @ts-ignore 27784 27785 widgetInstance.ev(eventName, function eventHandler(element, event) { 27786 if (prevent) { 27787 event.preventDefault(); 27788 } 27789 27790 if (stop) { 27791 event.stopPropagation(); 27792 } 27793 27794 if (event.currentTarget !== event.target && self) { 27795 return; 27796 } 27797 27798 widgets_toolbox_eventBus__WEBPACK_IMPORTED_MODULE_7__["default"].emit(eventToCall, widgetInstance); 27799 }, el, false); 27800} 27801 27802const noop = () => undefined; 27803 27804const getConstructor = name => widgetsMgr.get(name); 27805/** 27806 * @description Create widget instance, assign it to parent, assign widget events 27807 * @param {HTMLElement} domNode element of widget 27808 * @returns {InstanceType <typeof Widget>} Instance of initialized widget 27809 */ 27810 27811 27812function initWidget(domNode) { 27813 /** 27814 * @type Widget 27815 */ 27816 var currentWidget; 27817 const registeredWidgets = widgetsMgr.getAll(); 27818 var instance = 27819 /** @type {Widget | undefined} */ 27820 domNode[WIDGET_PROP_NAME]; 27821 var widgetName = domNode.getAttribute(DATA_WIDGET) || getViewtypeRelatedWidgetName(domNode); 27822 27823 if (!widgetName) { 27824 throw Error('Empty Widget name'); 27825 } 27826 27827 if (instance && instance.refs && instance.refs.self) { 27828 currentWidget = instance; 27829 } else if (registeredWidgets[widgetName]) { 27830 currentWidget = new (widgetsMgr.get(widgetName))(domNode, getWidgetConfig(domNode)); 27831 } else { 27832 // CLARIFY: It is bad idea because wrong naming broke entire JS on page 27833 throw Error(`Widget "${widgetName}" is not found in registry`); 27834 } 27835 27836 domNode[WIDGET_PROP_NAME] = currentWidget; 27837 27838 if (!instance) { 27839 const parentWidget = findParentWidget(domNode); 27840 27841 if (parentWidget.items) { 27842 linkCurrentToParent(parentWidget, currentWidget); 27843 } 27844 27845 if (currentWidget.refs && rootWidget.refs) { 27846 currentWidget.refs.html = rootWidget.refs.self; 27847 } 27848 27849 currentWidget.parentHandler = noop; 27850 currentWidget.getConstructor = getConstructor; 27851 prepareWidgetAttributes(domNode, currentWidget, parentWidget); // currentWidget.parentHandler = parentWidget.eventHandler.bind(parentWidget); 27852 27853 return currentWidget; 27854 } 27855 27856 return instance; 27857} 27858/** 27859 * @description assign current widget into parent for parent->child structure 27860 * @param {Widget} parentWidget parent widget instance 27861 * @param {Widget} currentWidget current widget instance 27862 * @returns {void} 27863 */ 27864 27865 27866function linkCurrentToParent(parentWidget, currentWidget) { 27867 if (parentWidget && currentWidget) { 27868 if (parentWidget.items) { 27869 parentWidget.items.push(currentWidget); 27870 currentWidget.onDestroy(() => { 27871 if (parentWidget.items) { 27872 var idx = parentWidget.items.indexOf(currentWidget); 27873 27874 if (idx > -1) { 27875 parentWidget.items.splice(idx, 1); 27876 } 27877 } 27878 }); 27879 } 27880 } 27881} 27882/** 27883 * @description assign widget events to parent handlers 27884 * @param {HTMLElement} domNode HTML Element of widget 27885 * @param {InstanceType <typeof Widget>} currentWidget current widget instance 27886 * @param {InstanceType <typeof Widget>} parentWidget parent widget instance 27887 * @returns {void} 27888 */ 27889 27890 27891function prepareWidgetAttributes(domNode, currentWidget, parentWidget) { 27892 const forwareToParent = domNode.getAttribute('data-forward-to-parent'); 27893 27894 if (forwareToParent) { 27895 forwareToParent.split(':').forEach(pair => { 27896 const [methodName, parrentWidgetMethodName] = pair.split('-'); 27897 27898 currentWidget[methodName] = (...args) => { 27899 parentWidget[parrentWidgetMethodName || methodName].call(parentWidget, ...args); 27900 }; 27901 }); 27902 } 27903 27904 const attrs = domNode.getAttributeNames().filter(name => name.startsWith(WIDGET_EVENT_PREFIX)); 27905 27906 if (attrs && attrs.length) {
27907 attrs.forEach(attr => { 27908 const [attrName, ...modifiers] = attr.replace(WIDGET_EVENT_PREFIX, '').split('.'); 27909 27910 if (isViewtypeModifiers(modifiers) && !modifiers.includes(Object(widgets_toolbox_viewtype__WEBPACK_IMPORTED_MODULE_6__["getActiveViewtypeName"])())) { 27911 return; 27912 } 27913 27914 const attrValue = domNode.getAttribute(attr); 27915 const prevHandler = currentWidget.parentHandler; // @ts-ignore 27916 27917 if (typeof parentWidget[attrValue] === 'function') { 27918 currentWidget.parentHandler = (name, ...args) => { 27919 prevHandler(name, ...args); // @ts-ignore 27920 27921 if (name === attrName && typeof parentWidget[attrValue] === 'function') { 27922 // @ts-ignore 27923 parentWidget[attrValue].call(parentWidget, ...args); 27924 } 27925 }; 27926 } else { 27927 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].error(`Widget "${parentWidget.constructor.name}" don't have method "${attrValue}"`); 27928 } 27929 }); 27930 } 27931} 27932/** 27933 * @description Recursive widgets creation and events assignment for HTML Element 27934 * @param {HTMLElement} element top element as entry point to start recursion 27935 * @returns {void} 27936 */ 27937 27938 27939function attachElements(element) { 27940 /** 27941 * @type {Widget|undefined} 27942 */ 27943 var widgetInstance; 27944 27945 if (isWidget(element) && !element[WIDGET_PROP_NAME]) { 27946 widgetInstance = initWidget(element); 27947 } 27948 27949 const ref = element.getAttribute(DATA_REF); 27950 let parentWidget; 27951 27952 if (ref) { 27953 parentWidget = element[WIDGET_PROP_NAME] || findParentWidget(element); 27954 27955 if (parentWidget.refs) { 27956 const refEl = new widgets_toolbox_RefElement__WEBPACK_IMPORTED_MODULE_4__["RefElement"]([element]); 27957 parentWidget.refs[ref] = refEl; // here we will listen for the event of removal parent widget 27958 27959 disposableForParent(element, parentWidget, refEl, ref); 27960 } 27961 } 27962 27963 parentWidget = parentWidget || element[WIDGET_PROP_NAME] || findParentWidget(element); 27964 const attrs = element.getAttributeNames().filter(name => name.startsWith(WIDGET_DOM_EVENT_PREFIX)); 27965 27966 if (attrs.length) { 27967 attrs.forEach(attachEventToElement(element, parentWidget)); 27968 } 27969 27970 const globalAttrs = element.getAttributeNames().filter(name => name.startsWith(WIDGET_DOM_GLOBAL_EVENT_PREFIX)); 27971 27972 if (globalAttrs.length) { 27973 globalAttrs.forEach(attachGlobalEventToElement(element, parentWidget)); 27974 } 27975 27976 var child = element.firstElementChild; 27977 27978 while (child) { 27979 attachElements( 27980 /** @type {HTMLElement} */ 27981 child); 27982 child = child.nextElementSibling; 27983 } 27984 27985 if (widgetInstance) { 27986 const startTime = Date.now(); 27987 widgetInstance.init(); 27988 element.setAttribute(DATA_INITIALIZED, '1'); 27989 27990 if (true) { 27991 var widgetName = element.getAttribute(DATA_WIDGET) || getViewtypeRelatedWidgetName(element); 27992 27993 if (widgetName && startTime) { 27994 widgetsInitMetric[widgetName] = (widgetsInitMetric[widgetName] || 0) + (Date.now() - startTime); 27995 } 27996 } 27997 } 27998} 27999/** 28000 * @description Listener for the event of removal parent widget 28001 * @param {HTMLElement} element Element to listen 28002 * @param {Widget} parentWidget Parent widget 28003 * @param {RefElement} refEl linked ref element 28004 * @param {string} ref RefElement id 28005 */ 28006 28007 28008function disposableForParent(element, parentWidget, refEl, ref) { 28009 if (!element[WIDGET_DISPOSABLE_VALUES]) { 28010 element[WIDGET_DISPOSABLE_VALUES] = []; 28011 } 28012 28013 const disposableValues = element[WIDGET_DISPOSABLE_VALUES]; 28014 28015 if (disposableValues) { 28016 const dispose = () => { 28017 // remove reference if element is removed from DOM ref points to the same element 28018 if (parentWidget && parentWidget.refs && refEl === parentWidget.refs[ref]) { 28019 delete parentWidget.refs[ref]; 28020 } 28021 }; // @ts-ignore 28022 28023 28024 dispose.attrName = 'ref'; 28025 disposableValues.push(dispose); 28026 } 28027} 28028/** 28029 * @description find parent widget by HTML Element 28030 * @param {HTMLElement} el entry point for searching 28031 * @returns {Widget} parent widget 28032 */ 28033 28034 28035function findParentWidget(el) { 28036 /** 28037 * @type {HTMLElement | null} 28038 */ 28039 var parent = el.parentElement; 28040 28041 while (parent) { 28042 const widgetName = parent.getAttribute(DATA_WIDGET) || getViewtypeRelatedWidgetName(parent); 28043 28044 if (widgetName) { 28045 break; 28046 } else { 28047 parent = parent.parentElement; 28048 } 28049 } 28050 28051 return parent && parent[WIDGET_PROP_NAME] || rootWidget; 28052} 28053/** 28054 * @description Destroy widgets, run disposibles for element and elements inside 28055 * @param {HTMLElement} el top element for recursive procession 28056 * @returns {void} 28057 */ 28058 28059 28060function detachElement(el) { 28061 const disposableValues = el[WIDGET_DISPOSABLE_VALUES]; 28062 28063 if (disposableValues) {
28064 disposableValues.forEach(dispose => dispose()); 28065 el[WIDGET_DISPOSABLE_VALUES] = undefined; 28066 } 28067 28068 var currentWidget = el[WIDGET_PROP_NAME]; 28069 28070 if (currentWidget) { 28071 // @ts-ignore 28072 currentWidget.destroy(); 28073 el[WIDGET_PROP_NAME] = undefined; 28074 28075 if ( true && !initialized) { 28076 _toolbox_util__WEBPACK_IMPORTED_MODULE_3__["log"].warn('Destroying widget before initialization is complete or right after init complete', el); 28077 } 28078 } 28079 28080 var child = el.firstElementChild; 28081 28082 while (child) { 28083 // @ts-ignore 28084 detachElement(child); 28085 child = child.nextElementSibling; 28086 } 28087} 28088/** 28089 * @description tool for visualization widgets and put widget object into console by click. just call it in your console and look 28090 * @returns {Promise<void>} 28091 */ 28092// @ts-ignore 28093 28094 28095window.initToolkit = () => __webpack_require__.e(/*! import() | toolkit */ "toolkit").then(__webpack_require__.bind(null, /*! widgets/widgetsToolkit */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/widgetsToolkit.js")).then(widgetsToolkit => widgetsToolkit.initToolkit(widgetsMgr)); 28096 28097/* harmony default export */ __webpack_exports__["default"] = (widgetsMgr); 28098 28099/***/ }), 28100
28101/***/ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/AddToWishlistMixin.js": 28102/*!**************************************************************************************************************!*\ 28103 !*** ./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/wishlist/AddToWishlistMixin.js ***! 28104 \**************************************************************************************************************/ 28105/*! exports provided: default */ 28106/***/ (function(module, __webpack_exports__, __webpack_require__) { 28107 28108"use strict"; 28109__webpack_require__.r(__webpack_exports__); 28110/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.promise.finally */ "./node_modules/core-js/modules/es.promise.finally.js"); 28111/* harmony import */ var core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_promise_finally__WEBPACK_IMPORTED_MODULE_0__); 28112/* harmony import */ var widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! widgets/toolbox/ajax */ "./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/toolbox/ajax.js"); 28113 28114 28115/** 28116 * @typedef {ReturnType<typeof import('widgets/product/ProductDetail').default>} ProductDetail 28117 * @typedef {InstanceType<ReturnType<typeof import('widgets/global/Label').default>>} label 28118 * @typedef {InstanceType<ReturnType<typeof import('widgets/global/Button').default>>} button 28119 */ 28120 28121/** 28122 * @param {ProductDetail} ProductDetail Base widget for extending 28123 * @returns {typeof AddToWishlistMixin} Add to Wishlist Mixin class 28124 */ 28125 28126/* harmony default export */ __webpack_exports__["default"] = (function (ProductDetail) { 28127 /** 28128 * @category widgets 28129 * @subcategory wishlist 28130 * @class AddToWishlistMixin 28131 * @augments ProductDetail 28132 * @classdesc Add to wishlist mixin with next features: 28133 * 1. Represents `Add to wishlist` button together with related functionality 28134 * <br>*As far as it's a mixin, separate DOM widget is not needed.* 28135 * 2. Allows to add products to wishlist from PDP, QuickView 28136 * 3. Communicates to user operation results in both cases: error and success 28137 * 28138 * Widget has next relationship: 28139 * * Listens click on `add button` that instance of {@link Button} to handle addition to wish list. 28140 * <br>Also uses component methods to change button text, activate/deactivate button 28141 * * Uses methods of `add message` that instance of {@link Label} to set/hide/show messsage 28142 * @property {string} data-pid - product id 28143 * @property {string} [data-text-network-error=Network Error] - Network error message 28144 * @property {string} [data-add-to-wishlist-msg=addToWishlistMsg] - ID of {@link Label} component that represents `add msg` 28145 * @property {string} [data-add-to-wishlist-btn=addToWishlist] - ID of {@link Button} component that represents `add button` 28146 * @property {string} data-text-added-to-wishlist - Added to wishlist message 28147 * @property {boolean} [add-to-wishlist-hide-texts=false] - Added to wishlist message 28148 * @property {string} data-original-wishlist-button-message - original message for `add to wishlist` button 28149 * @property {boolean} data-show-alert-if-product-in-wishlist - Indicates, if we need to show active icon for wishlist button, 28150 * in case if request returns, that iteam already in wishlist 28151 * @property {string} [data-class-added-to-wishlist] - Added to wishlist class 28152 */ 28153 class AddToWishlistMixin extends ProductDetail { 28154 prefs() { 28155 return { 28156 pid: '', 28157 textNetworkError: 'Network Error', 28158 addToWishlistMsg: 'addToWishlistMsg', 28159 addToWishlistBtn: 'addToWishlist', 28160 textAddedToWishlist: '', 28161 addToWishlistHideTexts: false, 28162 originalWishlistButtonMessage: '', 28163 showAlertIfProductInWishlist: false, 28164 ...super.prefs() 28165 }; 28166 } 28167 /** 28168 * @description Initialize properties 28169 * @returns {void} 28170 */ 28171 28172 28173 init() { 28174 super.init(); 28175 this.pid = this.prefs().pid; 28176 this.selectedQuantity = this.prefs().selectedQuantity; 28177 this.addToWishlistHideTexts = this.prefs().addToWishlistHideTexts; 28178 } 28179 /**
28180 * @description Update Product View 28181 * @param {object} product - Product Object 28182 * @returns {void} 28183 */ 28184 28185 28186 updateProductView(product) { 28187 super.updateProductView(product); 28188 this.renderWishList(product); 28189 } 28190 /** 28191 * @description Show error/success message 28192 * @param {string} msg - Message string 28193 * @param {boolean} [error=false] Error flag 28194 * @returns {void} 28195 */ 28196 28197 28198 showWishlistMessage(msg, error = false) { 28199 const addToWishlistMsg = this.getById(this.prefs().addToWishlistMsg, 28200 /** @type {label} */ 28201 labelAddToWishlistMsg => labelAddToWishlistMsg); 28202 28203 if (!addToWishlistMsg) { 28204 return; 28205 } 28206 28207 if (error) { 28208 addToWishlistMsg.setError(msg).show(); 28209 addToWishlistMsg.deactivate(); 28210 } else { 28211 addToWishlistMsg.setText(msg).show(); 28212 addToWishlistMsg.activate(); 28213 } 28214 } 28215 /** 28216 * @description Hide wishlist error/success messaging. Usualy used when PDP variation updated. 28217 * @returns {void} 28218 */ 28219 28220 28221 hideWishlistMessage() { 28222 this.getById(this.prefs().addToWishlistMsg, 28223 /** @type {label} */ 28224 labelAddToWishlistMsg => { 28225 labelAddToWishlistMsg.setText('').hide().deactivate(); 28226 }); 28227 } 28228 /** 28229 * @description Show error/success message 28230 * @param {button} addButton - Message string 28231 * @listens dom#click 28232 * @returns {void} 28233 */ 28234 28235 28236 addToWishlist(addButton) { 28237 const addToWishlistUrl = addButton.ref('self').data('addToWishlistUrl'); 28238 addButton.busy(); 28239 this.getById(this.prefs().addToWishlistMsg, 28240 /** @type {label} */ 28241 labelAddToWishlistMsg => labelAddToWishlistMsg.hide()); 28242 Object(widgets_toolbox_ajax__WEBPACK_IMPORTED_MODULE_1__["submitFormJson"])(addToWishlistUrl, { 28243 pid: this.pid || '', 28244 qty: this.selectedQuantity || '' 28245 }).then(response => this.handleSuccess(response)).finally(() => { 28246 addButton.unbusy(); 28247 }).catch(() => { 28248 this.showWishlistMessage(this.prefs().textNetworkError, true); 28249 }); 28250 } 28251 /** 28252 * @description Handle success response 28253 * @param {object} response - Response object 28254 * @returns {void} 28255 */ 28256 28257 28258 handleSuccess(response) { 28259 const addToWishlistBtn = this.getById(this.prefs().addToWishlistBtn, 28260 /** @type {button} */ 28261 element => element); 28262 28263 if (!addToWishlistBtn) { 28264 return; 28265 } 28266 28267 if (response.success) { 28268 addToWishlistBtn.activate().press().disable(); // we do not have remove from WL functionality 28269 28270 if (!this.addToWishlistHideTexts) { 28271 addToWishlistBtn.setText(this.prefs().textAddedToWishlist); 28272 } 28273 28274 const accessibilityAlert = this.prefs().accessibilityAlerts.addedtowishlist; // TODO add event description 28275 28276 this.eventBus().emit('alert.show', { 28277 accessibilityAlert 28278 }); 28279 } else if (response.itemAlreadyExists) { 28280 addToWishlistBtn.activate().press().disable(); 28281 28282 if (this.prefs().showAlertIfProductInWishlist) { 28283 // TODO add event description 28284 this.eventBus().emit('alert.show', { 28285 accessibilityAlert: response.msg 28286 }); 28287 } 28288 } 28289 28290 if (!this.addToWishlistHideTexts) { 28291 this.showWishlistMessage(response.msg, response.error); 28292 } 28293 } 28294 /** 28295 * @description Method to revert initial state for `Add to Wishlist` button and messages 28296 * Usually used when re-rendering PDP/QuickView after variation change 28297 * @param {object} product - Product object 28298 * @returns {void} 28299 */ 28300 28301 28302 renderWishList(product) { 28303 this.pid = product.id; 28304 this.getById(this.prefs().addToWishlistBtn, 28305 /** @type {button} */ 28306 buttonAddToWishlistBtn => { 28307 buttonAddToWishlistBtn.deactivate().unpress().enable().setText(this.prefs().originalWishlistButtonMessage); 28308 }); 28309 28310 if (!this.addToWishlistHideTexts) { 28311 this.hideWishlistMessage(); 28312 } 28313 } 28314 28315 } 28316 28317 return AddToWishlistMixin; 28318}); 28319 28320/***/ }), 28321
vendor: 93,222 bytes, lines 28322-30253
28322/***/ "./node_modules/@aws-amplify/auth/lib-esm/Auth.js": 28323/*!********************************************************!*\ 28324 !*** ./node_modules/@aws-amplify/auth/lib-esm/Auth.js ***! 28325 \********************************************************/ 28326/*! exports provided: AuthClass, Auth */ 28327/***/ (function(module, __webpack_exports__, __webpack_require__) { 28328 28329"use strict"; 28330__webpack_require__.r(__webpack_exports__); 28331/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AuthClass", function() { return AuthClass; }); 28332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Auth", function() { return Auth; }); 28333/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types */ "./node_modules/@aws-amplify/auth/lib-esm/types/index.js"); 28334/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); 28335/* harmony import */ var amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! amazon-cognito-identity-js */ "./node_modules/amazon-cognito-identity-js/es/index.js"); 28336/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! url */ "./node_modules/url/url.js"); 28337/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_3__); 28338/* harmony import */ var _OAuth_OAuth__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OAuth/OAuth */ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js"); 28339/* harmony import */ var _urlListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./urlListener */ "./node_modules/@aws-amplify/auth/lib-esm/urlListener.js"); 28340/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Errors */ "./node_modules/@aws-amplify/auth/lib-esm/Errors.js"); 28341/* harmony import */ var _types_Auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types/Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); 28342/* 28343 * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 28344 * 28345 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 28346 * the License. A copy of the License is located at 28347 * 28348 * http://aws.amazon.com/apache2.0/ 28349 * 28350 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 28351 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 28352 * and limitations under the License. 28353 */ 28354var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 28355 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 28356 return new (P || (P = Promise))(function (resolve, reject) { 28357 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 28358 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 28359 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 28360 step((generator = generator.apply(thisArg, _arguments || [])).next()); 28361 }); 28362}; 28363var __generator = (undefined && undefined.__generator) || function (thisArg, body) { 28364 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 28365 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 28366 function verb(n) { return function (v) { return step([n, v]); }; } 28367 function step(op) { 28368 if (f) throw new TypeError("Generator is already executing."); 28369 while (_) try { 28370 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 28371 if (y = 0, t) op = [op[0] & 2, t.value]; 28372 switch (op[0]) { 28373 case 0: case 1: t = op; break; 28374 case 4: _.label++; return { value: op[1], done: false }; 28375 case 5: _.label++; y = op[1]; op = [0]; continue; 28376 case 7: op = _.ops.pop(); _.trys.pop(); continue; 28377 default: 28378 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 28379 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 28380 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 28381 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 28382 if (t[2]) _.ops.pop(); 28383 _.trys.pop(); continue; 28384 } 28385 op = body.call(thisArg, _); 28386 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 28387 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 28388 } 28389}; 28390var __read = (undefined && undefined.__read) || function (o, n) { 28391 var m = typeof Symbol === "function" && o[Symbol.iterator]; 28392 if (!m) return o; 28393 var i = m.call(o), r, ar = [], e; 28394 try { 28395 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 28396 } 28397 catch (error) { e = { error: error }; } 28398 finally { 28399 try { 28400 if (r && !r.done && (m = i["return"])) m.call(i); 28401 } 28402 finally { if (e) throw e.error; } 28403 } 28404 return ar; 28405}; 28406 28407 28408 28409 28410 28411 28412 28413 28414var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('AuthClass'); 28415var USER_ADMIN_SCOPE = 'aws.cognito.signin.user.admin'; 28416// 10 sec, following this guide https://www.nngroup.com/articles/response-times-3-important-limits/ 28417var OAUTH_FLOW_MS_TIMEOUT = 10 * 1000; 28418var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && 28419 typeof Symbol.for === 'function' 28420 ? Symbol.for('amplify_default') 28421 : '@@amplify_default'); 28422var dispatchAuthEvent = function (event, data, message) { 28423 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Hub"].dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL); 28424}; 28425/** 28426 * Provide authentication steps 28427 */ 28428var AuthClass = /** @class */ (function () { 28429 /** 28430 * Initialize Auth with AWS configurations 28431 * @param {Object} config - Configuration of the Auth 28432 */ 28433 function AuthClass(config) { 28434 var _this = this; 28435 this.userPool = null; 28436 this.user = null; 28437 this.oAuthFlowInProgress = false; 28438 this.Credentials = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Credentials"]; 28439 this.configure(config); 28440 this.currentUserCredentials = this.currentUserCredentials.bind(this); 28441 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Hub"].listen('auth', function (_a) { 28442 var payload = _a.payload; 28443 var event = payload.event; 28444 switch (event) { 28445 case 'signIn': 28446 _this._storage.setItem('amplify-signin-with-hostedUI', 'false'); 28447 break; 28448 case 'signOut': 28449 _this._storage.removeItem('amplify-signin-with-hostedUI'); 28450 break; 28451 case 'cognitoHostedUI': 28452 _this._storage.setItem('amplify-signin-with-hostedUI', 'true'); 28453 break; 28454 } 28455 }); 28456 } 28457 AuthClass.prototype.getModuleName = function () { 28458 return 'Auth'; 28459 }; 28460 AuthClass.prototype.configure = function (config) { 28461 var _this = this; 28462 if (!config) 28463 return this._config || {}; 28464 logger.debug('configure Auth'); 28465 var conf = Object.assign({}, this._config, _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Parser"].parseMobilehubConfig(config).Auth, config); 28466 this._config = conf; 28467 var _a = this._config, userPoolId = _a.userPoolId, userPoolWebClientId = _a.userPoolWebClientId, cookieStorage = _a.cookieStorage, oauth = _a.oauth, region = _a.region, identityPoolId = _a.identityPoolId, mandatorySignIn = _a.mandatorySignIn, refreshHandlers = _a.refreshHandlers, identityPoolRegion = _a.identityPoolRegion, clientMetadata = _a.clientMetadata; 28468 if (!this._config.storage) { 28469 // backward compatability 28470 if (cookieStorage) 28471 this._storage = new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CookieStorage"](cookieStorage); 28472 else { 28473 this._storage = config.ssr 28474 ? new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["UniversalStorage"]() 28475 : new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["StorageHelper"]().getStorage(); 28476 } 28477 } 28478 else { 28479 if (!this._isValidAuthStorage(this._config.storage)) { 28480 logger.error('The storage in the Auth config is not valid!'); 28481 throw new Error('Empty storage object'); 28482 } 28483 this._storage = this._config.storage; 28484 } 28485 this._storageSync = Promise.resolve(); 28486 if (typeof this._storage['sync'] === 'function') { 28487 this._storageSync = this._storage['sync'](); 28488 } 28489 if (userPoolId) { 28490 var userPoolData = { 28491 UserPoolId: userPoolId, 28492 ClientId: userPoolWebClientId, 28493 }; 28494 userPoolData.Storage = this._storage; 28495 this.userPool = new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoUserPool"](userPoolData); 28496 } 28497 this.Credentials.configure({ 28498 mandatorySignIn: mandatorySignIn, 28499 region: identityPoolRegion || region, 28500 userPoolId: userPoolId, 28501 identityPoolId: identityPoolId, 28502 refreshHandlers: refreshHandlers, 28503 storage: this._storage, 28504 }); 28505 // initiailize cognitoauth client if hosted ui options provided 28506 // to keep backward compatibility: 28507 var cognitoHostedUIConfig = oauth 28508 ? Object(_types__WEBPACK_IMPORTED_MODULE_0__["isCognitoHostedOpts"])(this._config.oauth) 28509 ? oauth 28510 : oauth.awsCognito 28511 : undefined; 28512 if (cognitoHostedUIConfig) { 28513 var cognitoAuthParams = Object.assign({ 28514 cognitoClientId: userPoolWebClientId, 28515 UserPoolId: userPoolId, 28516 domain: cognitoHostedUIConfig['domain'], 28517 scopes: cognitoHostedUIConfig['scope'], 28518 redirectSignIn: cognitoHostedUIConfig['redirectSignIn'], 28519 redirectSignOut: cognitoHostedUIConfig['redirectSignOut'], 28520 responseType: cognitoHostedUIConfig['responseType'], 28521 Storage: this._storage, 28522 urlOpener: cognitoHostedUIConfig['urlOpener'], 28523 clientMetadata: clientMetadata, 28524 }, cognitoHostedUIConfig['options']); 28525 this._oAuthHandler = new _OAuth_OAuth__WEBPACK_IMPORTED_MODULE_4__["default"]({ 28526 scopes: cognitoAuthParams.scopes, 28527 config: cognitoAuthParams, 28528 cognitoClientId: cognitoAuthParams.cognitoClientId, 28529 }); 28530 // **NOTE** - Remove this in a future major release as it is a breaking change 28531 // Prevents _handleAuthResponse from being called multiple times in Expo 28532 // See https://github.com/aws-amplify/amplify-js/issues/4388 28533 var usedResponseUrls_1 = {}; 28534 Object(_urlListener__WEBPACK_IMPORTED_MODULE_5__["default"])(function (_a) { 28535 var url = _a.url; 28536 if (usedResponseUrls_1[url]) { 28537 return; 28538 } 28539 usedResponseUrls_1[url] = true; 28540 _this._handleAuthResponse(url); 28541 }); 28542 } 28543 dispatchAuthEvent('configured', null, "The Auth category has been configured successfully"); 28544 return this._config; 28545 }; 28546 /** 28547 * Sign up with username, password and other attributes like phone, email 28548 * @param {String | object} params - The user attributes used for signin 28549 * @param {String[]} restOfAttrs - for the backward compatability 28550 * @return - A promise resolves callback data if success 28551 */ 28552 AuthClass.prototype.signUp = function (params) { 28553 var _this = this; 28554 var restOfAttrs = []; 28555 for (var _i = 1; _i < arguments.length; _i++) { 28556 restOfAttrs[_i - 1] = arguments[_i]; 28557 } 28558 if (!this.userPool) { 28559 return this.rejectNoUserPool(); 28560 } 28561 var username = null; 28562 var password = null; 28563 var attributes = []; 28564 var validationData = null; 28565 var clientMetadata; 28566 if (params && typeof params === 'string') { 28567 username = params; 28568 password = restOfAttrs ? restOfAttrs[0] : null; 28569 var email = restOfAttrs ? restOfAttrs[1] : null; 28570 var phone_number = restOfAttrs ? restOfAttrs[2] : null; 28571 if (email) 28572 attributes.push({ Name: 'email', Value: email }); 28573 if (phone_number) 28574 attributes.push({ Name: 'phone_number', Value: phone_number }); 28575 } 28576 else if (params && typeof params === 'object') { 28577 username = params['username']; 28578 password = params['password']; 28579 if (params && params.clientMetadata) { 28580 clientMetadata = params.clientMetadata; 28581 } 28582 else if (this._config.clientMetadata) { 28583 clientMetadata = this._config.clientMetadata; 28584 } 28585 var attrs_1 = params['attributes']; 28586 if (attrs_1) { 28587 Object.keys(attrs_1).map(function (key) { 28588 var ele = { Name: key, Value: attrs_1[key] }; 28589 attributes.push(ele); 28590 }); 28591 } 28592 validationData = params['validationData'] || null; 28593 } 28594 else { 28595 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].SignUpError); 28596 } 28597 if (!username) { 28598 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyUsername); 28599 } 28600 if (!password) { 28601 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyPassword); 28602 } 28603 logger.debug('signUp attrs:', attributes); 28604 logger.debug('signUp validation data:', validationData); 28605 return new Promise(function (resolve, reject) { 28606 _this.userPool.signUp(username, password, attributes, validationData, function (err, data) { 28607 if (err) { 28608 dispatchAuthEvent('signUp_failure', err, username + " failed to signup"); 28609 reject(err); 28610 } 28611 else { 28612 dispatchAuthEvent('signUp', data, username + " has signed up successfully"); 28613 resolve(data); 28614 } 28615 }, clientMetadata); 28616 }); 28617 }; 28618 /** 28619 * Send the verfication code to confirm sign up 28620 * @param {String} username - The username to be confirmed 28621 * @param {String} code - The verification code 28622 * @param {ConfirmSignUpOptions} options - other options for confirm signup 28623 * @return - A promise resolves callback data if success 28624 */ 28625 AuthClass.prototype.confirmSignUp = function (username, code, options) { 28626 if (!this.userPool) { 28627 return this.rejectNoUserPool(); 28628 } 28629 if (!username) { 28630 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyUsername); 28631 } 28632 if (!code) { 28633 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyCode); 28634 } 28635 var user = this.createCognitoUser(username); 28636 var forceAliasCreation = options && typeof options.forceAliasCreation === 'boolean' 28637 ? options.forceAliasCreation 28638 : true; 28639 var clientMetadata; 28640 if (options && options.clientMetadata) { 28641 clientMetadata = options.clientMetadata; 28642 } 28643 else if (this._config.clientMetadata) { 28644 clientMetadata = this._config.clientMetadata; 28645 } 28646 return new Promise(function (resolve, reject) { 28647 user.confirmRegistration(code, forceAliasCreation, function (err, data) { 28648 if (err) { 28649 reject(err); 28650 } 28651 else { 28652 resolve(data); 28653 } 28654 }, clientMetadata); 28655 }); 28656 }; 28657 /** 28658 * Resend the verification code 28659 * @param {String} username - The username to be confirmed 28660 * @param {ClientMetadata} clientMetadata - Metadata to be passed to Cognito Lambda triggers 28661 * @return - A promise resolves code delivery details if successful 28662 */ 28663 AuthClass.prototype.resendSignUp = function (username, clientMetadata) { 28664 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 28665 if (!this.userPool) { 28666 return this.rejectNoUserPool(); 28667 } 28668 if (!username) { 28669 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyUsername); 28670 } 28671 var user = this.createCognitoUser(username); 28672 return new Promise(function (resolve, reject) { 28673 user.resendConfirmationCode(function (err, data) { 28674 if (err) { 28675 reject(err); 28676 } 28677 else { 28678 resolve(data); 28679 } 28680 }, clientMetadata); 28681 }); 28682 }; 28683 /** 28684 * Sign in 28685 * @param {String | SignInOpts} usernameOrSignInOpts - The username to be signed in or the sign in options 28686 * @param {String} password - The password of the username 28687 * @return - A promise resolves the CognitoUser 28688 */ 28689 AuthClass.prototype.signIn = function (usernameOrSignInOpts, pw, clientMetadata) { 28690 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 28691 if (!this.userPool) { 28692 return this.rejectNoUserPool(); 28693 } 28694 var username = null; 28695 var password = null; 28696 var validationData = {}; 28697 // for backward compatibility 28698 if (typeof usernameOrSignInOpts === 'string') { 28699 username = usernameOrSignInOpts; 28700 password = pw; 28701 } 28702 else if (Object(_types__WEBPACK_IMPORTED_MODULE_0__["isUsernamePasswordOpts"])(usernameOrSignInOpts)) { 28703 if (typeof pw !== 'undefined') { 28704 logger.warn('The password should be defined under the first parameter object!'); 28705 } 28706 username = usernameOrSignInOpts.username; 28707 password = usernameOrSignInOpts.password; 28708 validationData = usernameOrSignInOpts.validationData; 28709 } 28710 else { 28711 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].InvalidUsername); 28712 } 28713 if (!username) { 28714 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyUsername); 28715 } 28716 var authDetails = new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["AuthenticationDetails"]({ 28717 Username: username, 28718 Password: password, 28719 ValidationData: validationData, 28720 ClientMetadata: clientMetadata, 28721 }); 28722 if (password) { 28723 return this.signInWithPassword(authDetails); 28724 } 28725 else { 28726 return this.signInWithoutPassword(authDetails); 28727 } 28728 }; 28729 /** 28730 * Return an object with the authentication callbacks 28731 * @param {CognitoUser} user - the cognito user object 28732 * @param {} resolve - function called when resolving the current step 28733 * @param {} reject - function called when rejecting the current step 28734 * @return - an object with the callback methods for user authentication 28735 */ 28736 AuthClass.prototype.authCallbacks = function (user, resolve, reject) { 28737 var _this = this; 28738 var that = this; 28739 return { 28740 onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () { 28741 var cred, e_1, currentUser, e_2; 28742 return __generator(this, function (_a) { 28743 switch (_a.label) { 28744 case 0: 28745 logger.debug(session); 28746 delete user['challengeName']; 28747 delete user['challengeParam']; 28748 _a.label = 1; 28749 case 1: 28750 _a.trys.push([1, 4, 5, 9]); 28751 return [4 /*yield*/, this.Credentials.clear()]; 28752 case 2: 28753 _a.sent(); 28754 return [4 /*yield*/, this.Credentials.set(session, 'session')]; 28755 case 3: 28756 cred = _a.sent(); 28757 logger.debug('succeed to get cognito credentials', cred); 28758 return [3 /*break*/, 9]; 28759 case 4: 28760 e_1 = _a.sent(); 28761 logger.debug('cannot get cognito credentials', e_1); 28762 return [3 /*break*/, 9]; 28763 case 5: 28764 _a.trys.push([5, 7, , 8]); 28765 return [4 /*yield*/, this.currentUserPoolUser()]; 28766 case 6: 28767 currentUser = _a.sent(); 28768 that.user = currentUser; 28769 dispatchAuthEvent('signIn', currentUser, "A user " + user.getUsername() + " has been signed in"); 28770 resolve(currentUser); 28771 return [3 /*break*/, 8]; 28772 case 7: 28773 e_2 = _a.sent(); 28774 logger.error('Failed to get the signed in user', e_2); 28775 reject(e_2); 28776 return [3 /*break*/, 8]; 28777 case 8: return [7 /*endfinally*/]; 28778 case 9: return [2 /*return*/]; 28779 } 28780 }); 28781 }); }, 28782 onFailure: function (err) { 28783 logger.debug('signIn failure', err); 28784 dispatchAuthEvent('signIn_failure', err, user.getUsername() + " failed to signin"); 28785 reject(err); 28786 }, 28787 customChallenge: function (challengeParam) { 28788 logger.debug('signIn custom challenge answer required'); 28789 user['challengeName'] = 'CUSTOM_CHALLENGE'; 28790 user['challengeParam'] = challengeParam; 28791 resolve(user); 28792 }, 28793 mfaRequired: function (challengeName, challengeParam) { 28794 logger.debug('signIn MFA required'); 28795 user['challengeName'] = challengeName; 28796 user['challengeParam'] = challengeParam; 28797 resolve(user); 28798 }, 28799 mfaSetup: function (challengeName, challengeParam) { 28800 logger.debug('signIn mfa setup', challengeName); 28801 user['challengeName'] = challengeName; 28802 user['challengeParam'] = challengeParam; 28803 resolve(user); 28804 }, 28805 newPasswordRequired: function (userAttributes, requiredAttributes) { 28806 logger.debug('signIn new password'); 28807 user['challengeName'] = 'NEW_PASSWORD_REQUIRED'; 28808 user['challengeParam'] = { 28809 userAttributes: userAttributes, 28810 requiredAttributes: requiredAttributes, 28811 }; 28812 resolve(user); 28813 }, 28814 totpRequired: function (challengeName, challengeParam) { 28815 logger.debug('signIn totpRequired'); 28816 user['challengeName'] = challengeName; 28817 user['challengeParam'] = challengeParam; 28818 resolve(user); 28819 }, 28820 selectMFAType: function (challengeName, challengeParam) { 28821 logger.debug('signIn selectMFAType', challengeName); 28822 user['challengeName'] = challengeName; 28823 user['challengeParam'] = challengeParam; 28824 resolve(user); 28825 }, 28826 }; 28827 }; 28828 /** 28829 * Sign in with a password 28830 * @private 28831 * @param {AuthenticationDetails} authDetails - the user sign in data 28832 * @return - A promise resolves the CognitoUser object if success or mfa required 28833 */ 28834 AuthClass.prototype.signInWithPassword = function (authDetails) { 28835 var _this = this; 28836 var user = this.createCognitoUser(authDetails.getUsername()); 28837 return new Promise(function (resolve, reject) { 28838 user.authenticateUser(authDetails, _this.authCallbacks(user, resolve, reject)); 28839 }); 28840 }; 28841 /** 28842 * Sign in without a password 28843 * @private 28844 * @param {AuthenticationDetails} authDetails - the user sign in data 28845 * @return - A promise resolves the CognitoUser object if success or mfa required 28846 */ 28847 AuthClass.prototype.signInWithoutPassword = function (authDetails) { 28848 var _this = this; 28849 var user = this.createCognitoUser(authDetails.getUsername()); 28850 user.setAuthenticationFlowType('CUSTOM_AUTH'); 28851 return new Promise(function (resolve, reject) { 28852 user.initiateAuth(authDetails, _this.authCallbacks(user, resolve, reject)); 28853 }); 28854 }; 28855 /** 28856 * get user current preferred mfa option 28857 * this method doesn't work with totp, we need to deprecate it. 28858 * @deprecated 28859 * @param {CognitoUser} user - the current user 28860 * @return - A promise resolves the current preferred mfa option if success 28861 */ 28862 AuthClass.prototype.getMFAOptions = function (user) { 28863 return new Promise(function (res, rej) { 28864 user.getMFAOptions(function (err, mfaOptions) { 28865 if (err) { 28866 logger.debug('get MFA Options failed', err); 28867 rej(err); 28868 return; 28869 } 28870 logger.debug('get MFA options success', mfaOptions); 28871 res(mfaOptions); 28872 return; 28873 }); 28874 }); 28875 }; 28876 /** 28877 * get preferred mfa method 28878 * @param {CognitoUser} user - the current cognito user 28879 * @param {GetPreferredMFAOpts} params - options for getting the current user preferred MFA 28880 */ 28881 AuthClass.prototype.getPreferredMFA = function (user, params) { 28882 var that = this; 28883 return new Promise(function (res, rej) { 28884 var bypassCache = params ? params.bypassCache : false; 28885 user.getUserData(function (err, data) { 28886 if (err) { 28887 logger.debug('getting preferred mfa failed', err); 28888 rej(err); 28889 return; 28890 } 28891 var mfaType = that._getMfaTypeFromUserData(data); 28892 if (!mfaType) { 28893 rej('invalid MFA Type'); 28894 return; 28895 } 28896 else { 28897 res(mfaType); 28898 return; 28899 } 28900 }, { bypassCache: bypassCache }); 28901 }); 28902 }; 28903 AuthClass.prototype._getMfaTypeFromUserData = function (data) { 28904 var ret = null; 28905 var preferredMFA = data.PreferredMfaSetting; 28906 // if the user has used Auth.setPreferredMFA() to setup the mfa type 28907 // then the "PreferredMfaSetting" would exist in the response 28908 if (preferredMFA) { 28909 ret = preferredMFA; 28910 } 28911 else { 28912 // if mfaList exists but empty, then its noMFA 28913 var mfaList = data.UserMFASettingList; 28914 if (!mfaList) { 28915 // if SMS was enabled by using Auth.enableSMS(), 28916 // the response would contain MFAOptions 28917 // as for now Cognito only supports for SMS, so we will say it is 'SMS_MFA' 28918 // if it does not exist, then it should be NOMFA 28919 var MFAOptions = data.MFAOptions; 28920 if (MFAOptions) { 28921 ret = 'SMS_MFA'; 28922 } 28923 else { 28924 ret = 'NOMFA'; 28925 } 28926 } 28927 else if (mfaList.length === 0) { 28928 ret = 'NOMFA'; 28929 } 28930 else { 28931 logger.debug('invalid case for getPreferredMFA', data); 28932 } 28933 } 28934 return ret; 28935 }; 28936 AuthClass.prototype._getUserData = function (user, params) { 28937 return new Promise(function (res, rej) { 28938 user.getUserData(function (err, data) { 28939 if (err) { 28940 logger.debug('getting user data failed', err); 28941 rej(err); 28942 return; 28943 } 28944 else { 28945 res(data); 28946 return; 28947 } 28948 }, params); 28949 }); 28950 }; 28951 /** 28952 * set preferred MFA method 28953 * @param {CognitoUser} user - the current Cognito user 28954 * @param {string} mfaMethod - preferred mfa method 28955 * @return - A promise resolve if success 28956 */ 28957 AuthClass.prototype.setPreferredMFA = function (user, mfaMethod) { 28958 return __awaiter(this, void 0, void 0, function () { 28959 var userData, smsMfaSettings, totpMfaSettings, _a, mfaList, currentMFAType, that; 28960 return __generator(this, function (_b) { 28961 switch (_b.label) { 28962 case 0: return [4 /*yield*/, this._getUserData(user, { 28963 bypassCache: true, 28964 })]; 28965 case 1: 28966 userData = _b.sent(); 28967 smsMfaSettings = null; 28968 totpMfaSettings = null; 28969 _a = mfaMethod; 28970 switch (_a) { 28971 case 'TOTP' || false: return [3 /*break*/, 2]; 28972 case 'SMS' || false: return [3 /*break*/, 3]; 28973 case 'NOMFA': return [3 /*break*/, 4]; 28974 } 28975 return [3 /*break*/, 6]; 28976 case 2: 28977 totpMfaSettings = { 28978 PreferredMfa: true, 28979 Enabled: true, 28980 }; 28981 return [3 /*break*/, 7]; 28982 case 3: 28983 smsMfaSettings = { 28984 PreferredMfa: true, 28985 Enabled: true, 28986 }; 28987 return [3 /*break*/, 7]; 28988 case 4: 28989 mfaList = userData['UserMFASettingList']; 28990 return [4 /*yield*/, this._getMfaTypeFromUserData(userData)]; 28991 case 5: 28992 currentMFAType = _b.sent(); 28993 if (currentMFAType === 'NOMFA') { 28994 return [2 /*return*/, Promise.resolve('No change for mfa type')]; 28995 } 28996 else if (currentMFAType === 'SMS_MFA') { 28997 smsMfaSettings = { 28998 PreferredMfa: false, 28999 Enabled: false, 29000 }; 29001 } 29002 else if (currentMFAType === 'SOFTWARE_TOKEN_MFA') { 29003 totpMfaSettings = { 29004 PreferredMfa: false, 29005 Enabled: false, 29006 }; 29007 } 29008 else { 29009 return [2 /*return*/, this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].InvalidMFA)]; 29010 } 29011 // if there is a UserMFASettingList in the response 29012 // we need to disable every mfa type in that list 29013 if (mfaList && mfaList.length !== 0) { 29014 // to disable SMS or TOTP if exists in that list 29015 mfaList.forEach(function (mfaType) { 29016 if (mfaType === 'SMS_MFA') { 29017 smsMfaSettings = { 29018 PreferredMfa: false, 29019 Enabled: false, 29020 }; 29021 } 29022 else if (mfaType === 'SOFTWARE_TOKEN_MFA') { 29023 totpMfaSettings = { 29024 PreferredMfa: false, 29025 Enabled: false, 29026 }; 29027 } 29028 }); 29029 } 29030 return [3 /*break*/, 7]; 29031 case 6: 29032 logger.debug('no validmfa method provided'); 29033 return [2 /*return*/, this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].NoMFA)]; 29034 case 7: 29035 that = this; 29036 return [2 /*return*/, new Promise(function (res, rej) { 29037 user.setUserMfaPreference(smsMfaSettings, totpMfaSettings, function (err, result) { 29038 if (err) { 29039 logger.debug('Set user mfa preference error', err); 29040 return rej(err); 29041 } 29042 logger.debug('Set user mfa success', result); 29043 logger.debug('Caching the latest user data into local'); 29044 // cache the latest result into user data 29045 user.getUserData(function (err, data) { 29046 if (err) { 29047 logger.debug('getting user data failed', err); 29048 return rej(err); 29049 } 29050 else { 29051 return res(result); 29052 } 29053 }, { bypassCache: true }); 29054 }); 29055 })]; 29056 } 29057 }); 29058 }); 29059 }; 29060 /** 29061 * diable SMS 29062 * @deprecated 29063 * @param {CognitoUser} user - the current user 29064 * @return - A promise resolves is success 29065 */ 29066 AuthClass.prototype.disableSMS = function (user) { 29067 return new Promise(function (res, rej) { 29068 user.disableMFA(function (err, data) { 29069 if (err) { 29070 logger.debug('disable mfa failed', err); 29071 rej(err); 29072 return; 29073 } 29074 logger.debug('disable mfa succeed', data); 29075 res(data); 29076 return; 29077 }); 29078 }); 29079 }; 29080 /** 29081 * enable SMS 29082 * @deprecated 29083 * @param {CognitoUser} user - the current user 29084 * @return - A promise resolves is success 29085 */ 29086 AuthClass.prototype.enableSMS = function (user) { 29087 return new Promise(function (res, rej) { 29088 user.enableMFA(function (err, data) { 29089 if (err) { 29090 logger.debug('enable mfa failed', err); 29091 rej(err); 29092 return; 29093 } 29094 logger.debug('enable mfa succeed', data); 29095 res(data); 29096 return; 29097 }); 29098 }); 29099 }; 29100 /** 29101 * Setup TOTP 29102 * @param {CognitoUser} user - the current user 29103 * @return - A promise resolves with the secret code if success 29104 */ 29105 AuthClass.prototype.setupTOTP = function (user) { 29106 return new Promise(function (res, rej) { 29107 user.associateSoftwareToken({ 29108 onFailure: function (err) { 29109 logger.debug('associateSoftwareToken failed', err); 29110 rej(err); 29111 return; 29112 }, 29113 associateSecretCode: function (secretCode) { 29114 logger.debug('associateSoftwareToken sucess', secretCode); 29115 res(secretCode); 29116 return; 29117 }, 29118 }); 29119 }); 29120 }; 29121 /** 29122 * verify TOTP setup 29123 * @param {CognitoUser} user - the current user 29124 * @param {string} challengeAnswer - challenge answer 29125 * @return - A promise resolves is success 29126 */ 29127 AuthClass.prototype.verifyTotpToken = function (user, challengeAnswer) { 29128 logger.debug('verfication totp token', user, challengeAnswer); 29129 return new Promise(function (res, rej) { 29130 user.verifySoftwareToken(challengeAnswer, 'My TOTP device', { 29131 onFailure: function (err) { 29132 logger.debug('verifyTotpToken failed', err); 29133 rej(err); 29134 return; 29135 }, 29136 onSuccess: function (data) { 29137 logger.debug('verifyTotpToken success', data); 29138 res(data); 29139 return; 29140 }, 29141 }); 29142 }); 29143 }; 29144 /** 29145 * Send MFA code to confirm sign in 29146 * @param {Object} user - The CognitoUser object 29147 * @param {String} code - The confirmation code 29148 */ 29149 AuthClass.prototype.confirmSignIn = function (user, code, mfaType, clientMetadata) { 29150 var _this = this; 29151 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29152 if (!code) { 29153 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyCode); 29154 } 29155 var that = this; 29156 return new Promise(function (resolve, reject) { 29157 user.sendMFACode(code, { 29158 onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () { 29159 var cred, e_3; 29160 return __generator(this, function (_a) { 29161 switch (_a.label) { 29162 case 0: 29163 logger.debug(session); 29164 _a.label = 1; 29165 case 1: 29166 _a.trys.push([1, 4, 5, 6]); 29167 return [4 /*yield*/, this.Credentials.clear()]; 29168 case 2: 29169 _a.sent(); 29170 return [4 /*yield*/, this.Credentials.set(session, 'session')]; 29171 case 3: 29172 cred = _a.sent(); 29173 logger.debug('succeed to get cognito credentials', cred); 29174 return [3 /*break*/, 6]; 29175 case 4: 29176 e_3 = _a.sent(); 29177 logger.debug('cannot get cognito credentials', e_3); 29178 return [3 /*break*/, 6]; 29179 case 5: 29180 that.user = user; 29181 dispatchAuthEvent('signIn', user, user + " has signed in"); 29182 resolve(user); 29183 return [7 /*endfinally*/]; 29184 case 6: return [2 /*return*/]; 29185 } 29186 }); 29187 }); }, 29188 onFailure: function (err) { 29189 logger.debug('confirm signIn failure', err); 29190 reject(err); 29191 }, 29192 }, mfaType, clientMetadata); 29193 }); 29194 }; 29195 AuthClass.prototype.completeNewPassword = function (user, password, requiredAttributes, clientMetadata) { 29196 var _this = this; 29197 if (requiredAttributes === void 0) { requiredAttributes = {}; } 29198 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29199 if (!password) { 29200 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyPassword); 29201 } 29202 var that = this; 29203 return new Promise(function (resolve, reject) { 29204 user.completeNewPasswordChallenge(password, requiredAttributes, { 29205 onSuccess: function (session) { return __awaiter(_this, void 0, void 0, function () { 29206 var cred, e_4; 29207 return __generator(this, function (_a) { 29208 switch (_a.label) { 29209 case 0: 29210 logger.debug(session); 29211 _a.label = 1; 29212 case 1: 29213 _a.trys.push([1, 4, 5, 6]); 29214 return [4 /*yield*/, this.Credentials.clear()]; 29215 case 2: 29216 _a.sent(); 29217 return [4 /*yield*/, this.Credentials.set(session, 'session')]; 29218 case 3: 29219 cred = _a.sent(); 29220 logger.debug('succeed to get cognito credentials', cred); 29221 return [3 /*break*/, 6]; 29222 case 4: 29223 e_4 = _a.sent(); 29224 logger.debug('cannot get cognito credentials', e_4); 29225 return [3 /*break*/, 6]; 29226 case 5: 29227 that.user = user; 29228 dispatchAuthEvent('signIn', user, user + " has signed in"); 29229 resolve(user); 29230 return [7 /*endfinally*/]; 29231 case 6: return [2 /*return*/]; 29232 } 29233 }); 29234 }); }, 29235 onFailure: function (err) { 29236 logger.debug('completeNewPassword failure', err); 29237 dispatchAuthEvent('completeNewPassword_failure', err, _this.user + " failed to complete the new password flow"); 29238 reject(err); 29239 }, 29240 mfaRequired: function (challengeName, challengeParam) { 29241 logger.debug('signIn MFA required'); 29242 user['challengeName'] = challengeName; 29243 user['challengeParam'] = challengeParam; 29244 resolve(user); 29245 }, 29246 mfaSetup: function (challengeName, challengeParam) { 29247 logger.debug('signIn mfa setup', challengeName); 29248 user['challengeName'] = challengeName; 29249 user['challengeParam'] = challengeParam; 29250 resolve(user); 29251 }, 29252 totpRequired: function (challengeName, challengeParam) { 29253 logger.debug('signIn mfa setup', challengeName); 29254 user['challengeName'] = challengeName; 29255 user['challengeParam'] = challengeParam; 29256 resolve(user); 29257 }, 29258 }, clientMetadata); 29259 }); 29260 }; 29261 /** 29262 * Send the answer to a custom challenge 29263 * @param {CognitoUser} user - The CognitoUser object 29264 * @param {String} challengeResponses - The confirmation code 29265 */ 29266 AuthClass.prototype.sendCustomChallengeAnswer = function (user, challengeResponses, clientMetadata) { 29267 var _this = this; 29268 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29269 if (!this.userPool) { 29270 return this.rejectNoUserPool(); 29271 } 29272 if (!challengeResponses) { 29273 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyChallengeResponse); 29274 } 29275 var that = this; 29276 return new Promise(function (resolve, reject) { 29277 user.sendCustomChallengeAnswer(challengeResponses, _this.authCallbacks(user, resolve, reject), clientMetadata); 29278 }); 29279 }; 29280 /** 29281 * Update an authenticated users' attributes 29282 * @param {CognitoUser} - The currently logged in user object 29283 * @return {Promise} 29284 **/ 29285 AuthClass.prototype.updateUserAttributes = function (user, attributes, clientMetadata) { 29286 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29287 var attributeList = []; 29288 var that = this; 29289 return new Promise(function (resolve, reject) { 29290 that.userSession(user).then(function (session) { 29291 for (var key in attributes) { 29292 if (key !== 'sub' && key.indexOf('_verified') < 0) { 29293 var attr = { 29294 Name: key, 29295 Value: attributes[key], 29296 }; 29297 attributeList.push(attr); 29298 } 29299 } 29300 user.updateAttributes(attributeList, function (err, result) { 29301 if (err) { 29302 return reject(err); 29303 } 29304 else { 29305 return resolve(result); 29306 } 29307 }, clientMetadata); 29308 }); 29309 }); 29310 }; 29311 /** 29312 * Return user attributes 29313 * @param {Object} user - The CognitoUser object 29314 * @return - A promise resolves to user attributes if success 29315 */ 29316 AuthClass.prototype.userAttributes = function (user) { 29317 var _this = this; 29318 return new Promise(function (resolve, reject) { 29319 _this.userSession(user).then(function (session) { 29320 user.getUserAttributes(function (err, attributes) { 29321 if (err) { 29322 reject(err); 29323 } 29324 else { 29325 resolve(attributes); 29326 } 29327 }); 29328 }); 29329 }); 29330 }; 29331 AuthClass.prototype.verifiedContact = function (user) { 29332 var that = this; 29333 return this.userAttributes(user).then(function (attributes) { 29334 var attrs = that.attributesToObject(attributes); 29335 var unverified = {}; 29336 var verified = {}; 29337 if (attrs['email']) { 29338 if (attrs['email_verified']) { 29339 verified['email'] = attrs['email']; 29340 } 29341 else { 29342 unverified['email'] = attrs['email']; 29343 } 29344 } 29345 if (attrs['phone_number']) { 29346 if (attrs['phone_number_verified']) { 29347 verified['phone_number'] = attrs['phone_number']; 29348 } 29349 else { 29350 unverified['phone_number'] = attrs['phone_number']; 29351 } 29352 } 29353 return { 29354 verified: verified, 29355 unverified: unverified, 29356 }; 29357 }); 29358 }; 29359 /** 29360 * Get current authenticated user 29361 * @return - A promise resolves to current authenticated CognitoUser if success 29362 */ 29363 AuthClass.prototype.currentUserPoolUser = function (params) { 29364 var _this = this; 29365 if (!this.userPool) { 29366 return this.rejectNoUserPool(); 29367 } 29368 return new Promise(function (res, rej) { 29369 _this._storageSync 29370 .then(function () { return __awaiter(_this, void 0, void 0, function () { 29371 var user; 29372 var _this = this; 29373 return __generator(this, function (_a) { 29374 switch (_a.label) { 29375 case 0: 29376 if (!this.isOAuthInProgress()) return [3 /*break*/, 2]; 29377 logger.debug('OAuth signIn in progress, waiting for resolution...'); 29378 return [4 /*yield*/, new Promise(function (res) { 29379 var timeoutId = setTimeout(function () { 29380 logger.debug('OAuth signIn in progress timeout'); 29381 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Hub"].remove('auth', hostedUISignCallback); 29382 res(); 29383 }, OAUTH_FLOW_MS_TIMEOUT); 29384 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Hub"].listen('auth', hostedUISignCallback); 29385 function hostedUISignCallback(_a) { 29386 var payload = _a.payload; 29387 var event = payload.event; 29388 if (event === 'cognitoHostedUI' || 29389 event === 'cognitoHostedUI_failure') { 29390 logger.debug("OAuth signIn resolved: " + event); 29391 clearTimeout(timeoutId); 29392 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Hub"].remove('auth', hostedUISignCallback); 29393 res(); 29394 } 29395 } 29396 })]; 29397 case 1: 29398 _a.sent(); 29399 _a.label = 2; 29400 case 2: 29401 user = this.userPool.getCurrentUser(); 29402 if (!user) { 29403 logger.debug('Failed to get user from user pool'); 29404 rej('No current user'); 29405 return [2 /*return*/]; 29406 } 29407 // refresh the session if the session expired. 29408 user.getSession(function (err, session) { return __awaiter(_this, void 0, void 0, function () { 29409 var bypassCache, _a, scope; 29410 var _this = this; 29411 return __generator(this, function (_b) { 29412 switch (_b.label) { 29413 case 0: 29414 if (err) { 29415 logger.debug('Failed to get the user session', err); 29416 rej(err); 29417 return [2 /*return*/]; 29418 } 29419 bypassCache = params ? params.bypassCache : false; 29420 if (!bypassCache) return [3 /*break*/, 2]; 29421 return [4 /*yield*/, this.Credentials.clear()]; 29422 case 1: 29423 _b.sent(); 29424 _b.label = 2; 29425 case 2: 29426 _a = session.getAccessToken().decodePayload().scope, scope = _a === void 0 ? '' : _a; 29427 if (scope.split(' ').includes(USER_ADMIN_SCOPE)) { 29428 user.getUserData(function (err, data) { 29429 if (err) { 29430 logger.debug('getting user data failed', err); 29431 // Make sure the user is still valid 29432 if (err.message === 'User is disabled.' || 29433 err.message === 'User does not exist.' || 29434 err.message === 'Access Token has been revoked' // Session revoked by another app 29435 ) { 29436 rej(err); 29437 } 29438 else { 29439 // the error may also be thrown when lack of permissions to get user info etc 29440 // in that case we just bypass the error 29441 res(user); 29442 } 29443 return; 29444 } 29445 var preferredMFA = data.PreferredMfaSetting || 'NOMFA'; 29446 var attributeList = []; 29447 for (var i = 0; i < data.UserAttributes.length; i++) { 29448 var attribute = { 29449 Name: data.UserAttributes[i].Name, 29450 Value: data.UserAttributes[i].Value, 29451 }; 29452 var userAttribute = new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoUserAttribute"](attribute); 29453 attributeList.push(userAttribute); 29454 } 29455 var attributes = _this.attributesToObject(attributeList); 29456 Object.assign(user, { attributes: attributes, preferredMFA: preferredMFA }); 29457 return res(user); 29458 }, { bypassCache: bypassCache }); 29459 } 29460 else { 29461 logger.debug("Unable to get the user data because the " + USER_ADMIN_SCOPE + " " + 29462 "is not in the scopes of the access token"); 29463 return [2 /*return*/, res(user)]; 29464 } 29465 return [2 /*return*/]; 29466 } 29467 }); 29468 }); }); 29469 return [2 /*return*/]; 29470 } 29471 }); 29472 }); }) 29473 .catch(function (e) { 29474 logger.debug('Failed to sync cache info into memory', e); 29475 return rej(e); 29476 }); 29477 }); 29478 }; 29479 AuthClass.prototype.isOAuthInProgress = function () { 29480 return this.oAuthFlowInProgress; 29481 }; 29482 /** 29483 * Get current authenticated user 29484 * @param {CurrentUserOpts} - options for getting the current user 29485 * @return - A promise resolves to current authenticated CognitoUser if success 29486 */ 29487 AuthClass.prototype.currentAuthenticatedUser = function (params) { 29488 return __awaiter(this, void 0, void 0, function () { 29489 var federatedUser, e_5, user, e_6; 29490 return __generator(this, function (_a) { 29491 switch (_a.label) { 29492 case 0: 29493 logger.debug('getting current authenticated user'); 29494 federatedUser = null; 29495 _a.label = 1; 29496 case 1: 29497 _a.trys.push([1, 3, , 4]); 29498 return [4 /*yield*/, this._storageSync]; 29499 case 2: 29500 _a.sent(); 29501 return [3 /*break*/, 4]; 29502 case 3: 29503 e_5 = _a.sent(); 29504 logger.debug('Failed to sync cache info into memory', e_5); 29505 throw e_5; 29506 case 4: 29507 try { 29508 federatedUser = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user; 29509 } 29510 catch (e) { 29511 logger.debug('cannot load federated user from auth storage'); 29512 } 29513 if (!federatedUser) return [3 /*break*/, 5]; 29514 this.user = federatedUser; 29515 logger.debug('get current authenticated federated user', this.user); 29516 return [2 /*return*/, this.user]; 29517 case 5: 29518 logger.debug('get current authenticated userpool user'); 29519 user = null; 29520 _a.label = 6; 29521 case 6: 29522 _a.trys.push([6, 8, , 9]); 29523 return [4 /*yield*/, this.currentUserPoolUser(params)]; 29524 case 7: 29525 user = _a.sent(); 29526 return [3 /*break*/, 9]; 29527 case 8: 29528 e_6 = _a.sent(); 29529 if (e_6 === 'No userPool') { 29530 logger.error('Cannot get the current user because the user pool is missing. ' + 29531 'Please make sure the Auth module is configured with a valid Cognito User Pool ID'); 29532 } 29533 logger.debug('The user is not authenticated by the error', e_6); 29534 throw 'not authenticated'; 29535 case 9: 29536 this.user = user; 29537 return [2 /*return*/, this.user]; 29538 } 29539 }); 29540 }); 29541 }; 29542 /** 29543 * Get current user's session 29544 * @return - A promise resolves to session object if success 29545 */ 29546 AuthClass.prototype.currentSession = function () { 29547 var that = this; 29548 logger.debug('Getting current session'); 29549 // Purposely not calling the reject method here because we don't need a console error 29550 if (!this.userPool) { 29551 return Promise.reject(); 29552 } 29553 return new Promise(function (res, rej) { 29554 that 29555 .currentUserPoolUser() 29556 .then(function (user) { 29557 that 29558 .userSession(user) 29559 .then(function (session) { 29560 res(session); 29561 return; 29562 }) 29563 .catch(function (e) { 29564 logger.debug('Failed to get the current session', e); 29565 rej(e); 29566 return; 29567 }); 29568 }) 29569 .catch(function (e) { 29570 logger.debug('Failed to get the current user', e); 29571 rej(e); 29572 return; 29573 }); 29574 }); 29575 }; 29576 /** 29577 * Get the corresponding user session 29578 * @param {Object} user - The CognitoUser object 29579 * @return - A promise resolves to the session 29580 */ 29581 AuthClass.prototype.userSession = function (user) { 29582 if (!user) { 29583 logger.debug('the user is null'); 29584 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].NoUserSession); 29585 } 29586 return new Promise(function (resolve, reject) { 29587 logger.debug('Getting the session from this user:', user); 29588 user.getSession(function (err, session) { 29589 if (err) { 29590 logger.debug('Failed to get the session from user', user); 29591 reject(err); 29592 return; 29593 } 29594 else { 29595 logger.debug('Succeed to get the user session', session); 29596 resolve(session); 29597 return; 29598 } 29599 }); 29600 }); 29601 }; 29602 /** 29603 * Get authenticated credentials of current user. 29604 * @return - A promise resolves to be current user's credentials 29605 */ 29606 AuthClass.prototype.currentUserCredentials = function () { 29607 return __awaiter(this, void 0, void 0, function () { 29608 var that, e_7, federatedInfo; 29609 var _this = this; 29610 return __generator(this, function (_a) { 29611 switch (_a.label) { 29612 case 0: 29613 that = this; 29614 logger.debug('Getting current user credentials'); 29615 _a.label = 1; 29616 case 1: 29617 _a.trys.push([1, 3, , 4]); 29618 return [4 /*yield*/, this._storageSync]; 29619 case 2: 29620 _a.sent(); 29621 return [3 /*break*/, 4]; 29622 case 3: 29623 e_7 = _a.sent(); 29624 logger.debug('Failed to sync cache info into memory', e_7); 29625 throw e_7; 29626 case 4: 29627 federatedInfo = null; 29628 try { 29629 federatedInfo = JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')); 29630 } 29631 catch (e) { 29632 logger.debug('failed to get or parse item aws-amplify-federatedInfo', e); 29633 } 29634 if (federatedInfo) { 29635 // refresh the jwt token here if necessary 29636 return [2 /*return*/, this.Credentials.refreshFederatedToken(federatedInfo)]; 29637 } 29638 else { 29639 return [2 /*return*/, this.currentSession() 29640 .then(function (session) { 29641 logger.debug('getting session success', session); 29642 return _this.Credentials.set(session, 'session'); 29643 }) 29644 .catch(function (error) { 29645 logger.debug('getting session failed', error); 29646 return _this.Credentials.set(null, 'guest'); 29647 })]; 29648 } 29649 return [2 /*return*/]; 29650 } 29651 }); 29652 }); 29653 }; 29654 AuthClass.prototype.currentCredentials = function () { 29655 logger.debug('getting current credentials'); 29656 return this.Credentials.get(); 29657 }; 29658 /** 29659 * Initiate an attribute confirmation request 29660 * @param {Object} user - The CognitoUser 29661 * @param {Object} attr - The attributes to be verified 29662 * @return - A promise resolves to callback data if success 29663 */ 29664 AuthClass.prototype.verifyUserAttribute = function (user, attr, clientMetadata) { 29665 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29666 return new Promise(function (resolve, reject) { 29667 user.getAttributeVerificationCode(attr, { 29668 onSuccess: function () { 29669 return resolve(); 29670 }, 29671 onFailure: function (err) { 29672 return reject(err); 29673 }, 29674 clientMetadata: clientMetadata, 29675 }); 29676 }); 29677 }; 29678 /** 29679 * Confirm an attribute using a confirmation code 29680 * @param {Object} user - The CognitoUser 29681 * @param {Object} attr - The attribute to be verified 29682 * @param {String} code - The confirmation code 29683 * @return - A promise resolves to callback data if success 29684 */ 29685 AuthClass.prototype.verifyUserAttributeSubmit = function (user, attr, code) { 29686 if (!code) { 29687 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyCode); 29688 } 29689 return new Promise(function (resolve, reject) { 29690 user.verifyAttribute(attr, code, { 29691 onSuccess: function (data) { 29692 resolve(data); 29693 return; 29694 }, 29695 onFailure: function (err) { 29696 reject(err); 29697 return; 29698 }, 29699 }); 29700 }); 29701 }; 29702 AuthClass.prototype.verifyCurrentUserAttribute = function (attr) { 29703 var that = this; 29704 return that 29705 .currentUserPoolUser() 29706 .then(function (user) { return that.verifyUserAttribute(user, attr); }); 29707 }; 29708 /** 29709 * Confirm current user's attribute using a confirmation code 29710 * @param {Object} attr - The attribute to be verified 29711 * @param {String} code - The confirmation code 29712 * @return - A promise resolves to callback data if success 29713 */ 29714 AuthClass.prototype.verifyCurrentUserAttributeSubmit = function (attr, code) { 29715 var that = this; 29716 return that 29717 .currentUserPoolUser() 29718 .then(function (user) { return that.verifyUserAttributeSubmit(user, attr, code); }); 29719 }; 29720 AuthClass.prototype.cognitoIdentitySignOut = function (opts, user) { 29721 return __awaiter(this, void 0, void 0, function () { 29722 var e_8, isSignedInHostedUI; 29723 var _this = this; 29724 return __generator(this, function (_a) { 29725 switch (_a.label) { 29726 case 0: 29727 _a.trys.push([0, 2, , 3]); 29728 return [4 /*yield*/, this._storageSync]; 29729 case 1: 29730 _a.sent(); 29731 return [3 /*break*/, 3]; 29732 case 2: 29733 e_8 = _a.sent(); 29734 logger.debug('Failed to sync cache info into memory', e_8); 29735 throw e_8; 29736 case 3: 29737 isSignedInHostedUI = this._oAuthHandler && 29738 this._storage.getItem('amplify-signin-with-hostedUI') === 'true'; 29739 return [2 /*return*/, new Promise(function (res, rej) { 29740 if (opts && opts.global) { 29741 logger.debug('user global sign out', user); 29742 // in order to use global signout 29743 // we must validate the user as an authenticated user by using getSession 29744 user.getSession(function (err, result) { 29745 if (err) { 29746 logger.debug('failed to get the user session', err); 29747 return rej(err); 29748 } 29749 user.globalSignOut({ 29750 onSuccess: function (data) { 29751 logger.debug('global sign out success'); 29752 if (isSignedInHostedUI) { 29753 _this.oAuthSignOutRedirect(res, rej); 29754 } 29755 else { 29756 return res(); 29757 } 29758 }, 29759 onFailure: function (err) { 29760 logger.debug('global sign out failed', err); 29761 return rej(err); 29762 }, 29763 }); 29764 }); 29765 } 29766 else { 29767 logger.debug('user sign out', user); 29768 user.signOut(); 29769 if (isSignedInHostedUI) { 29770 _this.oAuthSignOutRedirect(res, rej); 29771 } 29772 else { 29773 return res(); 29774 } 29775 } 29776 })]; 29777 } 29778 }); 29779 }); 29780 }; 29781 AuthClass.prototype.oAuthSignOutRedirect = function (resolve, reject) { 29782 var isBrowser = _aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["JS"].browserOrNode().isBrowser; 29783 if (isBrowser) { 29784 this.oAuthSignOutRedirectOrReject(reject); 29785 } 29786 else { 29787 this.oAuthSignOutAndResolve(resolve); 29788 } 29789 }; 29790 AuthClass.prototype.oAuthSignOutAndResolve = function (resolve) { 29791 this._oAuthHandler.signOut(); 29792 resolve(); 29793 }; 29794 AuthClass.prototype.oAuthSignOutRedirectOrReject = function (reject) { 29795 this._oAuthHandler.signOut(); // this method redirects url 29796 // App should be redirected to another url otherwise it will reject 29797 setTimeout(function () { return reject('Signout timeout fail'); }, 3000); 29798 }; 29799 /** 29800 * Sign out method 29801 * @ 29802 * @return - A promise resolved if success 29803 */ 29804 AuthClass.prototype.signOut = function (opts) { 29805 return __awaiter(this, void 0, void 0, function () { 29806 var e_9, user; 29807 return __generator(this, function (_a) { 29808 switch (_a.label) { 29809 case 0: 29810 _a.trys.push([0, 2, , 3]); 29811 return [4 /*yield*/, this.cleanCachedItems()]; 29812 case 1: 29813 _a.sent(); 29814 return [3 /*break*/, 3]; 29815 case 2: 29816 e_9 = _a.sent(); 29817 logger.debug('failed to clear cached items'); 29818 return [3 /*break*/, 3]; 29819 case 3: 29820 if (!this.userPool) return [3 /*break*/, 7]; 29821 user = this.userPool.getCurrentUser(); 29822 if (!user) return [3 /*break*/, 5]; 29823 return [4 /*yield*/, this.cognitoIdentitySignOut(opts, user)]; 29824 case 4: 29825 _a.sent(); 29826 return [3 /*break*/, 6]; 29827 case 5: 29828 logger.debug('no current Cognito user'); 29829 _a.label = 6; 29830 case 6: return [3 /*break*/, 8]; 29831 case 7: 29832 logger.debug('no Congito User pool'); 29833 _a.label = 8; 29834 case 8: 29835 /** 29836 * Note for future refactor - no reliable way to get username with 29837 * Cognito User Pools vs Identity when federating with Social Providers 29838 * This is why we need a well structured session object that can be inspected 29839 * and information passed back in the message below for Hub dispatch 29840 */ 29841 dispatchAuthEvent('signOut', this.user, "A user has been signed out"); 29842 this.user = null; 29843 return [2 /*return*/]; 29844 } 29845 }); 29846 }); 29847 }; 29848 AuthClass.prototype.cleanCachedItems = function () { 29849 return __awaiter(this, void 0, void 0, function () { 29850 return __generator(this, function (_a) { 29851 switch (_a.label) { 29852 case 0: 29853 // clear cognito cached item 29854 return [4 /*yield*/, this.Credentials.clear()]; 29855 case 1: 29856 // clear cognito cached item 29857 _a.sent(); 29858 return [2 /*return*/]; 29859 } 29860 }); 29861 }); 29862 }; 29863 /** 29864 * Change a password for an authenticated user 29865 * @param {Object} user - The CognitoUser object 29866 * @param {String} oldPassword - the current password 29867 * @param {String} newPassword - the requested new password 29868 * @return - A promise resolves if success 29869 */ 29870 AuthClass.prototype.changePassword = function (user, oldPassword, newPassword, clientMetadata) { 29871 var _this = this; 29872 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29873 return new Promise(function (resolve, reject) { 29874 _this.userSession(user).then(function (session) { 29875 user.changePassword(oldPassword, newPassword, function (err, data) { 29876 if (err) { 29877 logger.debug('change password failure', err); 29878 return reject(err); 29879 } 29880 else { 29881 return resolve(data); 29882 } 29883 }, clientMetadata); 29884 }); 29885 }); 29886 }; 29887 /** 29888 * Initiate a forgot password request 29889 * @param {String} username - the username to change password 29890 * @return - A promise resolves if success 29891 */ 29892 AuthClass.prototype.forgotPassword = function (username, clientMetadata) { 29893 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29894 if (!this.userPool) { 29895 return this.rejectNoUserPool(); 29896 } 29897 if (!username) { 29898 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyUsername); 29899 } 29900 var user = this.createCognitoUser(username); 29901 return new Promise(function (resolve, reject) { 29902 user.forgotPassword({ 29903 onSuccess: function () { 29904 resolve(); 29905 return; 29906 }, 29907 onFailure: function (err) { 29908 logger.debug('forgot password failure', err); 29909 dispatchAuthEvent('forgotPassword_failure', err, username + " forgotPassword failed"); 29910 reject(err); 29911 return; 29912 }, 29913 inputVerificationCode: function (data) { 29914 dispatchAuthEvent('forgotPassword', user, username + " has initiated forgot password flow"); 29915 resolve(data); 29916 return; 29917 }, 29918 }, clientMetadata); 29919 }); 29920 }; 29921 /** 29922 * Confirm a new password using a confirmation Code 29923 * @param {String} username - The username 29924 * @param {String} code - The confirmation code 29925 * @param {String} password - The new password 29926 * @return - A promise that resolves if success 29927 */ 29928 AuthClass.prototype.forgotPasswordSubmit = function (username, code, password, clientMetadata) { 29929 if (clientMetadata === void 0) { clientMetadata = this._config.clientMetadata; } 29930 if (!this.userPool) { 29931 return this.rejectNoUserPool(); 29932 } 29933 if (!username) { 29934 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyUsername); 29935 } 29936 if (!code) { 29937 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyCode); 29938 } 29939 if (!password) { 29940 return this.rejectAuthError(_types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].EmptyPassword); 29941 } 29942 var user = this.createCognitoUser(username); 29943 return new Promise(function (resolve, reject) { 29944 user.confirmPassword(code, password, { 29945 onSuccess: function () { 29946 dispatchAuthEvent('forgotPasswordSubmit', user, username + " forgotPasswordSubmit successful"); 29947 resolve(); 29948 return; 29949 }, 29950 onFailure: function (err) { 29951 dispatchAuthEvent('forgotPasswordSubmit_failure', err, username + " forgotPasswordSubmit failed"); 29952 reject(err); 29953 return; 29954 }, 29955 }, clientMetadata); 29956 }); 29957 }; 29958 /** 29959 * Get user information 29960 * @async 29961 * @return {Object }- current User's information 29962 */ 29963 AuthClass.prototype.currentUserInfo = function () { 29964 return __awaiter(this, void 0, void 0, function () { 29965 var source, user, attributes, userAttrs, credentials, e_10, info, err_1, user; 29966 return __generator(this, function (_a) { 29967 switch (_a.label) { 29968 case 0: 29969 source = this.Credentials.getCredSource(); 29970 if (!(!source || source === 'aws' || source === 'userPool')) return [3 /*break*/, 9]; 29971 return [4 /*yield*/, this.currentUserPoolUser().catch(function (err) { 29972 return logger.debug(err); 29973 })]; 29974 case 1: 29975 user = _a.sent(); 29976 if (!user) { 29977 return [2 /*return*/, null]; 29978 } 29979 _a.label = 2; 29980 case 2: 29981 _a.trys.push([2, 8, , 9]); 29982 return [4 /*yield*/, this.userAttributes(user)]; 29983 case 3: 29984 attributes = _a.sent(); 29985 userAttrs = this.attributesToObject(attributes); 29986 credentials = null; 29987 _a.label = 4; 29988 case 4: 29989 _a.trys.push([4, 6, , 7]); 29990 return [4 /*yield*/, this.currentCredentials()]; 29991 case 5: 29992 credentials = _a.sent(); 29993 return [3 /*break*/, 7]; 29994 case 6: 29995 e_10 = _a.sent(); 29996 logger.debug('Failed to retrieve credentials while getting current user info', e_10); 29997 return [3 /*break*/, 7]; 29998 case 7: 29999 info = { 30000 id: credentials ? credentials.identityId : undefined, 30001 username: user.getUsername(), 30002 attributes: userAttrs, 30003 }; 30004 return [2 /*return*/, info]; 30005 case 8: 30006 err_1 = _a.sent(); 30007 logger.debug('currentUserInfo error', err_1); 30008 return [2 /*return*/, {}]; 30009 case 9: 30010 if (source === 'federated') { 30011 user = this.user; 30012 return [2 /*return*/, user ? user : {}]; 30013 } 30014 return [2 /*return*/]; 30015 } 30016 }); 30017 }); 30018 }; 30019 AuthClass.prototype.federatedSignIn = function (providerOrOptions, response, user) { 30020 return __awaiter(this, void 0, void 0, function () { 30021 var options, provider, customState, client_id, redirect_uri, provider, loggedInUser, token, identity_id, expires_at, credentials, currentUser; 30022 return __generator(this, function (_a) { 30023 switch (_a.label) { 30024 case 0: 30025 if (!this._config.identityPoolId && !this._config.userPoolId) { 30026 throw new Error("Federation requires either a User Pool or Identity Pool in config"); 30027 } 30028 // Ensure backwards compatability 30029 if (typeof providerOrOptions === 'undefined') { 30030 if (this._config.identityPoolId && !this._config.userPoolId) { 30031 throw new Error("Federation with Identity Pools requires tokens passed as arguments"); 30032 } 30033 } 30034 if (!(Object(_types__WEBPACK_IMPORTED_MODULE_0__["isFederatedSignInOptions"])(providerOrOptions) || 30035 Object(_types__WEBPACK_IMPORTED_MODULE_0__["isFederatedSignInOptionsCustom"])(providerOrOptions) || 30036 Object(_types__WEBPACK_IMPORTED_MODULE_0__["hasCustomState"])(providerOrOptions) || 30037 typeof providerOrOptions === 'undefined')) return [3 /*break*/, 1]; 30038 options = providerOrOptions || { 30039 provider: _types_Auth__WEBPACK_IMPORTED_MODULE_7__["CognitoHostedUIIdentityProvider"].Cognito, 30040 }; 30041 provider = Object(_types__WEBPACK_IMPORTED_MODULE_0__["isFederatedSignInOptions"])(options) 30042 ? options.provider 30043 : options.customProvider; 30044 customState = Object(_types__WEBPACK_IMPORTED_MODULE_0__["isFederatedSignInOptions"])(options) 30045 ? options.customState 30046 : options.customState; 30047 if (this._config.userPoolId) { 30048 client_id = Object(_types__WEBPACK_IMPORTED_MODULE_0__["isCognitoHostedOpts"])(this._config.oauth) 30049 ? this._config.userPoolWebClientId 30050 : this._config.oauth.clientID; 30051 redirect_uri = Object(_types__WEBPACK_IMPORTED_MODULE_0__["isCognitoHostedOpts"])(this._config.oauth) 30052 ? this._config.oauth.redirectSignIn 30053 : this._config.oauth.redirectUri; 30054 this._oAuthHandler.oauthSignIn(this._config.oauth.responseType, this._config.oauth.domain, redirect_uri, client_id, provider, customState); 30055 } 30056 return [3 /*break*/, 4]; 30057 case 1: 30058 provider = providerOrOptions; 30059 // To check if the user is already logged in 30060 try { 30061 loggedInUser = JSON.stringify(JSON.parse(this._storage.getItem('aws-amplify-federatedInfo')).user); 30062 if (loggedInUser) { 30063 logger.warn("There is already a signed in user: " + loggedInUser + " in your app.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tYou should not call Auth.federatedSignIn method again as it may cause unexpected behavior."); 30064 } 30065 } 30066 catch (e) { } 30067 token = response.token, identity_id = response.identity_id, expires_at = response.expires_at; 30068 return [4 /*yield*/, this.Credentials.set({ provider: provider, token: token, identity_id: identity_id, user: user, expires_at: expires_at }, 'federation')]; 30069 case 2: 30070 credentials = _a.sent(); 30071 return [4 /*yield*/, this.currentAuthenticatedUser()]; 30072 case 3: 30073 currentUser = _a.sent(); 30074 dispatchAuthEvent('signIn', currentUser, "A user " + currentUser.username + " has been signed in"); 30075 logger.debug('federated sign in credentials', credentials); 30076 return [2 /*return*/, credentials]; 30077 case 4: return [2 /*return*/]; 30078 } 30079 }); 30080 }); 30081 }; 30082 /** 30083 * Used to complete the OAuth flow with or without the Cognito Hosted UI 30084 * @param {String} URL - optional parameter for customers to pass in the response URL 30085 */ 30086 AuthClass.prototype._handleAuthResponse = function (URL) { 30087 return __awaiter(this, void 0, void 0, function () { 30088 var currentUrl, hasCodeOrError, hasTokenOrError, _a, accessToken, idToken, refreshToken, state, session, credentials, isCustomStateIncluded, currentUser, customState, err_2; 30089 return __generator(this, function (_b) { 30090 switch (_b.label) { 30091 case 0: 30092 if (this.oAuthFlowInProgress) { 30093 logger.debug("Skipping URL " + URL + " current flow in progress"); 30094 return [2 /*return*/]; 30095 } 30096 _b.label = 1; 30097 case 1: 30098 _b.trys.push([1, , 8, 9]); 30099 this.oAuthFlowInProgress = true; 30100 if (!this._config.userPoolId) { 30101 throw new Error("OAuth responses require a User Pool defined in config"); 30102 } 30103 dispatchAuthEvent('parsingCallbackUrl', { url: URL }, "The callback url is being parsed"); 30104 currentUrl = URL || (_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["JS"].browserOrNode().isBrowser ? window.location.href : ''); 30105 hasCodeOrError = !!(Object(url__WEBPACK_IMPORTED_MODULE_3__["parse"])(currentUrl).query || '') 30106 .split('&') 30107 .map(function (entry) { return entry.split('='); }) 30108 .find(function (_a) { 30109 var _b = __read(_a, 1), k = _b[0]; 30110 return k === 'code' || k === 'error'; 30111 }); 30112 hasTokenOrError = !!(Object(url__WEBPACK_IMPORTED_MODULE_3__["parse"])(currentUrl).hash || '#') 30113 .substr(1) 30114 .split('&') 30115 .map(function (entry) { return entry.split('='); }) 30116 .find(function (_a) { 30117 var _b = __read(_a, 1), k = _b[0]; 30118 return k === 'access_token' || k === 'error'; 30119 }); 30120 if (!(hasCodeOrError || hasTokenOrError)) return [3 /*break*/, 7]; 30121 this._storage.setItem('amplify-redirected-from-hosted-ui', 'true'); 30122 _b.label = 2; 30123 case 2: 30124 _b.trys.push([2, 6, , 7]); 30125 return [4 /*yield*/, this._oAuthHandler.handleAuthResponse(currentUrl)]; 30126 case 3: 30127 _a = _b.sent(), accessToken = _a.accessToken, idToken = _a.idToken, refreshToken = _a.refreshToken, state = _a.state; 30128 session = new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoUserSession"]({ 30129 IdToken: new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoIdToken"]({ IdToken: idToken }), 30130 RefreshToken: new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoRefreshToken"]({ 30131 RefreshToken: refreshToken, 30132 }), 30133 AccessToken: new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoAccessToken"]({ 30134 AccessToken: accessToken, 30135 }), 30136 }); 30137 credentials = void 0; 30138 if (!this._config.identityPoolId) return [3 /*break*/, 5]; 30139 return [4 /*yield*/, this.Credentials.set(session, 'session')]; 30140 case 4: 30141 credentials = _b.sent(); 30142 logger.debug('AWS credentials', credentials); 30143 _b.label = 5; 30144 case 5: 30145 isCustomStateIncluded = /-/.test(state); 30146 currentUser = this.createCognitoUser(session.getIdToken().decodePayload()['cognito:username']); 30147 // This calls cacheTokens() in Cognito SDK 30148 currentUser.setSignInUserSession(session); 30149 if (window && typeof window.history !== 'undefined') { 30150 window.history.replaceState({}, null, this._config.oauth.redirectSignIn); 30151 } 30152 dispatchAuthEvent('signIn', currentUser, "A user " + currentUser.getUsername() + " has been signed in"); 30153 dispatchAuthEvent('cognitoHostedUI', currentUser, "A user " + currentUser.getUsername() + " has been signed in via Cognito Hosted UI"); 30154 if (isCustomStateIncluded) { 30155 customState = state 30156 .split('-') 30157 .splice(1) 30158 .join('-'); 30159 dispatchAuthEvent('customOAuthState', customState, "State for user " + currentUser.getUsername()); 30160 } 30161 //#endregion 30162 return [2 /*return*/, credentials]; 30163 case 6: 30164 err_2 = _b.sent(); 30165 logger.debug('Error in cognito hosted auth response', err_2); 30166 dispatchAuthEvent('signIn_failure', err_2, "The OAuth response flow failed"); 30167 dispatchAuthEvent('cognitoHostedUI_failure', err_2, "A failure occurred when returning to the Cognito Hosted UI"); 30168 dispatchAuthEvent('customState_failure', err_2, "A failure occurred when returning state"); 30169 return [3 /*break*/, 7]; 30170 case 7: return [3 /*break*/, 9]; 30171 case 8: 30172 this.oAuthFlowInProgress = false; 30173 return [7 /*endfinally*/]; 30174 case 9: return [2 /*return*/]; 30175 } 30176 }); 30177 }); 30178 }; 30179 /** 30180 * Compact version of credentials 30181 * @param {Object} credentials 30182 * @return {Object} - Credentials 30183 */ 30184 AuthClass.prototype.essentialCredentials = function (credentials) { 30185 return { 30186 accessKeyId: credentials.accessKeyId, 30187 sessionToken: credentials.sessionToken, 30188 secretAccessKey: credentials.secretAccessKey, 30189 identityId: credentials.identityId, 30190 authenticated: credentials.authenticated, 30191 }; 30192 }; 30193 AuthClass.prototype.attributesToObject = function (attributes) { 30194 var obj = {}; 30195 if (attributes) { 30196 attributes.map(function (attribute) { 30197 if (attribute.Name === 'email_verified' || 30198 attribute.Name === 'phone_number_verified') { 30199 obj[attribute.Name] = 30200 attribute.Value === 'true' || attribute.Value === true; 30201 } 30202 else { 30203 obj[attribute.Name] = attribute.Value; 30204 } 30205 }); 30206 } 30207 return obj; 30208 }; 30209 AuthClass.prototype.createCognitoUser = function (username) { 30210 var userData = { 30211 Username: username, 30212 Pool: this.userPool, 30213 }; 30214 userData.Storage = this._storage; 30215 var authenticationFlowType = this._config.authenticationFlowType; 30216 var user = new amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoUser"](userData); 30217 if (authenticationFlowType) { 30218 user.setAuthenticationFlowType(authenticationFlowType); 30219 } 30220 return user; 30221 }; 30222 AuthClass.prototype._isValidAuthStorage = function (obj) { 30223 // We need to check if the obj has the functions of Storage 30224 return (!!obj && 30225 typeof obj.getItem === 'function' && 30226 typeof obj.setItem === 'function' && 30227 typeof obj.removeItem === 'function' && 30228 typeof obj.clear === 'function'); 30229 }; 30230 AuthClass.prototype.noUserPoolErrorHandler = function (config) { 30231 if (config) { 30232 if (!config.userPoolId || !config.identityPoolId) { 30233 return _types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].MissingAuthConfig; 30234 } 30235 } 30236 return _types_Auth__WEBPACK_IMPORTED_MODULE_7__["AuthErrorTypes"].NoConfig; 30237 }; 30238 AuthClass.prototype.rejectAuthError = function (type) { 30239 return Promise.reject(new _Errors__WEBPACK_IMPORTED_MODULE_6__["AuthError"](type)); 30240 }; 30241 AuthClass.prototype.rejectNoUserPool = function () { 30242 var type = this.noUserPoolErrorHandler(this._config); 30243 return Promise.reject(new _Errors__WEBPACK_IMPORTED_MODULE_6__["NoUserPoolError"](type)); 30244 }; 30245 return AuthClass; 30246}()); 30247 30248var Auth = new AuthClass(null); 30249_aws_amplify_core__WEBPACK_IMPORTED_MODULE_1__["Amplify"].register(Auth); 30250//# sourceMappingURL=Auth.js.map 30251 30252/***/ }), 30253
vendor: 6,580 bytes, lines 30254-30373
30254/***/ "./node_modules/@aws-amplify/auth/lib-esm/Errors.js": 30255/*!**********************************************************!*\ 30256 !*** ./node_modules/@aws-amplify/auth/lib-esm/Errors.js ***! 30257 \**********************************************************/ 30258/*! exports provided: AuthError, NoUserPoolError, authErrorMessages */ 30259/***/ (function(module, __webpack_exports__, __webpack_require__) { 30260 30261"use strict"; 30262__webpack_require__.r(__webpack_exports__); 30263/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AuthError", function() { return AuthError; }); 30264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoUserPoolError", function() { return NoUserPoolError; }); 30265/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "authErrorMessages", function() { return authErrorMessages; }); 30266/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); 30267/* harmony import */ var _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/AuthErrorStrings */ "./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js"); 30268/* 30269 * Copyright 2019-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30270 * 30271 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30272 * the License. A copy of the License is located at 30273 * 30274 * http://aws.amazon.com/apache2.0/ 30275 * 30276 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 30277 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 30278 * and limitations under the License. 30279 */ 30280var __extends = (undefined && undefined.__extends) || (function () { 30281 var extendStatics = function (d, b) { 30282 extendStatics = Object.setPrototypeOf || 30283 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 30284 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; 30285 return extendStatics(d, b); 30286 }; 30287 return function (d, b) { 30288 extendStatics(d, b); 30289 function __() { this.constructor = d; } 30290 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 30291 }; 30292})(); 30293 30294 30295var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('AuthError'); 30296var AuthError = /** @class */ (function (_super) { 30297 __extends(AuthError, _super); 30298 function AuthError(type) { 30299 var _this = this; 30300 var _a = authErrorMessages[type], message = _a.message, log = _a.log; 30301 _this = _super.call(this, message) || this; 30302 // Hack for making the custom error class work when transpiled to es5 30303 // TODO: Delete the following 2 lines after we change the build target to >= es2015 30304 _this.constructor = AuthError; 30305 Object.setPrototypeOf(_this, AuthError.prototype); 30306 _this.name = 'AuthError'; 30307 _this.log = log || message; 30308 logger.error(_this.log); 30309 return _this; 30310 } 30311 return AuthError; 30312}(Error)); 30313 30314var NoUserPoolError = /** @class */ (function (_super) { 30315 __extends(NoUserPoolError, _super); 30316 function NoUserPoolError(type) { 30317 var _this = _super.call(this, type) || this; 30318 // Hack for making the custom error class work when transpiled to es5 30319 // TODO: Delete the following 2 lines after we change the build target to >= es2015 30320 _this.constructor = NoUserPoolError; 30321 Object.setPrototypeOf(_this, NoUserPoolError.prototype); 30322 _this.name = 'NoUserPoolError'; 30323 return _this; 30324 } 30325 return NoUserPoolError; 30326}(AuthError)); 30327 30328var authErrorMessages = { 30329 noConfig: { 30330 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].DEFAULT_MSG, 30331 log: "\n Error: Amplify has not been configured correctly.\n This error is typically caused by one of the following scenarios:\n\n 1. Make sure you're passing the awsconfig object to Amplify.configure() in your app's entry point\n See https://aws-amplify.github.io/docs/js/authentication#configure-your-app for more information\n \n 2. There might be multiple conflicting versions of aws-amplify or amplify packages in your node_modules.\n Try deleting your node_modules folder and reinstalling the dependencies with `yarn install`\n ", 30332 }, 30333 missingAuthConfig: { 30334 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].DEFAULT_MSG, 30335 log: "\n Error: Amplify has not been configured correctly. \n The configuration object is missing required auth properties. \n Did you run `amplify push` after adding auth via `amplify add auth`?\n See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information\n ", 30336 }, 30337 emptyUsername: { 30338 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].EMPTY_USERNAME, 30339 }, 30340 // TODO: should include a list of valid sign-in types 30341 invalidUsername: { 30342 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].INVALID_USERNAME, 30343 }, 30344 emptyPassword: { 30345 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].EMPTY_PASSWORD, 30346 }, 30347 emptyCode: { 30348 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].EMPTY_CODE, 30349 }, 30350 signUpError: { 30351 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].SIGN_UP_ERROR, 30352 log: 'The first parameter should either be non-null string or object', 30353 }, 30354 noMFA: { 30355 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].NO_MFA, 30356 }, 30357 invalidMFA: { 30358 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].INVALID_MFA, 30359 }, 30360 emptyChallengeResponse: { 30361 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].EMPTY_CHALLENGE, 30362 }, 30363 noUserSession: { 30364 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].NO_USER_SESSION, 30365 }, 30366 default: { 30367 message: _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_1__["AuthErrorStrings"].DEFAULT_MSG, 30368 }, 30369}; 30370//# sourceMappingURL=Errors.js.map 30371 30372/***/ }), 30373
vendor: 20,158 bytes, lines 30374-30734
30374/***/ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js": 30375/*!***************************************************************!*\ 30376 !*** ./node_modules/@aws-amplify/auth/lib-esm/OAuth/OAuth.js ***! 30377 \***************************************************************/ 30378/*! exports provided: default */ 30379/***/ (function(module, __webpack_exports__, __webpack_require__) { 30380 30381"use strict"; 30382__webpack_require__.r(__webpack_exports__); 30383/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url */ "./node_modules/url/url.js"); 30384/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_0__); 30385/* harmony import */ var _urlOpener__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./urlOpener */ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js"); 30386/* harmony import */ var _oauthStorage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./oauthStorage */ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js"); 30387/* harmony import */ var _types_Auth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../types/Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); 30388/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); 30389/* harmony import */ var crypto_js_sha256__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! crypto-js/sha256 */ "./node_modules/crypto-js/sha256.js"); 30390/* harmony import */ var crypto_js_sha256__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(crypto_js_sha256__WEBPACK_IMPORTED_MODULE_5__); 30391/* harmony import */ var crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! crypto-js/enc-base64 */ "./node_modules/crypto-js/enc-base64.js"); 30392/* harmony import */ var crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_6__); 30393/* 30394 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30395 * 30396 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30397 * the License. A copy of the License is located at 30398 * 30399 * http://aws.amazon.com/apache2.0/ 30400 * 30401 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 30402 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 30403 * and limitations under the License. 30404 */ 30405var __assign = (undefined && undefined.__assign) || function () { 30406 __assign = Object.assign || function(t) { 30407 for (var s, i = 1, n = arguments.length; i < n; i++) { 30408 s = arguments[i]; 30409 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 30410 t[p] = s[p]; 30411 } 30412 return t; 30413 }; 30414 return __assign.apply(this, arguments); 30415}; 30416var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 30417 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 30418 return new (P || (P = Promise))(function (resolve, reject) { 30419 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 30420 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 30421 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 30422 step((generator = generator.apply(thisArg, _arguments || [])).next()); 30423 }); 30424}; 30425var __generator = (undefined && undefined.__generator) || function (thisArg, body) { 30426 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 30427 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 30428 function verb(n) { return function (v) { return step([n, v]); }; } 30429 function step(op) { 30430 if (f) throw new TypeError("Generator is already executing."); 30431 while (_) try { 30432 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 30433 if (y = 0, t) op = [op[0] & 2, t.value]; 30434 switch (op[0]) { 30435 case 0: case 1: t = op; break; 30436 case 4: _.label++; return { value: op[1], done: false }; 30437 case 5: _.label++; y = op[1]; op = [0]; continue; 30438 case 7: op = _.ops.pop(); _.trys.pop(); continue; 30439 default: 30440 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 30441 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 30442 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 30443 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 30444 if (t[2]) _.ops.pop(); 30445 _.trys.pop(); continue; 30446 } 30447 op = body.call(thisArg, _); 30448 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 30449 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 30450 } 30451}; 30452var __read = (undefined && undefined.__read) || function (o, n) { 30453 var m = typeof Symbol === "function" && o[Symbol.iterator]; 30454 if (!m) return o; 30455 var i = m.call(o), r, ar = [], e; 30456 try { 30457 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 30458 } 30459 catch (error) { e = { error: error }; } 30460 finally { 30461 try { 30462 if (r && !r.done && (m = i["return"])) m.call(i); 30463 } 30464 finally { if (e) throw e.error; } 30465 } 30466 return ar; 30467}; 30468 // Used for OAuth parsing of Cognito Hosted UI 30469 30470 30471 30472 30473 30474 30475var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && 30476 typeof Symbol.for === 'function' 30477 ? Symbol.for('amplify_default') 30478 : '@@amplify_default'); 30479var dispatchAuthEvent = function (event, data, message) { 30480 _aws_amplify_core__WEBPACK_IMPORTED_MODULE_4__["Hub"].dispatch('auth', { event: event, data: data, message: message }, 'Auth', AMPLIFY_SYMBOL); 30481}; 30482var logger = new _aws_amplify_core__WEBPACK_IMPORTED_MODULE_4__["ConsoleLogger"]('OAuth'); 30483var OAuth = /** @class */ (function () { 30484 function OAuth(_a) { 30485 var config = _a.config, cognitoClientId = _a.cognitoClientId, _b = _a.scopes, scopes = _b === void 0 ? [] : _b; 30486 this._urlOpener = config.urlOpener || _urlOpener__WEBPACK_IMPORTED_MODULE_1__["launchUri"]; 30487 this._config = config; 30488 this._cognitoClientId = cognitoClientId; 30489 if (!this.isValidScopes(scopes)) 30490 throw Error('scopes must be a String Array'); 30491 this._scopes = scopes; 30492 } 30493 OAuth.prototype.isValidScopes = function (scopes) { 30494 return (Array.isArray(scopes) && scopes.every(function (scope) { return typeof scope === 'string'; })); 30495 }; 30496 OAuth.prototype.oauthSignIn = function (responseType, domain, redirectSignIn, clientId, provider, customState) { 30497 if (responseType === void 0) { responseType = 'code'; } 30498 if (provider === void 0) { provider = _types_Auth__WEBPACK_IMPORTED_MODULE_3__["CognitoHostedUIIdentityProvider"].Cognito; } 30499 var generatedState = this._generateState(32); 30500 var state = customState 30501 ? generatedState + "-" + customState 30502 : generatedState; 30503 _oauthStorage__WEBPACK_IMPORTED_MODULE_2__["setState"](encodeURIComponent(state)); 30504 var pkce_key = this._generateRandom(128); 30505 _oauthStorage__WEBPACK_IMPORTED_MODULE_2__["setPKCE"](pkce_key); 30506 var code_challenge = this._generateChallenge(pkce_key); 30507 var code_challenge_method = 'S256'; 30508 var scopesString = this._scopes.join(' '); 30509 var queryString = Object.entries(__assign(__assign({ redirect_uri: redirectSignIn, response_type: responseType, client_id: clientId, identity_provider: provider, scope: scopesString, state: state }, (responseType === 'code' ? { code_challenge: code_challenge } : {})), (responseType === 'code' ? { code_challenge_method: code_challenge_method } : {}))) 30510 .map(function (_a) { 30511 var _b = __read(_a, 2), k = _b[0], v = _b[1]; 30512 return encodeURIComponent(k) + "=" + encodeURIComponent(v); 30513 }) 30514 .join('&'); 30515 var URL = "https://" + domain + "/oauth2/authorize?" + queryString; 30516 logger.debug("Redirecting to " + URL); 30517 this._urlOpener(URL, redirectSignIn); 30518 }; 30519 OAuth.prototype._handleCodeFlow = function (currentUrl) { 30520 return __awaiter(this, void 0, void 0, function () { 30521 var code, oAuthTokenEndpoint, client_id, redirect_uri, code_verifier, oAuthTokenBody, body, _a, access_token, refresh_token, id_token, error; 30522 return __generator(this, function (_b) { 30523 switch (_b.label) { 30524 case 0: 30525 code = (Object(url__WEBPACK_IMPORTED_MODULE_0__["parse"])(currentUrl).query || '') 30526 .split('&') 30527 .map(function (pairings) { return pairings.split('='); }) 30528 .reduce(function (accum, _a) { 30529 var _b; 30530 var _c = __read(_a, 2), k = _c[0], v = _c[1]; 30531 return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b))); 30532 }, { code: undefined }).code; 30533 if (!code) { 30534 return [2 /*return*/]; 30535 } 30536 oAuthTokenEndpoint = 'https://' + this._config.domain + '/oauth2/token'; 30537 dispatchAuthEvent('codeFlow', {}, "Retrieving tokens from " + oAuthTokenEndpoint); 30538 client_id = Object(_types_Auth__WEBPACK_IMPORTED_MODULE_3__["isCognitoHostedOpts"])(this._config) 30539 ? this._cognitoClientId 30540 : this._config.clientID; 30541 redirect_uri = Object(_types_Auth__WEBPACK_IMPORTED_MODULE_3__["isCognitoHostedOpts"])(this._config) 30542 ? this._config.redirectSignIn 30543 : this._config.redirectUri; 30544 code_verifier = _oauthStorage__WEBPACK_IMPORTED_MODULE_2__["getPKCE"](); 30545 oAuthTokenBody = __assign({ grant_type: 'authorization_code', code: code, 30546 client_id: client_id, 30547 redirect_uri: redirect_uri }, (code_verifier ? { code_verifier: code_verifier } : {})); 30548 logger.debug("Calling token endpoint: " + oAuthTokenEndpoint + " with", oAuthTokenBody); 30549 body = Object.entries(oAuthTokenBody) 30550 .map(function (_a) { 30551 var _b = __read(_a, 2), k = _b[0], v = _b[1]; 30552 return encodeURIComponent(k) + "=" + encodeURIComponent(v); 30553 }) 30554 .join('&'); 30555 return [4 /*yield*/, fetch(oAuthTokenEndpoint, { 30556 method: 'POST', 30557 headers: { 30558 'Content-Type': 'application/x-www-form-urlencoded', 30559 }, 30560 body: body, 30561 })]; 30562 case 1: return [4 /*yield*/, (_b.sent()).json()]; 30563 case 2: 30564 _a = _b.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token, id_token = _a.id_token, error = _a.error; 30565 if (error) { 30566 throw new Error(error); 30567 } 30568 return [2 /*return*/, { 30569 accessToken: access_token, 30570 refreshToken: refresh_token, 30571 idToken: id_token, 30572 }]; 30573 } 30574 }); 30575 }); 30576 }; 30577 OAuth.prototype._handleImplicitFlow = function (currentUrl) { 30578 return __awaiter(this, void 0, void 0, function () { 30579 var _a, id_token, access_token; 30580 return __generator(this, function (_b) { 30581 _a = (Object(url__WEBPACK_IMPORTED_MODULE_0__["parse"])(currentUrl).hash || '#') 30582 .substr(1) // Remove # from returned code 30583 .split('&') 30584 .map(function (pairings) { return pairings.split('='); }) 30585 .reduce(function (accum, _a) { 30586 var _b; 30587 var _c = __read(_a, 2), k = _c[0], v = _c[1]; 30588 return (__assign(__assign({}, accum), (_b = {}, _b[k] = v, _b))); 30589 }, { 30590 id_token: undefined, 30591 access_token: undefined, 30592 }), id_token = _a.id_token, access_token = _a.access_token; 30593 dispatchAuthEvent('implicitFlow', {}, "Got tokens from " + currentUrl); 30594 logger.debug("Retrieving implicit tokens from " + currentUrl + " with"); 30595 return [2 /*return*/, { 30596 accessToken: access_token, 30597 idToken: id_token, 30598 refreshToken: null, 30599 }]; 30600 }); 30601 }); 30602 }; 30603 OAuth.prototype.handleAuthResponse = function (currentUrl) { 30604 return __awaiter(this, void 0, void 0, function () { 30605 var urlParams, error, error_description, state, _a, _b, e_1; 30606 return __generator(this, function (_c) { 30607 switch (_c.label) { 30608 case 0: 30609 _c.trys.push([0, 5, , 6]); 30610 urlParams = currentUrl 30611 ? __assign(__assign({}, (Object(url__WEBPACK_IMPORTED_MODULE_0__["parse"])(currentUrl).hash || '#') 30612 .substr(1) 30613 .split('&') 30614 .map(function (entry) { return entry.split('='); }) 30615 .reduce(function (acc, _a) { 30616 var _b = __read(_a, 2), k = _b[0], v = _b[1]; 30617 return ((acc[k] = v), acc); 30618 }, {})), (Object(url__WEBPACK_IMPORTED_MODULE_0__["parse"])(currentUrl).query || '') 30619 .split('&') 30620 .map(function (entry) { return entry.split('='); }) 30621 .reduce(function (acc, _a) { 30622 var _b = __read(_a, 2), k = _b[0], v = _b[1]; 30623 return ((acc[k] = v), acc); 30624 }, {})) 30625 : {}; 30626 error = urlParams.error, error_description = urlParams.error_description; 30627 if (error) { 30628 throw new Error(error_description); 30629 } 30630 state = this._validateState(urlParams); 30631 logger.debug("Starting " + this._config.responseType + " flow with " + currentUrl); 30632 if (!(this._config.responseType === 'code')) return [3 /*break*/, 2]; 30633 _a = [{}]; 30634 return [4 /*yield*/, this._handleCodeFlow(currentUrl)]; 30635 case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([(_c.sent())])), { state: state }])]; 30636 case 2: 30637 _b = [{}]; 30638 return [4 /*yield*/, this._handleImplicitFlow(currentUrl)]; 30639 case 3: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _b.concat([(_c.sent())])), { state: state }])]; 30640 case 4: return [3 /*break*/, 6]; 30641 case 5: 30642 e_1 = _c.sent(); 30643 logger.error("Error handling auth response.", e_1); 30644 throw e_1; 30645 case 6: return [2 /*return*/]; 30646 } 30647 }); 30648 }); 30649 }; 30650 OAuth.prototype._validateState = function (urlParams) { 30651 if (!urlParams) { 30652 return; 30653 } 30654 var savedState = _oauthStorage__WEBPACK_IMPORTED_MODULE_2__["getState"](); 30655 var returnedState = urlParams.state; 30656 // This is because savedState only exists if the flow was initiated by Amplify 30657 if (savedState && savedState !== returnedState) { 30658 throw new Error('Invalid state in OAuth flow'); 30659 } 30660 return returnedState; 30661 }; 30662 OAuth.prototype.signOut = function () { 30663 return __awaiter(this, void 0, void 0, function () { 30664 var oAuthLogoutEndpoint, client_id, signout_uri; 30665 return __generator(this, function (_a) { 30666 oAuthLogoutEndpoint = 'https://' + this._config.domain + '/logout?'; 30667 client_id = Object(_types_Auth__WEBPACK_IMPORTED_MODULE_3__["isCognitoHostedOpts"])(this._config) 30668 ? this._cognitoClientId 30669 : this._config.oauth.clientID; 30670 signout_uri = Object(_types_Auth__WEBPACK_IMPORTED_MODULE_3__["isCognitoHostedOpts"])(this._config) 30671 ? this._config.redirectSignOut 30672 : this._config.returnTo; 30673 oAuthLogoutEndpoint += Object.entries({ 30674 client_id: client_id, 30675 logout_uri: encodeURIComponent(signout_uri), 30676 }) 30677 .map(function (_a) { 30678 var _b = __read(_a, 2), k = _b[0], v = _b[1]; 30679 return k + "=" + v; 30680 }) 30681 .join('&'); 30682 dispatchAuthEvent('oAuthSignOut', { oAuth: 'signOut' }, "Signing out from " + oAuthLogoutEndpoint); 30683 logger.debug("Signing out from " + oAuthLogoutEndpoint); 30684 return [2 /*return*/, this._urlOpener(oAuthLogoutEndpoint)]; 30685 }); 30686 }); 30687 }; 30688 OAuth.prototype._generateState = function (length) { 30689 var result = ''; 30690 var i = length; 30691 var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 30692 for (; i > 0; --i) 30693 result += chars[Math.round(Math.random() * (chars.length - 1))]; 30694 return result; 30695 }; 30696 OAuth.prototype._generateChallenge = function (code) { 30697 return this._base64URL(crypto_js_sha256__WEBPACK_IMPORTED_MODULE_5___default()(code)); 30698 }; 30699 OAuth.prototype._base64URL = function (string) { 30700 return string 30701 .toString(crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_6___default.a) 30702 .replace(/=/g, '') 30703 .replace(/\+/g, '-') 30704 .replace(/\//g, '_'); 30705 }; 30706 OAuth.prototype._generateRandom = function (size) { 30707 var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~'; 30708 var buffer = new Uint8Array(size); 30709 if (typeof window !== 'undefined' && !!window.crypto) { 30710 window.crypto.getRandomValues(buffer); 30711 } 30712 else { 30713 for (var i = 0; i < size; i += 1) { 30714 buffer[i] = (Math.random() * CHARSET.length) | 0; 30715 } 30716 } 30717 return this._bufferToString(buffer); 30718 }; 30719 OAuth.prototype._bufferToString = function (buffer) { 30720 var CHARSET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 30721 var state = []; 30722 for (var i = 0; i < buffer.byteLength; i += 1) { 30723 var index = buffer[i] % CHARSET.length; 30724 state.push(CHARSET[index]); 30725 } 30726 return state.join(''); 30727 }; 30728 return OAuth; 30729}()); 30730/* harmony default export */ __webpack_exports__["default"] = (OAuth); 30731//# sourceMappingURL=OAuth.js.map 30732 30733/***/ }), 30734
vendor: 2,438 bytes, lines 30735-30784
30735/***/ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js": 30736/*!**********************************************************************!*\ 30737 !*** ./node_modules/@aws-amplify/auth/lib-esm/OAuth/oauthStorage.js ***! 30738 \**********************************************************************/ 30739/*! exports provided: setState, getState, setPKCE, getPKCE, clearAll */ 30740/***/ (function(module, __webpack_exports__, __webpack_require__) { 30741 30742"use strict"; 30743__webpack_require__.r(__webpack_exports__); 30744/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setState", function() { return setState; }); 30745/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getState", function() { return getState; }); 30746/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setPKCE", function() { return setPKCE; }); 30747/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPKCE", function() { return getPKCE; }); 30748/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearAll", function() { return clearAll; }); 30749/* 30750 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30751 * 30752 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30753 * the License. A copy of the License is located at 30754 * 30755 * http://aws.amazon.com/apache2.0/ 30756 * 30757 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 30758 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 30759 * and limitations under the License. 30760 */ 30761var setState = function (state) { 30762 window.sessionStorage.setItem('oauth_state', state); 30763}; 30764var getState = function () { 30765 var oauth_state = window.sessionStorage.getItem('oauth_state'); 30766 window.sessionStorage.removeItem('oauth_state'); 30767 return oauth_state; 30768}; 30769var setPKCE = function (private_key) { 30770 window.sessionStorage.setItem('ouath_pkce_key', private_key); 30771}; 30772var getPKCE = function () { 30773 var ouath_pkce_key = window.sessionStorage.getItem('ouath_pkce_key'); 30774 window.sessionStorage.removeItem('ouath_pkce_key'); 30775 return ouath_pkce_key; 30776}; 30777var clearAll = function () { 30778 window.sessionStorage.removeItem('ouath_pkce_key'); 30779 window.sessionStorage.removeItem('oauth_state'); 30780}; 30781//# sourceMappingURL=oauthStorage.js.map 30782 30783/***/ }), 30784
vendor: 1,430 bytes, lines 30785-30820
30785/***/ "./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js": 30786/*!*******************************************************************!*\ 30787 !*** ./node_modules/@aws-amplify/auth/lib-esm/OAuth/urlOpener.js ***! 30788 \*******************************************************************/ 30789/*! exports provided: launchUri */ 30790/***/ (function(module, __webpack_exports__, __webpack_require__) { 30791 30792"use strict"; 30793__webpack_require__.r(__webpack_exports__); 30794/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "launchUri", function() { return launchUri; }); 30795/* 30796 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30797 * 30798 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30799 * the License. A copy of the License is located at 30800 * 30801 * http://aws.amazon.com/apache2.0/ 30802 * 30803 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 30804 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 30805 * and limitations under the License. 30806 */ 30807var SELF = '_self'; 30808var launchUri = function (url) { 30809 var windowProxy = window.open(url, SELF); 30810 if (windowProxy) { 30811 return Promise.resolve(windowProxy); 30812 } 30813 else { 30814 return Promise.reject(); 30815 } 30816}; 30817//# sourceMappingURL=urlOpener.js.map 30818 30819/***/ }), 30820
vendor: 1,536 bytes, lines 30821-30847
30821/***/ "./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js": 30822/*!***************************************************************************!*\ 30823 !*** ./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js ***! 30824 \***************************************************************************/ 30825/*! exports provided: AuthErrorStrings */ 30826/***/ (function(module, __webpack_exports__, __webpack_require__) { 30827 30828"use strict"; 30829__webpack_require__.r(__webpack_exports__); 30830/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AuthErrorStrings", function() { return AuthErrorStrings; }); 30831var AuthErrorStrings; 30832(function (AuthErrorStrings) { 30833 AuthErrorStrings["DEFAULT_MSG"] = "Authentication Error"; 30834 AuthErrorStrings["EMPTY_USERNAME"] = "Username cannot be empty"; 30835 AuthErrorStrings["INVALID_USERNAME"] = "The username should either be a string or one of the sign in types"; 30836 AuthErrorStrings["EMPTY_PASSWORD"] = "Password cannot be empty"; 30837 AuthErrorStrings["EMPTY_CODE"] = "Confirmation code cannot be empty"; 30838 AuthErrorStrings["SIGN_UP_ERROR"] = "Error creating account"; 30839 AuthErrorStrings["NO_MFA"] = "No valid MFA method provided"; 30840 AuthErrorStrings["INVALID_MFA"] = "Invalid MFA type"; 30841 AuthErrorStrings["EMPTY_CHALLENGE"] = "Challenge response cannot be empty"; 30842 AuthErrorStrings["NO_USER_SESSION"] = "Failed to get the session because the user is empty"; 30843})(AuthErrorStrings || (AuthErrorStrings = {})); 30844//# sourceMappingURL=AuthErrorStrings.js.map 30845 30846/***/ }), 30847
vendor: 3,155 bytes, lines 30848-30897
30848/***/ "./node_modules/@aws-amplify/auth/lib-esm/index.js": 30849/*!*********************************************************!*\ 30850 !*** ./node_modules/@aws-amplify/auth/lib-esm/index.js ***! 30851 \*********************************************************/ 30852/*! exports provided: default, Auth, CognitoUser, CookieStorage, CognitoHostedUIIdentityProvider, appendToCognitoUserAgent, AuthErrorStrings */ 30853/***/ (function(module, __webpack_exports__, __webpack_require__) { 30854 30855"use strict"; 30856__webpack_require__.r(__webpack_exports__); 30857/* harmony import */ var _Auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Auth */ "./node_modules/@aws-amplify/auth/lib-esm/Auth.js"); 30858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Auth", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["Auth"]; }); 30859 30860/* harmony import */ var _types_Auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types/Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); 30861/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoHostedUIIdentityProvider", function() { return _types_Auth__WEBPACK_IMPORTED_MODULE_1__["CognitoHostedUIIdentityProvider"]; }); 30862 30863/* harmony import */ var amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! amazon-cognito-identity-js */ "./node_modules/amazon-cognito-identity-js/es/index.js"); 30864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoUser", function() { return amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CognitoUser"]; }); 30865 30866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CookieStorage", function() { return amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["CookieStorage"]; }); 30867 30868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "appendToCognitoUserAgent", function() { return amazon_cognito_identity_js__WEBPACK_IMPORTED_MODULE_2__["appendToCognitoUserAgent"]; }); 30869 30870/* harmony import */ var _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./common/AuthErrorStrings */ "./node_modules/@aws-amplify/auth/lib-esm/common/AuthErrorStrings.js"); 30871/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AuthErrorStrings", function() { return _common_AuthErrorStrings__WEBPACK_IMPORTED_MODULE_3__["AuthErrorStrings"]; }); 30872 30873/* 30874 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30875 * 30876 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30877 * the License. A copy of the License is located at 30878 * 30879 * http://aws.amazon.com/apache2.0/ 30880 * 30881 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 30882 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 30883 * and limitations under the License. 30884 */ 30885 30886 30887 30888 30889/** 30890 * @deprecated use named import 30891 */ 30892/* harmony default export */ __webpack_exports__["default"] = (_Auth__WEBPACK_IMPORTED_MODULE_0__["Auth"]); 30893 30894//# sourceMappingURL=index.js.map 30895 30896/***/ }), 30897
vendor: 4,066 bytes, lines 30898-30970
30898/***/ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js": 30899/*!**************************************************************!*\ 30900 !*** ./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js ***! 30901 \**************************************************************/ 30902/*! exports provided: CognitoHostedUIIdentityProvider, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, isCognitoHostedOpts, AuthErrorTypes, isUsernamePasswordOpts */ 30903/***/ (function(module, __webpack_exports__, __webpack_require__) { 30904 30905"use strict"; 30906__webpack_require__.r(__webpack_exports__); 30907/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CognitoHostedUIIdentityProvider", function() { return CognitoHostedUIIdentityProvider; }); 30908/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFederatedSignInOptions", function() { return isFederatedSignInOptions; }); 30909/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFederatedSignInOptionsCustom", function() { return isFederatedSignInOptionsCustom; }); 30910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasCustomState", function() { return hasCustomState; }); 30911/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCognitoHostedOpts", function() { return isCognitoHostedOpts; }); 30912/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AuthErrorTypes", function() { return AuthErrorTypes; }); 30913/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUsernamePasswordOpts", function() { return isUsernamePasswordOpts; }); 30914/* 30915 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30916 * 30917 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30918 * the License. A copy of the License is located at 30919 * 30920 * http://aws.amazon.com/apache2.0/ 30921 * 30922 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 30923 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 30924 * and limitations under the License. 30925 */ 30926var CognitoHostedUIIdentityProvider; 30927(function (CognitoHostedUIIdentityProvider) { 30928 CognitoHostedUIIdentityProvider["Cognito"] = "COGNITO"; 30929 CognitoHostedUIIdentityProvider["Google"] = "Google"; 30930 CognitoHostedUIIdentityProvider["Facebook"] = "Facebook"; 30931 CognitoHostedUIIdentityProvider["Amazon"] = "LoginWithAmazon"; 30932 CognitoHostedUIIdentityProvider["Apple"] = "SignInWithApple"; 30933})(CognitoHostedUIIdentityProvider || (CognitoHostedUIIdentityProvider = {})); 30934function isFederatedSignInOptions(obj) { 30935 var keys = ['provider']; 30936 return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); }); 30937} 30938function isFederatedSignInOptionsCustom(obj) { 30939 var keys = ['customProvider']; 30940 return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); }); 30941} 30942function hasCustomState(obj) { 30943 var keys = ['customState']; 30944 return obj && !!keys.find(function (k) { return obj.hasOwnProperty(k); }); 30945} 30946function isCognitoHostedOpts(oauth) { 30947 return oauth.redirectSignIn !== undefined; 30948} 30949var AuthErrorTypes; 30950(function (AuthErrorTypes) { 30951 AuthErrorTypes["NoConfig"] = "noConfig"; 30952 AuthErrorTypes["MissingAuthConfig"] = "missingAuthConfig"; 30953 AuthErrorTypes["EmptyUsername"] = "emptyUsername"; 30954 AuthErrorTypes["InvalidUsername"] = "invalidUsername"; 30955 AuthErrorTypes["EmptyPassword"] = "emptyPassword"; 30956 AuthErrorTypes["EmptyCode"] = "emptyCode"; 30957 AuthErrorTypes["SignUpError"] = "signUpError"; 30958 AuthErrorTypes["NoMFA"] = "noMFA"; 30959 AuthErrorTypes["InvalidMFA"] = "invalidMFA"; 30960 AuthErrorTypes["EmptyChallengeResponse"] = "emptyChallengeResponse"; 30961 AuthErrorTypes["NoUserSession"] = "noUserSession"; 30962 AuthErrorTypes["Default"] = "default"; 30963})(AuthErrorTypes || (AuthErrorTypes = {})); 30964function isUsernamePasswordOpts(obj) { 30965 return !!obj.username; 30966} 30967//# sourceMappingURL=Auth.js.map 30968 30969/***/ }), 30970
vendor: 2,677 bytes, lines 30971-31011
30971/***/ "./node_modules/@aws-amplify/auth/lib-esm/types/index.js": 30972/*!***************************************************************!*\ 30973 !*** ./node_modules/@aws-amplify/auth/lib-esm/types/index.js ***! 30974 \***************************************************************/ 30975/*! exports provided: CognitoHostedUIIdentityProvider, isFederatedSignInOptions, isFederatedSignInOptionsCustom, hasCustomState, isCognitoHostedOpts, AuthErrorTypes, isUsernamePasswordOpts */ 30976/***/ (function(module, __webpack_exports__, __webpack_require__) { 30977 30978"use strict"; 30979__webpack_require__.r(__webpack_exports__); 30980/* harmony import */ var _Auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Auth */ "./node_modules/@aws-amplify/auth/lib-esm/types/Auth.js"); 30981/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoHostedUIIdentityProvider", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["CognitoHostedUIIdentityProvider"]; }); 30982 30983/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isFederatedSignInOptions", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["isFederatedSignInOptions"]; }); 30984 30985/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isFederatedSignInOptionsCustom", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["isFederatedSignInOptionsCustom"]; }); 30986 30987/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasCustomState", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["hasCustomState"]; }); 30988 30989/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isCognitoHostedOpts", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["isCognitoHostedOpts"]; }); 30990 30991/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AuthErrorTypes", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["AuthErrorTypes"]; }); 30992 30993/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isUsernamePasswordOpts", function() { return _Auth__WEBPACK_IMPORTED_MODULE_0__["isUsernamePasswordOpts"]; }); 30994 30995/* 30996 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 30997 * 30998 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 30999 * the License. A copy of the License is located at 31000 * 31001 * http://aws.amazon.com/apache2.0/ 31002 * 31003 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 31004 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 31005 * and limitations under the License. 31006 */ 31007 31008//# sourceMappingURL=index.js.map 31009 31010/***/ }), 31011
vendor: 1,744 bytes, lines 31012-31051
31012/***/ "./node_modules/@aws-amplify/auth/lib-esm/urlListener.js": 31013/*!***************************************************************!*\ 31014 !*** ./node_modules/@aws-amplify/auth/lib-esm/urlListener.js ***! 31015 \***************************************************************/ 31016/*! exports provided: default */ 31017/***/ (function(module, __webpack_exports__, __webpack_require__) { 31018 31019"use strict"; 31020__webpack_require__.r(__webpack_exports__); 31021/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); 31022/* 31023 * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 31024 * 31025 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 31026 * the License. A copy of the License is located at 31027 * 31028 * http://aws.amazon.com/apache2.0/ 31029 * 31030 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 31031 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 31032 * and limitations under the License. 31033 */ 31034 31035/* harmony default export */ __webpack_exports__["default"] = (function (callback) { 31036 if (_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["JS"].browserOrNode().isBrowser && window.location) { 31037 var url = window.location.href; 31038 callback({ url: url }); 31039 } 31040 else if (_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["JS"].browserOrNode().isNode) { 31041 // continue building on ssr 31042 (function () { }); // noop 31043 } 31044 else { 31045 throw new Error('Not supported'); 31046 } 31047}); 31048//# sourceMappingURL=urlListener.js.map 31049 31050/***/ }), 31051
vendor: 5,073 bytes, lines 31052-31173
31052/***/ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js": 31053/*!***********************************************************!*\ 31054 !*** ./node_modules/@aws-amplify/core/lib-esm/Amplify.js ***! 31055 \***********************************************************/ 31056/*! exports provided: AmplifyClass, Amplify, default */ 31057/***/ (function(module, __webpack_exports__, __webpack_require__) { 31058 31059"use strict"; 31060__webpack_require__.r(__webpack_exports__); 31061/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AmplifyClass", function() { return AmplifyClass; }); 31062/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Amplify", function() { return Amplify; }); 31063/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 31064var __read = (undefined && undefined.__read) || function (o, n) { 31065 var m = typeof Symbol === "function" && o[Symbol.iterator]; 31066 if (!m) return o; 31067 var i = m.call(o), r, ar = [], e; 31068 try { 31069 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 31070 } 31071 catch (error) { e = { error: error }; } 31072 finally { 31073 try { 31074 if (r && !r.done && (m = i["return"])) m.call(i); 31075 } 31076 finally { if (e) throw e.error; } 31077 } 31078 return ar; 31079}; 31080 31081var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Amplify'); 31082var AmplifyClass = /** @class */ (function () { 31083 function AmplifyClass() { 31084 // Everything that is `register`ed is tracked here 31085 this._components = []; 31086 this._config = {}; 31087 // All modules (with `getModuleName()`) are stored here for dependency injection 31088 this._modules = {}; 31089 // for backward compatibility to avoid breaking change 31090 // if someone is using like Amplify.Auth 31091 this.Auth = null; 31092 this.Analytics = null; 31093 this.API = null; 31094 this.Credentials = null; 31095 this.Storage = null; 31096 this.I18n = null; 31097 this.Cache = null; 31098 this.PubSub = null; 31099 this.Interactions = null; 31100 this.Pushnotification = null; 31101 this.UI = null; 31102 this.XR = null; 31103 this.Predictions = null; 31104 this.DataStore = null; 31105 this.Logger = _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]; 31106 this.ServiceWorker = null; 31107 } 31108 AmplifyClass.prototype.register = function (comp) { 31109 logger.debug('component registered in amplify', comp); 31110 this._components.push(comp); 31111 if (typeof comp.getModuleName === 'function') { 31112 this._modules[comp.getModuleName()] = comp; 31113 this[comp.getModuleName()] = comp; 31114 } 31115 else { 31116 logger.debug('no getModuleName method for component', comp); 31117 } 31118 // Finally configure this new component(category) loaded 31119 // With the new modularization changes in Amplify V3, all the Amplify 31120 // component are not loaded/registered right away but when they are 31121 // imported (and hence instantiated) in the client's app. This ensures 31122 // that all new components imported get correctly configured with the 31123 // configuration that Amplify.configure() was called with. 31124 comp.configure(this._config); 31125 }; 31126 AmplifyClass.prototype.configure = function (config) { 31127 var _this = this; 31128 if (!config) 31129 return this._config; 31130 this._config = Object.assign(this._config, config); 31131 logger.debug('amplify config', this._config); 31132 // Dependency Injection via property-setting. 31133 // This avoids introducing a public method/interface/setter that's difficult to remove later. 31134 // Plus, it reduces `if` statements within the `constructor` and `configure` of each module 31135 Object.entries(this._modules).forEach(function (_a) { 31136 var _b = __read(_a, 2), Name = _b[0], comp = _b[1]; 31137 // e.g. Auth.* 31138 Object.keys(comp).forEach(function (property) { 31139 // e.g. Auth["Credentials"] = this._modules["Credentials"] when set 31140 if (_this._modules[property]) { 31141 comp[property] = _this._modules[property]; 31142 } 31143 }); 31144 }); 31145 this._components.map(function (comp) { 31146 comp.configure(_this._config); 31147 }); 31148 return this._config; 31149 }; 31150 AmplifyClass.prototype.addPluggable = function (pluggable) { 31151 if (pluggable && 31152 pluggable['getCategory'] && 31153 typeof pluggable['getCategory'] === 'function') { 31154 this._components.map(function (comp) { 31155 if (comp['addPluggable'] && 31156 typeof comp['addPluggable'] === 'function') { 31157 comp.addPluggable(pluggable); 31158 } 31159 }); 31160 } 31161 }; 31162 return AmplifyClass; 31163}()); 31164 31165var Amplify = new AmplifyClass(); 31166/** 31167 * @deprecated use named import 31168 */ 31169/* harmony default export */ __webpack_exports__["default"] = (Amplify); 31170//# sourceMappingURL=Amplify.js.map 31171 31172/***/ }), 31173
vendor: 3,967 bytes, lines 31174-31273
31174/***/ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js": 31175/*!************************************************************************!*\ 31176 !*** ./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js ***! 31177 \************************************************************************/ 31178/*! exports provided: clientInfo, dimension */ 31179/***/ (function(module, __webpack_exports__, __webpack_require__) { 31180 31181"use strict"; 31182__webpack_require__.r(__webpack_exports__); 31183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clientInfo", function() { return clientInfo; }); 31184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dimension", function() { return dimension; }); 31185/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 31186/* 31187 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 31188 * 31189 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 31190 * the License. A copy of the License is located at 31191 * 31192 * http://aws.amazon.com/apache2.0/ 31193 * 31194 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 31195 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 31196 * and limitations under the License. 31197 */ 31198 31199var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('ClientDevice_Browser'); 31200function clientInfo() { 31201 if (typeof window === 'undefined') { 31202 return {}; 31203 } 31204 return browserClientInfo(); 31205} 31206function browserClientInfo() { 31207 if (typeof window === 'undefined') { 31208 logger.warn('No window object available to get browser client info'); 31209 return {}; 31210 } 31211 var nav = window.navigator; 31212 if (!nav) { 31213 logger.warn('No navigator object available to get browser client info'); 31214 return {}; 31215 } 31216 var platform = nav.platform, product = nav.product, vendor = nav.vendor, userAgent = nav.userAgent, language = nav.language; 31217 var type = browserType(userAgent); 31218 var timezone = browserTimezone(); 31219 return { 31220 platform: platform, 31221 make: product || vendor, 31222 model: type.type, 31223 version: type.version, 31224 appVersion: [type.type, type.version].join('/'), 31225 language: language, 31226 timezone: timezone, 31227 }; 31228} 31229function dimension() { 31230 if (typeof window === 'undefined') { 31231 logger.warn('No window object available to get browser client info'); 31232 return { width: 320, height: 320 }; 31233 } 31234 return { 31235 width: window.innerWidth, 31236 height: window.innerHeight, 31237 }; 31238} 31239function browserTimezone() { 31240 var tzMatch = /\(([A-Za-z\s].*)\)/.exec(new Date().toString()); 31241 return tzMatch ? tzMatch[1] || '' : ''; 31242} 31243function browserType(userAgent) { 31244 var operaMatch = /.+(Opera[\s[A-Z]*|OPR[\sA-Z]*)\/([0-9\.]+).*/i.exec(userAgent); 31245 if (operaMatch) { 31246 return { type: operaMatch[1], version: operaMatch[2] }; 31247 } 31248 var ieMatch = /.+(Trident|Edge)\/([0-9\.]+).*/i.exec(userAgent); 31249 if (ieMatch) { 31250 return { type: ieMatch[1], version: ieMatch[2] }; 31251 } 31252 var cfMatch = /.+(Chrome|Firefox|FxiOS)\/([0-9\.]+).*/i.exec(userAgent); 31253 if (cfMatch) { 31254 return { type: cfMatch[1], version: cfMatch[2] }; 31255 } 31256 var sMatch = /.+(Safari)\/([0-9\.]+).*/i.exec(userAgent); 31257 if (sMatch) { 31258 return { type: sMatch[1], version: sMatch[2] }; 31259 } 31260 var awkMatch = /.+(AppleWebKit)\/([0-9\.]+).*/i.exec(userAgent); 31261 if (awkMatch) { 31262 return { type: awkMatch[1], version: awkMatch[2] }; 31263 } 31264 var anyMatch = /.*([A-Z]+)\/([0-9\.]+).*/i.exec(userAgent); 31265 if (anyMatch) { 31266 return { type: anyMatch[1], version: anyMatch[2] }; 31267 } 31268 return { type: '', version: '' }; 31269} 31270//# sourceMappingURL=browser.js.map 31271 31272/***/ }), 31273
vendor: 1,892 bytes, lines 31274-31317
31274/***/ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js": 31275/*!**********************************************************************!*\ 31276 !*** ./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js ***! 31277 \**********************************************************************/ 31278/*! exports provided: ClientDevice, default */ 31279/***/ (function(module, __webpack_exports__, __webpack_require__) { 31280 31281"use strict"; 31282__webpack_require__.r(__webpack_exports__); 31283/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientDevice", function() { return ClientDevice; }); 31284/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/browser.js"); 31285/* 31286 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 31287 * 31288 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 31289 * the License. A copy of the License is located at 31290 * 31291 * http://aws.amazon.com/apache2.0/ 31292 * 31293 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 31294 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 31295 * and limitations under the License. 31296 */ 31297 31298var ClientDevice = /** @class */ (function () { 31299 function ClientDevice() { 31300 } 31301 ClientDevice.clientInfo = function () { 31302 return Object(_browser__WEBPACK_IMPORTED_MODULE_0__["clientInfo"])(); 31303 }; 31304 ClientDevice.dimension = function () { 31305 return Object(_browser__WEBPACK_IMPORTED_MODULE_0__["dimension"])(); 31306 }; 31307 return ClientDevice; 31308}()); 31309 31310/** 31311 * @deprecated use named import 31312 */ 31313/* harmony default export */ __webpack_exports__["default"] = (ClientDevice); 31314//# sourceMappingURL=index.js.map 31315 31316/***/ }), 31317
vendor: 31,843 bytes, lines 31318-31890
31318/***/ "./node_modules/@aws-amplify/core/lib-esm/Credentials.js": 31319/*!***************************************************************!*\ 31320 !*** ./node_modules/@aws-amplify/core/lib-esm/Credentials.js ***! 31321 \***************************************************************/ 31322/*! exports provided: CredentialsClass, Credentials, default */ 31323/***/ (function(module, __webpack_exports__, __webpack_require__) { 31324 31325"use strict"; 31326__webpack_require__.r(__webpack_exports__); 31327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CredentialsClass", function() { return CredentialsClass; }); 31328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Credentials", function() { return Credentials; }); 31329/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 31330/* harmony import */ var _StorageHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js"); 31331/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 31332/* harmony import */ var _OAuthHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OAuthHelper */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js"); 31333/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Util */ "./node_modules/@aws-amplify/core/lib-esm/Util/index.js"); 31334/* harmony import */ var _Platform__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Platform */ "./node_modules/@aws-amplify/core/lib-esm/Platform/index.js"); 31335/* harmony import */ var _Amplify__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); 31336/* harmony import */ var _aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-sdk/credential-provider-cognito-identity */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/index.js"); 31337/* harmony import */ var _aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__); 31338/* harmony import */ var _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @aws-sdk/client-cognito-identity */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/index.js"); 31339var __assign = (undefined && undefined.__assign) || function () { 31340 __assign = Object.assign || function(t) { 31341 for (var s, i = 1, n = arguments.length; i < n; i++) { 31342 s = arguments[i]; 31343 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 31344 t[p] = s[p]; 31345 } 31346 return t; 31347 }; 31348 return __assign.apply(this, arguments); 31349}; 31350var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 31351 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 31352 return new (P || (P = Promise))(function (resolve, reject) { 31353 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 31354 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 31355 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 31356 step((generator = generator.apply(thisArg, _arguments || [])).next()); 31357 }); 31358}; 31359var __generator = (undefined && undefined.__generator) || function (thisArg, body) { 31360 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 31361 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 31362 function verb(n) { return function (v) { return step([n, v]); }; } 31363 function step(op) { 31364 if (f) throw new TypeError("Generator is already executing."); 31365 while (_) try { 31366 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 31367 if (y = 0, t) op = [op[0] & 2, t.value]; 31368 switch (op[0]) { 31369 case 0: case 1: t = op; break; 31370 case 4: _.label++; return { value: op[1], done: false }; 31371 case 5: _.label++; y = op[1]; op = [0]; continue; 31372 case 7: op = _.ops.pop(); _.trys.pop(); continue; 31373 default: 31374 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 31375 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 31376 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 31377 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 31378 if (t[2]) _.ops.pop(); 31379 _.trys.pop(); continue; 31380 } 31381 op = body.call(thisArg, _); 31382 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 31383 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 31384 } 31385}; 31386 31387 31388 31389 31390 31391 31392 31393 31394 31395var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Credentials'); 31396var CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future 31397var CredentialsClass = /** @class */ (function () { 31398 function CredentialsClass(config) { 31399 this._gettingCredPromise = null; 31400 this._refreshHandlers = {}; 31401 // `Amplify.Auth` will either be `Auth` or `null` depending on if Auth was imported 31402 this.Auth = _Amplify__WEBPACK_IMPORTED_MODULE_6__["Amplify"].Auth; 31403 this.configure(config); 31404 this._refreshHandlers['google'] = _OAuthHelper__WEBPACK_IMPORTED_MODULE_3__["GoogleOAuth"].refreshGoogleToken; 31405 this._refreshHandlers['facebook'] = _OAuthHelper__WEBPACK_IMPORTED_MODULE_3__["FacebookOAuth"].refreshFacebookToken; 31406 } 31407 CredentialsClass.prototype.getModuleName = function () { 31408 return 'Credentials'; 31409 }; 31410 CredentialsClass.prototype.getCredSource = function () { 31411 return this._credentials_source; 31412 }; 31413 CredentialsClass.prototype.configure = function (config) { 31414 if (!config) 31415 return this._config || {}; 31416 this._config = Object.assign({}, this._config, config); 31417 var refreshHandlers = this._config.refreshHandlers; 31418 // If the developer has provided an object of refresh handlers, 31419 // then we can merge the provided handlers with the current handlers. 31420 if (refreshHandlers) { 31421 this._refreshHandlers = __assign(__assign({}, this._refreshHandlers), refreshHandlers); 31422 } 31423 this._storage = this._config.storage; 31424 if (!this._storage) { 31425 this._storage = new _StorageHelper__WEBPACK_IMPORTED_MODULE_1__["StorageHelper"]().getStorage(); 31426 } 31427 this._storageSync = Promise.resolve(); 31428 if (typeof this._storage['sync'] === 'function') { 31429 this._storageSync = this._storage['sync'](); 31430 } 31431 return this._config; 31432 }; 31433 CredentialsClass.prototype.get = function () { 31434 logger.debug('getting credentials'); 31435 return this._pickupCredentials(); 31436 }; 31437 CredentialsClass.prototype._pickupCredentials = function () { 31438 logger.debug('picking up credentials'); 31439 if (!this._gettingCredPromise || !this._gettingCredPromise.isPending()) { 31440 logger.debug('getting new cred promise'); 31441 this._gettingCredPromise = Object(_JS__WEBPACK_IMPORTED_MODULE_2__["makeQuerablePromise"])(this._keepAlive()); 31442 } 31443 else { 31444 logger.debug('getting old cred promise'); 31445 } 31446 return this._gettingCredPromise; 31447 }; 31448 CredentialsClass.prototype._keepAlive = function () { 31449 logger.debug('checking if credentials exists and not expired'); 31450 var cred = this._credentials; 31451 if (cred && !this._isExpired(cred)) { 31452 logger.debug('credentials not changed and not expired, directly return'); 31453 return Promise.resolve(cred); 31454 } 31455 logger.debug('need to get a new credential or refresh the existing one'); 31456 // Some use-cases don't require Auth for signing in, but use Credentials for guest users (e.g. Analytics) 31457 if (this.Auth && typeof this.Auth.currentUserCredentials === 'function') { 31458 return this.Auth.currentUserCredentials(); 31459 } 31460 else { 31461 return Promise.reject('No Auth module registered in Amplify'); 31462 } 31463 }; 31464 CredentialsClass.prototype.refreshFederatedToken = function (federatedInfo) { 31465 logger.debug('Getting federated credentials'); 31466 var provider = federatedInfo.provider, user = federatedInfo.user, token = federatedInfo.token, identity_id = federatedInfo.identity_id; 31467 var expires_at = federatedInfo.expires_at; 31468 // Make sure expires_at is in millis 31469 expires_at = 31470 new Date(expires_at).getFullYear() === 1970 31471 ? expires_at * 1000 31472 : expires_at; 31473 var that = this; 31474 logger.debug('checking if federated jwt token expired'); 31475 if (expires_at > new Date().getTime()) { 31476 // if not expired 31477 logger.debug('token not expired'); 31478 return this._setCredentialsFromFederation({ 31479 provider: provider, 31480 token: token, 31481 user: user, 31482 identity_id: identity_id, 31483 expires_at: expires_at, 31484 }); 31485 } 31486 else { 31487 // if refresh handler exists 31488 if (that._refreshHandlers[provider] && 31489 typeof that._refreshHandlers[provider] === 'function') { 31490 logger.debug('getting refreshed jwt token from federation provider'); 31491 return this._providerRefreshWithRetry({ 31492 refreshHandler: that._refreshHandlers[provider], 31493 provider: provider, 31494 user: user, 31495 }); 31496 } 31497 else { 31498 logger.debug('no refresh handler for provider:', provider); 31499 this.clear(); 31500 return Promise.reject('no refresh handler for provider'); 31501 } 31502 } 31503 }; 31504 CredentialsClass.prototype._providerRefreshWithRetry = function (_a) { 31505 var _this = this; 31506 var refreshHandler = _a.refreshHandler, provider = _a.provider, user = _a.user; 31507 var MAX_DELAY_MS = 10 * 1000; 31508 // refreshHandler will retry network errors, otherwise it will 31509 // return NonRetryableError to break out of jitteredExponentialRetry 31510 return Object(_Util__WEBPACK_IMPORTED_MODULE_4__["jitteredExponentialRetry"])(refreshHandler, [], MAX_DELAY_MS) 31511 .then(function (data) { 31512 logger.debug('refresh federated token sucessfully', data); 31513 return _this._setCredentialsFromFederation({ 31514 provider: provider, 31515 token: data.token, 31516 user: user, 31517 identity_id: data.identity_id, 31518 expires_at: data.expires_at, 31519 }); 31520 }) 31521 .catch(function (e) { 31522 var isNetworkError = typeof e === 'string' && 31523 e.toLowerCase().lastIndexOf('network error', e.length) === 0; 31524 if (!isNetworkError) { 31525 _this.clear(); 31526 } 31527 logger.debug('refresh federated token failed', e); 31528 return Promise.reject('refreshing federation token failed: ' + e); 31529 }); 31530 }; 31531 CredentialsClass.prototype._isExpired = function (credentials) { 31532 if (!credentials) { 31533 logger.debug('no credentials for expiration check'); 31534 return true; 31535 } 31536 logger.debug('are these credentials expired?', credentials); 31537 var ts = Date.now(); 31538 var delta = 10 * 60 * 1000; // 10 minutes in milli seconds 31539 /* returns date object. 31540 https://github.com/aws/aws-sdk-js-v3/blob/v1.0.0-beta.1/packages/types/src/credentials.ts#L26 31541 */ 31542 var expiration = credentials.expiration; 31543 if (expiration.getTime() > ts + delta && 31544 ts < this._nextCredentialsRefresh) { 31545 return false; 31546 } 31547 return true; 31548 }; 31549 CredentialsClass.prototype._setCredentialsForGuest = function () { 31550 return __awaiter(this, void 0, void 0, function () { 31551 var _a, identityPoolId, region, mandatorySignIn, identityId, e_1, cognitoClient, credentials, cognitoIdentityParams, credentialsProvider; 31552 var _this = this; 31553 return __generator(this, function (_b) { 31554 switch (_b.label) { 31555 case 0: 31556 logger.debug('setting credentials for guest'); 31557 _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region, mandatorySignIn = _a.mandatorySignIn; 31558 if (mandatorySignIn) { 31559 return [2 /*return*/, Promise.reject('cannot get guest credentials when mandatory signin enabled')]; 31560 } 31561 if (!identityPoolId) { 31562 logger.debug('No Cognito Identity pool provided for unauthenticated access'); 31563 return [2 /*return*/, Promise.reject('No Cognito Identity pool provided for unauthenticated access')]; 31564 } 31565 if (!region) { 31566 logger.debug('region is not configured for getting the credentials'); 31567 return [2 /*return*/, Promise.reject('region is not configured for getting the credentials')]; 31568 } 31569 identityId = undefined; 31570 _b.label = 1; 31571 case 1: 31572 _b.trys.push([1, 3, , 4]); 31573 return [4 /*yield*/, this._storageSync]; 31574 case 2: 31575 _b.sent(); 31576 identityId = this._storage.getItem('CognitoIdentityId-' + identityPoolId); 31577 this._identityId = identityId; 31578 return [3 /*break*/, 4]; 31579 case 3: 31580 e_1 = _b.sent(); 31581 logger.debug('Failed to get the cached identityId', e_1); 31582 return [3 /*break*/, 4]; 31583 case 4: 31584 cognitoClient = new _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__["CognitoIdentityClient"]({ 31585 region: region, 31586 customUserAgent: Object(_Platform__WEBPACK_IMPORTED_MODULE_5__["getAmplifyUserAgent"])(), 31587 }); 31588 credentials = undefined; 31589 if (identityId) { 31590 cognitoIdentityParams = { 31591 identityId: identityId, 31592 client: cognitoClient, 31593 }; 31594 credentials = Object(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__["fromCognitoIdentity"])(cognitoIdentityParams)(); 31595 } 31596 else { 31597 credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () { 31598 var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity; 31599 return __generator(this, function (_a) { 31600 switch (_a.label) { 31601 case 0: return [4 /*yield*/, cognitoClient.send(new _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__["GetIdCommand"]({ 31602 IdentityPoolId: identityPoolId, 31603 }))]; 31604 case 1: 31605 IdentityId = (_a.sent()).IdentityId; 31606 this._identityId = IdentityId; 31607 cognitoIdentityParams = { 31608 client: cognitoClient, 31609 identityId: IdentityId, 31610 }; 31611 credentialsFromCognitoIdentity = Object(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__["fromCognitoIdentity"])(cognitoIdentityParams); 31612 return [2 /*return*/, credentialsFromCognitoIdentity()]; 31613 } 31614 }); 31615 }); }; 31616 credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () { 31617 return __generator(this, function (_a) { 31618 throw err; 31619 }); 31620 }); }); 31621 } 31622 return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null) 31623 .then(function (res) { 31624 return res; 31625 }) 31626 .catch(function (e) { return __awaiter(_this, void 0, void 0, function () { 31627 var credentialsProvider; 31628 var _this = this; 31629 return __generator(this, function (_a) { 31630 // If identity id is deleted in the console, we make one attempt to recreate it 31631 // and remove existing id from cache. 31632 if (e.name === 'ResourceNotFoundException' && 31633 e.message === "Identity '" + identityId + "' not found.") { 31634 logger.debug('Failed to load guest credentials'); 31635 this._storage.removeItem('CognitoIdentityId-' + identityPoolId); 31636 credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () { 31637 var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity; 31638 return __generator(this, function (_a) { 31639 switch (_a.label) { 31640 case 0: return [4 /*yield*/, cognitoClient.send(new _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__["GetIdCommand"]({ 31641 IdentityPoolId: identityPoolId, 31642 }))]; 31643 case 1: 31644 IdentityId = (_a.sent()).IdentityId; 31645 this._identityId = IdentityId; 31646 cognitoIdentityParams = { 31647 client: cognitoClient, 31648 identityId: IdentityId, 31649 }; 31650 credentialsFromCognitoIdentity = Object(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__["fromCognitoIdentity"])(cognitoIdentityParams); 31651 return [2 /*return*/, credentialsFromCognitoIdentity()]; 31652 } 31653 }); 31654 }); }; 31655 credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () { 31656 return __generator(this, function (_a) { 31657 throw err; 31658 }); 31659 }); }); 31660 return [2 /*return*/, this._loadCredentials(credentials, 'guest', false, null)]; 31661 } 31662 else { 31663 return [2 /*return*/, e]; 31664 } 31665 return [2 /*return*/]; 31666 }); 31667 }); })]; 31668 } 31669 }); 31670 }); 31671 }; 31672 CredentialsClass.prototype._setCredentialsFromFederation = function (params) { 31673 var provider = params.provider, token = params.token, identity_id = params.identity_id; 31674 var domains = { 31675 google: 'accounts.google.com', 31676 facebook: 'graph.facebook.com', 31677 amazon: 'www.amazon.com', 31678 developer: 'cognito-identity.amazonaws.com', 31679 }; 31680 // Use custom provider url instead of the predefined ones 31681 var domain = domains[provider] || provider; 31682 if (!domain) { 31683 return Promise.reject('You must specify a federated provider'); 31684 } 31685 var logins = {}; 31686 logins[domain] = token; 31687 var _a = this._config, identityPoolId = _a.identityPoolId, region = _a.region; 31688 if (!identityPoolId) { 31689 logger.debug('No Cognito Federated Identity pool provided'); 31690 return Promise.reject('No Cognito Federated Identity pool provided'); 31691 } 31692 if (!region) { 31693 logger.debug('region is not configured for getting the credentials'); 31694 return Promise.reject('region is not configured for getting the credentials'); 31695 } 31696 var cognitoClient = new _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__["CognitoIdentityClient"]({ 31697 region: region, 31698 customUserAgent: Object(_Platform__WEBPACK_IMPORTED_MODULE_5__["getAmplifyUserAgent"])(), 31699 }); 31700 var credentials = undefined; 31701 if (identity_id) { 31702 var cognitoIdentityParams = { 31703 identityId: identity_id, 31704 logins: logins, 31705 client: cognitoClient, 31706 }; 31707 credentials = Object(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__["fromCognitoIdentity"])(cognitoIdentityParams)(); 31708 } 31709 else { 31710 var cognitoIdentityParams = { 31711 logins: logins, 31712 identityPoolId: identityPoolId, 31713 client: cognitoClient, 31714 }; 31715 credentials = Object(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__["fromCognitoIdentityPool"])(cognitoIdentityParams)(); 31716 } 31717 return this._loadCredentials(credentials, 'federated', true, params); 31718 }; 31719 CredentialsClass.prototype._setCredentialsFromSession = function (session) { 31720 var _this = this; 31721 logger.debug('set credentials from session'); 31722 var idToken = session.getIdToken().getJwtToken(); 31723 var _a = this._config, region = _a.region, userPoolId = _a.userPoolId, identityPoolId = _a.identityPoolId; 31724 if (!identityPoolId) { 31725 logger.debug('No Cognito Federated Identity pool provided'); 31726 return Promise.reject('No Cognito Federated Identity pool provided'); 31727 } 31728 if (!region) { 31729 logger.debug('region is not configured for getting the credentials'); 31730 return Promise.reject('region is not configured for getting the credentials'); 31731 } 31732 var key = 'cognito-idp.' + region + '.amazonaws.com/' + userPoolId; 31733 var logins = {}; 31734 logins[key] = idToken; 31735 var cognitoClient = new _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__["CognitoIdentityClient"]({ 31736 region: region, 31737 customUserAgent: Object(_Platform__WEBPACK_IMPORTED_MODULE_5__["getAmplifyUserAgent"])(), 31738 }); 31739 /* 31740 Retreiving identityId with GetIdCommand to mimic the behavior in the following code in aws-sdk-v3: 31741 https://git.io/JeDxU 31742 31743 Note: Retreive identityId from CredentialsProvider once aws-sdk-js v3 supports this. 31744 */ 31745 var credentialsProvider = function () { return __awaiter(_this, void 0, void 0, function () { 31746 var IdentityId, cognitoIdentityParams, credentialsFromCognitoIdentity; 31747 return __generator(this, function (_a) { 31748 switch (_a.label) { 31749 case 0: return [4 /*yield*/, cognitoClient.send(new _aws_sdk_client_cognito_identity__WEBPACK_IMPORTED_MODULE_8__["GetIdCommand"]({ 31750 IdentityPoolId: identityPoolId, 31751 Logins: logins, 31752 }))]; 31753 case 1: 31754 IdentityId = (_a.sent()).IdentityId; 31755 this._identityId = IdentityId; 31756 cognitoIdentityParams = { 31757 client: cognitoClient, 31758 logins: logins, 31759 identityId: IdentityId, 31760 }; 31761 credentialsFromCognitoIdentity = Object(_aws_sdk_credential_provider_cognito_identity__WEBPACK_IMPORTED_MODULE_7__["fromCognitoIdentity"])(cognitoIdentityParams); 31762 return [2 /*return*/, credentialsFromCognitoIdentity()]; 31763 } 31764 }); 31765 }); }; 31766 var credentials = credentialsProvider().catch(function (err) { return __awaiter(_this, void 0, void 0, function () { 31767 return __generator(this, function (_a) { 31768 throw err; 31769 }); 31770 }); }); 31771 return this._loadCredentials(credentials, 'userPool', true, null); 31772 }; 31773 CredentialsClass.prototype._loadCredentials = function (credentials, source, authenticated, info) { 31774 var _this = this; 31775 var that = this; 31776 var identityPoolId = this._config.identityPoolId; 31777 return new Promise(function (res, rej) { 31778 credentials 31779 .then(function (credentials) { return __awaiter(_this, void 0, void 0, function () { 31780 var user, provider, token, expires_at, identity_id, e_2; 31781 return __generator(this, function (_a) { 31782 switch (_a.label) { 31783 case 0: 31784 logger.debug('Load credentials successfully', credentials); 31785 if (this._identityId && !credentials.identityId) { 31786 credentials['identityId'] = this._identityId; 31787 } 31788 that._credentials = credentials; 31789 that._credentials.authenticated = authenticated; 31790 that._credentials_source = source; 31791 that._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL; 31792 if (source === 'federated') { 31793 user = Object.assign({ id: this._credentials.identityId }, info.user); 31794 provider = info.provider, token = info.token, expires_at = info.expires_at, identity_id = info.identity_id; 31795 try { 31796 this._storage.setItem('aws-amplify-federatedInfo', JSON.stringify({ 31797 provider: provider, 31798 token: token, 31799 user: user, 31800 expires_at: expires_at, 31801 identity_id: identity_id, 31802 })); 31803 } 31804 catch (e) { 31805 logger.debug('Failed to put federated info into auth storage', e); 31806 } 31807 } 31808 if (!(source === 'guest')) return [3 /*break*/, 4]; 31809 _a.label = 1; 31810 case 1: 31811 _a.trys.push([1, 3, , 4]); 31812 return [4 /*yield*/, this._storageSync]; 31813 case 2: 31814 _a.sent(); 31815 this._storage.setItem('CognitoIdentityId-' + identityPoolId, credentials.identityId // TODO: IdentityId is currently not returned by fromCognitoIdentityPool() 31816 ); 31817 return [3 /*break*/, 4]; 31818 case 3: 31819 e_2 = _a.sent(); 31820 logger.debug('Failed to cache identityId', e_2); 31821 return [3 /*break*/, 4]; 31822 case 4: 31823 res(that._credentials); 31824 return [2 /*return*/]; 31825 } 31826 }); 31827 }); }) 31828 .catch(function (err) { 31829 if (err) { 31830 logger.debug('Failed to load credentials', credentials); 31831 logger.debug('Error loading credentials', err); 31832 rej(err); 31833 return; 31834 } 31835 }); 31836 }); 31837 }; 31838 CredentialsClass.prototype.set = function (params, source) { 31839 if (source === 'session') { 31840 return this._setCredentialsFromSession(params); 31841 } 31842 else if (source === 'federation') { 31843 return this._setCredentialsFromFederation(params); 31844 } 31845 else if (source === 'guest') { 31846 return this._setCredentialsForGuest(); 31847 } 31848 else { 31849 logger.debug('no source specified for setting credentials'); 31850 return Promise.reject('invalid source'); 31851 } 31852 }; 31853 CredentialsClass.prototype.clear = function () { 31854 return __awaiter(this, void 0, void 0, function () { 31855 return __generator(this, function (_a) { 31856 this._credentials = null; 31857 this._credentials_source = null; 31858 logger.debug('removing aws-amplify-federatedInfo from storage'); 31859 this._storage.removeItem('aws-amplify-federatedInfo'); 31860 return [2 /*return*/]; 31861 }); 31862 }); 31863 }; 31864 /** 31865 * Compact version of credentials 31866 * @param {Object} credentials 31867 * @return {Object} - Credentials 31868 */ 31869 CredentialsClass.prototype.shear = function (credentials) { 31870 return { 31871 accessKeyId: credentials.accessKeyId, 31872 sessionToken: credentials.sessionToken, 31873 secretAccessKey: credentials.secretAccessKey, 31874 identityId: credentials.identityId, 31875 authenticated: credentials.authenticated, 31876 }; 31877 }; 31878 return CredentialsClass; 31879}()); 31880 31881var Credentials = new CredentialsClass(null); 31882_Amplify__WEBPACK_IMPORTED_MODULE_6__["Amplify"].register(Credentials); 31883/** 31884 * @deprecated use named import 31885 */ 31886/* harmony default export */ __webpack_exports__["default"] = (Credentials); 31887//# sourceMappingURL=Credentials.js.map 31888 31889/***/ }), 31890
vendor: 1,517 bytes, lines 31891-31923
31891/***/ "./node_modules/@aws-amplify/core/lib-esm/Errors.js": 31892/*!**********************************************************!*\ 31893 !*** ./node_modules/@aws-amplify/core/lib-esm/Errors.js ***! 31894 \**********************************************************/ 31895/*! exports provided: missingConfig, invalidParameter */ 31896/***/ (function(module, __webpack_exports__, __webpack_require__) { 31897 31898"use strict"; 31899__webpack_require__.r(__webpack_exports__); 31900/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingConfig", function() { return missingConfig; }); 31901/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "invalidParameter", function() { return invalidParameter; }); 31902/* 31903 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 31904 * 31905 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 31906 * the License. A copy of the License is located at 31907 * 31908 * http://aws.amazon.com/apache2.0/ 31909 * 31910 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 31911 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 31912 * and limitations under the License. 31913 */ 31914function missingConfig(name) { 31915 return new Error('Missing config value of ' + name); 31916} 31917function invalidParameter(name) { 31918 return new Error('Invalid parameter value of ' + name); 31919} 31920//# sourceMappingURL=Errors.js.map 31921 31922/***/ }), 31923
vendor: 7,859 bytes, lines 31924-32135
31924/***/ "./node_modules/@aws-amplify/core/lib-esm/Hub.js": 31925/*!*******************************************************!*\ 31926 !*** ./node_modules/@aws-amplify/core/lib-esm/Hub.js ***! 31927 \*******************************************************/ 31928/*! exports provided: HubClass, Hub, default */ 31929/***/ (function(module, __webpack_exports__, __webpack_require__) { 31930 31931"use strict"; 31932__webpack_require__.r(__webpack_exports__); 31933/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HubClass", function() { return HubClass; }); 31934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Hub", function() { return Hub; }); 31935/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 31936/* 31937 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 31938 * 31939 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 31940 * the License. A copy of the License is located at 31941 * 31942 * http://aws.amazon.com/apache2.0/ 31943 * 31944 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 31945 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 31946 * and limitations under the License. 31947 */ 31948var __assign = (undefined && undefined.__assign) || function () { 31949 __assign = Object.assign || function(t) { 31950 for (var s, i = 1, n = arguments.length; i < n; i++) { 31951 s = arguments[i]; 31952 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 31953 t[p] = s[p]; 31954 } 31955 return t; 31956 }; 31957 return __assign.apply(this, arguments); 31958}; 31959var __read = (undefined && undefined.__read) || function (o, n) { 31960 var m = typeof Symbol === "function" && o[Symbol.iterator]; 31961 if (!m) return o; 31962 var i = m.call(o), r, ar = [], e; 31963 try { 31964 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 31965 } 31966 catch (error) { e = { error: error }; } 31967 finally { 31968 try { 31969 if (r && !r.done && (m = i["return"])) m.call(i); 31970 } 31971 finally { if (e) throw e.error; } 31972 } 31973 return ar; 31974}; 31975var __spread = (undefined && undefined.__spread) || function () { 31976 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); 31977 return ar; 31978}; 31979 31980var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Hub'); 31981var AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' && 31982 typeof Symbol.for === 'function' 31983 ? Symbol.for('amplify_default') 31984 : '@@amplify_default'); 31985function isLegacyCallback(callback) { 31986 return callback.onHubCapsule !== undefined; 31987} 31988var HubClass = /** @class */ (function () { 31989 function HubClass(name) { 31990 this.listeners = []; 31991 this.patterns = []; 31992 this.protectedChannels = [ 31993 'core', 31994 'auth', 31995 'api', 31996 'analytics', 31997 'interactions', 31998 'pubsub', 31999 'storage', 32000 'xr', 32001 ]; 32002 this.name = name; 32003 } 32004 // Note - Need to pass channel as a reference for removal to work and not anonymous function 32005 HubClass.prototype.remove = function (channel, listener) { 32006 if (channel instanceof RegExp) { 32007 var pattern_1 = this.patterns.find(function (_a) { 32008 var pattern = _a.pattern; 32009 return pattern.source === channel.source; 32010 }); 32011 if (!pattern_1) { 32012 logger.warn("No listeners for " + channel); 32013 return; 32014 } 32015 this.patterns = __spread(this.patterns.filter(function (x) { return x !== pattern_1; })); 32016 } 32017 else { 32018 var holder = this.listeners[channel]; 32019 if (!holder) { 32020 logger.warn("No listeners for " + channel); 32021 return; 32022 } 32023 this.listeners[channel] = __spread(holder.filter(function (_a) { 32024 var callback = _a.callback; 32025 return callback !== listener; 32026 })); 32027 } 32028 }; 32029 HubClass.prototype.dispatch = function (channel, payload, source, ampSymbol) { 32030 if (source === void 0) { source = ''; } 32031 if (this.protectedChannels.indexOf(channel) > -1) { 32032 var hasAccess = ampSymbol === AMPLIFY_SYMBOL; 32033 if (!hasAccess) { 32034 logger.warn("WARNING: " + channel + " is protected and dispatching on it can have unintended consequences"); 32035 } 32036 } 32037 var capsule = { 32038 channel: channel, 32039 payload: __assign({}, payload), 32040 source: source, 32041 patternInfo: [], 32042 }; 32043 try { 32044 this._toListeners(capsule); 32045 } 32046 catch (e) { 32047 logger.error(e); 32048 } 32049 }; 32050 HubClass.prototype.listen = function (channel, callback, listenerName) { 32051 var _this = this; 32052 if (listenerName === void 0) { listenerName = 'noname'; } 32053 var cb; 32054 // Check for legacy onHubCapsule callback for backwards compatability 32055 if (isLegacyCallback(callback)) { 32056 logger.warn("WARNING onHubCapsule is Deprecated. Please pass in a callback."); 32057 cb = callback.onHubCapsule.bind(callback); 32058 } 32059 else if (typeof callback !== 'function') { 32060 throw new Error('No callback supplied to Hub'); 32061 } 32062 else { 32063 cb = callback; 32064 } 32065 if (channel instanceof RegExp) { 32066 this.patterns.push({ 32067 pattern: channel, 32068 callback: cb, 32069 }); 32070 } 32071 else { 32072 var holder = this.listeners[channel]; 32073 if (!holder) { 32074 holder = []; 32075 this.listeners[channel] = holder; 32076 } 32077 holder.push({ 32078 name: listenerName, 32079 callback: cb, 32080 }); 32081 } 32082 return function () { 32083 _this.remove(channel, cb); 32084 }; 32085 }; 32086 HubClass.prototype._toListeners = function (capsule) { 32087 var channel = capsule.channel, payload = capsule.payload; 32088 var holder = this.listeners[channel]; 32089 if (holder) { 32090 holder.forEach(function (listener) { 32091 logger.debug("Dispatching to " + channel + " with ", payload); 32092 try { 32093 listener.callback(capsule); 32094 } 32095 catch (e) { 32096 logger.error(e); 32097 } 32098 }); 32099 } 32100 if (this.patterns.length > 0) { 32101 if (!payload.message) { 32102 logger.warn("Cannot perform pattern matching without a message key"); 32103 return; 32104 } 32105 var payloadStr_1 = payload.message; 32106 this.patterns.forEach(function (pattern) { 32107 var match = payloadStr_1.match(pattern.pattern); 32108 if (match) { 32109 var _a = __read(match), groups = _a.slice(1); 32110 var dispatchingCapsule = __assign(__assign({}, capsule), { patternInfo: groups }); 32111 try { 32112 pattern.callback(dispatchingCapsule); 32113 } 32114 catch (e) { 32115 logger.error(e); 32116 } 32117 } 32118 }); 32119 } 32120 }; 32121 return HubClass; 32122}()); 32123 32124/*We export a __default__ instance of HubClass to use it as a 32125psuedo Singleton for the main messaging bus, however you can still create 32126your own instance of HubClass() for a separate "private bus" of events.*/ 32127var Hub = new HubClass('__default__'); 32128/** 32129 * @deprecated use named import 32130 */ 32131/* harmony default export */ __webpack_exports__["default"] = (Hub); 32132//# sourceMappingURL=Hub.js.map 32133 32134/***/ }), 32135
vendor: 4,537 bytes, lines 32136-32274
32136/***/ "./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js": 32137/*!*************************************************************!*\ 32138 !*** ./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js ***! 32139 \*************************************************************/ 32140/*! exports provided: I18n */ 32141/***/ (function(module, __webpack_exports__, __webpack_require__) { 32142 32143"use strict"; 32144__webpack_require__.r(__webpack_exports__); 32145/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I18n", function() { return I18n; }); 32146/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 32147/* 32148 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 32149 * 32150 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 32151 * the License. A copy of the License is located at 32152 * 32153 * http://aws.amazon.com/apache2.0/ 32154 * 32155 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 32156 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 32157 * and limitations under the License. 32158 */ 32159 32160var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('I18n'); 32161/** 32162 * Language transition class 32163 */ 32164var I18n = /** @class */ (function () { 32165 /** 32166 * @constructor 32167 * Initialize with configurations 32168 * @param {Object} options 32169 */ 32170 function I18n(options) { 32171 /** 32172 * @private 32173 */ 32174 this._options = null; 32175 /** 32176 * @private 32177 */ 32178 this._lang = null; 32179 /** 32180 * @private 32181 */ 32182 this._dict = {}; 32183 this._options = Object.assign({}, options); 32184 this._lang = this._options.language; 32185 if (!this._lang && 32186 typeof window !== 'undefined' && 32187 window && 32188 window.navigator) { 32189 this._lang = window.navigator.language; 32190 } 32191 logger.debug(this._lang); 32192 } 32193 /** 32194 * @method 32195 * Explicitly setting language 32196 * @param {String} lang 32197 */ 32198 I18n.prototype.setLanguage = function (lang) { 32199 this._lang = lang; 32200 }; 32201 /** 32202 * @method 32203 * Get value 32204 * @param {String} key 32205 * @param {String} defVal - Default value 32206 */ 32207 I18n.prototype.get = function (key, defVal) { 32208 if (defVal === void 0) { defVal = undefined; } 32209 if (!this._lang) { 32210 return typeof defVal !== 'undefined' ? defVal : key; 32211 } 32212 var lang = this._lang; 32213 var val = this.getByLanguage(key, lang); 32214 if (val) { 32215 return val; 32216 } 32217 if (lang.indexOf('-') > 0) { 32218 val = this.getByLanguage(key, lang.split('-')[0]); 32219 } 32220 if (val) { 32221 return val; 32222 } 32223 return typeof defVal !== 'undefined' ? defVal : key; 32224 }; 32225 /** 32226 * @method 32227 * Get value according to specified language 32228 * @param {String} key 32229 * @param {String} language - Specified langurage to be used 32230 * @param {String} defVal - Default value 32231 */ 32232 I18n.prototype.getByLanguage = function (key, language, defVal) { 32233 if (defVal === void 0) { defVal = null; } 32234 if (!language) { 32235 return defVal; 32236 } 32237 var lang_dict = this._dict[language]; 32238 if (!lang_dict) { 32239 return defVal; 32240 } 32241 return lang_dict[key]; 32242 }; 32243 /** 32244 * @method 32245 * Add vocabularies for one language 32246 * @param {String} language - Language of the dictionary 32247 * @param {Object} vocabularies - Object that has key-value as dictionary entry 32248 */ 32249 I18n.prototype.putVocabulariesForLanguage = function (language, vocabularies) { 32250 var lang_dict = this._dict[language]; 32251 if (!lang_dict) { 32252 lang_dict = this._dict[language] = {}; 32253 } 32254 Object.assign(lang_dict, vocabularies); 32255 }; 32256 /** 32257 * @method 32258 * Add vocabularies for one language 32259 * @param {Object} vocabularies - Object that has language as key, 32260 * vocabularies of each language as value 32261 */ 32262 I18n.prototype.putVocabularies = function (vocabularies) { 32263 var _this = this; 32264 Object.keys(vocabularies).map(function (key) { 32265 _this.putVocabulariesForLanguage(key, vocabularies[key]); 32266 }); 32267 }; 32268 return I18n; 32269}()); 32270 32271//# sourceMappingURL=I18n.js.map 32272 32273/***/ }), 32274
vendor: 4,358 bytes, lines 32275-32402
32275/***/ "./node_modules/@aws-amplify/core/lib-esm/I18n/index.js": 32276/*!**************************************************************!*\ 32277 !*** ./node_modules/@aws-amplify/core/lib-esm/I18n/index.js ***! 32278 \**************************************************************/ 32279/*! exports provided: I18n, default */ 32280/***/ (function(module, __webpack_exports__, __webpack_require__) { 32281 32282"use strict"; 32283__webpack_require__.r(__webpack_exports__); 32284/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "I18n", function() { return I18n; }); 32285/* harmony import */ var _I18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./I18n */ "./node_modules/@aws-amplify/core/lib-esm/I18n/I18n.js"); 32286/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 32287/* harmony import */ var _Amplify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); 32288/* 32289 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 32290 * 32291 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 32292 * the License. A copy of the License is located at 32293 * 32294 * http://aws.amazon.com/apache2.0/ 32295 * 32296 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 32297 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 32298 * and limitations under the License. 32299 */ 32300 32301 32302 32303var logger = new _Logger__WEBPACK_IMPORTED_MODULE_1__["ConsoleLogger"]('I18n'); 32304var _config = null; 32305var _i18n = null; 32306/** 32307 * Export I18n APIs 32308 */ 32309var I18n = /** @class */ (function () { 32310 function I18n() { 32311 } 32312 /** 32313 * @static 32314 * @method 32315 * Configure I18n part 32316 * @param {Object} config - Configuration of the I18n 32317 */ 32318 I18n.configure = function (config) { 32319 logger.debug('configure I18n'); 32320 if (!config) { 32321 return _config; 32322 } 32323 _config = Object.assign({}, _config, config.I18n || config); 32324 I18n.createInstance(); 32325 return _config; 32326 }; 32327 I18n.getModuleName = function () { 32328 return 'I18n'; 32329 }; 32330 /** 32331 * @static 32332 * @method 32333 * Create an instance of I18n for the library 32334 */ 32335 I18n.createInstance = function () { 32336 logger.debug('create I18n instance'); 32337 if (_i18n) { 32338 return; 32339 } 32340 _i18n = new _I18n__WEBPACK_IMPORTED_MODULE_0__["I18n"](_config); 32341 }; 32342 /** 32343 * @static @method 32344 * Explicitly setting language 32345 * @param {String} lang 32346 */ 32347 I18n.setLanguage = function (lang) { 32348 I18n.checkConfig(); 32349 return _i18n.setLanguage(lang); 32350 }; 32351 /** 32352 * @static @method 32353 * Get value 32354 * @param {String} key 32355 * @param {String} defVal - Default value 32356 */ 32357 I18n.get = function (key, defVal) { 32358 if (!I18n.checkConfig()) { 32359 return typeof defVal === 'undefined' ? key : defVal; 32360 } 32361 return _i18n.get(key, defVal); 32362 }; 32363 /** 32364 * @static 32365 * @method 32366 * Add vocabularies for one language 32367 * @param {String} langurage - Language of the dictionary 32368 * @param {Object} vocabularies - Object that has key-value as dictionary entry 32369 */ 32370 I18n.putVocabulariesForLanguage = function (language, vocabularies) { 32371 I18n.checkConfig(); 32372 return _i18n.putVocabulariesForLanguage(language, vocabularies); 32373 }; 32374 /** 32375 * @static 32376 * @method 32377 * Add vocabularies for one language 32378 * @param {Object} vocabularies - Object that has language as key, 32379 * vocabularies of each language as value 32380 */ 32381 I18n.putVocabularies = function (vocabularies) { 32382 I18n.checkConfig(); 32383 return _i18n.putVocabularies(vocabularies); 32384 }; 32385 I18n.checkConfig = function () { 32386 if (!_i18n) { 32387 _i18n = new _I18n__WEBPACK_IMPORTED_MODULE_0__["I18n"](_config); 32388 } 32389 return true; 32390 }; 32391 return I18n; 32392}()); 32393 32394_Amplify__WEBPACK_IMPORTED_MODULE_2__["Amplify"].register(I18n); 32395/** 32396 * @deprecated use named import 32397 */ 32398/* harmony default export */ __webpack_exports__["default"] = (I18n); 32399//# sourceMappingURL=index.js.map 32400 32401/***/ }), 32402
vendor: 10,776 bytes, lines 32403-32660
32403/***/ "./node_modules/@aws-amplify/core/lib-esm/JS.js": 32404/*!******************************************************!*\ 32405 !*** ./node_modules/@aws-amplify/core/lib-esm/JS.js ***! 32406 \******************************************************/ 32407/*! exports provided: isEmpty, sortByField, objectLessAttributes, filenameToContentType, isTextFile, generateRandomString, makeQuerablePromise, browserOrNode, transferKeyToLowerCase, transferKeyToUpperCase, isStrictObject, JS, default */ 32408/***/ (function(module, __webpack_exports__, __webpack_require__) { 32409 32410"use strict"; 32411__webpack_require__.r(__webpack_exports__); 32412/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return isEmpty; }); 32413/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortByField", function() { return sortByField; }); 32414/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "objectLessAttributes", function() { return objectLessAttributes; }); 32415/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filenameToContentType", function() { return filenameToContentType; }); 32416/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTextFile", function() { return isTextFile; }); 32417/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generateRandomString", function() { return generateRandomString; }); 32418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeQuerablePromise", function() { return makeQuerablePromise; }); 32419/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "browserOrNode", function() { return browserOrNode; }); 32420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transferKeyToLowerCase", function() { return transferKeyToLowerCase; }); 32421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transferKeyToUpperCase", function() { return transferKeyToUpperCase; }); 32422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStrictObject", function() { return isStrictObject; }); 32423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JS", function() { return JS; }); 32424/* 32425 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 32426 * 32427 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 32428 * the License. A copy of the License is located at 32429 * 32430 * http://aws.amazon.com/apache2.0/ 32431 * 32432 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 32433 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 32434 * and limitations under the License. 32435 */ 32436var MIME_MAP = [ 32437 { type: 'text/plain', ext: 'txt' }, 32438 { type: 'text/html', ext: 'html' }, 32439 { type: 'text/javascript', ext: 'js' }, 32440 { type: 'text/css', ext: 'css' }, 32441 { type: 'text/csv', ext: 'csv' }, 32442 { type: 'text/yaml', ext: 'yml' }, 32443 { type: 'text/yaml', ext: 'yaml' }, 32444 { type: 'text/calendar', ext: 'ics' }, 32445 { type: 'text/calendar', ext: 'ical' }, 32446 { type: 'image/apng', ext: 'apng' }, 32447 { type: 'image/bmp', ext: 'bmp' }, 32448 { type: 'image/gif', ext: 'gif' }, 32449 { type: 'image/x-icon', ext: 'ico' }, 32450 { type: 'image/x-icon', ext: 'cur' }, 32451 { type: 'image/jpeg', ext: 'jpg' }, 32452 { type: 'image/jpeg', ext: 'jpeg' }, 32453 { type: 'image/jpeg', ext: 'jfif' }, 32454 { type: 'image/jpeg', ext: 'pjp' }, 32455 { type: 'image/jpeg', ext: 'pjpeg' }, 32456 { type: 'image/png', ext: 'png' }, 32457 { type: 'image/svg+xml', ext: 'svg' }, 32458 { type: 'image/tiff', ext: 'tif' }, 32459 { type: 'image/tiff', ext: 'tiff' }, 32460 { type: 'image/webp', ext: 'webp' }, 32461 { type: 'application/json', ext: 'json' }, 32462 { type: 'application/xml', ext: 'xml' }, 32463 { type: 'application/x-sh', ext: 'sh' }, 32464 { type: 'application/zip', ext: 'zip' }, 32465 { type: 'application/x-rar-compressed', ext: 'rar' }, 32466 { type: 'application/x-tar', ext: 'tar' }, 32467 { type: 'application/x-bzip', ext: 'bz' }, 32468 { type: 'application/x-bzip2', ext: 'bz2' }, 32469 { type: 'application/pdf', ext: 'pdf' }, 32470 { type: 'application/java-archive', ext: 'jar' }, 32471 { type: 'application/msword', ext: 'doc' }, 32472 { type: 'application/vnd.ms-excel', ext: 'xls' }, 32473 { type: 'application/vnd.ms-excel', ext: 'xlsx' }, 32474 { type: 'message/rfc822', ext: 'eml' }, 32475]; 32476var isEmpty = function (obj) { 32477 if (obj === void 0) { obj = {}; } 32478 return Object.keys(obj).length === 0; 32479}; 32480var sortByField = function (list, field, dir) { 32481 if (!list || !list.sort) { 32482 return false; 32483 } 32484 var dirX = dir && dir === 'desc' ? -1 : 1; 32485 list.sort(function (a, b) { 32486 var a_val = a[field]; 32487 var b_val = b[field]; 32488 if (typeof b_val === 'undefined') { 32489 return typeof a_val === 'undefined' ? 0 : 1 * dirX; 32490 } 32491 if (typeof a_val === 'undefined') { 32492 return -1 * dirX; 32493 } 32494 if (a_val < b_val) { 32495 return -1 * dirX; 32496 } 32497 if (a_val > b_val) { 32498 return 1 * dirX; 32499 } 32500 return 0; 32501 }); 32502 return true; 32503}; 32504var objectLessAttributes = function (obj, less) { 32505 var ret = Object.assign({}, obj); 32506 if (less) { 32507 if (typeof less === 'string') { 32508 delete ret[less]; 32509 } 32510 else { 32511 less.forEach(function (attr) { 32512 delete ret[attr]; 32513 }); 32514 } 32515 } 32516 return ret; 32517}; 32518var filenameToContentType = function (filename, defVal) { 32519 if (defVal === void 0) { defVal = 'application/octet-stream'; } 32520 var name = filename.toLowerCase(); 32521 var filtered = MIME_MAP.filter(function (mime) { return name.endsWith('.' + mime.ext); }); 32522 return filtered.length > 0 ? filtered[0].type : defVal; 32523}; 32524var isTextFile = function (contentType) { 32525 var type = contentType.toLowerCase(); 32526 if (type.startsWith('text/')) { 32527 return true; 32528 } 32529 return ('application/json' === type || 32530 'application/xml' === type || 32531 'application/sh' === type); 32532}; 32533var generateRandomString = function () { 32534 var result = ''; 32535 var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; 32536 for (var i = 32; i > 0; i -= 1) { 32537 result += chars[Math.floor(Math.random() * chars.length)]; 32538 } 32539 return result; 32540}; 32541var makeQuerablePromise = function (promise) { 32542 if (promise.isResolved) 32543 return promise; 32544 var isPending = true; 32545 var isRejected = false; 32546 var isFullfilled = false; 32547 var result = promise.then(function (data) { 32548 isFullfilled = true; 32549 isPending = false; 32550 return data; 32551 }, function (e) { 32552 isRejected = true; 32553 isPending = false; 32554 throw e; 32555 }); 32556 result.isFullfilled = function () { return isFullfilled; }; 32557 result.isPending = function () { return isPending; }; 32558 result.isRejected = function () { return isRejected; }; 32559 return result; 32560}; 32561var browserOrNode = function () { 32562 var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined'; 32563 var isNode = typeof process !== 'undefined' && 32564 process.versions != null && 32565 process.versions.node != null; 32566 return { 32567 isBrowser: isBrowser, 32568 isNode: isNode, 32569 }; 32570}; 32571/** 32572 * transfer the first letter of the keys to lowercase 32573 * @param {Object} obj - the object need to be transferred 32574 * @param {Array} whiteListForItself - whitelist itself from being transferred 32575 * @param {Array} whiteListForChildren - whitelist its children keys from being transferred 32576 */ 32577var transferKeyToLowerCase = function (obj, whiteListForItself, whiteListForChildren) { 32578 if (whiteListForItself === void 0) { whiteListForItself = []; } 32579 if (whiteListForChildren === void 0) { whiteListForChildren = []; } 32580 if (!isStrictObject(obj)) 32581 return obj; 32582 var ret = {}; 32583 for (var key in obj) { 32584 if (obj.hasOwnProperty(key)) { 32585 var transferedKey = whiteListForItself.includes(key) 32586 ? key 32587 : key[0].toLowerCase() + key.slice(1); 32588 ret[transferedKey] = whiteListForChildren.includes(key) 32589 ? obj[key] 32590 : transferKeyToLowerCase(obj[key], whiteListForItself, whiteListForChildren); 32591 } 32592 } 32593 return ret; 32594}; 32595/** 32596 * transfer the first letter of the keys to lowercase 32597 * @param {Object} obj - the object need to be transferred 32598 * @param {Array} whiteListForItself - whitelist itself from being transferred 32599 * @param {Array} whiteListForChildren - whitelist its children keys from being transferred 32600 */ 32601var transferKeyToUpperCase = function (obj, whiteListForItself, whiteListForChildren) { 32602 if (whiteListForItself === void 0) { whiteListForItself = []; } 32603 if (whiteListForChildren === void 0) { whiteListForChildren = []; } 32604 if (!isStrictObject(obj)) 32605 return obj; 32606 var ret = {}; 32607 for (var key in obj) { 32608 if (obj.hasOwnProperty(key)) { 32609 var transferredKey = whiteListForItself.includes(key) 32610 ? key 32611 : key[0].toUpperCase() + key.slice(1); 32612 ret[transferredKey] = whiteListForChildren.includes(key) 32613 ? obj[key] 32614 : transferKeyToUpperCase(obj[key], whiteListForItself, whiteListForChildren); 32615 } 32616 } 32617 return ret; 32618}; 32619/** 32620 * Return true if the object is a strict object 32621 * which means it's not Array, Function, Number, String, Boolean or Null 32622 * @param obj the Object 32623 */ 32624var isStrictObject = function (obj) { 32625 return (obj instanceof Object && 32626 !(obj instanceof Array) && 32627 !(obj instanceof Function) && 32628 !(obj instanceof Number) && 32629 !(obj instanceof String) && 32630 !(obj instanceof Boolean)); 32631}; 32632/** 32633 * @deprecated use per-function imports 32634 */ 32635var JS = /** @class */ (function () { 32636 function JS() { 32637 } 32638 JS.isEmpty = isEmpty; 32639 JS.sortByField = sortByField; 32640 JS.objectLessAttributes = objectLessAttributes; 32641 JS.filenameToContentType = filenameToContentType; 32642 JS.isTextFile = isTextFile; 32643 JS.generateRandomString = generateRandomString; 32644 JS.makeQuerablePromise = makeQuerablePromise; 32645 JS.browserOrNode = browserOrNode; 32646 JS.transferKeyToLowerCase = transferKeyToLowerCase; 32647 JS.transferKeyToUpperCase = transferKeyToUpperCase; 32648 JS.isStrictObject = isStrictObject; 32649 return JS; 32650}()); 32651 32652/** 32653 * @deprecated use per-function imports 32654 */ 32655/* harmony default export */ __webpack_exports__["default"] = (JS); 32656//# sourceMappingURL=JS.js.map 32657/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../process/browser.js */ "./node_modules/process/browser.js"))) 32658 32659/***/ }), 32660
vendor: 6,753 bytes, lines 32661-32868
32661/***/ "./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js": 32662/*!************************************************************************!*\ 32663 !*** ./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js ***! 32664 \************************************************************************/ 32665/*! exports provided: ConsoleLogger */ 32666/***/ (function(module, __webpack_exports__, __webpack_require__) { 32667 32668"use strict"; 32669__webpack_require__.r(__webpack_exports__); 32670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConsoleLogger", function() { return ConsoleLogger; }); 32671/* 32672 * Copyright 2017-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 32673 * 32674 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 32675 * the License. A copy of the License is located at 32676 * 32677 * http://aws.amazon.com/apache2.0/ 32678 * 32679 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 32680 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 32681 * and limitations under the License. 32682 */ 32683var __read = (undefined && undefined.__read) || function (o, n) { 32684 var m = typeof Symbol === "function" && o[Symbol.iterator]; 32685 if (!m) return o; 32686 var i = m.call(o), r, ar = [], e; 32687 try { 32688 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 32689 } 32690 catch (error) { e = { error: error }; } 32691 finally { 32692 try { 32693 if (r && !r.done && (m = i["return"])) m.call(i); 32694 } 32695 finally { if (e) throw e.error; } 32696 } 32697 return ar; 32698}; 32699var __spread = (undefined && undefined.__spread) || function () { 32700 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); 32701 return ar; 32702}; 32703var LOG_LEVELS = { 32704 VERBOSE: 1, 32705 DEBUG: 2, 32706 INFO: 3, 32707 WARN: 4, 32708 ERROR: 5, 32709}; 32710/** 32711 * Write logs 32712 * @class Logger 32713 */ 32714var ConsoleLogger = /** @class */ (function () { 32715 /** 32716 * @constructor 32717 * @param {string} name - Name of the logger 32718 */ 32719 function ConsoleLogger(name, level) { 32720 if (level === void 0) { level = 'WARN'; } 32721 this.name = name; 32722 this.level = level; 32723 } 32724 ConsoleLogger.prototype._padding = function (n) { 32725 return n < 10 ? '0' + n : '' + n; 32726 }; 32727 ConsoleLogger.prototype._ts = function () { 32728 var dt = new Date(); 32729 return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') + 32730 '.' + 32731 dt.getMilliseconds()); 32732 }; 32733 /** 32734 * Write log 32735 * @method 32736 * @memeberof Logger 32737 * @param {string} type - log type, default INFO 32738 * @param {string|object} msg - Logging message or object 32739 */ 32740 ConsoleLogger.prototype._log = function (type) { 32741 var msg = []; 32742 for (var _i = 1; _i < arguments.length; _i++) { 32743 msg[_i - 1] = arguments[_i]; 32744 } 32745 var logger_level_name = this.level; 32746 if (ConsoleLogger.LOG_LEVEL) { 32747 logger_level_name = ConsoleLogger.LOG_LEVEL; 32748 } 32749 if (typeof window !== 'undefined' && window.LOG_LEVEL) { 32750 logger_level_name = window.LOG_LEVEL; 32751 } 32752 var logger_level = LOG_LEVELS[logger_level_name]; 32753 var type_level = LOG_LEVELS[type]; 32754 if (!(type_level >= logger_level)) { 32755 // Do nothing if type is not greater than or equal to logger level (handle undefined) 32756 return; 32757 } 32758 var log = console.log.bind(console); 32759 if (type === 'ERROR' && console.error) { 32760 log = console.error.bind(console); 32761 } 32762 if (type === 'WARN' && console.warn) { 32763 log = console.warn.bind(console); 32764 } 32765 var prefix = "[" + type + "] " + this._ts() + " " + this.name; 32766 if (msg.length === 1 && typeof msg[0] === 'string') { 32767 log(prefix + " - " + msg[0]); 32768 } 32769 else if (msg.length === 1) { 32770 log(prefix, msg[0]); 32771 } 32772 else if (typeof msg[0] === 'string') { 32773 var obj = msg.slice(1); 32774 if (obj.length === 1) { 32775 obj = obj[0]; 32776 } 32777 log(prefix + " - " + msg[0], obj); 32778 } 32779 else { 32780 log(prefix, msg); 32781 } 32782 }; 32783 /** 32784 * Write General log. Default to INFO 32785 * @method 32786 * @memeberof Logger 32787 * @param {string|object} msg - Logging message or object 32788 */ 32789 ConsoleLogger.prototype.log = function () { 32790 var msg = []; 32791 for (var _i = 0; _i < arguments.length; _i++) { 32792 msg[_i] = arguments[_i]; 32793 } 32794 this._log.apply(this, __spread(['INFO'], msg)); 32795 }; 32796 /** 32797 * Write INFO log 32798 * @method 32799 * @memeberof Logger 32800 * @param {string|object} msg - Logging message or object 32801 */ 32802 ConsoleLogger.prototype.info = function () { 32803 var msg = []; 32804 for (var _i = 0; _i < arguments.length; _i++) { 32805 msg[_i] = arguments[_i]; 32806 } 32807 this._log.apply(this, __spread(['INFO'], msg)); 32808 }; 32809 /** 32810 * Write WARN log 32811 * @method 32812 * @memeberof Logger 32813 * @param {string|object} msg - Logging message or object 32814 */ 32815 ConsoleLogger.prototype.warn = function () { 32816 var msg = []; 32817 for (var _i = 0; _i < arguments.length; _i++) { 32818 msg[_i] = arguments[_i]; 32819 } 32820 this._log.apply(this, __spread(['WARN'], msg)); 32821 }; 32822 /** 32823 * Write ERROR log 32824 * @method 32825 * @memeberof Logger 32826 * @param {string|object} msg - Logging message or object 32827 */ 32828 ConsoleLogger.prototype.error = function () { 32829 var msg = []; 32830 for (var _i = 0; _i < arguments.length; _i++) { 32831 msg[_i] = arguments[_i]; 32832 } 32833 this._log.apply(this, __spread(['ERROR'], msg)); 32834 }; 32835 /** 32836 * Write DEBUG log 32837 * @method 32838 * @memeberof Logger 32839 * @param {string|object} msg - Logging message or object 32840 */ 32841 ConsoleLogger.prototype.debug = function () { 32842 var msg = []; 32843 for (var _i = 0; _i < arguments.length; _i++) { 32844 msg[_i] = arguments[_i]; 32845 } 32846 this._log.apply(this, __spread(['DEBUG'], msg)); 32847 }; 32848 /** 32849 * Write VERBOSE log 32850 * @method 32851 * @memeberof Logger 32852 * @param {string|object} msg - Logging message or object 32853 */ 32854 ConsoleLogger.prototype.verbose = function () { 32855 var msg = []; 32856 for (var _i = 0; _i < arguments.length; _i++) { 32857 msg[_i] = arguments[_i]; 32858 } 32859 this._log.apply(this, __spread(['VERBOSE'], msg)); 32860 }; 32861 ConsoleLogger.LOG_LEVEL = null; 32862 return ConsoleLogger; 32863}()); 32864 32865//# sourceMappingURL=ConsoleLogger.js.map 32866 32867/***/ }), 32868
vendor: 1,431 bytes, lines 32869-32897
32869/***/ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js": 32870/*!****************************************************************!*\ 32871 !*** ./node_modules/@aws-amplify/core/lib-esm/Logger/index.js ***! 32872 \****************************************************************/ 32873/*! exports provided: ConsoleLogger */ 32874/***/ (function(module, __webpack_exports__, __webpack_require__) { 32875 32876"use strict"; 32877__webpack_require__.r(__webpack_exports__); 32878/* harmony import */ var _ConsoleLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConsoleLogger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js"); 32879/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConsoleLogger", function() { return _ConsoleLogger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]; }); 32880 32881/* 32882 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 32883 * 32884 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 32885 * the License. A copy of the License is located at 32886 * 32887 * http://aws.amazon.com/apache2.0/ 32888 * 32889 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 32890 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 32891 * and limitations under the License. 32892 */ 32893 32894//# sourceMappingURL=index.js.map 32895 32896/***/ }), 32897
vendor: 7,828 bytes, lines 32898-33049
32898/***/ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js": 32899/*!*****************************************************************************!*\ 32900 !*** ./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js ***! 32901 \*****************************************************************************/ 32902/*! exports provided: FacebookOAuth, default */ 32903/***/ (function(module, __webpack_exports__, __webpack_require__) { 32904 32905"use strict"; 32906__webpack_require__.r(__webpack_exports__); 32907/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FacebookOAuth", function() { return FacebookOAuth; }); 32908/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 32909/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 32910/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Util */ "./node_modules/@aws-amplify/core/lib-esm/Util/index.js"); 32911var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 32912 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 32913 return new (P || (P = Promise))(function (resolve, reject) { 32914 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 32915 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 32916 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 32917 step((generator = generator.apply(thisArg, _arguments || [])).next()); 32918 }); 32919}; 32920var __generator = (undefined && undefined.__generator) || function (thisArg, body) { 32921 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 32922 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 32923 function verb(n) { return function (v) { return step([n, v]); }; } 32924 function step(op) { 32925 if (f) throw new TypeError("Generator is already executing."); 32926 while (_) try { 32927 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 32928 if (y = 0, t) op = [op[0] & 2, t.value]; 32929 switch (op[0]) { 32930 case 0: case 1: t = op; break; 32931 case 4: _.label++; return { value: op[1], done: false }; 32932 case 5: _.label++; y = op[1]; op = [0]; continue; 32933 case 7: op = _.ops.pop(); _.trys.pop(); continue; 32934 default: 32935 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 32936 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 32937 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 32938 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 32939 if (t[2]) _.ops.pop(); 32940 _.trys.pop(); continue; 32941 } 32942 op = body.call(thisArg, _); 32943 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 32944 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 32945 } 32946}; 32947/* 32948 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 32949 * 32950 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 32951 * the License. A copy of the License is located at 32952 * 32953 * http://aws.amazon.com/apache2.0/ 32954 * 32955 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 32956 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 32957 * and limitations under the License. 32958 */ 32959 32960 32961 32962var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('CognitoCredentials'); 32963var waitForInit = new Promise(function (res, rej) { 32964 if (!Object(_JS__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isBrowser) { 32965 logger.debug('not in the browser, directly resolved'); 32966 return res(); 32967 } 32968 var fb = window['FB']; 32969 if (fb) { 32970 logger.debug('FB SDK already loaded'); 32971 return res(); 32972 } 32973 else { 32974 setTimeout(function () { 32975 return res(); 32976 }, 2000); 32977 } 32978}); 32979var FacebookOAuth = /** @class */ (function () { 32980 function FacebookOAuth() { 32981 this.initialized = false; 32982 this.refreshFacebookToken = this.refreshFacebookToken.bind(this); 32983 this._refreshFacebookTokenImpl = this._refreshFacebookTokenImpl.bind(this); 32984 } 32985 FacebookOAuth.prototype.refreshFacebookToken = function () { 32986 return __awaiter(this, void 0, void 0, function () { 32987 return __generator(this, function (_a) { 32988 switch (_a.label) { 32989 case 0: 32990 if (!!this.initialized) return [3 /*break*/, 2]; 32991 logger.debug('need to wait for the Facebook SDK loaded'); 32992 return [4 /*yield*/, waitForInit]; 32993 case 1: 32994 _a.sent(); 32995 this.initialized = true; 32996 logger.debug('finish waiting'); 32997 _a.label = 2; 32998 case 2: return [2 /*return*/, this._refreshFacebookTokenImpl()]; 32999 } 33000 }); 33001 }); 33002 }; 33003 FacebookOAuth.prototype._refreshFacebookTokenImpl = function () { 33004 var fb = null; 33005 if (Object(_JS__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isBrowser) 33006 fb = window['FB']; 33007 if (!fb) { 33008 var errorMessage = 'no fb sdk available'; 33009 logger.debug(errorMessage); 33010 return Promise.reject(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"](errorMessage)); 33011 } 33012 return new Promise(function (res, rej) { 33013 fb.getLoginStatus(function (fbResponse) { 33014 if (!fbResponse || !fbResponse.authResponse) { 33015 var errorMessage = 'no response from facebook when refreshing the jwt token'; 33016 logger.debug(errorMessage); 33017 // There is no definitive indication for a network error in 33018 // fbResponse, so we are treating it as an invalid token. 33019 rej(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"](errorMessage)); 33020 } 33021 else { 33022 var response = fbResponse.authResponse; 33023 var accessToken = response.accessToken, expiresIn = response.expiresIn; 33024 var date = new Date(); 33025 var expires_at = expiresIn * 1000 + date.getTime(); 33026 if (!accessToken) { 33027 var errorMessage = 'the jwtToken is undefined'; 33028 logger.debug(errorMessage); 33029 rej(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"](errorMessage)); 33030 } 33031 res({ 33032 token: accessToken, 33033 expires_at: expires_at, 33034 }); 33035 } 33036 }, { scope: 'public_profile,email' }); 33037 }); 33038 }; 33039 return FacebookOAuth; 33040}()); 33041 33042/** 33043 * @deprecated use named import 33044 */ 33045/* harmony default export */ __webpack_exports__["default"] = (FacebookOAuth); 33046//# sourceMappingURL=FacebookOAuth.js.map 33047 33048/***/ }), 33049
vendor: 8,295 bytes, lines 33050-33210
33050/***/ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js": 33051/*!***************************************************************************!*\ 33052 !*** ./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js ***! 33053 \***************************************************************************/ 33054/*! exports provided: GoogleOAuth, default */ 33055/***/ (function(module, __webpack_exports__, __webpack_require__) { 33056 33057"use strict"; 33058__webpack_require__.r(__webpack_exports__); 33059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GoogleOAuth", function() { return GoogleOAuth; }); 33060/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 33061/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 33062/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Util */ "./node_modules/@aws-amplify/core/lib-esm/Util/index.js"); 33063var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 33064 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 33065 return new (P || (P = Promise))(function (resolve, reject) { 33066 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 33067 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 33068 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 33069 step((generator = generator.apply(thisArg, _arguments || [])).next()); 33070 }); 33071}; 33072var __generator = (undefined && undefined.__generator) || function (thisArg, body) { 33073 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 33074 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 33075 function verb(n) { return function (v) { return step([n, v]); }; } 33076 function step(op) { 33077 if (f) throw new TypeError("Generator is already executing."); 33078 while (_) try { 33079 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 33080 if (y = 0, t) op = [op[0] & 2, t.value]; 33081 switch (op[0]) { 33082 case 0: case 1: t = op; break; 33083 case 4: _.label++; return { value: op[1], done: false }; 33084 case 5: _.label++; y = op[1]; op = [0]; continue; 33085 case 7: op = _.ops.pop(); _.trys.pop(); continue; 33086 default: 33087 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 33088 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 33089 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 33090 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 33091 if (t[2]) _.ops.pop(); 33092 _.trys.pop(); continue; 33093 } 33094 op = body.call(thisArg, _); 33095 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 33096 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 33097 } 33098}; 33099/* 33100 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33101 * 33102 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33103 * the License. A copy of the License is located at 33104 * 33105 * http://aws.amazon.com/apache2.0/ 33106 * 33107 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33108 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33109 * and limitations under the License. 33110 */ 33111 33112 33113 33114var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('CognitoCredentials'); 33115var waitForInit = new Promise(function (res, rej) { 33116 if (!Object(_JS__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isBrowser) { 33117 logger.debug('not in the browser, directly resolved'); 33118 return res(); 33119 } 33120 var ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null; 33121 if (ga) { 33122 logger.debug('google api already loaded'); 33123 return res(); 33124 } 33125 else { 33126 setTimeout(function () { 33127 return res(); 33128 }, 2000); 33129 } 33130}); 33131var GoogleOAuth = /** @class */ (function () { 33132 function GoogleOAuth() { 33133 this.initialized = false; 33134 this.refreshGoogleToken = this.refreshGoogleToken.bind(this); 33135 this._refreshGoogleTokenImpl = this._refreshGoogleTokenImpl.bind(this); 33136 } 33137 GoogleOAuth.prototype.refreshGoogleToken = function () { 33138 return __awaiter(this, void 0, void 0, function () { 33139 return __generator(this, function (_a) { 33140 switch (_a.label) { 33141 case 0: 33142 if (!!this.initialized) return [3 /*break*/, 2]; 33143 logger.debug('need to wait for the Google SDK loaded'); 33144 return [4 /*yield*/, waitForInit]; 33145 case 1: 33146 _a.sent(); 33147 this.initialized = true; 33148 logger.debug('finish waiting'); 33149 _a.label = 2; 33150 case 2: return [2 /*return*/, this._refreshGoogleTokenImpl()]; 33151 } 33152 }); 33153 }); 33154 }; 33155 GoogleOAuth.prototype._refreshGoogleTokenImpl = function () { 33156 var ga = null; 33157 if (Object(_JS__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isBrowser) 33158 ga = window['gapi'] && window['gapi'].auth2 ? window['gapi'].auth2 : null; 33159 if (!ga) { 33160 logger.debug('no gapi auth2 available'); 33161 return Promise.reject('no gapi auth2 available'); 33162 } 33163 return new Promise(function (res, rej) { 33164 ga.getAuthInstance() 33165 .then(function (googleAuth) { 33166 if (!googleAuth) { 33167 logger.debug('google Auth undefined'); 33168 rej(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"]('google Auth undefined')); 33169 } 33170 var googleUser = googleAuth.currentUser.get(); 33171 // refresh the token 33172 if (googleUser.isSignedIn()) { 33173 logger.debug('refreshing the google access token'); 33174 googleUser 33175 .reloadAuthResponse() 33176 .then(function (authResponse) { 33177 var id_token = authResponse.id_token, expires_at = authResponse.expires_at; 33178 res({ token: id_token, expires_at: expires_at }); 33179 }) 33180 .catch(function (err) { 33181 if (err && err.error === 'network_error') { 33182 // Not using NonRetryableError so handler will be retried 33183 rej('Network error reloading google auth response'); 33184 } 33185 else { 33186 rej(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"]('Failed to reload google auth response')); 33187 } 33188 }); 33189 } 33190 else { 33191 rej(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"]('User is not signed in with Google')); 33192 } 33193 }) 33194 .catch(function (err) { 33195 logger.debug('Failed to refresh google token', err); 33196 rej(new _Util__WEBPACK_IMPORTED_MODULE_2__["NonRetryableError"]('Failed to refresh google token')); 33197 }); 33198 }); 33199 }; 33200 return GoogleOAuth; 33201}()); 33202 33203/** 33204 * @deprecated use named import 33205 */ 33206/* harmony default export */ __webpack_exports__["default"] = (GoogleOAuth); 33207//# sourceMappingURL=GoogleOAuth.js.map 33208 33209/***/ }), 33210
vendor: 1,901 bytes, lines 33211-33243
33211/***/ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js": 33212/*!*********************************************************************!*\ 33213 !*** ./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js ***! 33214 \*********************************************************************/ 33215/*! exports provided: GoogleOAuth, FacebookOAuth */ 33216/***/ (function(module, __webpack_exports__, __webpack_require__) { 33217 33218"use strict"; 33219__webpack_require__.r(__webpack_exports__); 33220/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GoogleOAuth", function() { return GoogleOAuth; }); 33221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FacebookOAuth", function() { return FacebookOAuth; }); 33222/* harmony import */ var _GoogleOAuth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoogleOAuth */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/GoogleOAuth.js"); 33223/* harmony import */ var _FacebookOAuth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FacebookOAuth */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/FacebookOAuth.js"); 33224/* 33225 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33226 * 33227 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33228 * the License. A copy of the License is located at 33229 * 33230 * http://aws.amazon.com/apache2.0/ 33231 * 33232 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33233 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33234 * and limitations under the License. 33235 */ 33236 33237 33238var GoogleOAuth = new _GoogleOAuth__WEBPACK_IMPORTED_MODULE_0__["GoogleOAuth"](); 33239var FacebookOAuth = new _FacebookOAuth__WEBPACK_IMPORTED_MODULE_1__["FacebookOAuth"](); 33240//# sourceMappingURL=index.js.map 33241 33242/***/ }), 33243
vendor: 3,080 bytes, lines 33244-33318
33244/***/ "./node_modules/@aws-amplify/core/lib-esm/Parser.js": 33245/*!**********************************************************!*\ 33246 !*** ./node_modules/@aws-amplify/core/lib-esm/Parser.js ***! 33247 \**********************************************************/ 33248/*! exports provided: parseMobileHubConfig, Parser, default */ 33249/***/ (function(module, __webpack_exports__, __webpack_require__) { 33250 33251"use strict"; 33252__webpack_require__.r(__webpack_exports__); 33253/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseMobileHubConfig", function() { return parseMobileHubConfig; }); 33254/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Parser", function() { return Parser; }); 33255/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 33256 33257var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Parser'); 33258var parseMobileHubConfig = function (config) { 33259 var amplifyConfig = {}; 33260 // Analytics 33261 if (config['aws_mobile_analytics_app_id']) { 33262 var Analytics = { 33263 AWSPinpoint: { 33264 appId: config['aws_mobile_analytics_app_id'], 33265 region: config['aws_mobile_analytics_app_region'], 33266 }, 33267 }; 33268 amplifyConfig.Analytics = Analytics; 33269 } 33270 // Auth 33271 if (config['aws_cognito_identity_pool_id'] || config['aws_user_pools_id']) { 33272 amplifyConfig.Auth = { 33273 userPoolId: config['aws_user_pools_id'], 33274 userPoolWebClientId: config['aws_user_pools_web_client_id'], 33275 region: config['aws_cognito_region'], 33276 identityPoolId: config['aws_cognito_identity_pool_id'], 33277 identityPoolRegion: config['aws_cognito_region'], 33278 mandatorySignIn: config['aws_mandatory_sign_in'] === 'enable', 33279 }; 33280 } 33281 // Storage 33282 var storageConfig; 33283 if (config['aws_user_files_s3_bucket']) { 33284 storageConfig = { 33285 AWSS3: { 33286 bucket: config['aws_user_files_s3_bucket'], 33287 region: config['aws_user_files_s3_bucket_region'], 33288 dangerouslyConnectToHttpEndpointForTesting: config['aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing'], 33289 }, 33290 }; 33291 } 33292 else { 33293 storageConfig = config ? config.Storage || config : {}; 33294 } 33295 amplifyConfig.Analytics = Object.assign({}, amplifyConfig.Analytics, config.Analytics); 33296 amplifyConfig.Auth = Object.assign({}, amplifyConfig.Auth, config.Auth); 33297 amplifyConfig.Storage = Object.assign({}, storageConfig); 33298 logger.debug('parse config', config, 'to amplifyconfig', amplifyConfig); 33299 return amplifyConfig; 33300}; 33301/** 33302 * @deprecated use per-function export 33303 */ 33304var Parser = /** @class */ (function () { 33305 function Parser() { 33306 } 33307 Parser.parseMobilehubConfig = parseMobileHubConfig; 33308 return Parser; 33309}()); 33310 33311/** 33312 * @deprecated use per-function export 33313 */ 33314/* harmony default export */ __webpack_exports__["default"] = (Parser); 33315//# sourceMappingURL=Parser.js.map 33316 33317/***/ }), 33318
vendor: 2,424 bytes, lines 33319-33375
33319/***/ "./node_modules/@aws-amplify/core/lib-esm/Platform/index.js": 33320/*!******************************************************************!*\ 33321 !*** ./node_modules/@aws-amplify/core/lib-esm/Platform/index.js ***! 33322 \******************************************************************/ 33323/*! exports provided: Platform, getAmplifyUserAgent, default */ 33324/***/ (function(module, __webpack_exports__, __webpack_require__) { 33325 33326"use strict"; 33327__webpack_require__.r(__webpack_exports__); 33328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Platform", function() { return Platform; }); 33329/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAmplifyUserAgent", function() { return getAmplifyUserAgent; }); 33330/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./version */ "./node_modules/@aws-amplify/core/lib-esm/Platform/version.js"); 33331/* 33332 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33333 * 33334 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33335 * the License. A copy of the License is located at 33336 * 33337 * http://aws.amazon.com/apache2.0/ 33338 * 33339 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33340 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33341 * and limitations under the License. 33342 */ 33343 33344var BASE_USER_AGENT = "aws-amplify/" + _version__WEBPACK_IMPORTED_MODULE_0__["version"]; 33345var Platform = { 33346 userAgent: BASE_USER_AGENT + " js", 33347 product: '', 33348 navigator: null, 33349 isReactNative: false, 33350}; 33351if (typeof navigator !== 'undefined' && navigator.product) { 33352 Platform.product = navigator.product || ''; 33353 Platform.navigator = navigator || null; 33354 switch (navigator.product) { 33355 case 'ReactNative': 33356 Platform.userAgent = BASE_USER_AGENT + " react-native"; 33357 Platform.isReactNative = true; 33358 break; 33359 default: 33360 Platform.userAgent = BASE_USER_AGENT + " js"; 33361 Platform.isReactNative = false; 33362 break; 33363 } 33364} 33365var getAmplifyUserAgent = function () { 33366 return Platform.userAgent; 33367}; 33368/** 33369 * @deprecated use named import 33370 */ 33371/* harmony default export */ __webpack_exports__["default"] = (Platform); 33372//# sourceMappingURL=index.js.map 33373 33374/***/ }), 33375
vendor: 667 bytes, lines 33376-33391
33376/***/ "./node_modules/@aws-amplify/core/lib-esm/Platform/version.js": 33377/*!********************************************************************!*\ 33378 !*** ./node_modules/@aws-amplify/core/lib-esm/Platform/version.js ***! 33379 \********************************************************************/ 33380/*! exports provided: version */ 33381/***/ (function(module, __webpack_exports__, __webpack_require__) { 33382 33383"use strict"; 33384__webpack_require__.r(__webpack_exports__); 33385/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); 33386// generated by genversion 33387var version = '3.4.7'; 33388//# sourceMappingURL=version.js.map 33389 33390/***/ }), 33391
vendor: 2,159 bytes, lines 33392-33431
33392/***/ "./node_modules/@aws-amplify/core/lib-esm/RNComponents/index.js": 33393/*!**********************************************************************!*\ 33394 !*** ./node_modules/@aws-amplify/core/lib-esm/RNComponents/index.js ***! 33395 \**********************************************************************/ 33396/*! exports provided: Linking, AppState, AsyncStorage */ 33397/***/ (function(module, __webpack_exports__, __webpack_require__) { 33398 33399"use strict"; 33400__webpack_require__.r(__webpack_exports__); 33401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Linking", function() { return Linking; }); 33402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppState", function() { return AppState; }); 33403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncStorage", function() { return AsyncStorage; }); 33404/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 33405/* harmony import */ var _StorageHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../StorageHelper */ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js"); 33406/* 33407 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33408 * 33409 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33410 * the License. A copy of the License is located at 33411 * 33412 * http://aws.amazon.com/apache2.0/ 33413 * 33414 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33415 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33416 * and limitations under the License. 33417 */ 33418 33419 33420var Linking = {}; 33421var AppState = { 33422 addEventListener: function (action, handler) { return undefined; }, 33423}; 33424// if not in react native, just use local storage 33425var AsyncStorage = Object(_JS__WEBPACK_IMPORTED_MODULE_0__["browserOrNode"])().isBrowser 33426 ? new _StorageHelper__WEBPACK_IMPORTED_MODULE_1__["StorageHelper"]().getStorage() 33427 : undefined; 33428//# sourceMappingURL=index.js.map 33429 33430/***/ }), 33431
vendor: 9,856 bytes, lines 33432-33644
33432/***/ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js": 33433/*!*******************************************************************************!*\ 33434 !*** ./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js ***! 33435 \*******************************************************************************/ 33436/*! exports provided: ServiceWorkerClass, default */ 33437/***/ (function(module, __webpack_exports__, __webpack_require__) { 33438 33439"use strict"; 33440__webpack_require__.r(__webpack_exports__); 33441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServiceWorkerClass", function() { return ServiceWorkerClass; }); 33442/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 33443/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 33444/* harmony import */ var _Amplify__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); 33445/** 33446 * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33447 * 33448 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33449 * the License. A copy of the License is located at 33450 * 33451 * http://aws.amazon.com/apache2.0/ 33452 * 33453 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33454 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33455 * and limitations under the License. 33456 */ 33457 33458 33459 33460/** 33461 * Provides a means to registering a service worker in the browser 33462 * and communicating with it via postMessage events. 33463 * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/ 33464 * 33465 * postMessage events are currently not supported in all browsers. See: 33466 * https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API 33467 * 33468 * At the minmum this class will register the service worker and listen 33469 * and attempt to dispatch messages on state change and record analytics 33470 * events based on the service worker lifecycle. 33471 */ 33472var ServiceWorkerClass = /** @class */ (function () { 33473 function ServiceWorkerClass() { 33474 // The AWS Amplify logger 33475 this._logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('ServiceWorker'); 33476 } 33477 Object.defineProperty(ServiceWorkerClass.prototype, "serviceWorker", { 33478 /** 33479 * Get the currently active service worker 33480 */ 33481 get: function () { 33482 return this._serviceWorker; 33483 }, 33484 enumerable: true, 33485 configurable: true 33486 }); 33487 /** 33488 * Register the service-worker.js file in the browser 33489 * Make sure the service-worker.js is part of the build 33490 * for example with Angular, modify the angular-cli.json file 33491 * and add to "assets" array "service-worker.js" 33492 * @param {string} - (optional) Service worker file. Defaults to "/service-worker.js" 33493 * @param {string} - (optional) The service worker scope. Defaults to "/" 33494 * - API Doc: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/register 33495 * @returns {Promise} 33496 * - resolve(ServiceWorkerRegistration) 33497 * - reject(Error) 33498 **/ 33499 ServiceWorkerClass.prototype.register = function (filePath, scope) { 33500 var _this = this; 33501 if (filePath === void 0) { filePath = '/service-worker.js'; } 33502 if (scope === void 0) { scope = '/'; } 33503 this._logger.debug("registering " + filePath); 33504 this._logger.debug("registering service worker with scope " + scope); 33505 return new Promise(function (resolve, reject) { 33506 if (navigator && 'serviceWorker' in navigator) { 33507 navigator.serviceWorker 33508 .register(filePath, { 33509 scope: scope, 33510 }) 33511 .then(function (registration) { 33512 if (registration.installing) { 33513 _this._serviceWorker = registration.installing; 33514 } 33515 else if (registration.waiting) { 33516 _this._serviceWorker = registration.waiting; 33517 } 33518 else if (registration.active) { 33519 _this._serviceWorker = registration.active; 33520 } 33521 _this._registration = registration; 33522 _this._setupListeners(); 33523 _this._logger.debug("Service Worker Registration Success: " + registration); 33524 return resolve(registration); 33525 }) 33526 .catch(function (error) { 33527 _this._logger.debug("Service Worker Registration Failed " + error); 33528 return reject(error); 33529 }); 33530 } 33531 else { 33532 return reject(new Error('Service Worker not available')); 33533 } 33534 }); 33535 }; 33536 /** 33537 * Enable web push notifications. If not subscribed, a new subscription will 33538 * be created and registered. 33539 * Test Push Server: https://web-push-codelab.glitch.me/ 33540 * Push Server Libraries: https://github.com/web-push-libs/ 33541 * API Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/ 33542 * @param publicKey 33543 * @returns {Promise} 33544 * - resolve(PushSubscription) 33545 * - reject(Error) 33546 */ 33547 ServiceWorkerClass.prototype.enablePush = function (publicKey) { 33548 var _this = this; 33549 if (!this._registration) 33550 throw new Error('Service Worker not registered'); 33551 this._publicKey = publicKey; 33552 return new Promise(function (resolve, reject) { 33553 if (Object(_JS__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isBrowser) { 33554 _this._registration.pushManager.getSubscription().then(function (subscription) { 33555 if (subscription) { 33556 _this._subscription = subscription; 33557 _this._logger.debug("User is subscribed to push: " + JSON.stringify(subscription)); 33558 resolve(subscription); 33559 } 33560 else { 33561 _this._logger.debug("User is NOT subscribed to push"); 33562 return _this._registration.pushManager 33563 .subscribe({ 33564 userVisibleOnly: true, 33565 applicationServerKey: _this._urlB64ToUint8Array(publicKey), 33566 }) 33567 .then(function (subscription) { 33568 _this._subscription = subscription; 33569 _this._logger.debug("User subscribed: " + JSON.stringify(subscription)); 33570 resolve(subscription); 33571 }) 33572 .catch(function (error) { 33573 _this._logger.error(error); 33574 }); 33575 } 33576 }); 33577 } 33578 else { 33579 return reject(new Error('Service Worker not available')); 33580 } 33581 }); 33582 }; 33583 /** 33584 * Convert a base64 encoded string to a Uint8 array for the push server key 33585 * @param base64String 33586 */ 33587 ServiceWorkerClass.prototype._urlB64ToUint8Array = function (base64String) { 33588 var padding = '='.repeat((4 - (base64String.length % 4)) % 4); 33589 var base64 = (base64String + padding) 33590 .replace(/\-/g, '+') 33591 .replace(/_/g, '/'); 33592 var rawData = window.atob(base64); 33593 var outputArray = new Uint8Array(rawData.length); 33594 for (var i = 0; i < rawData.length; ++i) { 33595 outputArray[i] = rawData.charCodeAt(i); 33596 } 33597 return outputArray; 33598 }; 33599 /** 33600 * Send a message to the service worker. The service worker needs 33601 * to implement `self.addEventListener('message') to handle the 33602 * message. This ***currently*** does not work in Safari or IE. 33603 * @param {object | string} - An arbitrary JSON object or string message to send to the service worker 33604 * - see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable 33605 * @returns {Promise} 33606 **/ 33607 ServiceWorkerClass.prototype.send = function (message) { 33608 if (this._serviceWorker) { 33609 this._serviceWorker.postMessage(typeof message === 'object' ? JSON.stringify(message) : message); 33610 } 33611 }; 33612 /** 33613 * Listen for service worker state change and message events 33614 * https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state 33615 **/ 33616 ServiceWorkerClass.prototype._setupListeners = function () { 33617 var _this = this; 33618 this._serviceWorker.addEventListener('statechange', function (event) { 33619 var currentState = _this._serviceWorker.state; 33620 _this._logger.debug("ServiceWorker statechange: " + currentState); 33621 if (_Amplify__WEBPACK_IMPORTED_MODULE_2__["Amplify"].Analytics && typeof _Amplify__WEBPACK_IMPORTED_MODULE_2__["Amplify"].Analytics.record === 'function') { 33622 _Amplify__WEBPACK_IMPORTED_MODULE_2__["Amplify"].Analytics.record({ 33623 name: 'ServiceWorker', 33624 attributes: { 33625 state: currentState, 33626 }, 33627 }); 33628 } 33629 }); 33630 this._serviceWorker.addEventListener('message', function (event) { 33631 _this._logger.debug("ServiceWorker message event: " + event); 33632 }); 33633 }; 33634 return ServiceWorkerClass; 33635}()); 33636 33637/** 33638 * @deprecated use named import 33639 */ 33640/* harmony default export */ __webpack_exports__["default"] = (ServiceWorkerClass); 33641//# sourceMappingURL=ServiceWorker.js.map 33642 33643/***/ }), 33644
vendor: 1,467 bytes, lines 33645-33673
33645/***/ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/index.js": 33646/*!***********************************************************************!*\ 33647 !*** ./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/index.js ***! 33648 \***********************************************************************/ 33649/*! exports provided: ServiceWorker */ 33650/***/ (function(module, __webpack_exports__, __webpack_require__) { 33651 33652"use strict"; 33653__webpack_require__.r(__webpack_exports__); 33654/* harmony import */ var _ServiceWorker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ServiceWorker */ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/ServiceWorker.js"); 33655/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServiceWorker", function() { return _ServiceWorker__WEBPACK_IMPORTED_MODULE_0__["ServiceWorkerClass"]; }); 33656 33657/** 33658 * Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33659 * 33660 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33661 * the License. A copy of the License is located at 33662 * 33663 * http://aws.amazon.com/apache2.0/ 33664 * 33665 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33666 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33667 * and limitations under the License. 33668 */ 33669 33670//# sourceMappingURL=index.js.map 33671 33672/***/ }), 33673
vendor: 14,973 bytes, lines 33674-34045
33674/***/ "./node_modules/@aws-amplify/core/lib-esm/Signer.js": 33675/*!**********************************************************!*\ 33676 !*** ./node_modules/@aws-amplify/core/lib-esm/Signer.js ***! 33677 \**********************************************************/ 33678/*! exports provided: Signer, default */ 33679/***/ (function(module, __webpack_exports__, __webpack_require__) { 33680 33681"use strict"; 33682__webpack_require__.r(__webpack_exports__); 33683/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Signer", function() { return Signer; }); 33684/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 33685/* harmony import */ var _aws_crypto_sha256_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-crypto/sha256-js */ "./node_modules/@aws-crypto/sha256-js/build/index.js"); 33686/* harmony import */ var _aws_crypto_sha256_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_crypto_sha256_js__WEBPACK_IMPORTED_MODULE_1__); 33687/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ "./node_modules/@aws-sdk/util-hex-encoding/dist/cjs/index.js"); 33688/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__); 33689/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! url */ "./node_modules/url/url.js"); 33690/* harmony import */ var url__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(url__WEBPACK_IMPORTED_MODULE_3__); 33691/* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Util */ "./node_modules/@aws-amplify/core/lib-esm/Util/index.js"); 33692/* 33693 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 33694 * 33695 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 33696 * the License. A copy of the License is located at 33697 * 33698 * http://aws.amazon.com/apache2.0/ 33699 * 33700 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 33701 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 33702 * and limitations under the License. 33703 */ 33704var __assign = (undefined && undefined.__assign) || function () { 33705 __assign = Object.assign || function(t) { 33706 for (var s, i = 1, n = arguments.length; i < n; i++) { 33707 s = arguments[i]; 33708 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 33709 t[p] = s[p]; 33710 } 33711 return t; 33712 }; 33713 return __assign.apply(this, arguments); 33714}; 33715var __rest = (undefined && undefined.__rest) || function (s, e) { 33716 var t = {}; 33717 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) 33718 t[p] = s[p]; 33719 if (s != null && typeof Object.getOwnPropertySymbols === "function") 33720 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { 33721 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) 33722 t[p[i]] = s[p[i]]; 33723 } 33724 return t; 33725}; 33726 33727 33728 33729 33730 33731var logger = new _Logger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Signer'); 33732var DEFAULT_ALGORITHM = 'AWS4-HMAC-SHA256'; 33733var IOT_SERVICE_NAME = 'iotdevicegateway'; 33734var encrypt = function (key, src) { 33735 var hash = new _aws_crypto_sha256_js__WEBPACK_IMPORTED_MODULE_1__["Sha256"](key); 33736 hash.update(src); 33737 return hash.digestSync(); 33738}; 33739var hash = function (src) { 33740 var arg = src || ''; 33741 var hash = new _aws_crypto_sha256_js__WEBPACK_IMPORTED_MODULE_1__["Sha256"](); 33742 hash.update(arg); 33743 return Object(_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__["toHex"])(hash.digestSync()); 33744}; 33745/** 33746 * @private 33747 * RFC 3986 compliant version of encodeURIComponent 33748 */ 33749var escape_RFC3986 = function (component) { 33750 return component.replace(/[!'()*]/g, function (c) { 33751 return ('%' + 33752 c 33753 .charCodeAt(0) 33754 .toString(16) 33755 .toUpperCase()); 33756 }); 33757}; 33758/** 33759 * @private 33760 * Create canonical query string 33761 * 33762 */ 33763var canonical_query = function (query) { 33764 if (!query || query.length === 0) { 33765 return ''; 33766 } 33767 return query 33768 .split('&') 33769 .map(function (e) { 33770 var key_val = e.split('='); 33771 if (key_val.length === 1) { 33772 return e; 33773 } 33774 else { 33775 var reencoded_val = escape_RFC3986(key_val[1]); 33776 return key_val[0] + '=' + reencoded_val; 33777 } 33778 }) 33779 .sort(function (a, b) { 33780 var key_a = a.split('=')[0]; 33781 var key_b = b.split('=')[0]; 33782 if (key_a === key_b) { 33783 return a < b ? -1 : 1; 33784 } 33785 else { 33786 return key_a < key_b ? -1 : 1; 33787 } 33788 }) 33789 .join('&'); 33790}; 33791/** 33792* @private 33793* Create canonical headers 33794* 33795<pre> 33796CanonicalHeaders = 33797 CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN 33798CanonicalHeadersEntry = 33799 Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\n' 33800</pre> 33801*/ 33802var canonical_headers = function (headers) { 33803 if (!headers || Object.keys(headers).length === 0) { 33804 return ''; 33805 } 33806 return (Object.keys(headers) 33807 .map(function (key) { 33808 return { 33809 key: key.toLowerCase(), 33810 value: headers[key] ? headers[key].trim().replace(/\s+/g, ' ') : '', 33811 }; 33812 }) 33813 .sort(function (a, b) { 33814 return a.key < b.key ? -1 : 1; 33815 }) 33816 .map(function (item) { 33817 return item.key + ':' + item.value; 33818 }) 33819 .join('\n') + '\n'); 33820}; 33821/** 33822 * List of header keys included in the canonical headers. 33823 * @access private 33824 */ 33825var signed_headers = function (headers) { 33826 return Object.keys(headers) 33827 .map(function (key) { 33828 return key.toLowerCase(); 33829 }) 33830 .sort() 33831 .join(';'); 33832}; 33833/** 33834* @private 33835* Create canonical request 33836* Refer to 33837* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request} 33838* 33839<pre> 33840CanonicalRequest = 33841 HTTPRequestMethod + '\n' + 33842 CanonicalURI + '\n' + 33843 CanonicalQueryString + '\n' + 33844 CanonicalHeaders + '\n' + 33845 SignedHeaders + '\n' + 33846 HexEncode(Hash(RequestPayload)) 33847</pre> 33848*/ 33849var canonical_request = function (request) { 33850 var url_info = Object(url__WEBPACK_IMPORTED_MODULE_3__["parse"])(request.url); 33851 return [ 33852 request.method || '/', 33853 encodeURIComponent(url_info.pathname).replace(/%2F/gi, '/'), 33854 canonical_query(url_info.query), 33855 canonical_headers(request.headers), 33856 signed_headers(request.headers), 33857 hash(request.data), 33858 ].join('\n'); 33859}; 33860var parse_service_info = function (request) { 33861 var url_info = Object(url__WEBPACK_IMPORTED_MODULE_3__["parse"])(request.url), host = url_info.host; 33862 var matched = host.match(/([^\.]+)\.(?:([^\.]*)\.)?amazonaws\.com$/); 33863 var parsed = (matched || []).slice(1, 3); 33864 if (parsed[1] === 'es') { 33865 // Elastic Search 33866 parsed = parsed.reverse(); 33867 } 33868 return { 33869 service: request.service || parsed[0], 33870 region: request.region || parsed[1], 33871 }; 33872}; 33873var credential_scope = function (d_str, region, service) { 33874 return [d_str, region, service, 'aws4_request'].join('/'); 33875}; 33876/** 33877* @private 33878* Create a string to sign 33879* Refer to 33880* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign} 33881* 33882<pre> 33883StringToSign = 33884 Algorithm + \n + 33885 RequestDateTime + \n + 33886 CredentialScope + \n + 33887 HashedCanonicalRequest 33888</pre> 33889*/ 33890var string_to_sign = function (algorithm, canonical_request, dt_str, scope) { 33891 return [algorithm, dt_str, scope, hash(canonical_request)].join('\n'); 33892}; 33893/** 33894* @private 33895* Create signing key 33896* Refer to 33897* {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature} 33898* 33899<pre> 33900kSecret = your secret access key 33901kDate = HMAC("AWS4" + kSecret, Date) 33902kRegion = HMAC(kDate, Region) 33903kService = HMAC(kRegion, Service) 33904kSigning = HMAC(kService, "aws4_request") 33905</pre> 33906*/ 33907var get_signing_key = function (secret_key, d_str, service_info) { 33908 logger.debug(service_info); 33909 var k = 'AWS4' + secret_key, k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request'); 33910 return k_signing; 33911}; 33912var get_signature = function (signing_key, str_to_sign) { 33913 return Object(_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__["toHex"])(encrypt(signing_key, str_to_sign)); 33914}; 33915/** 33916 * @private 33917 * Create authorization header 33918 * Refer to 33919 * {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information} 33920 */ 33921var get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) { 33922 return [ 33923 algorithm + ' ' + 'Credential=' + access_key + '/' + scope, 33924 'SignedHeaders=' + signed_headers, 33925 'Signature=' + signature, 33926 ].join(', '); 33927}; 33928var Signer = /** @class */ (function () { 33929 function Signer() { 33930 } 33931 /** 33932 * Sign a HTTP request, add 'Authorization' header to request param 33933 * @method sign 33934 * @memberof Signer 33935 * @static 33936 * 33937 * @param {object} request - HTTP request object 33938 <pre> 33939 request: { 33940 method: GET | POST | PUT ... 33941 url: ..., 33942 headers: { 33943 header1: ... 33944 }, 33945 data: data 33946 } 33947 </pre> 33948 * @param {object} access_info - AWS access credential info 33949 <pre> 33950 access_info: { 33951 access_key: ..., 33952 secret_key: ..., 33953 session_token: ... 33954 } 33955 </pre> 33956 * @param {object} [service_info] - AWS service type and region, optional, 33957 * if not provided then parse out from url 33958 <pre> 33959 service_info: { 33960 service: ..., 33961 region: ... 33962 } 33963 </pre> 33964 * 33965 * @returns {object} Signed HTTP request 33966 */ 33967 Signer.sign = function (request, access_info, service_info) { 33968 if (service_info === void 0) { service_info = null; } 33969 request.headers = request.headers || {}; 33970 // datetime string and date string 33971 var dt = _Util__WEBPACK_IMPORTED_MODULE_4__["DateUtils"].getDateWithClockOffset(), dt_str = dt.toISOString().replace(/[:\-]|\.\d{3}/g, ''), d_str = dt_str.substr(0, 8); 33972 var url_info = Object(url__WEBPACK_IMPORTED_MODULE_3__["parse"])(request.url); 33973 request.headers['host'] = url_info.host; 33974 request.headers['x-amz-date'] = dt_str; 33975 if (access_info.session_token) { 33976 request.headers['X-Amz-Security-Token'] = access_info.session_token; 33977 } 33978 // Task 1: Create a Canonical Request 33979 var request_str = canonical_request(request); 33980 logger.debug(request_str); 33981 // Task 2: Create a String to Sign 33982 var serviceInfo = service_info || parse_service_info(request), scope = credential_scope(d_str, serviceInfo.region, serviceInfo.service), str_to_sign = string_to_sign(DEFAULT_ALGORITHM, request_str, dt_str, scope); 33983 // Task 3: Calculate the Signature 33984 var signing_key = get_signing_key(access_info.secret_key, d_str, serviceInfo), signature = get_signature(signing_key, str_to_sign); 33985 // Task 4: Adding the Signing information to the Request 33986 var authorization_header = get_authorization_header(DEFAULT_ALGORITHM, access_info.access_key, scope, signed_headers(request.headers), signature); 33987 request.headers['Authorization'] = authorization_header; 33988 return request; 33989 }; 33990 Signer.signUrl = function (urlOrRequest, accessInfo, serviceInfo, expiration) { 33991 var urlToSign = typeof urlOrRequest === 'object' ? urlOrRequest.url : urlOrRequest; 33992 var method = typeof urlOrRequest === 'object' ? urlOrRequest.method : 'GET'; 33993 var body = typeof urlOrRequest === 'object' ? urlOrRequest.body : undefined; 33994 var now = _Util__WEBPACK_IMPORTED_MODULE_4__["DateUtils"].getDateWithClockOffset() 33995 .toISOString() 33996 .replace(/[:\-]|\.\d{3}/g, ''); 33997 var today = now.substr(0, 8); 33998 // Intentionally discarding search 33999 var _a = Object(url__WEBPACK_IMPORTED_MODULE_3__["parse"])(urlToSign, true, true), search = _a.search, parsedUrl = __rest(_a, ["search"]); 34000 var host = parsedUrl.host; 34001 var signedHeaders = { host: host }; 34002 var _b = serviceInfo || parse_service_info({ url: Object(url__WEBPACK_IMPORTED_MODULE_3__["format"])(parsedUrl) }), region = _b.region, service = _b.service; 34003 var credentialScope = credential_scope(today, region, service); 34004 // IoT service does not allow the session token in the canonical request 34005 // https://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html 34006 var sessionTokenRequired = accessInfo.session_token && service !== IOT_SERVICE_NAME; 34007 var queryParams = __assign(__assign(__assign({ 'X-Amz-Algorithm': DEFAULT_ALGORITHM, 'X-Amz-Credential': [accessInfo.access_key, credentialScope].join('/'), 'X-Amz-Date': now.substr(0, 16) }, (sessionTokenRequired 34008 ? { 'X-Amz-Security-Token': "" + accessInfo.session_token } 34009 : {})), (expiration ? { 'X-Amz-Expires': "" + expiration } : {})), { 'X-Amz-SignedHeaders': Object.keys(signedHeaders).join(',') }); 34010 var canonicalRequest = canonical_request({ 34011 method: method, 34012 url: Object(url__WEBPACK_IMPORTED_MODULE_3__["format"])(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), queryParams) })), 34013 headers: signedHeaders, 34014 data: body, 34015 }); 34016 var stringToSign = string_to_sign(DEFAULT_ALGORITHM, canonicalRequest, now, credentialScope); 34017 var signing_key = get_signing_key(accessInfo.secret_key, today, { 34018 region: region, 34019 service: service, 34020 }); 34021 var signature = get_signature(signing_key, stringToSign); 34022 var additionalQueryParams = __assign({ 'X-Amz-Signature': signature }, (accessInfo.session_token && { 34023 'X-Amz-Security-Token': accessInfo.session_token, 34024 })); 34025 var result = Object(url__WEBPACK_IMPORTED_MODULE_3__["format"])({ 34026 protocol: parsedUrl.protocol, 34027 slashes: true, 34028 hostname: parsedUrl.hostname, 34029 port: parsedUrl.port, 34030 pathname: parsedUrl.pathname, 34031 query: __assign(__assign(__assign({}, parsedUrl.query), queryParams), additionalQueryParams), 34032 }); 34033 return result; 34034 }; 34035 return Signer; 34036}()); 34037 34038/** 34039 * @deprecated use per-function import 34040 */ 34041/* harmony default export */ __webpack_exports__["default"] = (Signer); 34042//# sourceMappingURL=Signer.js.map 34043 34044/***/ }), 34045
vendor: 3,518 bytes, lines 34046-34146
34046/***/ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js": 34047/*!***********************************************************************!*\ 34048 !*** ./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js ***! 34049 \***********************************************************************/ 34050/*! exports provided: MemoryStorage, StorageHelper, default */ 34051/***/ (function(module, __webpack_exports__, __webpack_require__) { 34052 34053"use strict"; 34054__webpack_require__.r(__webpack_exports__); 34055/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MemoryStorage", function() { return MemoryStorage; }); 34056/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StorageHelper", function() { return StorageHelper; }); 34057/* 34058 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 34059 * 34060 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 34061 * the License. A copy of the License is located at 34062 * 34063 * http://aws.amazon.com/apache2.0/ 34064 * 34065 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 34066 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 34067 * and limitations under the License. 34068 */ 34069var dataMemory = {}; 34070/** @class */ 34071var MemoryStorage = /** @class */ (function () { 34072 function MemoryStorage() { 34073 } 34074 /** 34075 * This is used to set a specific item in storage 34076 * @param {string} key - the key for the item 34077 * @param {object} value - the value 34078 * @returns {string} value that was set 34079 */ 34080 MemoryStorage.setItem = function (key, value) { 34081 dataMemory[key] = value; 34082 return dataMemory[key]; 34083 }; 34084 /** 34085 * This is used to get a specific key from storage 34086 * @param {string} key - the key for the item 34087 * This is used to clear the storage 34088 * @returns {string} the data item 34089 */ 34090 MemoryStorage.getItem = function (key) { 34091 return Object.prototype.hasOwnProperty.call(dataMemory, key) 34092 ? dataMemory[key] 34093 : undefined; 34094 }; 34095 /** 34096 * This is used to remove an item from storage 34097 * @param {string} key - the key being set 34098 * @returns {string} value - value that was deleted 34099 */ 34100 MemoryStorage.removeItem = function (key) { 34101 return delete dataMemory[key]; 34102 }; 34103 /** 34104 * This is used to clear the storage 34105 * @returns {string} nothing 34106 */ 34107 MemoryStorage.clear = function () { 34108 dataMemory = {}; 34109 return dataMemory; 34110 }; 34111 return MemoryStorage; 34112}()); 34113 34114var StorageHelper = /** @class */ (function () { 34115 /** 34116 * This is used to get a storage object 34117 * @returns {object} the storage 34118 */ 34119 function StorageHelper() { 34120 try { 34121 this.storageWindow = window.localStorage; 34122 this.storageWindow.setItem('aws.amplify.test-ls', 1); 34123 this.storageWindow.removeItem('aws.amplify.test-ls'); 34124 } 34125 catch (exception) { 34126 this.storageWindow = MemoryStorage; 34127 } 34128 } 34129 /** 34130 * This is used to return the storage 34131 * @returns {object} the storage 34132 */ 34133 StorageHelper.prototype.getStorage = function () { 34134 return this.storageWindow; 34135 }; 34136 return StorageHelper; 34137}()); 34138 34139/** 34140 * @deprecated use named import 34141 */ 34142/* harmony default export */ __webpack_exports__["default"] = (StorageHelper); 34143//# sourceMappingURL=index.js.map 34144 34145/***/ }), 34146
vendor: 4,802 bytes, lines 34147-34250
34147/***/ "./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js": 34148/*!**************************************************************************!*\ 34149 !*** ./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js ***! 34150 \**************************************************************************/ 34151/*! exports provided: UniversalStorage */ 34152/***/ (function(module, __webpack_exports__, __webpack_require__) { 34153 34154"use strict"; 34155__webpack_require__.r(__webpack_exports__); 34156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UniversalStorage", function() { return UniversalStorage; }); 34157/* harmony import */ var universal_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! universal-cookie */ "./node_modules/universal-cookie/es6/index.js"); 34158/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 34159 34160 34161var isBrowser = Object(_JS__WEBPACK_IMPORTED_MODULE_1__["browserOrNode"])().isBrowser; 34162var UniversalStorage = /** @class */ (function () { 34163 function UniversalStorage(context) { 34164 if (context === void 0) { context = {}; } 34165 this.cookies = new universal_cookie__WEBPACK_IMPORTED_MODULE_0__["default"](); 34166 this.store = isBrowser ? window.localStorage : Object.create(null); 34167 this.cookies = context.req 34168 ? new universal_cookie__WEBPACK_IMPORTED_MODULE_0__["default"](context.req.headers.cookie) 34169 : new universal_cookie__WEBPACK_IMPORTED_MODULE_0__["default"](); 34170 Object.assign(this.store, this.cookies.getAll()); 34171 } 34172 Object.defineProperty(UniversalStorage.prototype, "length", { 34173 get: function () { 34174 return Object.entries(this.store).length; 34175 }, 34176 enumerable: true, 34177 configurable: true 34178 }); 34179 UniversalStorage.prototype.clear = function () { 34180 var _this = this; 34181 Array.from(new Array(this.length)) 34182 .map(function (value, i) { return _this.key(i); }) 34183 .forEach(function (key) { return _this.removeItem(key); }); 34184 }; 34185 UniversalStorage.prototype.getItem = function (key) { 34186 return this.getLocalItem(key); 34187 }; 34188 UniversalStorage.prototype.getLocalItem = function (key) { 34189 return Object.prototype.hasOwnProperty.call(this.store, key) 34190 ? this.store[key] 34191 : null; 34192 }; 34193 UniversalStorage.prototype.getUniversalItem = function (key) { 34194 return this.cookies.get(key); 34195 }; 34196 UniversalStorage.prototype.key = function (index) { 34197 return Object.keys(this.store)[index]; 34198 }; 34199 UniversalStorage.prototype.removeItem = function (key) { 34200 this.removeLocalItem(key); 34201 this.removeUniversalItem(key); 34202 }; 34203 UniversalStorage.prototype.removeLocalItem = function (key) { 34204 delete this.store[key]; 34205 }; 34206 UniversalStorage.prototype.removeUniversalItem = function (key) { 34207 this.cookies.remove(key); 34208 }; 34209 UniversalStorage.prototype.setItem = function (key, value) { 34210 this.setLocalItem(key, value); 34211 // keys take the shape: 34212 // 1. `${ProviderPrefix}.${userPoolClientId}.${username}.${tokenType} 34213 // 2. `${ProviderPrefix}.${userPoolClientId}.LastAuthUser 34214 var tokenType = key.split('.').pop(); 34215 switch (tokenType) { 34216 // LastAuthUser is needed for computing other key names 34217 case 'LastAuthUser': 34218 // accessToken is required for CognitoUserSession 34219 case 'accessToken': 34220 // Required for CognitoUserSession 34221 case 'idToken': 34222 this.setUniversalItem(key, value); 34223 // userData is used when `Auth.currentAuthenticatedUser({ bypassCache: false })`. 34224 // Can be persisted to speed up calls to `Auth.currentAuthenticatedUser()` 34225 // case 'userData': 34226 // refreshToken isn't shared with the server so that the client handles refreshing 34227 // case 'refreshToken': 34228 // Ignoring clockDrift on the server for now, but needs testing 34229 // case 'clockDrift': 34230 } 34231 }; 34232 UniversalStorage.prototype.setLocalItem = function (key, value) { 34233 this.store[key] = value; 34234 }; 34235 UniversalStorage.prototype.setUniversalItem = function (key, value) { 34236 this.cookies.set(key, value, { 34237 path: '/', 34238 // `httpOnly` cannot be set via JavaScript: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#JavaScript_access_using_Document.cookie 34239 sameSite: true, 34240 // Allow unsecure requests to http://localhost:3000/ when in development. 34241 secure: window.location.hostname === 'localhost' ? false : true, 34242 }); 34243 }; 34244 return UniversalStorage; 34245}()); 34246 34247//# sourceMappingURL=index.js.map 34248 34249/***/ }), 34250
vendor: 3,212 bytes, lines 34251-34333
34251/***/ "./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js": 34252/*!******************************************************************!*\ 34253 !*** ./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js ***! 34254 \******************************************************************/ 34255/*! exports provided: DateUtils */ 34256/***/ (function(module, __webpack_exports__, __webpack_require__) { 34257 34258"use strict"; 34259__webpack_require__.r(__webpack_exports__); 34260/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateUtils", function() { return DateUtils; }); 34261/** 34262 * Date & time utility functions to abstract the `aws-sdk` away from users. 34263 * (v2 => v3 modularization is a breaking change) 34264 * 34265 * @see https://github.com/aws/aws-sdk-js/blob/6edf586dcc1de7fe8fbfbbd9a0d2b1847921e6e1/lib/util.js#L262 34266 */ 34267var __read = (undefined && undefined.__read) || function (o, n) { 34268 var m = typeof Symbol === "function" && o[Symbol.iterator]; 34269 if (!m) return o; 34270 var i = m.call(o), r, ar = [], e; 34271 try { 34272 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 34273 } 34274 catch (error) { e = { error: error }; } 34275 finally { 34276 try { 34277 if (r && !r.done && (m = i["return"])) m.call(i); 34278 } 34279 finally { if (e) throw e.error; } 34280 } 34281 return ar; 34282}; 34283var FIVE_MINUTES_IN_MS = 1000 * 60 * 5; 34284var DateUtils = { 34285 /** 34286 * Milliseconds to offset the date to compensate for clock skew between device & services 34287 */ 34288 clockOffset: 0, 34289 getDateWithClockOffset: function () { 34290 if (DateUtils.clockOffset) { 34291 return new Date(new Date().getTime() + DateUtils.clockOffset); 34292 } 34293 else { 34294 return new Date(); 34295 } 34296 }, 34297 /** 34298 * @returns {number} Clock offset in milliseconds 34299 */ 34300 getClockOffset: function () { 34301 return DateUtils.clockOffset; 34302 }, 34303 getHeaderStringFromDate: function (date) { 34304 if (date === void 0) { date = DateUtils.getDateWithClockOffset(); } 34305 return date.toISOString().replace(/[:\-]|\.\d{3}/g, ''); 34306 }, 34307 getDateFromHeaderString: function (header) { 34308 var _a = __read(header.match(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2}).+/), 7), year = _a[1], month = _a[2], day = _a[3], hour = _a[4], minute = _a[5], second = _a[6]; 34309 return new Date(Date.UTC(Number(year), Number(month) - 1, Number(day), Number(hour), Number(minute), Number(second))); 34310 }, 34311 isClockSkewed: function (serverDate) { 34312 // API gateway permits client calls that are off by no more than ±5 minutes 34313 return (Math.abs(serverDate.getTime() - DateUtils.getDateWithClockOffset().getTime()) >= FIVE_MINUTES_IN_MS); 34314 }, 34315 isClockSkewError: function (error) { 34316 if (!error.response || !error.response.headers) { 34317 return false; 34318 } 34319 var headers = error.response.headers; 34320 return Boolean(headers['x-amzn-errortype'] === 'BadRequestException' && 34321 (headers.date || headers.Date)); 34322 }, 34323 /** 34324 * @param {number} offset Clock offset in milliseconds 34325 */ 34326 setClockOffset: function (offset) { 34327 DateUtils.clockOffset = offset; 34328 }, 34329}; 34330//# sourceMappingURL=DateUtils.js.map 34331 34332/***/ }), 34333
vendor: 2,992 bytes, lines 34334-34415
34334/***/ "./node_modules/@aws-amplify/core/lib-esm/Util/Mutex.js": 34335/*!**************************************************************!*\ 34336 !*** ./node_modules/@aws-amplify/core/lib-esm/Util/Mutex.js ***! 34337 \**************************************************************/ 34338/*! exports provided: default */ 34339/***/ (function(module, __webpack_exports__, __webpack_require__) { 34340 34341"use strict"; 34342__webpack_require__.r(__webpack_exports__); 34343/*! 34344 * The MIT License (MIT) 34345 * 34346 * Copyright (c) 2016 Christian Speckner <[email protected]> 34347 * 34348 * Permission is hereby granted, free of charge, to any person obtaining a copy 34349 * of this software and associated documentation files (the "Software"), to deal 34350 * in the Software without restriction, including without limitation the rights 34351 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 34352 * copies of the Software, and to permit persons to whom the Software is 34353 * furnished to do so, subject to the following conditions: 34354 * 34355 * The above copyright notice and this permission notice shall be included in 34356 * all copies or substantial portions of the Software. 34357 * 34358 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 34359 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 34360 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34361 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 34362 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34363 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 34364 * THE SOFTWARE. 34365 */ 34366var Mutex = /** @class */ (function () { 34367 function Mutex() { 34368 this._queue = []; 34369 this._pending = false; 34370 } 34371 Mutex.prototype.isLocked = function () { 34372 return this._pending; 34373 }; 34374 Mutex.prototype.acquire = function () { 34375 var _this = this; 34376 var ticket = new Promise(function (resolve) { 34377 return _this._queue.push(resolve); 34378 }); 34379 if (!this._pending) { 34380 this._dispatchNext(); 34381 } 34382 return ticket; 34383 }; 34384 Mutex.prototype.runExclusive = function (callback) { 34385 return this.acquire().then(function (release) { 34386 var result; 34387 try { 34388 result = callback(); 34389 } 34390 catch (e) { 34391 release(); 34392 throw e; 34393 } 34394 return Promise.resolve(result).then(function (x) { return (release(), x); }, function (e) { 34395 release(); 34396 throw e; 34397 }); 34398 }); 34399 }; 34400 Mutex.prototype._dispatchNext = function () { 34401 if (this._queue.length > 0) { 34402 this._pending = true; 34403 this._queue.shift()(this._dispatchNext.bind(this)); 34404 } 34405 else { 34406 this._pending = false; 34407 } 34408 }; 34409 return Mutex; 34410}()); 34411/* harmony default export */ __webpack_exports__["default"] = (Mutex); 34412//# sourceMappingURL=Mutex.js.map 34413 34414/***/ }), 34415
vendor: 3,710 bytes, lines 34416-34492
34416/***/ "./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js": 34417/*!*********************************************************************!*\ 34418 !*** ./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js ***! 34419 \*********************************************************************/ 34420/*! exports provided: default */ 34421/***/ (function(module, __webpack_exports__, __webpack_require__) { 34422 34423"use strict"; 34424__webpack_require__.r(__webpack_exports__); 34425/* harmony import */ var _aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @aws-amplify/core */ "./node_modules/@aws-amplify/core/lib-esm/index.js"); 34426/* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! zen-observable-ts */ "./node_modules/zen-observable-ts/lib/bundle.esm.js"); 34427var __values = (undefined && undefined.__values) || function(o) { 34428 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; 34429 if (m) return m.call(o); 34430 if (o && typeof o.length === "number") return { 34431 next: function () { 34432 if (o && i >= o.length) o = void 0; 34433 return { value: o && o[i++], done: !o }; 34434 } 34435 }; 34436 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); 34437}; 34438 34439 34440var ReachabilityNavigator = /** @class */ (function () { 34441 function ReachabilityNavigator() { 34442 } 34443 ReachabilityNavigator.prototype.networkMonitor = function (netInfo) { 34444 if (Object(_aws_amplify_core__WEBPACK_IMPORTED_MODULE_0__["browserOrNode"])().isNode) { 34445 return zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"].from([{ online: true }]); 34446 } 34447 return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) { 34448 observer.next({ online: window.navigator.onLine }); 34449 var notifyOnline = function () { return observer.next({ online: true }); }; 34450 var notifyOffline = function () { return observer.next({ online: false }); }; 34451 window.addEventListener('online', notifyOnline); 34452 window.addEventListener('offline', notifyOffline); 34453 ReachabilityNavigator._observers.push(observer); 34454 return function () { 34455 window.removeEventListener('online', notifyOnline); 34456 window.removeEventListener('offline', notifyOffline); 34457 ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; }); 34458 }; 34459 }); 34460 }; 34461 // expose observers to simulate offline mode for integration testing 34462 ReachabilityNavigator._observerOverride = function (status) { 34463 var e_1, _a; 34464 var _loop_1 = function (observer) { 34465 if (observer.closed) { 34466 ReachabilityNavigator._observers = ReachabilityNavigator._observers.filter(function (_observer) { return _observer !== observer; }); 34467 return "continue"; 34468 } 34469 observer.next(status); 34470 }; 34471 try { 34472 for (var _b = __values(ReachabilityNavigator._observers), _c = _b.next(); !_c.done; _c = _b.next()) { 34473 var observer = _c.value; 34474 _loop_1(observer); 34475 } 34476 } 34477 catch (e_1_1) { e_1 = { error: e_1_1 }; } 34478 finally { 34479 try { 34480 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 34481 } 34482 finally { if (e_1) throw e_1.error; } 34483 } 34484 }; 34485 ReachabilityNavigator._observers = []; 34486 return ReachabilityNavigator; 34487}()); 34488/* harmony default export */ __webpack_exports__["default"] = (ReachabilityNavigator); 34489//# sourceMappingURL=Reachability.js.map 34490 34491/***/ }), 34492
vendor: 7,911 bytes, lines 34493-34653
34493/***/ "./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js": 34494/*!**************************************************************!*\ 34495 !*** ./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js ***! 34496 \**************************************************************/ 34497/*! exports provided: NonRetryableError, retry, jitteredExponentialRetry */ 34498/***/ (function(module, __webpack_exports__, __webpack_require__) { 34499 34500"use strict"; 34501__webpack_require__.r(__webpack_exports__); 34502/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NonRetryableError", function() { return NonRetryableError; }); 34503/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return retry; }); 34504/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jitteredExponentialRetry", function() { return jitteredExponentialRetry; }); 34505/* harmony import */ var _Logger_ConsoleLogger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logger/ConsoleLogger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/ConsoleLogger.js"); 34506var __extends = (undefined && undefined.__extends) || (function () { 34507 var extendStatics = function (d, b) { 34508 extendStatics = Object.setPrototypeOf || 34509 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 34510 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; 34511 return extendStatics(d, b); 34512 }; 34513 return function (d, b) { 34514 extendStatics(d, b); 34515 function __() { this.constructor = d; } 34516 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 34517 }; 34518})(); 34519var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { 34520 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 34521 return new (P || (P = Promise))(function (resolve, reject) { 34522 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 34523 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 34524 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 34525 step((generator = generator.apply(thisArg, _arguments || [])).next()); 34526 }); 34527}; 34528var __generator = (undefined && undefined.__generator) || function (thisArg, body) { 34529 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 34530 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 34531 function verb(n) { return function (v) { return step([n, v]); }; } 34532 function step(op) { 34533 if (f) throw new TypeError("Generator is already executing."); 34534 while (_) try { 34535 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 34536 if (y = 0, t) op = [op[0] & 2, t.value]; 34537 switch (op[0]) { 34538 case 0: case 1: t = op; break; 34539 case 4: _.label++; return { value: op[1], done: false }; 34540 case 5: _.label++; y = op[1]; op = [0]; continue; 34541 case 7: op = _.ops.pop(); _.trys.pop(); continue; 34542 default: 34543 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 34544 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 34545 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 34546 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 34547 if (t[2]) _.ops.pop(); 34548 _.trys.pop(); continue; 34549 } 34550 op = body.call(thisArg, _); 34551 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 34552 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 34553 } 34554}; 34555var __read = (undefined && undefined.__read) || function (o, n) { 34556 var m = typeof Symbol === "function" && o[Symbol.iterator]; 34557 if (!m) return o; 34558 var i = m.call(o), r, ar = [], e; 34559 try { 34560 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 34561 } 34562 catch (error) { e = { error: error }; } 34563 finally { 34564 try { 34565 if (r && !r.done && (m = i["return"])) m.call(i); 34566 } 34567 finally { if (e) throw e.error; } 34568 } 34569 return ar; 34570}; 34571var __spread = (undefined && undefined.__spread) || function () { 34572 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); 34573 return ar; 34574}; 34575 34576var logger = new _Logger_ConsoleLogger__WEBPACK_IMPORTED_MODULE_0__["ConsoleLogger"]('Util'); 34577var NonRetryableError = /** @class */ (function (_super) { 34578 __extends(NonRetryableError, _super); 34579 function NonRetryableError(message) { 34580 var _this = _super.call(this, message) || this; 34581 _this.nonRetryable = true; 34582 return _this; 34583 } 34584 return NonRetryableError; 34585}(Error)); 34586 34587var isNonRetryableError = function (obj) { 34588 var key = 'nonRetryable'; 34589 return obj && obj[key]; 34590}; 34591/** 34592 * @private 34593 * Internal use of Amplify only 34594 */ 34595function retry(functionToRetry, args, delayFn, attempt) { 34596 if (attempt === void 0) { attempt = 1; } 34597 return __awaiter(this, void 0, void 0, function () { 34598 var err_1, retryIn_1; 34599 return __generator(this, function (_a) { 34600 switch (_a.label) { 34601 case 0: 34602 if (typeof functionToRetry !== 'function') { 34603 throw Error('functionToRetry must be a function'); 34604 } 34605 logger.debug(functionToRetry.name + " attempt #" + attempt + " with this vars: " + JSON.stringify(args)); 34606 _a.label = 1; 34607 case 1: 34608 _a.trys.push([1, 3, , 8]); 34609 return [4 /*yield*/, functionToRetry.apply(void 0, __spread(args))]; 34610 case 2: return [2 /*return*/, _a.sent()]; 34611 case 3: 34612 err_1 = _a.sent(); 34613 logger.debug("error on " + functionToRetry.name, err_1); 34614 if (isNonRetryableError(err_1)) { 34615 logger.debug(functionToRetry.name + " non retryable error", err_1); 34616 throw err_1; 34617 } 34618 retryIn_1 = delayFn(attempt, args, err_1); 34619 logger.debug(functionToRetry.name + " retrying in " + retryIn_1 + " ms"); 34620 if (!(retryIn_1 !== false)) return [3 /*break*/, 6]; 34621 return [4 /*yield*/, new Promise(function (res) { return setTimeout(res, retryIn_1); })]; 34622 case 4: 34623 _a.sent(); 34624 return [4 /*yield*/, retry(functionToRetry, args, delayFn, attempt + 1)]; 34625 case 5: return [2 /*return*/, _a.sent()]; 34626 case 6: throw err_1; 34627 case 7: return [3 /*break*/, 8]; 34628 case 8: return [2 /*return*/]; 34629 } 34630 }); 34631 }); 34632} 34633var MAX_DELAY_MS = 5 * 60 * 1000; 34634function jitteredBackoff(maxDelayMs) { 34635 var BASE_TIME_MS = 100; 34636 var JITTER_FACTOR = 100; 34637 return function (attempt) { 34638 var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random(); 34639 return delay > maxDelayMs ? false : delay; 34640 }; 34641} 34642/** 34643 * @private 34644 * Internal use of Amplify only 34645 */ 34646var jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs) { 34647 if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; } 34648 return retry(functionToRetry, args, jitteredBackoff(maxDelayMs)); 34649}; 34650//# sourceMappingURL=Retry.js.map 34651 34652/***/ }), 34653
vendor: 2,223 bytes, lines 34654-34686
34654/***/ "./node_modules/@aws-amplify/core/lib-esm/Util/index.js": 34655/*!**************************************************************!*\ 34656 !*** ./node_modules/@aws-amplify/core/lib-esm/Util/index.js ***! 34657 \**************************************************************/ 34658/*! exports provided: NonRetryableError, retry, jitteredExponentialRetry, Mutex, Reachability, DateUtils */ 34659/***/ (function(module, __webpack_exports__, __webpack_require__) { 34660 34661"use strict"; 34662__webpack_require__.r(__webpack_exports__); 34663/* harmony import */ var _Retry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Retry */ "./node_modules/@aws-amplify/core/lib-esm/Util/Retry.js"); 34664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NonRetryableError", function() { return _Retry__WEBPACK_IMPORTED_MODULE_0__["NonRetryableError"]; }); 34665 34666/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _Retry__WEBPACK_IMPORTED_MODULE_0__["retry"]; }); 34667 34668/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "jitteredExponentialRetry", function() { return _Retry__WEBPACK_IMPORTED_MODULE_0__["jitteredExponentialRetry"]; }); 34669 34670/* harmony import */ var _Mutex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Mutex */ "./node_modules/@aws-amplify/core/lib-esm/Util/Mutex.js"); 34671/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Mutex", function() { return _Mutex__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 34672 34673/* harmony import */ var _Reachability__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Reachability */ "./node_modules/@aws-amplify/core/lib-esm/Util/Reachability.js"); 34674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Reachability", function() { return _Reachability__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 34675 34676/* harmony import */ var _DateUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DateUtils */ "./node_modules/@aws-amplify/core/lib-esm/Util/DateUtils.js"); 34677/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateUtils", function() { return _DateUtils__WEBPACK_IMPORTED_MODULE_3__["DateUtils"]; }); 34678 34679 34680 34681 34682 34683//# sourceMappingURL=index.js.map 34684 34685/***/ }), 34686
vendor: 2,277 bytes, lines 34687-34726
34687/***/ "./node_modules/@aws-amplify/core/lib-esm/constants.js": 34688/*!*************************************************************!*\ 34689 !*** ./node_modules/@aws-amplify/core/lib-esm/constants.js ***! 34690 \*************************************************************/ 34691/*! exports provided: INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, USER_AGENT_HEADER */ 34692/***/ (function(module, __webpack_exports__, __webpack_require__) { 34693 34694"use strict"; 34695__webpack_require__.r(__webpack_exports__); 34696/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER", function() { return INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER; }); 34697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER", function() { return INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER; }); 34698/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "USER_AGENT_HEADER", function() { return USER_AGENT_HEADER; }); 34699/* 34700 * Copyright 2018-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. 34701 * 34702 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 34703 * the License. A copy of the License is located at 34704 * 34705 * http://aws.amazon.com/apache2.0/ 34706 * 34707 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 34708 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 34709 * and limitations under the License. 34710 */ 34711/** 34712 * This Symbol is used to reference an internal-only PubSub provider that 34713 * is used for AppSync/GraphQL subscriptions in the API category. 34714 */ 34715var hasSymbol = typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'; 34716var INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER = hasSymbol 34717 ? Symbol.for('INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER') 34718 : '@@INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER'; 34719var INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER = hasSymbol 34720 ? Symbol.for('INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER') 34721 : '@@INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER'; 34722var USER_AGENT_HEADER = 'x-amz-user-agent'; 34723//# sourceMappingURL=constants.js.map 34724 34725/***/ }), 34726
vendor: 13,119 bytes, lines 34727-34891
34727/***/ "./node_modules/@aws-amplify/core/lib-esm/index.js": 34728/*!*********************************************************!*\ 34729 !*** ./node_modules/@aws-amplify/core/lib-esm/index.js ***! 34730 \*********************************************************/ 34731/*! exports provided: AmplifyClass, ClientDevice, ConsoleLogger, Logger, missingConfig, invalidParameter, Hub, I18n, isEmpty, sortByField, objectLessAttributes, filenameToContentType, isTextFile, generateRandomString, makeQuerablePromise, browserOrNode, transferKeyToLowerCase, transferKeyToUpperCase, isStrictObject, JS, Signer, parseMobileHubConfig, Parser, FacebookOAuth, GoogleOAuth, Linking, AppState, AsyncStorage, Credentials, CredentialsClass, ServiceWorker, StorageHelper, MemoryStorage, UniversalStorage, Platform, getAmplifyUserAgent, INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER, INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER, USER_AGENT_HEADER, Constants, NonRetryableError, retry, jitteredExponentialRetry, Mutex, Reachability, DateUtils, Amplify, default */ 34732/***/ (function(module, __webpack_exports__, __webpack_require__) { 34733 34734"use strict"; 34735__webpack_require__.r(__webpack_exports__); 34736/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return Constants; }); 34737/* harmony import */ var _Amplify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Amplify */ "./node_modules/@aws-amplify/core/lib-esm/Amplify.js"); 34738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Amplify", function() { return _Amplify__WEBPACK_IMPORTED_MODULE_0__["Amplify"]; }); 34739 34740/* harmony import */ var _Platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Platform */ "./node_modules/@aws-amplify/core/lib-esm/Platform/index.js"); 34741/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AmplifyClass", function() { return _Amplify__WEBPACK_IMPORTED_MODULE_0__["AmplifyClass"]; }); 34742 34743/* harmony import */ var _ClientDevice__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ClientDevice */ "./node_modules/@aws-amplify/core/lib-esm/ClientDevice/index.js"); 34744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientDevice", function() { return _ClientDevice__WEBPACK_IMPORTED_MODULE_2__["ClientDevice"]; }); 34745 34746/* harmony import */ var _Logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Logger */ "./node_modules/@aws-amplify/core/lib-esm/Logger/index.js"); 34747/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConsoleLogger", function() { return _Logger__WEBPACK_IMPORTED_MODULE_3__["ConsoleLogger"]; }); 34748 34749/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _Logger__WEBPACK_IMPORTED_MODULE_3__["ConsoleLogger"]; }); 34750 34751/* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Errors */ "./node_modules/@aws-amplify/core/lib-esm/Errors.js"); 34752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "missingConfig", function() { return _Errors__WEBPACK_IMPORTED_MODULE_4__["missingConfig"]; }); 34753 34754/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "invalidParameter", function() { return _Errors__WEBPACK_IMPORTED_MODULE_4__["invalidParameter"]; }); 34755 34756/* harmony import */ var _Hub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Hub */ "./node_modules/@aws-amplify/core/lib-esm/Hub.js"); 34757/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Hub", function() { return _Hub__WEBPACK_IMPORTED_MODULE_5__["Hub"]; }); 34758 34759/* harmony import */ var _I18n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./I18n */ "./node_modules/@aws-amplify/core/lib-esm/I18n/index.js"); 34760/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "I18n", function() { return _I18n__WEBPACK_IMPORTED_MODULE_6__["I18n"]; }); 34761 34762/* harmony import */ var _JS__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./JS */ "./node_modules/@aws-amplify/core/lib-esm/JS.js"); 34763/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["isEmpty"]; }); 34764 34765/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sortByField", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["sortByField"]; }); 34766 34767/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "objectLessAttributes", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["objectLessAttributes"]; }); 34768 34769/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filenameToContentType", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["filenameToContentType"]; }); 34770 34771/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isTextFile", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["isTextFile"]; }); 34772 34773/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generateRandomString", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["generateRandomString"]; }); 34774 34775/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "makeQuerablePromise", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["makeQuerablePromise"]; }); 34776 34777/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "browserOrNode", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["browserOrNode"]; }); 34778 34779/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transferKeyToLowerCase", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["transferKeyToLowerCase"]; }); 34780 34781/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transferKeyToUpperCase", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["transferKeyToUpperCase"]; }); 34782 34783/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isStrictObject", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["isStrictObject"]; }); 34784 34785/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JS", function() { return _JS__WEBPACK_IMPORTED_MODULE_7__["JS"]; }); 34786 34787/* harmony import */ var _Signer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Signer */ "./node_modules/@aws-amplify/core/lib-esm/Signer.js"); 34788/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Signer", function() { return _Signer__WEBPACK_IMPORTED_MODULE_8__["Signer"]; }); 34789 34790/* harmony import */ var _Parser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Parser */ "./node_modules/@aws-amplify/core/lib-esm/Parser.js"); 34791/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseMobileHubConfig", function() { return _Parser__WEBPACK_IMPORTED_MODULE_9__["parseMobileHubConfig"]; }); 34792 34793/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Parser", function() { return _Parser__WEBPACK_IMPORTED_MODULE_9__["Parser"]; }); 34794 34795/* harmony import */ var _OAuthHelper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./OAuthHelper */ "./node_modules/@aws-amplify/core/lib-esm/OAuthHelper/index.js"); 34796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FacebookOAuth", function() { return _OAuthHelper__WEBPACK_IMPORTED_MODULE_10__["FacebookOAuth"]; }); 34797 34798/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GoogleOAuth", function() { return _OAuthHelper__WEBPACK_IMPORTED_MODULE_10__["GoogleOAuth"]; }); 34799 34800/* harmony import */ var _RNComponents__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./RNComponents */ "./node_modules/@aws-amplify/core/lib-esm/RNComponents/index.js"); 34801/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Linking", function() { return _RNComponents__WEBPACK_IMPORTED_MODULE_11__["Linking"]; }); 34802 34803/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AppState", function() { return _RNComponents__WEBPACK_IMPORTED_MODULE_11__["AppState"]; }); 34804 34805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncStorage", function() { return _RNComponents__WEBPACK_IMPORTED_MODULE_11__["AsyncStorage"]; }); 34806 34807/* harmony import */ var _Credentials__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./Credentials */ "./node_modules/@aws-amplify/core/lib-esm/Credentials.js"); 34808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Credentials", function() { return _Credentials__WEBPACK_IMPORTED_MODULE_12__["Credentials"]; }); 34809 34810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CredentialsClass", function() { return _Credentials__WEBPACK_IMPORTED_MODULE_12__["CredentialsClass"]; }); 34811 34812/* harmony import */ var _ServiceWorker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ServiceWorker */ "./node_modules/@aws-amplify/core/lib-esm/ServiceWorker/index.js"); 34813/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServiceWorker", function() { return _ServiceWorker__WEBPACK_IMPORTED_MODULE_13__["ServiceWorker"]; }); 34814 34815/* harmony import */ var _StorageHelper__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/@aws-amplify/core/lib-esm/StorageHelper/index.js"); 34816/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StorageHelper", function() { return _StorageHelper__WEBPACK_IMPORTED_MODULE_14__["StorageHelper"]; }); 34817 34818/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MemoryStorage", function() { return _StorageHelper__WEBPACK_IMPORTED_MODULE_14__["MemoryStorage"]; }); 34819 34820/* harmony import */ var _UniversalStorage__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./UniversalStorage */ "./node_modules/@aws-amplify/core/lib-esm/UniversalStorage/index.js"); 34821/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UniversalStorage", function() { return _UniversalStorage__WEBPACK_IMPORTED_MODULE_15__["UniversalStorage"]; }); 34822 34823/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Platform", function() { return _Platform__WEBPACK_IMPORTED_MODULE_1__["Platform"]; }); 34824 34825/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAmplifyUserAgent", function() { return _Platform__WEBPACK_IMPORTED_MODULE_1__["getAmplifyUserAgent"]; }); 34826 34827/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-amplify/core/lib-esm/constants.js"); 34828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER", function() { return _constants__WEBPACK_IMPORTED_MODULE_16__["INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER"]; }); 34829 34830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER", function() { return _constants__WEBPACK_IMPORTED_MODULE_16__["INTERNAL_AWS_APPSYNC_REALTIME_PUBSUB_PROVIDER"]; }); 34831 34832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "USER_AGENT_HEADER", function() { return _constants__WEBPACK_IMPORTED_MODULE_16__["USER_AGENT_HEADER"]; }); 34833 34834/* empty/unused harmony star reexport *//* harmony import */ var _Util__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./Util */ "./node_modules/@aws-amplify/core/lib-esm/Util/index.js"); 34835/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NonRetryableError", function() { return _Util__WEBPACK_IMPORTED_MODULE_17__["NonRetryableError"]; }); 34836 34837/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _Util__WEBPACK_IMPORTED_MODULE_17__["retry"]; }); 34838 34839/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "jitteredExponentialRetry", function() { return _Util__WEBPACK_IMPORTED_MODULE_17__["jitteredExponentialRetry"]; }); 34840 34841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Mutex", function() { return _Util__WEBPACK_IMPORTED_MODULE_17__["Mutex"]; }); 34842 34843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Reachability", function() { return _Util__WEBPACK_IMPORTED_MODULE_17__["Reachability"]; }); 34844 34845/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateUtils", function() { return _Util__WEBPACK_IMPORTED_MODULE_17__["DateUtils"]; }); 34846 34847/* 34848 * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 34849 * 34850 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with 34851 * the License. A copy of the License is located at 34852 * 34853 * http://aws.amazon.com/apache2.0/ 34854 * 34855 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 34856 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions 34857 * and limitations under the License. 34858 */ 34859 34860 34861 34862 34863 34864 34865 34866 34867 34868 34869 34870 34871 34872 34873 34874 34875 34876 34877 34878var Constants = { 34879 userAgent: _Platform__WEBPACK_IMPORTED_MODULE_1__["Platform"].userAgent, 34880}; 34881 34882 34883 34884/** 34885 * @deprecated use named import 34886 */ 34887/* harmony default export */ __webpack_exports__["default"] = (_Amplify__WEBPACK_IMPORTED_MODULE_0__["Amplify"]); 34888//# sourceMappingURL=index.js.map 34889 34890/***/ }), 34891
vendor: 1,395 bytes, lines 34892-34933
34892/***/ "./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js": 34893/*!*******************************************************************!*\ 34894 !*** ./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js ***! 34895 \*******************************************************************/ 34896/*! no static exports found */ 34897/***/ (function(module, exports, __webpack_require__) { 34898 34899"use strict"; 34900 34901Object.defineProperty(exports, "__esModule", { value: true }); 34902var msSubtleCryptoMethods = [ 34903 "decrypt", 34904 "digest", 34905 "encrypt", 34906 "exportKey", 34907 "generateKey", 34908 "importKey", 34909 "sign", 34910 "verify" 34911]; 34912function quacksLikeAnMsWindow(window) { 34913 return "MSInputMethodContext" in window && "msCrypto" in window; 34914} 34915/** 34916 * Determines if the provided window is (or is like) the window object one would 34917 * expect to encounter in Internet Explorer 11. 34918 */ 34919function isMsWindow(window) { 34920 if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) { 34921 var _a = window.msCrypto, getRandomValues = _a.getRandomValues, subtle_1 = _a.subtle; 34922 return msSubtleCryptoMethods 34923 .map(function (methodName) { return subtle_1[methodName]; }) 34924 .concat(getRandomValues) 34925 .every(function (method) { return typeof method === "function"; }); 34926 } 34927 return false; 34928} 34929exports.isMsWindow = isMsWindow; 34930//# sourceMappingURL=MsWindow.js.map 34931 34932/***/ }), 34933
vendor: 705 bytes, lines 34934-34949
34934/***/ "./node_modules/@aws-crypto/ie11-detection/build/index.js": 34935/*!****************************************************************!*\ 34936 !*** ./node_modules/@aws-crypto/ie11-detection/build/index.js ***! 34937 \****************************************************************/ 34938/*! no static exports found */ 34939/***/ (function(module, exports, __webpack_require__) { 34940 34941"use strict"; 34942 34943Object.defineProperty(exports, "__esModule", { value: true }); 34944var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 34945tslib_1.__exportStar(__webpack_require__(/*! ./MsWindow */ "./node_modules/@aws-crypto/ie11-detection/build/MsWindow.js"), exports); 34946//# sourceMappingURL=index.js.map 34947 34948/***/ }), 34949
vendor: 960 bytes, lines 34950-35002
34950/***/ "./node_modules/@aws-crypto/sha256-browser/build/constants.js": 34951/*!********************************************************************!*\ 34952 !*** ./node_modules/@aws-crypto/sha256-browser/build/constants.js ***! 34953 \********************************************************************/ 34954/*! no static exports found */ 34955/***/ (function(module, exports, __webpack_require__) { 34956 34957"use strict"; 34958 34959Object.defineProperty(exports, "__esModule", { value: true }); 34960exports.SHA_256_HASH = { name: "SHA-256" }; 34961exports.SHA_256_HMAC_ALGO = { 34962 name: "HMAC", 34963 hash: exports.SHA_256_HASH 34964}; 34965exports.EMPTY_DATA_SHA_256 = new Uint8Array([ 34966 227, 34967 176, 34968 196, 34969 66, 34970 152, 34971 252, 34972 28, 34973 20, 34974 154, 34975 251, 34976 244, 34977 200, 34978 153, 34979 111, 34980 185, 34981 36, 34982 39, 34983 174, 34984 65, 34985 228, 34986 100, 34987 155, 34988 147, 34989 76, 34990 164, 34991 149, 34992 153, 34993 27, 34994 120, 34995 82, 34996 184, 34997 85 34998]); 34999//# sourceMappingURL=constants.js.map 35000 35001/***/ }), 35002
vendor: 2,100 bytes, lines 35003-35043
35003/***/ "./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js": 35004/*!******************************************************************************!*\ 35005 !*** ./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js ***! 35006 \******************************************************************************/ 35007/*! no static exports found */ 35008/***/ (function(module, exports, __webpack_require__) { 35009 35010"use strict"; 35011 35012Object.defineProperty(exports, "__esModule", { value: true }); 35013var ie11Sha256_1 = __webpack_require__(/*! ./ie11Sha256 */ "./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js"); 35014var webCryptoSha256_1 = __webpack_require__(/*! ./webCryptoSha256 */ "./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js"); 35015var sha256_js_1 = __webpack_require__(/*! @aws-crypto/sha256-js */ "./node_modules/@aws-crypto/sha256-js/build/index.js"); 35016var supports_web_crypto_1 = __webpack_require__(/*! @aws-crypto/supports-web-crypto */ "./node_modules/@aws-crypto/supports-web-crypto/build/index.js"); 35017var ie11_detection_1 = __webpack_require__(/*! @aws-crypto/ie11-detection */ "./node_modules/@aws-crypto/ie11-detection/build/index.js"); 35018var util_locate_window_1 = __webpack_require__(/*! @aws-sdk/util-locate-window */ "./node_modules/@aws-sdk/util-locate-window/dist/es/index.js"); 35019var Sha256 = /** @class */ (function () { 35020 function Sha256(secret) { 35021 if (supports_web_crypto_1.supportsWebCrypto(util_locate_window_1.locateWindow())) { 35022 this.hash = new webCryptoSha256_1.Sha256(secret); 35023 } 35024 else if (ie11_detection_1.isMsWindow(util_locate_window_1.locateWindow())) { 35025 this.hash = new ie11Sha256_1.Sha256(secret); 35026 } 35027 else { 35028 this.hash = new sha256_js_1.Sha256(secret); 35029 } 35030 } 35031 Sha256.prototype.update = function (data, encoding) { 35032 this.hash.update(data, encoding); 35033 }; 35034 Sha256.prototype.digest = function () { 35035 return this.hash.digest(); 35036 }; 35037 return Sha256; 35038}()); 35039exports.Sha256 = Sha256; 35040//# sourceMappingURL=crossPlatformSha256.js.map 35041 35042/***/ }), 35043
vendor: 3,706 bytes, lines 35044-35129
35044/***/ "./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js": 35045/*!*********************************************************************!*\ 35046 !*** ./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js ***! 35047 \*********************************************************************/ 35048/*! no static exports found */ 35049/***/ (function(module, exports, __webpack_require__) { 35050 35051"use strict"; 35052 35053Object.defineProperty(exports, "__esModule", { value: true }); 35054var isEmptyData_1 = __webpack_require__(/*! ./isEmptyData */ "./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js"); 35055var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-crypto/sha256-browser/build/constants.js"); 35056var util_utf8_browser_1 = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/index.js"); 35057var util_locate_window_1 = __webpack_require__(/*! @aws-sdk/util-locate-window */ "./node_modules/@aws-sdk/util-locate-window/dist/es/index.js"); 35058var Sha256 = /** @class */ (function () { 35059 function Sha256(secret) { 35060 if (secret) { 35061 this.operation = getKeyPromise(secret).then(function (keyData) { 35062 return util_locate_window_1.locateWindow().msCrypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, keyData); 35063 }); 35064 this.operation.catch(function () { }); 35065 } 35066 else { 35067 this.operation = Promise.resolve(util_locate_window_1.locateWindow().msCrypto.subtle.digest("SHA-256")); 35068 } 35069 } 35070 Sha256.prototype.update = function (toHash) { 35071 var _this = this; 35072 if (isEmptyData_1.isEmptyData(toHash)) { 35073 return; 35074 } 35075 this.operation = this.operation.then(function (operation) { 35076 operation.onerror = function () { 35077 _this.operation = Promise.reject(new Error("Error encountered updating hash")); 35078 }; 35079 operation.process(toArrayBufferView(toHash)); 35080 return operation; 35081 }); 35082 this.operation.catch(function () { }); 35083 }; 35084 Sha256.prototype.digest = function () { 35085 return this.operation.then(function (operation) { 35086 return new Promise(function (resolve, reject) { 35087 operation.onerror = function () { 35088 reject("Error encountered finalizing hash"); 35089 }; 35090 operation.oncomplete = function () { 35091 if (operation.result) { 35092 resolve(new Uint8Array(operation.result)); 35093 } 35094 reject("Error encountered finalizing hash"); 35095 }; 35096 operation.finish(); 35097 }); 35098 }); 35099 }; 35100 return Sha256; 35101}()); 35102exports.Sha256 = Sha256; 35103function getKeyPromise(secret) { 35104 return new Promise(function (resolve, reject) { 35105 var keyOperation = util_locate_window_1.locateWindow().msCrypto.subtle.importKey("raw", toArrayBufferView(secret), constants_1.SHA_256_HMAC_ALGO, false, ["sign"]); 35106 keyOperation.oncomplete = function () { 35107 if (keyOperation.result) { 35108 resolve(keyOperation.result); 35109 } 35110 reject("ImportKey completed without importing key."); 35111 }; 35112 keyOperation.onerror = function () { 35113 reject("ImportKey failed to import key."); 35114 }; 35115 }); 35116} 35117function toArrayBufferView(data) { 35118 if (typeof data === "string") { 35119 return util_utf8_browser_1.fromUtf8(data); 35120 } 35121 if (ArrayBuffer.isView(data)) { 35122 return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); 35123 } 35124 return new Uint8Array(data); 35125} 35126//# sourceMappingURL=ie11Sha256.js.map 35127 35128/***/ }), 35129
vendor: 1,086 bytes, lines 35130-35149
35130/***/ "./node_modules/@aws-crypto/sha256-browser/build/index.js": 35131/*!****************************************************************!*\ 35132 !*** ./node_modules/@aws-crypto/sha256-browser/build/index.js ***! 35133 \****************************************************************/ 35134/*! no static exports found */ 35135/***/ (function(module, exports, __webpack_require__) { 35136 35137"use strict"; 35138 35139Object.defineProperty(exports, "__esModule", { value: true }); 35140var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 35141tslib_1.__exportStar(__webpack_require__(/*! ./crossPlatformSha256 */ "./node_modules/@aws-crypto/sha256-browser/build/crossPlatformSha256.js"), exports); 35142var ie11Sha256_1 = __webpack_require__(/*! ./ie11Sha256 */ "./node_modules/@aws-crypto/sha256-browser/build/ie11Sha256.js"); 35143exports.Ie11Sha256 = ie11Sha256_1.Sha256; 35144var webCryptoSha256_1 = __webpack_require__(/*! ./webCryptoSha256 */ "./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js"); 35145exports.WebCryptoSha256 = webCryptoSha256_1.Sha256; 35146//# sourceMappingURL=index.js.map 35147 35148/***/ }), 35149
vendor: 693 bytes, lines 35150-35170
35150/***/ "./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js": 35151/*!**********************************************************************!*\ 35152 !*** ./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js ***! 35153 \**********************************************************************/ 35154/*! no static exports found */ 35155/***/ (function(module, exports, __webpack_require__) { 35156 35157"use strict"; 35158 35159Object.defineProperty(exports, "__esModule", { value: true }); 35160function isEmptyData(data) { 35161 if (typeof data === "string") { 35162 return data.length === 0; 35163 } 35164 return data.byteLength === 0; 35165} 35166exports.isEmptyData = isEmptyData; 35167//# sourceMappingURL=isEmptyData.js.map 35168 35169/***/ }), 35170
vendor: 3,152 bytes, lines 35171-35240
35171/***/ "./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js": 35172/*!**************************************************************************!*\ 35173 !*** ./node_modules/@aws-crypto/sha256-browser/build/webCryptoSha256.js ***! 35174 \**************************************************************************/ 35175/*! no static exports found */ 35176/***/ (function(module, exports, __webpack_require__) { 35177 35178"use strict"; 35179 35180Object.defineProperty(exports, "__esModule", { value: true }); 35181var util_utf8_browser_1 = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/index.js"); 35182var isEmptyData_1 = __webpack_require__(/*! ./isEmptyData */ "./node_modules/@aws-crypto/sha256-browser/build/isEmptyData.js"); 35183var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-crypto/sha256-browser/build/constants.js"); 35184var util_locate_window_1 = __webpack_require__(/*! @aws-sdk/util-locate-window */ "./node_modules/@aws-sdk/util-locate-window/dist/es/index.js"); 35185var Sha256 = /** @class */ (function () { 35186 function Sha256(secret) { 35187 this.toHash = new Uint8Array(0); 35188 if (secret !== void 0) { 35189 this.key = new Promise(function (resolve, reject) { 35190 util_locate_window_1.locateWindow() 35191 .crypto.subtle.importKey("raw", convertToBuffer(secret), constants_1.SHA_256_HMAC_ALGO, false, ["sign"]) 35192 .then(resolve, reject); 35193 }); 35194 this.key.catch(function () { }); 35195 } 35196 } 35197 Sha256.prototype.update = function (data) { 35198 if (isEmptyData_1.isEmptyData(data)) { 35199 return; 35200 } 35201 var update = convertToBuffer(data); 35202 var typedArray = new Uint8Array(this.toHash.byteLength + update.byteLength); 35203 typedArray.set(this.toHash, 0); 35204 typedArray.set(update, this.toHash.byteLength); 35205 this.toHash = typedArray; 35206 }; 35207 Sha256.prototype.digest = function () { 35208 var _this = this; 35209 if (this.key) { 35210 return this.key.then(function (key) { 35211 return util_locate_window_1.locateWindow() 35212 .crypto.subtle.sign(constants_1.SHA_256_HMAC_ALGO, key, _this.toHash) 35213 .then(function (data) { return new Uint8Array(data); }); 35214 }); 35215 } 35216 if (isEmptyData_1.isEmptyData(this.toHash)) { 35217 return Promise.resolve(constants_1.EMPTY_DATA_SHA_256); 35218 } 35219 return Promise.resolve() 35220 .then(function () { 35221 return util_locate_window_1.locateWindow().crypto.subtle.digest(constants_1.SHA_256_HASH, _this.toHash); 35222 }) 35223 .then(function (data) { return Promise.resolve(new Uint8Array(data)); }); 35224 }; 35225 return Sha256; 35226}()); 35227exports.Sha256 = Sha256; 35228function convertToBuffer(data) { 35229 if (typeof data === "string") { 35230 return util_utf8_browser_1.fromUtf8(data); 35231 } 35232 if (ArrayBuffer.isView(data)) { 35233 return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); 35234 } 35235 return new Uint8Array(data); 35236} 35237//# sourceMappingURL=webCryptoSha256.js.map 35238 35239/***/ }), 35240
vendor: 5,548 bytes, lines 35241-35374
35241/***/ "./node_modules/@aws-crypto/sha256-js/build/RawSha256.js": 35242/*!***************************************************************!*\ 35243 !*** ./node_modules/@aws-crypto/sha256-js/build/RawSha256.js ***! 35244 \***************************************************************/ 35245/*! no static exports found */ 35246/***/ (function(module, exports, __webpack_require__) { 35247 35248"use strict"; 35249 35250Object.defineProperty(exports, "__esModule", { value: true }); 35251var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-crypto/sha256-js/build/constants.js"); 35252/** 35253 * @internal 35254 */ 35255var RawSha256 = /** @class */ (function () { 35256 function RawSha256() { 35257 this.state = Int32Array.from(constants_1.INIT); 35258 this.temp = new Int32Array(64); 35259 this.buffer = new Uint8Array(64); 35260 this.bufferLength = 0; 35261 this.bytesHashed = 0; 35262 /** 35263 * @internal 35264 */ 35265 this.finished = false; 35266 } 35267 RawSha256.prototype.update = function (data) { 35268 if (this.finished) { 35269 throw new Error("Attempted to update an already finished hash."); 35270 } 35271 var position = 0; 35272 var byteLength = data.byteLength; 35273 this.bytesHashed += byteLength; 35274 if (this.bytesHashed * 8 > constants_1.MAX_HASHABLE_LENGTH) { 35275 throw new Error("Cannot hash more than 2^53 - 1 bits"); 35276 } 35277 while (byteLength > 0) { 35278 this.buffer[this.bufferLength++] = data[position++]; 35279 byteLength--; 35280 if (this.bufferLength === constants_1.BLOCK_SIZE) { 35281 this.hashBuffer(); 35282 this.bufferLength = 0; 35283 } 35284 } 35285 }; 35286 RawSha256.prototype.digest = function () { 35287 if (!this.finished) { 35288 var bitsHashed = this.bytesHashed * 8; 35289 var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength); 35290 var undecoratedLength = this.bufferLength; 35291 bufferView.setUint8(this.bufferLength++, 0x80); 35292 // Ensure the final block has enough room for the hashed length 35293 if (undecoratedLength % constants_1.BLOCK_SIZE >= constants_1.BLOCK_SIZE - 8) { 35294 for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE; i++) { 35295 bufferView.setUint8(i, 0); 35296 } 35297 this.hashBuffer(); 35298 this.bufferLength = 0; 35299 } 35300 for (var i = this.bufferLength; i < constants_1.BLOCK_SIZE - 8; i++) { 35301 bufferView.setUint8(i, 0); 35302 } 35303 bufferView.setUint32(constants_1.BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true); 35304 bufferView.setUint32(constants_1.BLOCK_SIZE - 4, bitsHashed); 35305 this.hashBuffer(); 35306 this.finished = true; 35307 } 35308 // The value in state is little-endian rather than big-endian, so flip 35309 // each word into a new Uint8Array 35310 var out = new Uint8Array(constants_1.DIGEST_LENGTH); 35311 for (var i = 0; i < 8; i++) { 35312 out[i * 4] = (this.state[i] >>> 24) & 0xff; 35313 out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff; 35314 out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff; 35315 out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff; 35316 } 35317 return out; 35318 }; 35319 RawSha256.prototype.hashBuffer = function () { 35320 var _a = this, buffer = _a.buffer, state = _a.state; 35321 var state0 = state[0], state1 = state[1], state2 = state[2], state3 = state[3], state4 = state[4], state5 = state[5], state6 = state[6], state7 = state[7]; 35322 for (var i = 0; i < constants_1.BLOCK_SIZE; i++) { 35323 if (i < 16) { 35324 this.temp[i] = 35325 ((buffer[i * 4] & 0xff) << 24) | 35326 ((buffer[i * 4 + 1] & 0xff) << 16) | 35327 ((buffer[i * 4 + 2] & 0xff) << 8) | 35328 (buffer[i * 4 + 3] & 0xff); 35329 } 35330 else { 35331 var u = this.temp[i - 2]; 35332 var t1_1 = ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10); 35333 u = this.temp[i - 15]; 35334 var t2_1 = ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3); 35335 this.temp[i] = 35336 ((t1_1 + this.temp[i - 7]) | 0) + ((t2_1 + this.temp[i - 16]) | 0); 35337 } 35338 var t1 = ((((((state4 >>> 6) | (state4 << 26)) ^ 35339 ((state4 >>> 11) | (state4 << 21)) ^ 35340 ((state4 >>> 25) | (state4 << 7))) + 35341 ((state4 & state5) ^ (~state4 & state6))) | 35342 0) + 35343 ((state7 + ((constants_1.KEY[i] + this.temp[i]) | 0)) | 0)) | 35344 0; 35345 var t2 = ((((state0 >>> 2) | (state0 << 30)) ^ 35346 ((state0 >>> 13) | (state0 << 19)) ^ 35347 ((state0 >>> 22) | (state0 << 10))) + 35348 ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 35349 0; 35350 state7 = state6; 35351 state6 = state5; 35352 state5 = state4; 35353 state4 = (state3 + t1) | 0; 35354 state3 = state2; 35355 state2 = state1; 35356 state1 = state0; 35357 state0 = (t1 + t2) | 0; 35358 } 35359 state[0] += state0; 35360 state[1] += state1; 35361 state[2] += state2; 35362 state[3] += state3; 35363 state[4] += state4; 35364 state[5] += state5; 35365 state[6] += state6; 35366 state[7] += state7; 35367 }; 35368 return RawSha256; 35369}()); 35370exports.RawSha256 = RawSha256; 35371//# sourceMappingURL=RawSha256.js.map 35372 35373/***/ }), 35374
vendor: 1,902 bytes, lines 35375-35482
35375/***/ "./node_modules/@aws-crypto/sha256-js/build/constants.js": 35376/*!***************************************************************!*\ 35377 !*** ./node_modules/@aws-crypto/sha256-js/build/constants.js ***! 35378 \***************************************************************/ 35379/*! no static exports found */ 35380/***/ (function(module, exports, __webpack_require__) { 35381 35382"use strict"; 35383 35384Object.defineProperty(exports, "__esModule", { value: true }); 35385/** 35386 * @internal 35387 */ 35388exports.BLOCK_SIZE = 64; 35389/** 35390 * @internal 35391 */ 35392exports.DIGEST_LENGTH = 32; 35393/** 35394 * @internal 35395 */ 35396exports.KEY = new Uint32Array([ 35397 0x428a2f98, 35398 0x71374491, 35399 0xb5c0fbcf, 35400 0xe9b5dba5, 35401 0x3956c25b, 35402 0x59f111f1, 35403 0x923f82a4, 35404 0xab1c5ed5, 35405 0xd807aa98, 35406 0x12835b01, 35407 0x243185be, 35408 0x550c7dc3, 35409 0x72be5d74, 35410 0x80deb1fe, 35411 0x9bdc06a7, 35412 0xc19bf174, 35413 0xe49b69c1, 35414 0xefbe4786, 35415 0x0fc19dc6, 35416 0x240ca1cc, 35417 0x2de92c6f, 35418 0x4a7484aa, 35419 0x5cb0a9dc, 35420 0x76f988da, 35421 0x983e5152, 35422 0xa831c66d, 35423 0xb00327c8, 35424 0xbf597fc7, 35425 0xc6e00bf3, 35426 0xd5a79147, 35427 0x06ca6351, 35428 0x14292967, 35429 0x27b70a85, 35430 0x2e1b2138, 35431 0x4d2c6dfc, 35432 0x53380d13, 35433 0x650a7354, 35434 0x766a0abb, 35435 0x81c2c92e, 35436 0x92722c85, 35437 0xa2bfe8a1, 35438 0xa81a664b, 35439 0xc24b8b70, 35440 0xc76c51a3, 35441 0xd192e819, 35442 0xd6990624, 35443 0xf40e3585, 35444 0x106aa070, 35445 0x19a4c116, 35446 0x1e376c08, 35447 0x2748774c, 35448 0x34b0bcb5, 35449 0x391c0cb3, 35450 0x4ed8aa4a, 35451 0x5b9cca4f, 35452 0x682e6ff3, 35453 0x748f82ee, 35454 0x78a5636f, 35455 0x84c87814, 35456 0x8cc70208, 35457 0x90befffa, 35458 0xa4506ceb, 35459 0xbef9a3f7, 35460 0xc67178f2 35461]); 35462/** 35463 * @internal 35464 */ 35465exports.INIT = [ 35466 0x6a09e667, 35467 0xbb67ae85, 35468 0x3c6ef372, 35469 0xa54ff53a, 35470 0x510e527f, 35471 0x9b05688c, 35472 0x1f83d9ab, 35473 0x5be0cd19 35474]; 35475/** 35476 * @internal 35477 */ 35478exports.MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; 35479//# sourceMappingURL=constants.js.map 35480 35481/***/ }), 35482
vendor: 680 bytes, lines 35483-35498
35483/***/ "./node_modules/@aws-crypto/sha256-js/build/index.js": 35484/*!***********************************************************!*\ 35485 !*** ./node_modules/@aws-crypto/sha256-js/build/index.js ***! 35486 \***********************************************************/ 35487/*! no static exports found */ 35488/***/ (function(module, exports, __webpack_require__) { 35489 35490"use strict"; 35491 35492Object.defineProperty(exports, "__esModule", { value: true }); 35493var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 35494tslib_1.__exportStar(__webpack_require__(/*! ./jsSha256 */ "./node_modules/@aws-crypto/sha256-js/build/jsSha256.js"), exports); 35495//# sourceMappingURL=index.js.map 35496 35497/***/ }), 35498
vendor: 3,758 bytes, lines 35499-35603
35499/***/ "./node_modules/@aws-crypto/sha256-js/build/jsSha256.js": 35500/*!**************************************************************!*\ 35501 !*** ./node_modules/@aws-crypto/sha256-js/build/jsSha256.js ***! 35502 \**************************************************************/ 35503/*! no static exports found */ 35504/***/ (function(module, exports, __webpack_require__) { 35505 35506"use strict"; 35507 35508Object.defineProperty(exports, "__esModule", { value: true }); 35509var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 35510var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-crypto/sha256-js/build/constants.js"); 35511var RawSha256_1 = __webpack_require__(/*! ./RawSha256 */ "./node_modules/@aws-crypto/sha256-js/build/RawSha256.js"); 35512var util_utf8_browser_1 = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/index.js"); 35513var Sha256 = /** @class */ (function () { 35514 function Sha256(secret) { 35515 this.hash = new RawSha256_1.RawSha256(); 35516 if (secret) { 35517 this.outer = new RawSha256_1.RawSha256(); 35518 var inner = bufferFromSecret(secret); 35519 var outer = new Uint8Array(constants_1.BLOCK_SIZE); 35520 outer.set(inner); 35521 for (var i = 0; i < constants_1.BLOCK_SIZE; i++) { 35522 inner[i] ^= 0x36; 35523 outer[i] ^= 0x5c; 35524 } 35525 this.hash.update(inner); 35526 this.outer.update(outer); 35527 // overwrite the copied key in memory 35528 for (var i = 0; i < inner.byteLength; i++) { 35529 inner[i] = 0; 35530 } 35531 } 35532 } 35533 Sha256.prototype.update = function (toHash) { 35534 if (isEmptyData(toHash) || this.error) { 35535 return; 35536 } 35537 try { 35538 this.hash.update(convertToBuffer(toHash)); 35539 } 35540 catch (e) { 35541 this.error = e; 35542 } 35543 }; 35544 /* This synchronous method keeps compatibility 35545 * with the v2 aws-sdk. 35546 */ 35547 Sha256.prototype.digestSync = function () { 35548 if (this.error) { 35549 throw this.error; 35550 } 35551 if (this.outer) { 35552 if (!this.outer.finished) { 35553 this.outer.update(this.hash.digest()); 35554 } 35555 return this.outer.digest(); 35556 } 35557 return this.hash.digest(); 35558 }; 35559 /* The underlying digest method here is synchronous. 35560 * To keep the same interface with the other hash functions 35561 * the default is to expose this as an async method. 35562 * However, it can sometimes be useful to have a sync method. 35563 */ 35564 Sha256.prototype.digest = function () { 35565 return tslib_1.__awaiter(this, void 0, void 0, function () { 35566 return tslib_1.__generator(this, function (_a) { 35567 return [2 /*return*/, this.digestSync()]; 35568 }); 35569 }); 35570 }; 35571 return Sha256; 35572}()); 35573exports.Sha256 = Sha256; 35574function bufferFromSecret(secret) { 35575 var input = convertToBuffer(secret); 35576 if (input.byteLength > constants_1.BLOCK_SIZE) { 35577 var bufferHash = new RawSha256_1.RawSha256(); 35578 bufferHash.update(input); 35579 input = bufferHash.digest(); 35580 } 35581 var buffer = new Uint8Array(constants_1.BLOCK_SIZE); 35582 buffer.set(input); 35583 return buffer; 35584} 35585function isEmptyData(data) { 35586 if (typeof data === "string") { 35587 return data.length === 0; 35588 } 35589 return data.byteLength === 0; 35590} 35591function convertToBuffer(data) { 35592 if (typeof data === "string") { 35593 return util_utf8_browser_1.fromUtf8(data); 35594 } 35595 if (ArrayBuffer.isView(data)) { 35596 return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); 35597 } 35598 return new Uint8Array(data); 35599} 35600//# sourceMappingURL=jsSha256.js.map 35601 35602/***/ }), 35603
vendor: 1,001 bytes, lines 35604-35619
35604/***/ "./node_modules/@aws-crypto/supports-web-crypto/build/index.js": 35605/*!*********************************************************************!*\ 35606 !*** ./node_modules/@aws-crypto/supports-web-crypto/build/index.js ***! 35607 \*********************************************************************/ 35608/*! no static exports found */ 35609/***/ (function(module, exports, __webpack_require__) { 35610 35611"use strict"; 35612 35613Object.defineProperty(exports, "__esModule", { value: true }); 35614var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 35615tslib_1.__exportStar(__webpack_require__(/*! ./supportsWebCrypto */ "./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js"), exports); 35616//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9zdXBwb3J0c1dlYkNyeXB0b1wiO1xuIl19 35617 35618/***/ }), 35619
vendor: 7,260 bytes, lines 35620-35698
35620/***/ "./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js": 35621/*!*********************************************************************************!*\ 35622 !*** ./node_modules/@aws-crypto/supports-web-crypto/build/supportsWebCrypto.js ***! 35623 \*********************************************************************************/ 35624/*! no static exports found */ 35625/***/ (function(module, exports, __webpack_require__) { 35626 35627"use strict"; 35628 35629Object.defineProperty(exports, "__esModule", { value: true }); 35630var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 35631var subtleCryptoMethods = [ 35632 "decrypt", 35633 "digest", 35634 "encrypt", 35635 "exportKey", 35636 "generateKey", 35637 "importKey", 35638 "sign", 35639 "verify" 35640]; 35641function supportsWebCrypto(window) { 35642 if (supportsSecureRandom(window) && 35643 typeof window.crypto.subtle === "object") { 35644 var subtle = window.crypto.subtle; 35645 return supportsSubtleCrypto(subtle); 35646 } 35647 return false; 35648} 35649exports.supportsWebCrypto = supportsWebCrypto; 35650function supportsSecureRandom(window) { 35651 if (typeof window === "object" && typeof window.crypto === "object") { 35652 var getRandomValues = window.crypto.getRandomValues; 35653 return typeof getRandomValues === "function"; 35654 } 35655 return false; 35656} 35657exports.supportsSecureRandom = supportsSecureRandom; 35658function supportsSubtleCrypto(subtle) { 35659 return (subtle && 35660 subtleCryptoMethods.every(function (methodName) { return typeof subtle[methodName] === "function"; })); 35661} 35662exports.supportsSubtleCrypto = supportsSubtleCrypto; 35663function supportsZeroByteGCM(subtle) { 35664 return tslib_1.__awaiter(this, void 0, void 0, function () { 35665 var key, zeroByteAuthTag, _a; 35666 return tslib_1.__generator(this, function (_b) { 35667 switch (_b.label) { 35668 case 0: 35669 if (!supportsSubtleCrypto(subtle)) 35670 return [2 /*return*/, false]; 35671 _b.label = 1; 35672 case 1: 35673 _b.trys.push([1, 4, , 5]); 35674 return [4 /*yield*/, subtle.generateKey({ name: "AES-GCM", length: 128 }, false, ["encrypt"])]; 35675 case 2: 35676 key = _b.sent(); 35677 return [4 /*yield*/, subtle.encrypt({ 35678 name: "AES-GCM", 35679 iv: new Uint8Array(Array(12)), 35680 additionalData: new Uint8Array(Array(16)), 35681 tagLength: 128 35682 }, key, new Uint8Array(0))]; 35683 case 3: 35684 zeroByteAuthTag = _b.sent(); 35685 return [2 /*return*/, zeroByteAuthTag.byteLength === 16]; 35686 case 4: 35687 _a = _b.sent(); 35688 return [2 /*return*/, false]; 35689 case 5: return [2 /*return*/]; 35690 } 35691 }); 35692 }); 35693} 35694exports.supportsZeroByteGCM = supportsZeroByteGCM; 35695//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydHNXZWJDcnlwdG8uanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJzdXBwb3J0c1dlYkNyeXB0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSxJQUFNLG1CQUFtQixHQUE4QjtJQUNyRCxTQUFTO0lBQ1QsUUFBUTtJQUNSLFNBQVM7SUFDVCxXQUFXO0lBQ1gsYUFBYTtJQUNiLFdBQVc7SUFDWCxNQUFNO0lBQ04sUUFBUTtDQUNULENBQUM7QUFFRixTQUFnQixpQkFBaUIsQ0FBQyxNQUFjO0lBQzlDLElBQ0Usb0JBQW9CLENBQUMsTUFBTSxDQUFDO1FBQzVCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUN4QztRQUNRLElBQUEsNkJBQU0sQ0FBbUI7UUFFakMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNyQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQVhELDhDQVdDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsTUFBYztJQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1FBQzNELElBQUEsK0NBQWUsQ0FBbUI7UUFFMUMsT0FBTyxPQUFPLGVBQWUsS0FBSyxVQUFVLENBQUM7S0FDOUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFSRCxvREFRQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLE1BQW9CO0lBQ3ZELE9BQU8sQ0FDTCxNQUFNO1FBQ04sbUJBQW1CLENBQUMsS0FBSyxDQUN2QixVQUFBLFVBQVUsSUFBSSxPQUFBLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLFVBQVUsRUFBeEMsQ0FBd0MsQ0FDdkQsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQVBELG9EQU9DO0FBRUQsU0FBc0IsbUJBQW1CLENBQUMsTUFBb0I7Ozs7OztvQkFDNUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQzt3QkFBRSxzQkFBTyxLQUFLLEVBQUM7Ozs7b0JBRWxDLHFCQUFNLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQ2hDLEtBQUssRUFDTCxDQUFDLFNBQVMsQ0FBQyxDQUNaLEVBQUE7O29CQUpLLEdBQUcsR0FBRyxTQUlYO29CQUN1QixxQkFBTSxNQUFNLENBQUMsT0FBTyxDQUMxQzs0QkFDRSxJQUFJLEVBQUUsU0FBUzs0QkFDZixFQUFFLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUM3QixjQUFjLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUN6QyxTQUFTLEVBQUUsR0FBRzt5QkFDZixFQUNELEdBQUcsRUFDSCxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FDbEIsRUFBQTs7b0JBVEssZUFBZSxHQUFHLFNBU3ZCO29CQUNELHNCQUFPLGVBQWUsQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFDOzs7b0JBRXpDLHNCQUFPLEtBQUssRUFBQzs7Ozs7Q0FFaEI7QUF0QkQsa0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBTdWJ0bGVDcnlwdG9NZXRob2QgPVxuICB8IFwiZGVjcnlwdFwiXG4gIHwgXCJkaWdlc3RcIlxuICB8IFwiZW5jcnlwdFwiXG4gIHwgXCJleHBvcnRLZXlcIlxuICB8IFwiZ2VuZXJhdGVLZXlcIlxuICB8IFwiaW1wb3J0S2V5XCJcbiAgfCBcInNpZ25cIlxuICB8IFwidmVyaWZ5XCI7XG5cbmNvbnN0IHN1YnRsZUNyeXB0b01ldGhvZHM6IEFycmF5PFN1YnRsZUNyeXB0b01ldGhvZD4gPSBbXG4gIFwiZGVjcnlwdFwiLFxuICBcImRpZ2VzdFwiLFxuICBcImVuY3J5cHRcIixcbiAgXCJleHBvcnRLZXlcIixcbiAgXCJnZW5lcmF0ZUtleVwiLFxuICBcImltcG9ydEtleVwiLFxuICBcInNpZ25cIixcbiAgXCJ2ZXJpZnlcIlxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzV2ViQ3J5cHRvKHdpbmRvdzogV2luZG93KTogYm9vbGVhbiB7XG4gIGlmIChcbiAgICBzdXBwb3J0c1NlY3VyZVJhbmRvbSh3aW5kb3cpICYmXG4gICAgdHlwZW9mIHdpbmRvdy5jcnlwdG8uc3VidGxlID09PSBcIm9iamVjdFwiXG4gICkge1xuICAgIGNvbnN0IHsgc3VidGxlIH0gPSB3aW5kb3cuY3J5cHRvO1xuXG4gICAgcmV0dXJuIHN1cHBvcnRzU3VidGxlQ3J5cHRvKHN1YnRsZSk7XG4gIH1cblxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3J0c1NlY3VyZVJhbmRvbSh3aW5kb3c6IFdpbmRvdyk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygd2luZG93LmNyeXB0byA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHsgZ2V0UmFuZG9tVmFsdWVzIH0gPSB3aW5kb3cuY3J5cHRvO1xuXG4gICAgcmV0dXJuIHR5cGVvZiBnZXRSYW5kb21WYWx1ZXMgPT09IFwiZnVuY3Rpb25cIjtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRzU3VidGxlQ3J5cHRvKHN1YnRsZTogU3VidGxlQ3J5cHRvKSB7XG4gIHJldHVybiAoXG4gICAgc3VidGxlICYmXG4gICAgc3VidGxlQ3J5cHRvTWV0aG9kcy5ldmVyeShcbiAgICAgIG1ldGhvZE5hbWUgPT4gdHlwZW9mIHN1YnRsZVttZXRob2ROYW1lXSA9PT0gXCJmdW5jdGlvblwiXG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3VwcG9ydHNaZXJvQnl0ZUdDTShzdWJ0bGU6IFN1YnRsZUNyeXB0bykge1xuICBpZiAoIXN1cHBvcnRzU3VidGxlQ3J5cHRvKHN1YnRsZSkpIHJldHVybiBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBzdWJ0bGUuZ2VuZXJhdGVLZXkoXG4gICAgICB7IG5hbWU6IFwiQUVTLUdDTVwiLCBsZW5ndGg6IDEyOCB9LFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJlbmNyeXB0XCJdXG4gICAgKTtcbiAgICBjb25zdCB6ZXJvQnl0ZUF1dGhUYWcgPSBhd2FpdCBzdWJ0bGUuZW5jcnlwdChcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJBRVMtR0NNXCIsXG4gICAgICAgIGl2OiBuZXcgVWludDhBcnJheShBcnJheSgxMikpLFxuICAgICAgICBhZGRpdGlvbmFsRGF0YTogbmV3IFVpbnQ4QXJyYXkoQXJyYXkoMTYpKSxcbiAgICAgICAgdGFnTGVuZ3RoOiAxMjhcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBuZXcgVWludDhBcnJheSgwKVxuICAgICk7XG4gICAgcmV0dXJuIHplcm9CeXRlQXV0aFRhZy5ieXRlTGVuZ3RoID09PSAxNjtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0= 35696 35697/***/ }), 35698
vendor: 21,728 bytes, lines 35699-36076
35699/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentity.js": 35700/*!**********************************************************************************!*\ 35701 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentity.js ***! 35702 \**********************************************************************************/ 35703/*! exports provided: CognitoIdentity */ 35704/***/ (function(module, __webpack_exports__, __webpack_require__) { 35705 35706"use strict"; 35707__webpack_require__.r(__webpack_exports__); 35708/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CognitoIdentity", function() { return CognitoIdentity; }); 35709/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 35710/* harmony import */ var _CognitoIdentityClient__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CognitoIdentityClient */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js"); 35711/* harmony import */ var _commands_CreateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands/CreateIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/CreateIdentityPoolCommand.js"); 35712/* harmony import */ var _commands_DeleteIdentitiesCommand__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commands/DeleteIdentitiesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentitiesCommand.js"); 35713/* harmony import */ var _commands_DeleteIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./commands/DeleteIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentityPoolCommand.js"); 35714/* harmony import */ var _commands_DescribeIdentityCommand__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./commands/DescribeIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityCommand.js"); 35715/* harmony import */ var _commands_DescribeIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./commands/DescribeIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityPoolCommand.js"); 35716/* harmony import */ var _commands_GetCredentialsForIdentityCommand__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./commands/GetCredentialsForIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js"); 35717/* harmony import */ var _commands_GetIdCommand__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./commands/GetIdCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js"); 35718/* harmony import */ var _commands_GetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./commands/GetIdentityPoolRolesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdentityPoolRolesCommand.js"); 35719/* harmony import */ var _commands_GetOpenIdTokenCommand__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./commands/GetOpenIdTokenCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenCommand.js"); 35720/* harmony import */ var _commands_GetOpenIdTokenForDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./commands/GetOpenIdTokenForDeveloperIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenForDeveloperIdentityCommand.js"); 35721/* harmony import */ var _commands_ListIdentitiesCommand__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./commands/ListIdentitiesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentitiesCommand.js"); 35722/* harmony import */ var _commands_ListIdentityPoolsCommand__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./commands/ListIdentityPoolsCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentityPoolsCommand.js"); 35723/* harmony import */ var _commands_ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./commands/ListTagsForResourceCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListTagsForResourceCommand.js"); 35724/* harmony import */ var _commands_LookupDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./commands/LookupDeveloperIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/LookupDeveloperIdentityCommand.js"); 35725/* harmony import */ var _commands_MergeDeveloperIdentitiesCommand__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./commands/MergeDeveloperIdentitiesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/MergeDeveloperIdentitiesCommand.js"); 35726/* harmony import */ var _commands_SetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./commands/SetIdentityPoolRolesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/SetIdentityPoolRolesCommand.js"); 35727/* harmony import */ var _commands_TagResourceCommand__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./commands/TagResourceCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/TagResourceCommand.js"); 35728/* harmony import */ var _commands_UnlinkDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./commands/UnlinkDeveloperIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkDeveloperIdentityCommand.js"); 35729/* harmony import */ var _commands_UnlinkIdentityCommand__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./commands/UnlinkIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkIdentityCommand.js"); 35730/* harmony import */ var _commands_UntagResourceCommand__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./commands/UntagResourceCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UntagResourceCommand.js"); 35731/* harmony import */ var _commands_UpdateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./commands/UpdateIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UpdateIdentityPoolCommand.js"); 35732 35733 35734 35735 35736 35737 35738 35739 35740 35741 35742 35743 35744 35745 35746 35747 35748 35749 35750 35751 35752 35753 35754 35755/** 35756 * <fullname>Amazon Cognito Federated Identities</fullname> 35757 * <p>Amazon Cognito Federated Identities is a web service that delivers scoped temporary 35758 * credentials to mobile devices and other untrusted environments. It uniquely identifies a 35759 * device and supplies the user with a consistent identity over the lifetime of an 35760 * application.</p> 35761 * <p>Using Amazon Cognito Federated Identities, you can enable authentication with one or 35762 * more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon 35763 * Cognito user pool, and you can also choose to support unauthenticated access from your app. 35764 * Cognito delivers a unique identifier for each user and acts as an OpenID token provider 35765 * trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS 35766 * credentials.</p> 35767 * <p>For a description of the authentication flow from the Amazon Cognito Developer Guide 35768 * see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Authentication Flow</a>.</p> 35769 * <p>For more information see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html">Amazon Cognito Federated Identities</a>.</p> 35770 */ 35771var CognitoIdentity = /** @class */ (function (_super) { 35772 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CognitoIdentity, _super); 35773 function CognitoIdentity() { 35774 return _super !== null && _super.apply(this, arguments) || this; 35775 } 35776 CognitoIdentity.prototype.createIdentityPool = function (args, optionsOrCb, cb) { 35777 var command = new _commands_CreateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_2__["CreateIdentityPoolCommand"](args); 35778 if (typeof optionsOrCb === "function") { 35779 this.send(command, optionsOrCb); 35780 } 35781 else if (typeof cb === "function") { 35782 if (typeof optionsOrCb !== "object") 35783 throw new Error("Expect http options but get " + typeof optionsOrCb); 35784 this.send(command, optionsOrCb || {}, cb); 35785 } 35786 else { 35787 return this.send(command, optionsOrCb); 35788 } 35789 }; 35790 CognitoIdentity.prototype.deleteIdentities = function (args, optionsOrCb, cb) { 35791 var command = new _commands_DeleteIdentitiesCommand__WEBPACK_IMPORTED_MODULE_3__["DeleteIdentitiesCommand"](args); 35792 if (typeof optionsOrCb === "function") { 35793 this.send(command, optionsOrCb); 35794 } 35795 else if (typeof cb === "function") { 35796 if (typeof optionsOrCb !== "object") 35797 throw new Error("Expect http options but get " + typeof optionsOrCb); 35798 this.send(command, optionsOrCb || {}, cb); 35799 } 35800 else { 35801 return this.send(command, optionsOrCb); 35802 } 35803 }; 35804 CognitoIdentity.prototype.deleteIdentityPool = function (args, optionsOrCb, cb) { 35805 var command = new _commands_DeleteIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_4__["DeleteIdentityPoolCommand"](args); 35806 if (typeof optionsOrCb === "function") { 35807 this.send(command, optionsOrCb); 35808 } 35809 else if (typeof cb === "function") { 35810 if (typeof optionsOrCb !== "object") 35811 throw new Error("Expect http options but get " + typeof optionsOrCb); 35812 this.send(command, optionsOrCb || {}, cb); 35813 } 35814 else { 35815 return this.send(command, optionsOrCb); 35816 } 35817 }; 35818 CognitoIdentity.prototype.describeIdentity = function (args, optionsOrCb, cb) { 35819 var command = new _commands_DescribeIdentityCommand__WEBPACK_IMPORTED_MODULE_5__["DescribeIdentityCommand"](args); 35820 if (typeof optionsOrCb === "function") { 35821 this.send(command, optionsOrCb); 35822 } 35823 else if (typeof cb === "function") { 35824 if (typeof optionsOrCb !== "object") 35825 throw new Error("Expect http options but get " + typeof optionsOrCb); 35826 this.send(command, optionsOrCb || {}, cb); 35827 } 35828 else { 35829 return this.send(command, optionsOrCb); 35830 } 35831 }; 35832 CognitoIdentity.prototype.describeIdentityPool = function (args, optionsOrCb, cb) { 35833 var command = new _commands_DescribeIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_6__["DescribeIdentityPoolCommand"](args); 35834 if (typeof optionsOrCb === "function") { 35835 this.send(command, optionsOrCb); 35836 } 35837 else if (typeof cb === "function") { 35838 if (typeof optionsOrCb !== "object") 35839 throw new Error("Expect http options but get " + typeof optionsOrCb); 35840 this.send(command, optionsOrCb || {}, cb); 35841 } 35842 else { 35843 return this.send(command, optionsOrCb); 35844 } 35845 }; 35846 CognitoIdentity.prototype.getCredentialsForIdentity = function (args, optionsOrCb, cb) { 35847 var command = new _commands_GetCredentialsForIdentityCommand__WEBPACK_IMPORTED_MODULE_7__["GetCredentialsForIdentityCommand"](args); 35848 if (typeof optionsOrCb === "function") { 35849 this.send(command, optionsOrCb); 35850 } 35851 else if (typeof cb === "function") { 35852 if (typeof optionsOrCb !== "object") 35853 throw new Error("Expect http options but get " + typeof optionsOrCb); 35854 this.send(command, optionsOrCb || {}, cb); 35855 } 35856 else { 35857 return this.send(command, optionsOrCb); 35858 } 35859 }; 35860 CognitoIdentity.prototype.getId = function (args, optionsOrCb, cb) { 35861 var command = new _commands_GetIdCommand__WEBPACK_IMPORTED_MODULE_8__["GetIdCommand"](args); 35862 if (typeof optionsOrCb === "function") { 35863 this.send(command, optionsOrCb); 35864 } 35865 else if (typeof cb === "function") { 35866 if (typeof optionsOrCb !== "object") 35867 throw new Error("Expect http options but get " + typeof optionsOrCb); 35868 this.send(command, optionsOrCb || {}, cb); 35869 } 35870 else { 35871 return this.send(command, optionsOrCb); 35872 } 35873 }; 35874 CognitoIdentity.prototype.getIdentityPoolRoles = function (args, optionsOrCb, cb) { 35875 var command = new _commands_GetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_9__["GetIdentityPoolRolesCommand"](args); 35876 if (typeof optionsOrCb === "function") { 35877 this.send(command, optionsOrCb); 35878 } 35879 else if (typeof cb === "function") { 35880 if (typeof optionsOrCb !== "object") 35881 throw new Error("Expect http options but get " + typeof optionsOrCb); 35882 this.send(command, optionsOrCb || {}, cb); 35883 } 35884 else { 35885 return this.send(command, optionsOrCb); 35886 } 35887 }; 35888 CognitoIdentity.prototype.getOpenIdToken = function (args, optionsOrCb, cb) { 35889 var command = new _commands_GetOpenIdTokenCommand__WEBPACK_IMPORTED_MODULE_10__["GetOpenIdTokenCommand"](args); 35890 if (typeof optionsOrCb === "function") { 35891 this.send(command, optionsOrCb); 35892 } 35893 else if (typeof cb === "function") { 35894 if (typeof optionsOrCb !== "object") 35895 throw new Error("Expect http options but get " + typeof optionsOrCb); 35896 this.send(command, optionsOrCb || {}, cb); 35897 } 35898 else { 35899 return this.send(command, optionsOrCb); 35900 } 35901 }; 35902 CognitoIdentity.prototype.getOpenIdTokenForDeveloperIdentity = function (args, optionsOrCb, cb) { 35903 var command = new _commands_GetOpenIdTokenForDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_11__["GetOpenIdTokenForDeveloperIdentityCommand"](args); 35904 if (typeof optionsOrCb === "function") { 35905 this.send(command, optionsOrCb); 35906 } 35907 else if (typeof cb === "function") { 35908 if (typeof optionsOrCb !== "object") 35909 throw new Error("Expect http options but get " + typeof optionsOrCb); 35910 this.send(command, optionsOrCb || {}, cb); 35911 } 35912 else { 35913 return this.send(command, optionsOrCb); 35914 } 35915 }; 35916 CognitoIdentity.prototype.listIdentities = function (args, optionsOrCb, cb) { 35917 var command = new _commands_ListIdentitiesCommand__WEBPACK_IMPORTED_MODULE_12__["ListIdentitiesCommand"](args); 35918 if (typeof optionsOrCb === "function") { 35919 this.send(command, optionsOrCb); 35920 } 35921 else if (typeof cb === "function") { 35922 if (typeof optionsOrCb !== "object") 35923 throw new Error("Expect http options but get " + typeof optionsOrCb); 35924 this.send(command, optionsOrCb || {}, cb); 35925 } 35926 else { 35927 return this.send(command, optionsOrCb); 35928 } 35929 }; 35930 CognitoIdentity.prototype.listIdentityPools = function (args, optionsOrCb, cb) { 35931 var command = new _commands_ListIdentityPoolsCommand__WEBPACK_IMPORTED_MODULE_13__["ListIdentityPoolsCommand"](args); 35932 if (typeof optionsOrCb === "function") { 35933 this.send(command, optionsOrCb); 35934 } 35935 else if (typeof cb === "function") { 35936 if (typeof optionsOrCb !== "object") 35937 throw new Error("Expect http options but get " + typeof optionsOrCb); 35938 this.send(command, optionsOrCb || {}, cb); 35939 } 35940 else { 35941 return this.send(command, optionsOrCb); 35942 } 35943 }; 35944 CognitoIdentity.prototype.listTagsForResource = function (args, optionsOrCb, cb) { 35945 var command = new _commands_ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_14__["ListTagsForResourceCommand"](args); 35946 if (typeof optionsOrCb === "function") { 35947 this.send(command, optionsOrCb); 35948 } 35949 else if (typeof cb === "function") { 35950 if (typeof optionsOrCb !== "object") 35951 throw new Error("Expect http options but get " + typeof optionsOrCb); 35952 this.send(command, optionsOrCb || {}, cb); 35953 } 35954 else { 35955 return this.send(command, optionsOrCb); 35956 } 35957 }; 35958 CognitoIdentity.prototype.lookupDeveloperIdentity = function (args, optionsOrCb, cb) { 35959 var command = new _commands_LookupDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_15__["LookupDeveloperIdentityCommand"](args); 35960 if (typeof optionsOrCb === "function") { 35961 this.send(command, optionsOrCb); 35962 } 35963 else if (typeof cb === "function") { 35964 if (typeof optionsOrCb !== "object") 35965 throw new Error("Expect http options but get " + typeof optionsOrCb); 35966 this.send(command, optionsOrCb || {}, cb); 35967 } 35968 else { 35969 return this.send(command, optionsOrCb); 35970 } 35971 }; 35972 CognitoIdentity.prototype.mergeDeveloperIdentities = function (args, optionsOrCb, cb) { 35973 var command = new _commands_MergeDeveloperIdentitiesCommand__WEBPACK_IMPORTED_MODULE_16__["MergeDeveloperIdentitiesCommand"](args); 35974 if (typeof optionsOrCb === "function") { 35975 this.send(command, optionsOrCb); 35976 } 35977 else if (typeof cb === "function") { 35978 if (typeof optionsOrCb !== "object") 35979 throw new Error("Expect http options but get " + typeof optionsOrCb); 35980 this.send(command, optionsOrCb || {}, cb); 35981 } 35982 else { 35983 return this.send(command, optionsOrCb); 35984 } 35985 }; 35986 CognitoIdentity.prototype.setIdentityPoolRoles = function (args, optionsOrCb, cb) { 35987 var command = new _commands_SetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_17__["SetIdentityPoolRolesCommand"](args); 35988 if (typeof optionsOrCb === "function") { 35989 this.send(command, optionsOrCb); 35990 } 35991 else if (typeof cb === "function") { 35992 if (typeof optionsOrCb !== "object") 35993 throw new Error("Expect http options but get " + typeof optionsOrCb); 35994 this.send(command, optionsOrCb || {}, cb); 35995 } 35996 else { 35997 return this.send(command, optionsOrCb); 35998 } 35999 }; 36000 CognitoIdentity.prototype.tagResource = function (args, optionsOrCb, cb) { 36001 var command = new _commands_TagResourceCommand__WEBPACK_IMPORTED_MODULE_18__["TagResourceCommand"](args); 36002 if (typeof optionsOrCb === "function") { 36003 this.send(command, optionsOrCb); 36004 } 36005 else if (typeof cb === "function") { 36006 if (typeof optionsOrCb !== "object") 36007 throw new Error("Expect http options but get " + typeof optionsOrCb); 36008 this.send(command, optionsOrCb || {}, cb); 36009 } 36010 else { 36011 return this.send(command, optionsOrCb); 36012 } 36013 }; 36014 CognitoIdentity.prototype.unlinkDeveloperIdentity = function (args, optionsOrCb, cb) { 36015 var command = new _commands_UnlinkDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_19__["UnlinkDeveloperIdentityCommand"](args); 36016 if (typeof optionsOrCb === "function") { 36017 this.send(command, optionsOrCb); 36018 } 36019 else if (typeof cb === "function") { 36020 if (typeof optionsOrCb !== "object") 36021 throw new Error("Expect http options but get " + typeof optionsOrCb); 36022 this.send(command, optionsOrCb || {}, cb); 36023 } 36024 else { 36025 return this.send(command, optionsOrCb); 36026 } 36027 }; 36028 CognitoIdentity.prototype.unlinkIdentity = function (args, optionsOrCb, cb) { 36029 var command = new _commands_UnlinkIdentityCommand__WEBPACK_IMPORTED_MODULE_20__["UnlinkIdentityCommand"](args); 36030 if (typeof optionsOrCb === "function") { 36031 this.send(command, optionsOrCb); 36032 } 36033 else if (typeof cb === "function") { 36034 if (typeof optionsOrCb !== "object") 36035 throw new Error("Expect http options but get " + typeof optionsOrCb); 36036 this.send(command, optionsOrCb || {}, cb); 36037 } 36038 else { 36039 return this.send(command, optionsOrCb); 36040 } 36041 }; 36042 CognitoIdentity.prototype.untagResource = function (args, optionsOrCb, cb) { 36043 var command = new _commands_UntagResourceCommand__WEBPACK_IMPORTED_MODULE_21__["UntagResourceCommand"](args); 36044 if (typeof optionsOrCb === "function") { 36045 this.send(command, optionsOrCb); 36046 } 36047 else if (typeof cb === "function") { 36048 if (typeof optionsOrCb !== "object") 36049 throw new Error("Expect http options but get " + typeof optionsOrCb); 36050 this.send(command, optionsOrCb || {}, cb); 36051 } 36052 else { 36053 return this.send(command, optionsOrCb); 36054 } 36055 }; 36056 CognitoIdentity.prototype.updateIdentityPool = function (args, optionsOrCb, cb) { 36057 var command = new _commands_UpdateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_22__["UpdateIdentityPoolCommand"](args); 36058 if (typeof optionsOrCb === "function") { 36059 this.send(command, optionsOrCb); 36060 } 36061 else if (typeof cb === "function") { 36062 if (typeof optionsOrCb !== "object") 36063 throw new Error("Expect http options but get " + typeof optionsOrCb); 36064 this.send(command, optionsOrCb || {}, cb); 36065 } 36066 else { 36067 return this.send(command, optionsOrCb); 36068 } 36069 }; 36070 return CognitoIdentity; 36071}(_CognitoIdentityClient__WEBPACK_IMPORTED_MODULE_1__["CognitoIdentityClient"])); 36072 36073//# sourceMappingURL=CognitoIdentity.js.map 36074 36075/***/ }), 36076
vendor: 7,280 bytes, lines 36077-36156
36077/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js": 36078/*!****************************************************************************************!*\ 36079 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js ***! 36080 \****************************************************************************************/ 36081/*! exports provided: CognitoIdentityClient */ 36082/***/ (function(module, __webpack_exports__, __webpack_require__) { 36083 36084"use strict"; 36085__webpack_require__.r(__webpack_exports__); 36086/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CognitoIdentityClient", function() { return CognitoIdentityClient; }); 36087/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36088/* harmony import */ var _runtimeConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./runtimeConfig */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js"); 36089/* harmony import */ var _aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/config-resolver */ "./node_modules/@aws-sdk/config-resolver/dist/cjs/index.js"); 36090/* harmony import */ var _aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_2__); 36091/* harmony import */ var _aws_sdk_middleware_content_length__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-content-length */ "./node_modules/@aws-sdk/middleware-content-length/dist/cjs/index.js"); 36092/* harmony import */ var _aws_sdk_middleware_content_length__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_content_length__WEBPACK_IMPORTED_MODULE_3__); 36093/* harmony import */ var _aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/middleware-host-header */ "./node_modules/@aws-sdk/middleware-host-header/dist/cjs/index.js"); 36094/* harmony import */ var _aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_4__); 36095/* harmony import */ var _aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @aws-sdk/middleware-retry */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/index.js"); 36096/* harmony import */ var _aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_5__); 36097/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36098/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_6__); 36099/* harmony import */ var _aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-sdk/middleware-user-agent */ "./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/index.js"); 36100/* harmony import */ var _aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_7__); 36101/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36102/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_8__); 36103 36104 36105 36106 36107 36108 36109 36110 36111 36112/** 36113 * <fullname>Amazon Cognito Federated Identities</fullname> 36114 * <p>Amazon Cognito Federated Identities is a web service that delivers scoped temporary 36115 * credentials to mobile devices and other untrusted environments. It uniquely identifies a 36116 * device and supplies the user with a consistent identity over the lifetime of an 36117 * application.</p> 36118 * <p>Using Amazon Cognito Federated Identities, you can enable authentication with one or 36119 * more third-party identity providers (Facebook, Google, or Login with Amazon) or an Amazon 36120 * Cognito user pool, and you can also choose to support unauthenticated access from your app. 36121 * Cognito delivers a unique identifier for each user and acts as an OpenID token provider 36122 * trusted by AWS Security Token Service (STS) to access temporary, limited-privilege AWS 36123 * credentials.</p> 36124 * <p>For a description of the authentication flow from the Amazon Cognito Developer Guide 36125 * see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html">Authentication Flow</a>.</p> 36126 * <p>For more information see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html">Amazon Cognito Federated Identities</a>.</p> 36127 */ 36128var CognitoIdentityClient = /** @class */ (function (_super) { 36129 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CognitoIdentityClient, _super); 36130 function CognitoIdentityClient(configuration) { 36131 var _this = this; 36132 var _config_0 = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, _runtimeConfig__WEBPACK_IMPORTED_MODULE_1__["ClientDefaultValues"]), configuration); 36133 var _config_1 = Object(_aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_2__["resolveRegionConfig"])(_config_0); 36134 var _config_2 = Object(_aws_sdk_config_resolver__WEBPACK_IMPORTED_MODULE_2__["resolveEndpointsConfig"])(_config_1); 36135 var _config_3 = Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_6__["resolveAwsAuthConfig"])(_config_2); 36136 var _config_4 = Object(_aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_5__["resolveRetryConfig"])(_config_3); 36137 var _config_5 = Object(_aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_7__["resolveUserAgentConfig"])(_config_4); 36138 var _config_6 = Object(_aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_4__["resolveHostHeaderConfig"])(_config_5); 36139 _this = _super.call(this, _config_6) || this; 36140 _this.config = _config_6; 36141 _this.middlewareStack.use(Object(_aws_sdk_middleware_retry__WEBPACK_IMPORTED_MODULE_5__["getRetryPlugin"])(_this.config)); 36142 _this.middlewareStack.use(Object(_aws_sdk_middleware_user_agent__WEBPACK_IMPORTED_MODULE_7__["getUserAgentPlugin"])(_this.config)); 36143 _this.middlewareStack.use(Object(_aws_sdk_middleware_content_length__WEBPACK_IMPORTED_MODULE_3__["getContentLengthPlugin"])(_this.config)); 36144 _this.middlewareStack.use(Object(_aws_sdk_middleware_host_header__WEBPACK_IMPORTED_MODULE_4__["getHostHeaderPlugin"])(_this.config)); 36145 return _this; 36146 } 36147 CognitoIdentityClient.prototype.destroy = function () { 36148 _super.prototype.destroy.call(this); 36149 }; 36150 return CognitoIdentityClient; 36151}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_8__["Client"])); 36152 36153//# sourceMappingURL=CognitoIdentityClient.js.map 36154 36155/***/ }), 36156
vendor: 4,146 bytes, lines 36157-36216
36157/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/CreateIdentityPoolCommand.js": 36158/*!*****************************************************************************************************!*\ 36159 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/CreateIdentityPoolCommand.js ***! 36160 \*****************************************************************************************************/ 36161/*! exports provided: CreateIdentityPoolCommand */ 36162/***/ (function(module, __webpack_exports__, __webpack_require__) { 36163 36164"use strict"; 36165__webpack_require__.r(__webpack_exports__); 36166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CreateIdentityPoolCommand", function() { return CreateIdentityPoolCommand; }); 36167/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36168/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36169/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36170/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36171/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36172/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36173/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36174/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36175 36176 36177 36178 36179 36180var CreateIdentityPoolCommand = /** @class */ (function (_super) { 36181 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CreateIdentityPoolCommand, _super); 36182 // Start section: command_properties 36183 // End section: command_properties 36184 function CreateIdentityPoolCommand(input) { 36185 var _this = 36186 // Start section: command_constructor 36187 _super.call(this) || this; 36188 _this.input = input; 36189 return _this; 36190 // End section: command_constructor 36191 } 36192 CreateIdentityPoolCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36193 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36194 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36195 var stack = clientStack.concat(this.middlewareStack); 36196 var handlerExecutionContext = { 36197 logger: {}, 36198 }; 36199 var requestHandler = configuration.requestHandler; 36200 return stack.resolve(function (request) { 36201 return requestHandler.handle(request.request, options || {}); 36202 }, handlerExecutionContext); 36203 }; 36204 CreateIdentityPoolCommand.prototype.serialize = function (input, context) { 36205 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1CreateIdentityPoolCommand"])(input, context); 36206 }; 36207 CreateIdentityPoolCommand.prototype.deserialize = function (output, context) { 36208 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1CreateIdentityPoolCommand"])(output, context); 36209 }; 36210 return CreateIdentityPoolCommand; 36211}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36212 36213//# sourceMappingURL=CreateIdentityPoolCommand.js.map 36214 36215/***/ }), 36216
vendor: 4,112 bytes, lines 36217-36276
36217/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentitiesCommand.js": 36218/*!***************************************************************************************************!*\ 36219 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentitiesCommand.js ***! 36220 \***************************************************************************************************/ 36221/*! exports provided: DeleteIdentitiesCommand */ 36222/***/ (function(module, __webpack_exports__, __webpack_require__) { 36223 36224"use strict"; 36225__webpack_require__.r(__webpack_exports__); 36226/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentitiesCommand", function() { return DeleteIdentitiesCommand; }); 36227/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36228/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36229/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36230/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36231/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36232/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36233/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36234/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36235 36236 36237 36238 36239 36240var DeleteIdentitiesCommand = /** @class */ (function (_super) { 36241 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DeleteIdentitiesCommand, _super); 36242 // Start section: command_properties 36243 // End section: command_properties 36244 function DeleteIdentitiesCommand(input) { 36245 var _this = 36246 // Start section: command_constructor 36247 _super.call(this) || this; 36248 _this.input = input; 36249 return _this; 36250 // End section: command_constructor 36251 } 36252 DeleteIdentitiesCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36253 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36254 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36255 var stack = clientStack.concat(this.middlewareStack); 36256 var handlerExecutionContext = { 36257 logger: {}, 36258 }; 36259 var requestHandler = configuration.requestHandler; 36260 return stack.resolve(function (request) { 36261 return requestHandler.handle(request.request, options || {}); 36262 }, handlerExecutionContext); 36263 }; 36264 DeleteIdentitiesCommand.prototype.serialize = function (input, context) { 36265 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1DeleteIdentitiesCommand"])(input, context); 36266 }; 36267 DeleteIdentitiesCommand.prototype.deserialize = function (output, context) { 36268 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1DeleteIdentitiesCommand"])(output, context); 36269 }; 36270 return DeleteIdentitiesCommand; 36271}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36272 36273//# sourceMappingURL=DeleteIdentitiesCommand.js.map 36274 36275/***/ }), 36276
vendor: 4,146 bytes, lines 36277-36336
36277/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentityPoolCommand.js": 36278/*!*****************************************************************************************************!*\ 36279 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentityPoolCommand.js ***! 36280 \*****************************************************************************************************/ 36281/*! exports provided: DeleteIdentityPoolCommand */ 36282/***/ (function(module, __webpack_exports__, __webpack_require__) { 36283 36284"use strict"; 36285__webpack_require__.r(__webpack_exports__); 36286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentityPoolCommand", function() { return DeleteIdentityPoolCommand; }); 36287/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36288/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36289/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36290/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36291/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36292/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36293/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36294/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36295 36296 36297 36298 36299 36300var DeleteIdentityPoolCommand = /** @class */ (function (_super) { 36301 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DeleteIdentityPoolCommand, _super); 36302 // Start section: command_properties 36303 // End section: command_properties 36304 function DeleteIdentityPoolCommand(input) { 36305 var _this = 36306 // Start section: command_constructor 36307 _super.call(this) || this; 36308 _this.input = input; 36309 return _this; 36310 // End section: command_constructor 36311 } 36312 DeleteIdentityPoolCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36313 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36314 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36315 var stack = clientStack.concat(this.middlewareStack); 36316 var handlerExecutionContext = { 36317 logger: {}, 36318 }; 36319 var requestHandler = configuration.requestHandler; 36320 return stack.resolve(function (request) { 36321 return requestHandler.handle(request.request, options || {}); 36322 }, handlerExecutionContext); 36323 }; 36324 DeleteIdentityPoolCommand.prototype.serialize = function (input, context) { 36325 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1DeleteIdentityPoolCommand"])(input, context); 36326 }; 36327 DeleteIdentityPoolCommand.prototype.deserialize = function (output, context) { 36328 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1DeleteIdentityPoolCommand"])(output, context); 36329 }; 36330 return DeleteIdentityPoolCommand; 36331}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36332 36333//# sourceMappingURL=DeleteIdentityPoolCommand.js.map 36334 36335/***/ }), 36336
vendor: 4,112 bytes, lines 36337-36396
36337/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityCommand.js": 36338/*!***************************************************************************************************!*\ 36339 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityCommand.js ***! 36340 \***************************************************************************************************/ 36341/*! exports provided: DescribeIdentityCommand */ 36342/***/ (function(module, __webpack_exports__, __webpack_require__) { 36343 36344"use strict"; 36345__webpack_require__.r(__webpack_exports__); 36346/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityCommand", function() { return DescribeIdentityCommand; }); 36347/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36348/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36349/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36350/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36351/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36352/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36353/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36354/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36355 36356 36357 36358 36359 36360var DescribeIdentityCommand = /** @class */ (function (_super) { 36361 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DescribeIdentityCommand, _super); 36362 // Start section: command_properties 36363 // End section: command_properties 36364 function DescribeIdentityCommand(input) { 36365 var _this = 36366 // Start section: command_constructor 36367 _super.call(this) || this; 36368 _this.input = input; 36369 return _this; 36370 // End section: command_constructor 36371 } 36372 DescribeIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36373 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36374 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36375 var stack = clientStack.concat(this.middlewareStack); 36376 var handlerExecutionContext = { 36377 logger: {}, 36378 }; 36379 var requestHandler = configuration.requestHandler; 36380 return stack.resolve(function (request) { 36381 return requestHandler.handle(request.request, options || {}); 36382 }, handlerExecutionContext); 36383 }; 36384 DescribeIdentityCommand.prototype.serialize = function (input, context) { 36385 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1DescribeIdentityCommand"])(input, context); 36386 }; 36387 DescribeIdentityCommand.prototype.deserialize = function (output, context) { 36388 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1DescribeIdentityCommand"])(output, context); 36389 }; 36390 return DescribeIdentityCommand; 36391}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36392 36393//# sourceMappingURL=DescribeIdentityCommand.js.map 36394 36395/***/ }), 36396
vendor: 4,180 bytes, lines 36397-36456
36397/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityPoolCommand.js": 36398/*!*******************************************************************************************************!*\ 36399 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityPoolCommand.js ***! 36400 \*******************************************************************************************************/ 36401/*! exports provided: DescribeIdentityPoolCommand */ 36402/***/ (function(module, __webpack_exports__, __webpack_require__) { 36403 36404"use strict"; 36405__webpack_require__.r(__webpack_exports__); 36406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityPoolCommand", function() { return DescribeIdentityPoolCommand; }); 36407/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36408/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36409/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36410/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36411/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36412/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36413/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36414/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36415 36416 36417 36418 36419 36420var DescribeIdentityPoolCommand = /** @class */ (function (_super) { 36421 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(DescribeIdentityPoolCommand, _super); 36422 // Start section: command_properties 36423 // End section: command_properties 36424 function DescribeIdentityPoolCommand(input) { 36425 var _this = 36426 // Start section: command_constructor 36427 _super.call(this) || this; 36428 _this.input = input; 36429 return _this; 36430 // End section: command_constructor 36431 } 36432 DescribeIdentityPoolCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36433 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36434 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36435 var stack = clientStack.concat(this.middlewareStack); 36436 var handlerExecutionContext = { 36437 logger: {}, 36438 }; 36439 var requestHandler = configuration.requestHandler; 36440 return stack.resolve(function (request) { 36441 return requestHandler.handle(request.request, options || {}); 36442 }, handlerExecutionContext); 36443 }; 36444 DescribeIdentityPoolCommand.prototype.serialize = function (input, context) { 36445 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1DescribeIdentityPoolCommand"])(input, context); 36446 }; 36447 DescribeIdentityPoolCommand.prototype.deserialize = function (output, context) { 36448 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1DescribeIdentityPoolCommand"])(output, context); 36449 }; 36450 return DescribeIdentityPoolCommand; 36451}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36452 36453//# sourceMappingURL=DescribeIdentityPoolCommand.js.map 36454 36455/***/ }), 36456
vendor: 3,739 bytes, lines 36457-36512
36457/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js": 36458/*!************************************************************************************************************!*\ 36459 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js ***! 36460 \************************************************************************************************************/ 36461/*! exports provided: GetCredentialsForIdentityCommand */ 36462/***/ (function(module, __webpack_exports__, __webpack_require__) { 36463 36464"use strict"; 36465__webpack_require__.r(__webpack_exports__); 36466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetCredentialsForIdentityCommand", function() { return GetCredentialsForIdentityCommand; }); 36467/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36468/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36469/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36470/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36471/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36472/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__); 36473 36474 36475 36476 36477var GetCredentialsForIdentityCommand = /** @class */ (function (_super) { 36478 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GetCredentialsForIdentityCommand, _super); 36479 // Start section: command_properties 36480 // End section: command_properties 36481 function GetCredentialsForIdentityCommand(input) { 36482 var _this = 36483 // Start section: command_constructor 36484 _super.call(this) || this; 36485 _this.input = input; 36486 return _this; 36487 // End section: command_constructor 36488 } 36489 GetCredentialsForIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36490 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36491 var stack = clientStack.concat(this.middlewareStack); 36492 var handlerExecutionContext = { 36493 logger: {}, 36494 }; 36495 var requestHandler = configuration.requestHandler; 36496 return stack.resolve(function (request) { 36497 return requestHandler.handle(request.request, options || {}); 36498 }, handlerExecutionContext); 36499 }; 36500 GetCredentialsForIdentityCommand.prototype.serialize = function (input, context) { 36501 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1GetCredentialsForIdentityCommand"])(input, context); 36502 }; 36503 GetCredentialsForIdentityCommand.prototype.deserialize = function (output, context) { 36504 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1GetCredentialsForIdentityCommand"])(output, context); 36505 }; 36506 return GetCredentialsForIdentityCommand; 36507}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__["Command"])); 36508 36509//# sourceMappingURL=GetCredentialsForIdentityCommand.js.map 36510 36511/***/ }), 36512
vendor: 3,399 bytes, lines 36513-36568
36513/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js": 36514/*!****************************************************************************************!*\ 36515 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js ***! 36516 \****************************************************************************************/ 36517/*! exports provided: GetIdCommand */ 36518/***/ (function(module, __webpack_exports__, __webpack_require__) { 36519 36520"use strict"; 36521__webpack_require__.r(__webpack_exports__); 36522/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetIdCommand", function() { return GetIdCommand; }); 36523/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36524/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36525/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36526/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36527/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36528/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__); 36529 36530 36531 36532 36533var GetIdCommand = /** @class */ (function (_super) { 36534 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GetIdCommand, _super); 36535 // Start section: command_properties 36536 // End section: command_properties 36537 function GetIdCommand(input) { 36538 var _this = 36539 // Start section: command_constructor 36540 _super.call(this) || this; 36541 _this.input = input; 36542 return _this; 36543 // End section: command_constructor 36544 } 36545 GetIdCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36546 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36547 var stack = clientStack.concat(this.middlewareStack); 36548 var handlerExecutionContext = { 36549 logger: {}, 36550 }; 36551 var requestHandler = configuration.requestHandler; 36552 return stack.resolve(function (request) { 36553 return requestHandler.handle(request.request, options || {}); 36554 }, handlerExecutionContext); 36555 }; 36556 GetIdCommand.prototype.serialize = function (input, context) { 36557 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1GetIdCommand"])(input, context); 36558 }; 36559 GetIdCommand.prototype.deserialize = function (output, context) { 36560 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1GetIdCommand"])(output, context); 36561 }; 36562 return GetIdCommand; 36563}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__["Command"])); 36564 36565//# sourceMappingURL=GetIdCommand.js.map 36566 36567/***/ }), 36568
vendor: 4,180 bytes, lines 36569-36628
36569/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdentityPoolRolesCommand.js": 36570/*!*******************************************************************************************************!*\ 36571 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdentityPoolRolesCommand.js ***! 36572 \*******************************************************************************************************/ 36573/*! exports provided: GetIdentityPoolRolesCommand */ 36574/***/ (function(module, __webpack_exports__, __webpack_require__) { 36575 36576"use strict"; 36577__webpack_require__.r(__webpack_exports__); 36578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetIdentityPoolRolesCommand", function() { return GetIdentityPoolRolesCommand; }); 36579/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36580/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36581/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36582/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36583/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36584/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36585/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36586/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36587 36588 36589 36590 36591 36592var GetIdentityPoolRolesCommand = /** @class */ (function (_super) { 36593 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GetIdentityPoolRolesCommand, _super); 36594 // Start section: command_properties 36595 // End section: command_properties 36596 function GetIdentityPoolRolesCommand(input) { 36597 var _this = 36598 // Start section: command_constructor 36599 _super.call(this) || this; 36600 _this.input = input; 36601 return _this; 36602 // End section: command_constructor 36603 } 36604 GetIdentityPoolRolesCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36605 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36606 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36607 var stack = clientStack.concat(this.middlewareStack); 36608 var handlerExecutionContext = { 36609 logger: {}, 36610 }; 36611 var requestHandler = configuration.requestHandler; 36612 return stack.resolve(function (request) { 36613 return requestHandler.handle(request.request, options || {}); 36614 }, handlerExecutionContext); 36615 }; 36616 GetIdentityPoolRolesCommand.prototype.serialize = function (input, context) { 36617 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1GetIdentityPoolRolesCommand"])(input, context); 36618 }; 36619 GetIdentityPoolRolesCommand.prototype.deserialize = function (output, context) { 36620 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1GetIdentityPoolRolesCommand"])(output, context); 36621 }; 36622 return GetIdentityPoolRolesCommand; 36623}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36624 36625//# sourceMappingURL=GetIdentityPoolRolesCommand.js.map 36626 36627/***/ }), 36628
vendor: 3,552 bytes, lines 36629-36684
36629/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenCommand.js": 36630/*!*************************************************************************************************!*\ 36631 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenCommand.js ***! 36632 \*************************************************************************************************/ 36633/*! exports provided: GetOpenIdTokenCommand */ 36634/***/ (function(module, __webpack_exports__, __webpack_require__) { 36635 36636"use strict"; 36637__webpack_require__.r(__webpack_exports__); 36638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenCommand", function() { return GetOpenIdTokenCommand; }); 36639/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36640/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36641/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36642/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36643/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36644/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__); 36645 36646 36647 36648 36649var GetOpenIdTokenCommand = /** @class */ (function (_super) { 36650 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GetOpenIdTokenCommand, _super); 36651 // Start section: command_properties 36652 // End section: command_properties 36653 function GetOpenIdTokenCommand(input) { 36654 var _this = 36655 // Start section: command_constructor 36656 _super.call(this) || this; 36657 _this.input = input; 36658 return _this; 36659 // End section: command_constructor 36660 } 36661 GetOpenIdTokenCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36662 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36663 var stack = clientStack.concat(this.middlewareStack); 36664 var handlerExecutionContext = { 36665 logger: {}, 36666 }; 36667 var requestHandler = configuration.requestHandler; 36668 return stack.resolve(function (request) { 36669 return requestHandler.handle(request.request, options || {}); 36670 }, handlerExecutionContext); 36671 }; 36672 GetOpenIdTokenCommand.prototype.serialize = function (input, context) { 36673 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1GetOpenIdTokenCommand"])(input, context); 36674 }; 36675 GetOpenIdTokenCommand.prototype.deserialize = function (output, context) { 36676 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1GetOpenIdTokenCommand"])(output, context); 36677 }; 36678 return GetOpenIdTokenCommand; 36679}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_3__["Command"])); 36680 36681//# sourceMappingURL=GetOpenIdTokenCommand.js.map 36682 36683/***/ }), 36684
vendor: 4,418 bytes, lines 36685-36744
36685/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenForDeveloperIdentityCommand.js": 36686/*!*********************************************************************************************************************!*\ 36687 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenForDeveloperIdentityCommand.js ***! 36688 \*********************************************************************************************************************/ 36689/*! exports provided: GetOpenIdTokenForDeveloperIdentityCommand */ 36690/***/ (function(module, __webpack_exports__, __webpack_require__) { 36691 36692"use strict"; 36693__webpack_require__.r(__webpack_exports__); 36694/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenForDeveloperIdentityCommand", function() { return GetOpenIdTokenForDeveloperIdentityCommand; }); 36695/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36696/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36697/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36698/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36699/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36700/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36701/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36702/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36703 36704 36705 36706 36707 36708var GetOpenIdTokenForDeveloperIdentityCommand = /** @class */ (function (_super) { 36709 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GetOpenIdTokenForDeveloperIdentityCommand, _super); 36710 // Start section: command_properties 36711 // End section: command_properties 36712 function GetOpenIdTokenForDeveloperIdentityCommand(input) { 36713 var _this = 36714 // Start section: command_constructor 36715 _super.call(this) || this; 36716 _this.input = input; 36717 return _this; 36718 // End section: command_constructor 36719 } 36720 GetOpenIdTokenForDeveloperIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36721 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36722 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36723 var stack = clientStack.concat(this.middlewareStack); 36724 var handlerExecutionContext = { 36725 logger: {}, 36726 }; 36727 var requestHandler = configuration.requestHandler; 36728 return stack.resolve(function (request) { 36729 return requestHandler.handle(request.request, options || {}); 36730 }, handlerExecutionContext); 36731 }; 36732 GetOpenIdTokenForDeveloperIdentityCommand.prototype.serialize = function (input, context) { 36733 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand"])(input, context); 36734 }; 36735 GetOpenIdTokenForDeveloperIdentityCommand.prototype.deserialize = function (output, context) { 36736 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand"])(output, context); 36737 }; 36738 return GetOpenIdTokenForDeveloperIdentityCommand; 36739}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36740 36741//# sourceMappingURL=GetOpenIdTokenForDeveloperIdentityCommand.js.map 36742 36743/***/ }), 36744
vendor: 4,078 bytes, lines 36745-36804
36745/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentitiesCommand.js": 36746/*!*************************************************************************************************!*\ 36747 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentitiesCommand.js ***! 36748 \*************************************************************************************************/ 36749/*! exports provided: ListIdentitiesCommand */ 36750/***/ (function(module, __webpack_exports__, __webpack_require__) { 36751 36752"use strict"; 36753__webpack_require__.r(__webpack_exports__); 36754/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListIdentitiesCommand", function() { return ListIdentitiesCommand; }); 36755/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36756/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36757/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36758/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36759/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36760/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36761/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36762/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36763 36764 36765 36766 36767 36768var ListIdentitiesCommand = /** @class */ (function (_super) { 36769 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ListIdentitiesCommand, _super); 36770 // Start section: command_properties 36771 // End section: command_properties 36772 function ListIdentitiesCommand(input) { 36773 var _this = 36774 // Start section: command_constructor 36775 _super.call(this) || this; 36776 _this.input = input; 36777 return _this; 36778 // End section: command_constructor 36779 } 36780 ListIdentitiesCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36781 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36782 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36783 var stack = clientStack.concat(this.middlewareStack); 36784 var handlerExecutionContext = { 36785 logger: {}, 36786 }; 36787 var requestHandler = configuration.requestHandler; 36788 return stack.resolve(function (request) { 36789 return requestHandler.handle(request.request, options || {}); 36790 }, handlerExecutionContext); 36791 }; 36792 ListIdentitiesCommand.prototype.serialize = function (input, context) { 36793 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1ListIdentitiesCommand"])(input, context); 36794 }; 36795 ListIdentitiesCommand.prototype.deserialize = function (output, context) { 36796 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1ListIdentitiesCommand"])(output, context); 36797 }; 36798 return ListIdentitiesCommand; 36799}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36800 36801//# sourceMappingURL=ListIdentitiesCommand.js.map 36802 36803/***/ }), 36804
vendor: 4,129 bytes, lines 36805-36864
36805/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentityPoolsCommand.js": 36806/*!****************************************************************************************************!*\ 36807 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentityPoolsCommand.js ***! 36808 \****************************************************************************************************/ 36809/*! exports provided: ListIdentityPoolsCommand */ 36810/***/ (function(module, __webpack_exports__, __webpack_require__) { 36811 36812"use strict"; 36813__webpack_require__.r(__webpack_exports__); 36814/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListIdentityPoolsCommand", function() { return ListIdentityPoolsCommand; }); 36815/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36816/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36817/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36818/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36819/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36820/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36821/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36822/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36823 36824 36825 36826 36827 36828var ListIdentityPoolsCommand = /** @class */ (function (_super) { 36829 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ListIdentityPoolsCommand, _super); 36830 // Start section: command_properties 36831 // End section: command_properties 36832 function ListIdentityPoolsCommand(input) { 36833 var _this = 36834 // Start section: command_constructor 36835 _super.call(this) || this; 36836 _this.input = input; 36837 return _this; 36838 // End section: command_constructor 36839 } 36840 ListIdentityPoolsCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36841 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36842 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36843 var stack = clientStack.concat(this.middlewareStack); 36844 var handlerExecutionContext = { 36845 logger: {}, 36846 }; 36847 var requestHandler = configuration.requestHandler; 36848 return stack.resolve(function (request) { 36849 return requestHandler.handle(request.request, options || {}); 36850 }, handlerExecutionContext); 36851 }; 36852 ListIdentityPoolsCommand.prototype.serialize = function (input, context) { 36853 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1ListIdentityPoolsCommand"])(input, context); 36854 }; 36855 ListIdentityPoolsCommand.prototype.deserialize = function (output, context) { 36856 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1ListIdentityPoolsCommand"])(output, context); 36857 }; 36858 return ListIdentityPoolsCommand; 36859}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36860 36861//# sourceMappingURL=ListIdentityPoolsCommand.js.map 36862 36863/***/ }), 36864
vendor: 4,163 bytes, lines 36865-36924
36865/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListTagsForResourceCommand.js": 36866/*!******************************************************************************************************!*\ 36867 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListTagsForResourceCommand.js ***! 36868 \******************************************************************************************************/ 36869/*! exports provided: ListTagsForResourceCommand */ 36870/***/ (function(module, __webpack_exports__, __webpack_require__) { 36871 36872"use strict"; 36873__webpack_require__.r(__webpack_exports__); 36874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListTagsForResourceCommand", function() { return ListTagsForResourceCommand; }); 36875/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36876/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36877/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36878/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36879/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36880/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36881/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36882/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36883 36884 36885 36886 36887 36888var ListTagsForResourceCommand = /** @class */ (function (_super) { 36889 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ListTagsForResourceCommand, _super); 36890 // Start section: command_properties 36891 // End section: command_properties 36892 function ListTagsForResourceCommand(input) { 36893 var _this = 36894 // Start section: command_constructor 36895 _super.call(this) || this; 36896 _this.input = input; 36897 return _this; 36898 // End section: command_constructor 36899 } 36900 ListTagsForResourceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36901 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36902 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36903 var stack = clientStack.concat(this.middlewareStack); 36904 var handlerExecutionContext = { 36905 logger: {}, 36906 }; 36907 var requestHandler = configuration.requestHandler; 36908 return stack.resolve(function (request) { 36909 return requestHandler.handle(request.request, options || {}); 36910 }, handlerExecutionContext); 36911 }; 36912 ListTagsForResourceCommand.prototype.serialize = function (input, context) { 36913 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1ListTagsForResourceCommand"])(input, context); 36914 }; 36915 ListTagsForResourceCommand.prototype.deserialize = function (output, context) { 36916 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1ListTagsForResourceCommand"])(output, context); 36917 }; 36918 return ListTagsForResourceCommand; 36919}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36920 36921//# sourceMappingURL=ListTagsForResourceCommand.js.map 36922 36923/***/ }), 36924
vendor: 4,231 bytes, lines 36925-36984
36925/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/LookupDeveloperIdentityCommand.js": 36926/*!**********************************************************************************************************!*\ 36927 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/LookupDeveloperIdentityCommand.js ***! 36928 \**********************************************************************************************************/ 36929/*! exports provided: LookupDeveloperIdentityCommand */ 36930/***/ (function(module, __webpack_exports__, __webpack_require__) { 36931 36932"use strict"; 36933__webpack_require__.r(__webpack_exports__); 36934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LookupDeveloperIdentityCommand", function() { return LookupDeveloperIdentityCommand; }); 36935/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36936/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36937/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36938/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36939/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 36940/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 36941/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 36942/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 36943 36944 36945 36946 36947 36948var LookupDeveloperIdentityCommand = /** @class */ (function (_super) { 36949 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(LookupDeveloperIdentityCommand, _super); 36950 // Start section: command_properties 36951 // End section: command_properties 36952 function LookupDeveloperIdentityCommand(input) { 36953 var _this = 36954 // Start section: command_constructor 36955 _super.call(this) || this; 36956 _this.input = input; 36957 return _this; 36958 // End section: command_constructor 36959 } 36960 LookupDeveloperIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 36961 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 36962 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 36963 var stack = clientStack.concat(this.middlewareStack); 36964 var handlerExecutionContext = { 36965 logger: {}, 36966 }; 36967 var requestHandler = configuration.requestHandler; 36968 return stack.resolve(function (request) { 36969 return requestHandler.handle(request.request, options || {}); 36970 }, handlerExecutionContext); 36971 }; 36972 LookupDeveloperIdentityCommand.prototype.serialize = function (input, context) { 36973 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1LookupDeveloperIdentityCommand"])(input, context); 36974 }; 36975 LookupDeveloperIdentityCommand.prototype.deserialize = function (output, context) { 36976 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1LookupDeveloperIdentityCommand"])(output, context); 36977 }; 36978 return LookupDeveloperIdentityCommand; 36979}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 36980 36981//# sourceMappingURL=LookupDeveloperIdentityCommand.js.map 36982 36983/***/ }), 36984
vendor: 4,248 bytes, lines 36985-37044
36985/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/MergeDeveloperIdentitiesCommand.js": 36986/*!***********************************************************************************************************!*\ 36987 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/MergeDeveloperIdentitiesCommand.js ***! 36988 \***********************************************************************************************************/ 36989/*! exports provided: MergeDeveloperIdentitiesCommand */ 36990/***/ (function(module, __webpack_exports__, __webpack_require__) { 36991 36992"use strict"; 36993__webpack_require__.r(__webpack_exports__); 36994/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeDeveloperIdentitiesCommand", function() { return MergeDeveloperIdentitiesCommand; }); 36995/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 36996/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 36997/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 36998/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 36999/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37000/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37001/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37002/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37003 37004 37005 37006 37007 37008var MergeDeveloperIdentitiesCommand = /** @class */ (function (_super) { 37009 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(MergeDeveloperIdentitiesCommand, _super); 37010 // Start section: command_properties 37011 // End section: command_properties 37012 function MergeDeveloperIdentitiesCommand(input) { 37013 var _this = 37014 // Start section: command_constructor 37015 _super.call(this) || this; 37016 _this.input = input; 37017 return _this; 37018 // End section: command_constructor 37019 } 37020 MergeDeveloperIdentitiesCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37021 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37022 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37023 var stack = clientStack.concat(this.middlewareStack); 37024 var handlerExecutionContext = { 37025 logger: {}, 37026 }; 37027 var requestHandler = configuration.requestHandler; 37028 return stack.resolve(function (request) { 37029 return requestHandler.handle(request.request, options || {}); 37030 }, handlerExecutionContext); 37031 }; 37032 MergeDeveloperIdentitiesCommand.prototype.serialize = function (input, context) { 37033 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1MergeDeveloperIdentitiesCommand"])(input, context); 37034 }; 37035 MergeDeveloperIdentitiesCommand.prototype.deserialize = function (output, context) { 37036 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1MergeDeveloperIdentitiesCommand"])(output, context); 37037 }; 37038 return MergeDeveloperIdentitiesCommand; 37039}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37040 37041//# sourceMappingURL=MergeDeveloperIdentitiesCommand.js.map 37042 37043/***/ }), 37044
vendor: 4,180 bytes, lines 37045-37104
37045/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/SetIdentityPoolRolesCommand.js": 37046/*!*******************************************************************************************************!*\ 37047 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/SetIdentityPoolRolesCommand.js ***! 37048 \*******************************************************************************************************/ 37049/*! exports provided: SetIdentityPoolRolesCommand */ 37050/***/ (function(module, __webpack_exports__, __webpack_require__) { 37051 37052"use strict"; 37053__webpack_require__.r(__webpack_exports__); 37054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetIdentityPoolRolesCommand", function() { return SetIdentityPoolRolesCommand; }); 37055/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37056/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 37057/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 37058/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 37059/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37060/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37061/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37062/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37063 37064 37065 37066 37067 37068var SetIdentityPoolRolesCommand = /** @class */ (function (_super) { 37069 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(SetIdentityPoolRolesCommand, _super); 37070 // Start section: command_properties 37071 // End section: command_properties 37072 function SetIdentityPoolRolesCommand(input) { 37073 var _this = 37074 // Start section: command_constructor 37075 _super.call(this) || this; 37076 _this.input = input; 37077 return _this; 37078 // End section: command_constructor 37079 } 37080 SetIdentityPoolRolesCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37081 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37082 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37083 var stack = clientStack.concat(this.middlewareStack); 37084 var handlerExecutionContext = { 37085 logger: {}, 37086 }; 37087 var requestHandler = configuration.requestHandler; 37088 return stack.resolve(function (request) { 37089 return requestHandler.handle(request.request, options || {}); 37090 }, handlerExecutionContext); 37091 }; 37092 SetIdentityPoolRolesCommand.prototype.serialize = function (input, context) { 37093 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1SetIdentityPoolRolesCommand"])(input, context); 37094 }; 37095 SetIdentityPoolRolesCommand.prototype.deserialize = function (output, context) { 37096 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1SetIdentityPoolRolesCommand"])(output, context); 37097 }; 37098 return SetIdentityPoolRolesCommand; 37099}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37100 37101//# sourceMappingURL=SetIdentityPoolRolesCommand.js.map 37102 37103/***/ }), 37104
vendor: 4,027 bytes, lines 37105-37164
37105/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/TagResourceCommand.js": 37106/*!**********************************************************************************************!*\ 37107 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/TagResourceCommand.js ***! 37108 \**********************************************************************************************/ 37109/*! exports provided: TagResourceCommand */ 37110/***/ (function(module, __webpack_exports__, __webpack_require__) { 37111 37112"use strict"; 37113__webpack_require__.r(__webpack_exports__); 37114/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagResourceCommand", function() { return TagResourceCommand; }); 37115/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37116/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 37117/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 37118/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 37119/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37120/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37121/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37122/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37123 37124 37125 37126 37127 37128var TagResourceCommand = /** @class */ (function (_super) { 37129 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TagResourceCommand, _super); 37130 // Start section: command_properties 37131 // End section: command_properties 37132 function TagResourceCommand(input) { 37133 var _this = 37134 // Start section: command_constructor 37135 _super.call(this) || this; 37136 _this.input = input; 37137 return _this; 37138 // End section: command_constructor 37139 } 37140 TagResourceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37141 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37142 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37143 var stack = clientStack.concat(this.middlewareStack); 37144 var handlerExecutionContext = { 37145 logger: {}, 37146 }; 37147 var requestHandler = configuration.requestHandler; 37148 return stack.resolve(function (request) { 37149 return requestHandler.handle(request.request, options || {}); 37150 }, handlerExecutionContext); 37151 }; 37152 TagResourceCommand.prototype.serialize = function (input, context) { 37153 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1TagResourceCommand"])(input, context); 37154 }; 37155 TagResourceCommand.prototype.deserialize = function (output, context) { 37156 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1TagResourceCommand"])(output, context); 37157 }; 37158 return TagResourceCommand; 37159}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37160 37161//# sourceMappingURL=TagResourceCommand.js.map 37162 37163/***/ }), 37164
vendor: 4,231 bytes, lines 37165-37224
37165/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkDeveloperIdentityCommand.js": 37166/*!**********************************************************************************************************!*\ 37167 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkDeveloperIdentityCommand.js ***! 37168 \**********************************************************************************************************/ 37169/*! exports provided: UnlinkDeveloperIdentityCommand */ 37170/***/ (function(module, __webpack_exports__, __webpack_require__) { 37171 37172"use strict"; 37173__webpack_require__.r(__webpack_exports__); 37174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnlinkDeveloperIdentityCommand", function() { return UnlinkDeveloperIdentityCommand; }); 37175/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37176/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 37177/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 37178/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 37179/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37180/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37181/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37182/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37183 37184 37185 37186 37187 37188var UnlinkDeveloperIdentityCommand = /** @class */ (function (_super) { 37189 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(UnlinkDeveloperIdentityCommand, _super); 37190 // Start section: command_properties 37191 // End section: command_properties 37192 function UnlinkDeveloperIdentityCommand(input) { 37193 var _this = 37194 // Start section: command_constructor 37195 _super.call(this) || this; 37196 _this.input = input; 37197 return _this; 37198 // End section: command_constructor 37199 } 37200 UnlinkDeveloperIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37201 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37202 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37203 var stack = clientStack.concat(this.middlewareStack); 37204 var handlerExecutionContext = { 37205 logger: {}, 37206 }; 37207 var requestHandler = configuration.requestHandler; 37208 return stack.resolve(function (request) { 37209 return requestHandler.handle(request.request, options || {}); 37210 }, handlerExecutionContext); 37211 }; 37212 UnlinkDeveloperIdentityCommand.prototype.serialize = function (input, context) { 37213 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1UnlinkDeveloperIdentityCommand"])(input, context); 37214 }; 37215 UnlinkDeveloperIdentityCommand.prototype.deserialize = function (output, context) { 37216 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1UnlinkDeveloperIdentityCommand"])(output, context); 37217 }; 37218 return UnlinkDeveloperIdentityCommand; 37219}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37220 37221//# sourceMappingURL=UnlinkDeveloperIdentityCommand.js.map 37222 37223/***/ }), 37224
vendor: 4,078 bytes, lines 37225-37284
37225/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkIdentityCommand.js": 37226/*!*************************************************************************************************!*\ 37227 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkIdentityCommand.js ***! 37228 \*************************************************************************************************/ 37229/*! exports provided: UnlinkIdentityCommand */ 37230/***/ (function(module, __webpack_exports__, __webpack_require__) { 37231 37232"use strict"; 37233__webpack_require__.r(__webpack_exports__); 37234/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnlinkIdentityCommand", function() { return UnlinkIdentityCommand; }); 37235/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37236/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 37237/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 37238/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 37239/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37240/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37241/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37242/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37243 37244 37245 37246 37247 37248var UnlinkIdentityCommand = /** @class */ (function (_super) { 37249 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(UnlinkIdentityCommand, _super); 37250 // Start section: command_properties 37251 // End section: command_properties 37252 function UnlinkIdentityCommand(input) { 37253 var _this = 37254 // Start section: command_constructor 37255 _super.call(this) || this; 37256 _this.input = input; 37257 return _this; 37258 // End section: command_constructor 37259 } 37260 UnlinkIdentityCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37261 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37262 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37263 var stack = clientStack.concat(this.middlewareStack); 37264 var handlerExecutionContext = { 37265 logger: {}, 37266 }; 37267 var requestHandler = configuration.requestHandler; 37268 return stack.resolve(function (request) { 37269 return requestHandler.handle(request.request, options || {}); 37270 }, handlerExecutionContext); 37271 }; 37272 UnlinkIdentityCommand.prototype.serialize = function (input, context) { 37273 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1UnlinkIdentityCommand"])(input, context); 37274 }; 37275 UnlinkIdentityCommand.prototype.deserialize = function (output, context) { 37276 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1UnlinkIdentityCommand"])(output, context); 37277 }; 37278 return UnlinkIdentityCommand; 37279}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37280 37281//# sourceMappingURL=UnlinkIdentityCommand.js.map 37282 37283/***/ }), 37284
vendor: 4,061 bytes, lines 37285-37344
37285/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UntagResourceCommand.js": 37286/*!************************************************************************************************!*\ 37287 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UntagResourceCommand.js ***! 37288 \************************************************************************************************/ 37289/*! exports provided: UntagResourceCommand */ 37290/***/ (function(module, __webpack_exports__, __webpack_require__) { 37291 37292"use strict"; 37293__webpack_require__.r(__webpack_exports__); 37294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UntagResourceCommand", function() { return UntagResourceCommand; }); 37295/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37296/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 37297/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 37298/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 37299/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37300/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37301/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37302/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37303 37304 37305 37306 37307 37308var UntagResourceCommand = /** @class */ (function (_super) { 37309 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(UntagResourceCommand, _super); 37310 // Start section: command_properties 37311 // End section: command_properties 37312 function UntagResourceCommand(input) { 37313 var _this = 37314 // Start section: command_constructor 37315 _super.call(this) || this; 37316 _this.input = input; 37317 return _this; 37318 // End section: command_constructor 37319 } 37320 UntagResourceCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37321 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37322 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37323 var stack = clientStack.concat(this.middlewareStack); 37324 var handlerExecutionContext = { 37325 logger: {}, 37326 }; 37327 var requestHandler = configuration.requestHandler; 37328 return stack.resolve(function (request) { 37329 return requestHandler.handle(request.request, options || {}); 37330 }, handlerExecutionContext); 37331 }; 37332 UntagResourceCommand.prototype.serialize = function (input, context) { 37333 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1UntagResourceCommand"])(input, context); 37334 }; 37335 UntagResourceCommand.prototype.deserialize = function (output, context) { 37336 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1UntagResourceCommand"])(output, context); 37337 }; 37338 return UntagResourceCommand; 37339}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37340 37341//# sourceMappingURL=UntagResourceCommand.js.map 37342 37343/***/ }), 37344
vendor: 4,146 bytes, lines 37345-37404
37345/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UpdateIdentityPoolCommand.js": 37346/*!*****************************************************************************************************!*\ 37347 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UpdateIdentityPoolCommand.js ***! 37348 \*****************************************************************************************************/ 37349/*! exports provided: UpdateIdentityPoolCommand */ 37350/***/ (function(module, __webpack_exports__, __webpack_require__) { 37351 37352"use strict"; 37353__webpack_require__.r(__webpack_exports__); 37354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UpdateIdentityPoolCommand", function() { return UpdateIdentityPoolCommand; }); 37355/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37356/* harmony import */ var _protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../protocols/Aws_json1_1 */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js"); 37357/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/middleware-serde */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js"); 37358/* harmony import */ var _aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__); 37359/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/middleware-signing */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js"); 37360/* harmony import */ var _aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__); 37361/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37362/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__); 37363 37364 37365 37366 37367 37368var UpdateIdentityPoolCommand = /** @class */ (function (_super) { 37369 Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(UpdateIdentityPoolCommand, _super); 37370 // Start section: command_properties 37371 // End section: command_properties 37372 function UpdateIdentityPoolCommand(input) { 37373 var _this = 37374 // Start section: command_constructor 37375 _super.call(this) || this; 37376 _this.input = input; 37377 return _this; 37378 // End section: command_constructor 37379 } 37380 UpdateIdentityPoolCommand.prototype.resolveMiddleware = function (clientStack, configuration, options) { 37381 this.middlewareStack.use(Object(_aws_sdk_middleware_serde__WEBPACK_IMPORTED_MODULE_2__["getSerdePlugin"])(configuration, this.serialize, this.deserialize)); 37382 this.middlewareStack.use(Object(_aws_sdk_middleware_signing__WEBPACK_IMPORTED_MODULE_3__["getAwsAuthPlugin"])(configuration)); 37383 var stack = clientStack.concat(this.middlewareStack); 37384 var handlerExecutionContext = { 37385 logger: {}, 37386 }; 37387 var requestHandler = configuration.requestHandler; 37388 return stack.resolve(function (request) { 37389 return requestHandler.handle(request.request, options || {}); 37390 }, handlerExecutionContext); 37391 }; 37392 UpdateIdentityPoolCommand.prototype.serialize = function (input, context) { 37393 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["serializeAws_json1_1UpdateIdentityPoolCommand"])(input, context); 37394 }; 37395 UpdateIdentityPoolCommand.prototype.deserialize = function (output, context) { 37396 return Object(_protocols_Aws_json1_1__WEBPACK_IMPORTED_MODULE_1__["deserializeAws_json1_1UpdateIdentityPoolCommand"])(output, context); 37397 }; 37398 return UpdateIdentityPoolCommand; 37399}(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_4__["Command"])); 37400 37401//# sourceMappingURL=UpdateIdentityPoolCommand.js.map 37402 37403/***/ }), 37404
vendor: 5,252 bytes, lines 37405-37554
37405/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js": 37406/*!****************************************************************************!*\ 37407 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js ***! 37408 \****************************************************************************/ 37409/*! exports provided: defaultRegionInfoProvider */ 37410/***/ (function(module, __webpack_exports__, __webpack_require__) { 37411 37412"use strict"; 37413__webpack_require__.r(__webpack_exports__); 37414/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultRegionInfoProvider", function() { return defaultRegionInfoProvider; }); 37415// Partition default templates 37416var AWS_TEMPLATE = "cognito-identity.{region}.amazonaws.com"; 37417var AWS_CN_TEMPLATE = "cognito-identity.{region}.amazonaws.com.cn"; 37418var AWS_ISO_TEMPLATE = "cognito-identity.{region}.c2s.ic.gov"; 37419var AWS_ISO_B_TEMPLATE = "cognito-identity.{region}.sc2s.sgov.gov"; 37420var AWS_US_GOV_TEMPLATE = "cognito-identity.{region}.amazonaws.com"; 37421// Partition regions 37422var AWS_REGIONS = new Set([ 37423 "ap-south-1", 37424 "eu-north-1", 37425 "eu-west-3", 37426 "eu-west-2", 37427 "eu-west-1", 37428 "ap-northeast-2", 37429 "ap-northeast-1", 37430 "me-south-1", 37431 "ca-central-1", 37432 "sa-east-1", 37433 "ap-east-1", 37434 "ap-southeast-1", 37435 "ap-southeast-2", 37436 "eu-central-1", 37437 "us-east-1", 37438 "us-east-2", 37439 "us-west-1", 37440 "us-west-2", 37441]); 37442var AWS_CN_REGIONS = new Set(["cn-north-1", "cn-northwest-1"]); 37443var AWS_ISO_REGIONS = new Set(["us-iso-east-1"]); 37444var AWS_ISO_B_REGIONS = new Set(["us-isob-east-1"]); 37445var AWS_US_GOV_REGIONS = new Set(["us-gov-west-1", "us-gov-east-1"]); 37446var defaultRegionInfoProvider = function (region, options) { 37447 var regionInfo = undefined; 37448 switch (region) { 37449 // First, try to match exact region names. 37450 case "ap-northeast-1": 37451 regionInfo = { 37452 hostname: "cognito-identity.ap-northeast-1.amazonaws.com", 37453 }; 37454 break; 37455 case "ap-northeast-2": 37456 regionInfo = { 37457 hostname: "cognito-identity.ap-northeast-2.amazonaws.com", 37458 }; 37459 break; 37460 case "ap-south-1": 37461 regionInfo = { 37462 hostname: "cognito-identity.ap-south-1.amazonaws.com", 37463 }; 37464 break; 37465 case "ap-southeast-1": 37466 regionInfo = { 37467 hostname: "cognito-identity.ap-southeast-1.amazonaws.com", 37468 }; 37469 break; 37470 case "ap-southeast-2": 37471 regionInfo = { 37472 hostname: "cognito-identity.ap-southeast-2.amazonaws.com", 37473 }; 37474 break; 37475 case "ca-central-1": 37476 regionInfo = { 37477 hostname: "cognito-identity.ca-central-1.amazonaws.com", 37478 }; 37479 break; 37480 case "cn-north-1": 37481 regionInfo = { 37482 hostname: "cognito-identity.cn-north-1.amazonaws.com.cn", 37483 }; 37484 break; 37485 case "eu-central-1": 37486 regionInfo = { 37487 hostname: "cognito-identity.eu-central-1.amazonaws.com", 37488 }; 37489 break; 37490 case "eu-west-1": 37491 regionInfo = { 37492 hostname: "cognito-identity.eu-west-1.amazonaws.com", 37493 }; 37494 break; 37495 case "eu-west-2": 37496 regionInfo = { 37497 hostname: "cognito-identity.eu-west-2.amazonaws.com", 37498 }; 37499 break; 37500 case "us-east-1": 37501 regionInfo = { 37502 hostname: "cognito-identity.us-east-1.amazonaws.com", 37503 }; 37504 break; 37505 case "us-east-2": 37506 regionInfo = { 37507 hostname: "cognito-identity.us-east-2.amazonaws.com", 37508 }; 37509 break; 37510 case "us-west-2": 37511 regionInfo = { 37512 hostname: "cognito-identity.us-west-2.amazonaws.com", 37513 }; 37514 break; 37515 // Next, try to match partition endpoints. 37516 default: 37517 if (AWS_REGIONS.has(region)) { 37518 regionInfo = { 37519 hostname: AWS_TEMPLATE.replace("{region}", region), 37520 }; 37521 } 37522 if (AWS_CN_REGIONS.has(region)) { 37523 regionInfo = { 37524 hostname: AWS_CN_TEMPLATE.replace("{region}", region), 37525 }; 37526 } 37527 if (AWS_ISO_REGIONS.has(region)) { 37528 regionInfo = { 37529 hostname: AWS_ISO_TEMPLATE.replace("{region}", region), 37530 }; 37531 } 37532 if (AWS_ISO_B_REGIONS.has(region)) { 37533 regionInfo = { 37534 hostname: AWS_ISO_B_TEMPLATE.replace("{region}", region), 37535 }; 37536 } 37537 if (AWS_US_GOV_REGIONS.has(region)) { 37538 regionInfo = { 37539 hostname: AWS_US_GOV_TEMPLATE.replace("{region}", region), 37540 }; 37541 } 37542 // Finally, assume it's an AWS partition endpoint. 37543 if (regionInfo === undefined) { 37544 regionInfo = { 37545 hostname: AWS_TEMPLATE.replace("{region}", region), 37546 }; 37547 } 37548 } 37549 return Promise.resolve(regionInfo); 37550}; 37551//# sourceMappingURL=endpoints.js.map 37552 37553/***/ }), 37554
vendor: 24,887 bytes, lines 37555-37775
37555/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/index.js": 37556/*!************************************************************************!*\ 37557 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/index.js ***! 37558 \************************************************************************/ 37559/*! exports provided: CognitoIdentityClient, CognitoIdentity, CreateIdentityPoolCommand, DeleteIdentitiesCommand, DeleteIdentityPoolCommand, DescribeIdentityCommand, DescribeIdentityPoolCommand, GetCredentialsForIdentityCommand, GetIdCommand, GetIdentityPoolRolesCommand, GetOpenIdTokenCommand, GetOpenIdTokenForDeveloperIdentityCommand, ListIdentitiesCommand, ListIdentityPoolsCommand, ListTagsForResourceCommand, LookupDeveloperIdentityCommand, MergeDeveloperIdentitiesCommand, SetIdentityPoolRolesCommand, TagResourceCommand, UnlinkDeveloperIdentityCommand, UnlinkIdentityCommand, UntagResourceCommand, UpdateIdentityPoolCommand, AmbiguousRoleResolutionType, CognitoIdentityProvider, ConcurrentModificationException, CreateIdentityPoolInput, Credentials, DeleteIdentitiesInput, DeleteIdentitiesResponse, DeleteIdentityPoolInput, DescribeIdentityInput, DescribeIdentityPoolInput, DeveloperUserAlreadyRegisteredException, ErrorCode, ExternalServiceException, GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse, GetIdentityPoolRolesInput, GetIdentityPoolRolesResponse, GetIdInput, GetIdResponse, GetOpenIdTokenForDeveloperIdentityInput, GetOpenIdTokenForDeveloperIdentityResponse, GetOpenIdTokenInput, GetOpenIdTokenResponse, IdentityDescription, IdentityPool, IdentityPoolShortDescription, InternalErrorException, InvalidIdentityPoolConfigurationException, InvalidParameterException, LimitExceededException, ListIdentitiesInput, ListIdentitiesResponse, ListIdentityPoolsInput, ListIdentityPoolsResponse, ListTagsForResourceInput, ListTagsForResourceResponse, LookupDeveloperIdentityInput, LookupDeveloperIdentityResponse, MappingRule, MappingRuleMatchType, MergeDeveloperIdentitiesInput, MergeDeveloperIdentitiesResponse, NotAuthorizedException, ResourceConflictException, ResourceNotFoundException, RoleMapping, RoleMappingType, RulesConfigurationType, SetIdentityPoolRolesInput, TagResourceInput, TagResourceResponse, TooManyRequestsException, UnlinkDeveloperIdentityInput, UnlinkIdentityInput, UnprocessedIdentityId, UntagResourceInput, UntagResourceResponse */ 37560/***/ (function(module, __webpack_exports__, __webpack_require__) { 37561 37562"use strict"; 37563__webpack_require__.r(__webpack_exports__); 37564/* harmony import */ var _CognitoIdentityClient__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CognitoIdentityClient */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentityClient.js"); 37565/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoIdentityClient", function() { return _CognitoIdentityClient__WEBPACK_IMPORTED_MODULE_0__["CognitoIdentityClient"]; }); 37566 37567/* harmony import */ var _CognitoIdentity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CognitoIdentity */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/CognitoIdentity.js"); 37568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoIdentity", function() { return _CognitoIdentity__WEBPACK_IMPORTED_MODULE_1__["CognitoIdentity"]; }); 37569 37570/* harmony import */ var _commands_CreateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commands/CreateIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/CreateIdentityPoolCommand.js"); 37571/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CreateIdentityPoolCommand", function() { return _commands_CreateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_2__["CreateIdentityPoolCommand"]; }); 37572 37573/* harmony import */ var _commands_DeleteIdentitiesCommand__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commands/DeleteIdentitiesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentitiesCommand.js"); 37574/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentitiesCommand", function() { return _commands_DeleteIdentitiesCommand__WEBPACK_IMPORTED_MODULE_3__["DeleteIdentitiesCommand"]; }); 37575 37576/* harmony import */ var _commands_DeleteIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./commands/DeleteIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DeleteIdentityPoolCommand.js"); 37577/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentityPoolCommand", function() { return _commands_DeleteIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_4__["DeleteIdentityPoolCommand"]; }); 37578 37579/* harmony import */ var _commands_DescribeIdentityCommand__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./commands/DescribeIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityCommand.js"); 37580/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityCommand", function() { return _commands_DescribeIdentityCommand__WEBPACK_IMPORTED_MODULE_5__["DescribeIdentityCommand"]; }); 37581 37582/* harmony import */ var _commands_DescribeIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./commands/DescribeIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/DescribeIdentityPoolCommand.js"); 37583/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityPoolCommand", function() { return _commands_DescribeIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_6__["DescribeIdentityPoolCommand"]; }); 37584 37585/* harmony import */ var _commands_GetCredentialsForIdentityCommand__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./commands/GetCredentialsForIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetCredentialsForIdentityCommand.js"); 37586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetCredentialsForIdentityCommand", function() { return _commands_GetCredentialsForIdentityCommand__WEBPACK_IMPORTED_MODULE_7__["GetCredentialsForIdentityCommand"]; }); 37587 37588/* harmony import */ var _commands_GetIdCommand__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./commands/GetIdCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdCommand.js"); 37589/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetIdCommand", function() { return _commands_GetIdCommand__WEBPACK_IMPORTED_MODULE_8__["GetIdCommand"]; }); 37590 37591/* harmony import */ var _commands_GetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./commands/GetIdentityPoolRolesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetIdentityPoolRolesCommand.js"); 37592/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetIdentityPoolRolesCommand", function() { return _commands_GetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_9__["GetIdentityPoolRolesCommand"]; }); 37593 37594/* harmony import */ var _commands_GetOpenIdTokenCommand__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./commands/GetOpenIdTokenCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenCommand.js"); 37595/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenCommand", function() { return _commands_GetOpenIdTokenCommand__WEBPACK_IMPORTED_MODULE_10__["GetOpenIdTokenCommand"]; }); 37596 37597/* harmony import */ var _commands_GetOpenIdTokenForDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./commands/GetOpenIdTokenForDeveloperIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/GetOpenIdTokenForDeveloperIdentityCommand.js"); 37598/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenForDeveloperIdentityCommand", function() { return _commands_GetOpenIdTokenForDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_11__["GetOpenIdTokenForDeveloperIdentityCommand"]; }); 37599 37600/* harmony import */ var _commands_ListIdentitiesCommand__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./commands/ListIdentitiesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentitiesCommand.js"); 37601/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListIdentitiesCommand", function() { return _commands_ListIdentitiesCommand__WEBPACK_IMPORTED_MODULE_12__["ListIdentitiesCommand"]; }); 37602 37603/* harmony import */ var _commands_ListIdentityPoolsCommand__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./commands/ListIdentityPoolsCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListIdentityPoolsCommand.js"); 37604/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListIdentityPoolsCommand", function() { return _commands_ListIdentityPoolsCommand__WEBPACK_IMPORTED_MODULE_13__["ListIdentityPoolsCommand"]; }); 37605 37606/* harmony import */ var _commands_ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./commands/ListTagsForResourceCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/ListTagsForResourceCommand.js"); 37607/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListTagsForResourceCommand", function() { return _commands_ListTagsForResourceCommand__WEBPACK_IMPORTED_MODULE_14__["ListTagsForResourceCommand"]; }); 37608 37609/* harmony import */ var _commands_LookupDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./commands/LookupDeveloperIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/LookupDeveloperIdentityCommand.js"); 37610/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LookupDeveloperIdentityCommand", function() { return _commands_LookupDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_15__["LookupDeveloperIdentityCommand"]; }); 37611 37612/* harmony import */ var _commands_MergeDeveloperIdentitiesCommand__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./commands/MergeDeveloperIdentitiesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/MergeDeveloperIdentitiesCommand.js"); 37613/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MergeDeveloperIdentitiesCommand", function() { return _commands_MergeDeveloperIdentitiesCommand__WEBPACK_IMPORTED_MODULE_16__["MergeDeveloperIdentitiesCommand"]; }); 37614 37615/* harmony import */ var _commands_SetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./commands/SetIdentityPoolRolesCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/SetIdentityPoolRolesCommand.js"); 37616/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetIdentityPoolRolesCommand", function() { return _commands_SetIdentityPoolRolesCommand__WEBPACK_IMPORTED_MODULE_17__["SetIdentityPoolRolesCommand"]; }); 37617 37618/* harmony import */ var _commands_TagResourceCommand__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./commands/TagResourceCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/TagResourceCommand.js"); 37619/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagResourceCommand", function() { return _commands_TagResourceCommand__WEBPACK_IMPORTED_MODULE_18__["TagResourceCommand"]; }); 37620 37621/* harmony import */ var _commands_UnlinkDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./commands/UnlinkDeveloperIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkDeveloperIdentityCommand.js"); 37622/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnlinkDeveloperIdentityCommand", function() { return _commands_UnlinkDeveloperIdentityCommand__WEBPACK_IMPORTED_MODULE_19__["UnlinkDeveloperIdentityCommand"]; }); 37623 37624/* harmony import */ var _commands_UnlinkIdentityCommand__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./commands/UnlinkIdentityCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UnlinkIdentityCommand.js"); 37625/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnlinkIdentityCommand", function() { return _commands_UnlinkIdentityCommand__WEBPACK_IMPORTED_MODULE_20__["UnlinkIdentityCommand"]; }); 37626 37627/* harmony import */ var _commands_UntagResourceCommand__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./commands/UntagResourceCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UntagResourceCommand.js"); 37628/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UntagResourceCommand", function() { return _commands_UntagResourceCommand__WEBPACK_IMPORTED_MODULE_21__["UntagResourceCommand"]; }); 37629 37630/* harmony import */ var _commands_UpdateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./commands/UpdateIdentityPoolCommand */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/commands/UpdateIdentityPoolCommand.js"); 37631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UpdateIdentityPoolCommand", function() { return _commands_UpdateIdentityPoolCommand__WEBPACK_IMPORTED_MODULE_22__["UpdateIdentityPoolCommand"]; }); 37632 37633/* harmony import */ var _models_index__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./models/index */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/index.js"); 37634/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AmbiguousRoleResolutionType", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["AmbiguousRoleResolutionType"]; }); 37635 37636/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoIdentityProvider", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["CognitoIdentityProvider"]; }); 37637 37638/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConcurrentModificationException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ConcurrentModificationException"]; }); 37639 37640/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CreateIdentityPoolInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["CreateIdentityPoolInput"]; }); 37641 37642/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Credentials", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["Credentials"]; }); 37643 37644/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentitiesInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["DeleteIdentitiesInput"]; }); 37645 37646/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentitiesResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["DeleteIdentitiesResponse"]; }); 37647 37648/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentityPoolInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["DeleteIdentityPoolInput"]; }); 37649 37650/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["DescribeIdentityInput"]; }); 37651 37652/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityPoolInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["DescribeIdentityPoolInput"]; }); 37653 37654/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DeveloperUserAlreadyRegisteredException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["DeveloperUserAlreadyRegisteredException"]; }); 37655 37656/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ErrorCode", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ErrorCode"]; }); 37657 37658/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExternalServiceException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ExternalServiceException"]; }); 37659 37660/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetCredentialsForIdentityInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetCredentialsForIdentityInput"]; }); 37661 37662/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetCredentialsForIdentityResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetCredentialsForIdentityResponse"]; }); 37663 37664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetIdentityPoolRolesInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetIdentityPoolRolesInput"]; }); 37665 37666/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetIdentityPoolRolesResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetIdentityPoolRolesResponse"]; }); 37667 37668/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetIdInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetIdInput"]; }); 37669 37670/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetIdResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetIdResponse"]; }); 37671 37672/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenForDeveloperIdentityInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetOpenIdTokenForDeveloperIdentityInput"]; }); 37673 37674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenForDeveloperIdentityResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetOpenIdTokenForDeveloperIdentityResponse"]; }); 37675 37676/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetOpenIdTokenInput"]; }); 37677 37678/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["GetOpenIdTokenResponse"]; }); 37679 37680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IdentityDescription", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["IdentityDescription"]; }); 37681 37682/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IdentityPool", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["IdentityPool"]; }); 37683 37684/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IdentityPoolShortDescription", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["IdentityPoolShortDescription"]; }); 37685 37686/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InternalErrorException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["InternalErrorException"]; }); 37687 37688/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InvalidIdentityPoolConfigurationException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["InvalidIdentityPoolConfigurationException"]; }); 37689 37690/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InvalidParameterException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["InvalidParameterException"]; }); 37691 37692/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LimitExceededException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["LimitExceededException"]; }); 37693 37694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListIdentitiesInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ListIdentitiesInput"]; }); 37695 37696/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListIdentitiesResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ListIdentitiesResponse"]; }); 37697 37698/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListIdentityPoolsInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ListIdentityPoolsInput"]; }); 37699 37700/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListIdentityPoolsResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ListIdentityPoolsResponse"]; }); 37701 37702/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListTagsForResourceInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ListTagsForResourceInput"]; }); 37703 37704/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ListTagsForResourceResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ListTagsForResourceResponse"]; }); 37705 37706/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LookupDeveloperIdentityInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["LookupDeveloperIdentityInput"]; }); 37707 37708/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LookupDeveloperIdentityResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["LookupDeveloperIdentityResponse"]; }); 37709 37710/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MappingRule", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["MappingRule"]; }); 37711 37712/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MappingRuleMatchType", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["MappingRuleMatchType"]; }); 37713 37714/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MergeDeveloperIdentitiesInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["MergeDeveloperIdentitiesInput"]; }); 37715 37716/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MergeDeveloperIdentitiesResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["MergeDeveloperIdentitiesResponse"]; }); 37717 37718/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotAuthorizedException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["NotAuthorizedException"]; }); 37719 37720/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResourceConflictException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ResourceConflictException"]; }); 37721 37722/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResourceNotFoundException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["ResourceNotFoundException"]; }); 37723 37724/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RoleMapping", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["RoleMapping"]; }); 37725 37726/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RoleMappingType", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["RoleMappingType"]; }); 37727 37728/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RulesConfigurationType", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["RulesConfigurationType"]; }); 37729 37730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetIdentityPoolRolesInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["SetIdentityPoolRolesInput"]; }); 37731 37732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagResourceInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["TagResourceInput"]; }); 37733 37734/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TagResourceResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["TagResourceResponse"]; }); 37735 37736/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooManyRequestsException", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["TooManyRequestsException"]; }); 37737 37738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnlinkDeveloperIdentityInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["UnlinkDeveloperIdentityInput"]; }); 37739 37740/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnlinkIdentityInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["UnlinkIdentityInput"]; }); 37741 37742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnprocessedIdentityId", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["UnprocessedIdentityId"]; }); 37743 37744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UntagResourceInput", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["UntagResourceInput"]; }); 37745 37746/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UntagResourceResponse", function() { return _models_index__WEBPACK_IMPORTED_MODULE_23__["UntagResourceResponse"]; }); 37747 37748 37749 37750 37751 37752 37753 37754 37755 37756 37757 37758 37759 37760 37761 37762 37763 37764 37765 37766 37767 37768 37769 37770 37771 37772//# sourceMappingURL=index.js.map 37773 37774/***/ }), 37775
vendor: 35,164 bytes, lines 37776-38145
37776/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/index.js": 37777/*!*******************************************************************************!*\ 37778 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/models/index.js ***! 37779 \*******************************************************************************/ 37780/*! exports provided: AmbiguousRoleResolutionType, CognitoIdentityProvider, ConcurrentModificationException, CreateIdentityPoolInput, Credentials, DeleteIdentitiesInput, DeleteIdentitiesResponse, DeleteIdentityPoolInput, DescribeIdentityInput, DescribeIdentityPoolInput, DeveloperUserAlreadyRegisteredException, ErrorCode, ExternalServiceException, GetCredentialsForIdentityInput, GetCredentialsForIdentityResponse, GetIdentityPoolRolesInput, GetIdentityPoolRolesResponse, GetIdInput, GetIdResponse, GetOpenIdTokenForDeveloperIdentityInput, GetOpenIdTokenForDeveloperIdentityResponse, GetOpenIdTokenInput, GetOpenIdTokenResponse, IdentityDescription, IdentityPool, IdentityPoolShortDescription, InternalErrorException, InvalidIdentityPoolConfigurationException, InvalidParameterException, LimitExceededException, ListIdentitiesInput, ListIdentitiesResponse, ListIdentityPoolsInput, ListIdentityPoolsResponse, ListTagsForResourceInput, ListTagsForResourceResponse, LookupDeveloperIdentityInput, LookupDeveloperIdentityResponse, MappingRule, MappingRuleMatchType, MergeDeveloperIdentitiesInput, MergeDeveloperIdentitiesResponse, NotAuthorizedException, ResourceConflictException, ResourceNotFoundException, RoleMapping, RoleMappingType, RulesConfigurationType, SetIdentityPoolRolesInput, TagResourceInput, TagResourceResponse, TooManyRequestsException, UnlinkDeveloperIdentityInput, UnlinkIdentityInput, UnprocessedIdentityId, UntagResourceInput, UntagResourceResponse */ 37781/***/ (function(module, __webpack_exports__, __webpack_require__) { 37782 37783"use strict"; 37784__webpack_require__.r(__webpack_exports__); 37785/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AmbiguousRoleResolutionType", function() { return AmbiguousRoleResolutionType; }); 37786/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CognitoIdentityProvider", function() { return CognitoIdentityProvider; }); 37787/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConcurrentModificationException", function() { return ConcurrentModificationException; }); 37788/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CreateIdentityPoolInput", function() { return CreateIdentityPoolInput; }); 37789/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Credentials", function() { return Credentials; }); 37790/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentitiesInput", function() { return DeleteIdentitiesInput; }); 37791/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentitiesResponse", function() { return DeleteIdentitiesResponse; }); 37792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeleteIdentityPoolInput", function() { return DeleteIdentityPoolInput; }); 37793/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityInput", function() { return DescribeIdentityInput; }); 37794/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DescribeIdentityPoolInput", function() { return DescribeIdentityPoolInput; }); 37795/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DeveloperUserAlreadyRegisteredException", function() { return DeveloperUserAlreadyRegisteredException; }); 37796/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorCode", function() { return ErrorCode; }); 37797/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExternalServiceException", function() { return ExternalServiceException; }); 37798/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetCredentialsForIdentityInput", function() { return GetCredentialsForIdentityInput; }); 37799/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetCredentialsForIdentityResponse", function() { return GetCredentialsForIdentityResponse; }); 37800/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetIdentityPoolRolesInput", function() { return GetIdentityPoolRolesInput; }); 37801/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetIdentityPoolRolesResponse", function() { return GetIdentityPoolRolesResponse; }); 37802/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetIdInput", function() { return GetIdInput; }); 37803/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetIdResponse", function() { return GetIdResponse; }); 37804/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenForDeveloperIdentityInput", function() { return GetOpenIdTokenForDeveloperIdentityInput; }); 37805/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenForDeveloperIdentityResponse", function() { return GetOpenIdTokenForDeveloperIdentityResponse; }); 37806/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenInput", function() { return GetOpenIdTokenInput; }); 37807/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GetOpenIdTokenResponse", function() { return GetOpenIdTokenResponse; }); 37808/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IdentityDescription", function() { return IdentityDescription; }); 37809/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IdentityPool", function() { return IdentityPool; }); 37810/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IdentityPoolShortDescription", function() { return IdentityPoolShortDescription; }); 37811/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InternalErrorException", function() { return InternalErrorException; }); 37812/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidIdentityPoolConfigurationException", function() { return InvalidIdentityPoolConfigurationException; }); 37813/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvalidParameterException", function() { return InvalidParameterException; }); 37814/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LimitExceededException", function() { return LimitExceededException; }); 37815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListIdentitiesInput", function() { return ListIdentitiesInput; }); 37816/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListIdentitiesResponse", function() { return ListIdentitiesResponse; }); 37817/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListIdentityPoolsInput", function() { return ListIdentityPoolsInput; }); 37818/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListIdentityPoolsResponse", function() { return ListIdentityPoolsResponse; }); 37819/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListTagsForResourceInput", function() { return ListTagsForResourceInput; }); 37820/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListTagsForResourceResponse", function() { return ListTagsForResourceResponse; }); 37821/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LookupDeveloperIdentityInput", function() { return LookupDeveloperIdentityInput; }); 37822/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LookupDeveloperIdentityResponse", function() { return LookupDeveloperIdentityResponse; }); 37823/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MappingRule", function() { return MappingRule; }); 37824/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MappingRuleMatchType", function() { return MappingRuleMatchType; }); 37825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeDeveloperIdentitiesInput", function() { return MergeDeveloperIdentitiesInput; }); 37826/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeDeveloperIdentitiesResponse", function() { return MergeDeveloperIdentitiesResponse; }); 37827/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotAuthorizedException", function() { return NotAuthorizedException; }); 37828/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResourceConflictException", function() { return ResourceConflictException; }); 37829/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResourceNotFoundException", function() { return ResourceNotFoundException; }); 37830/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RoleMapping", function() { return RoleMapping; }); 37831/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RoleMappingType", function() { return RoleMappingType; }); 37832/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RulesConfigurationType", function() { return RulesConfigurationType; }); 37833/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetIdentityPoolRolesInput", function() { return SetIdentityPoolRolesInput; }); 37834/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagResourceInput", function() { return TagResourceInput; }); 37835/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TagResourceResponse", function() { return TagResourceResponse; }); 37836/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooManyRequestsException", function() { return TooManyRequestsException; }); 37837/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnlinkDeveloperIdentityInput", function() { return UnlinkDeveloperIdentityInput; }); 37838/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnlinkIdentityInput", function() { return UnlinkIdentityInput; }); 37839/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnprocessedIdentityId", function() { return UnprocessedIdentityId; }); 37840/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UntagResourceInput", function() { return UntagResourceInput; }); 37841/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UntagResourceResponse", function() { return UntagResourceResponse; }); 37842/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 37843/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/smithy-client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js"); 37844/* harmony import */ var _aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__); 37845 37846 37847var AmbiguousRoleResolutionType; 37848(function (AmbiguousRoleResolutionType) { 37849 AmbiguousRoleResolutionType["AUTHENTICATED_ROLE"] = "AuthenticatedRole"; 37850 AmbiguousRoleResolutionType["DENY"] = "Deny"; 37851})(AmbiguousRoleResolutionType || (AmbiguousRoleResolutionType = {})); 37852var CognitoIdentityProvider; 37853(function (CognitoIdentityProvider) { 37854 CognitoIdentityProvider.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37855 CognitoIdentityProvider.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "CognitoIdentityProvider"); }; 37856})(CognitoIdentityProvider || (CognitoIdentityProvider = {})); 37857var ConcurrentModificationException; 37858(function (ConcurrentModificationException) { 37859 ConcurrentModificationException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37860 ConcurrentModificationException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ConcurrentModificationException"); }; 37861})(ConcurrentModificationException || (ConcurrentModificationException = {})); 37862var CreateIdentityPoolInput; 37863(function (CreateIdentityPoolInput) { 37864 CreateIdentityPoolInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37865 CreateIdentityPoolInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "CreateIdentityPoolInput"); }; 37866})(CreateIdentityPoolInput || (CreateIdentityPoolInput = {})); 37867var Credentials; 37868(function (Credentials) { 37869 Credentials.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37870 Credentials.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "Credentials"); }; 37871})(Credentials || (Credentials = {})); 37872var DeleteIdentitiesInput; 37873(function (DeleteIdentitiesInput) { 37874 DeleteIdentitiesInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37875 DeleteIdentitiesInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "DeleteIdentitiesInput"); }; 37876})(DeleteIdentitiesInput || (DeleteIdentitiesInput = {})); 37877var DeleteIdentitiesResponse; 37878(function (DeleteIdentitiesResponse) { 37879 DeleteIdentitiesResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37880 DeleteIdentitiesResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "DeleteIdentitiesResponse"); }; 37881})(DeleteIdentitiesResponse || (DeleteIdentitiesResponse = {})); 37882var DeleteIdentityPoolInput; 37883(function (DeleteIdentityPoolInput) { 37884 DeleteIdentityPoolInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37885 DeleteIdentityPoolInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "DeleteIdentityPoolInput"); }; 37886})(DeleteIdentityPoolInput || (DeleteIdentityPoolInput = {})); 37887var DescribeIdentityInput; 37888(function (DescribeIdentityInput) { 37889 DescribeIdentityInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37890 DescribeIdentityInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "DescribeIdentityInput"); }; 37891})(DescribeIdentityInput || (DescribeIdentityInput = {})); 37892var DescribeIdentityPoolInput; 37893(function (DescribeIdentityPoolInput) { 37894 DescribeIdentityPoolInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37895 DescribeIdentityPoolInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "DescribeIdentityPoolInput"); }; 37896})(DescribeIdentityPoolInput || (DescribeIdentityPoolInput = {})); 37897var DeveloperUserAlreadyRegisteredException; 37898(function (DeveloperUserAlreadyRegisteredException) { 37899 DeveloperUserAlreadyRegisteredException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37900 DeveloperUserAlreadyRegisteredException.isa = function (o) { 37901 return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "DeveloperUserAlreadyRegisteredException"); 37902 }; 37903})(DeveloperUserAlreadyRegisteredException || (DeveloperUserAlreadyRegisteredException = {})); 37904var ErrorCode; 37905(function (ErrorCode) { 37906 ErrorCode["ACCESS_DENIED"] = "AccessDenied"; 37907 ErrorCode["INTERNAL_SERVER_ERROR"] = "InternalServerError"; 37908})(ErrorCode || (ErrorCode = {})); 37909var ExternalServiceException; 37910(function (ExternalServiceException) { 37911 ExternalServiceException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37912 ExternalServiceException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ExternalServiceException"); }; 37913})(ExternalServiceException || (ExternalServiceException = {})); 37914var GetCredentialsForIdentityInput; 37915(function (GetCredentialsForIdentityInput) { 37916 GetCredentialsForIdentityInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37917 GetCredentialsForIdentityInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetCredentialsForIdentityInput"); }; 37918})(GetCredentialsForIdentityInput || (GetCredentialsForIdentityInput = {})); 37919var GetCredentialsForIdentityResponse; 37920(function (GetCredentialsForIdentityResponse) { 37921 GetCredentialsForIdentityResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37922 GetCredentialsForIdentityResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetCredentialsForIdentityResponse"); }; 37923})(GetCredentialsForIdentityResponse || (GetCredentialsForIdentityResponse = {})); 37924var GetIdentityPoolRolesInput; 37925(function (GetIdentityPoolRolesInput) { 37926 GetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37927 GetIdentityPoolRolesInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetIdentityPoolRolesInput"); }; 37928})(GetIdentityPoolRolesInput || (GetIdentityPoolRolesInput = {})); 37929var GetIdentityPoolRolesResponse; 37930(function (GetIdentityPoolRolesResponse) { 37931 GetIdentityPoolRolesResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37932 GetIdentityPoolRolesResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetIdentityPoolRolesResponse"); }; 37933})(GetIdentityPoolRolesResponse || (GetIdentityPoolRolesResponse = {})); 37934var GetIdInput; 37935(function (GetIdInput) { 37936 GetIdInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37937 GetIdInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetIdInput"); }; 37938})(GetIdInput || (GetIdInput = {})); 37939var GetIdResponse; 37940(function (GetIdResponse) { 37941 GetIdResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37942 GetIdResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetIdResponse"); }; 37943})(GetIdResponse || (GetIdResponse = {})); 37944var GetOpenIdTokenForDeveloperIdentityInput; 37945(function (GetOpenIdTokenForDeveloperIdentityInput) { 37946 GetOpenIdTokenForDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37947 GetOpenIdTokenForDeveloperIdentityInput.isa = function (o) { 37948 return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetOpenIdTokenForDeveloperIdentityInput"); 37949 }; 37950})(GetOpenIdTokenForDeveloperIdentityInput || (GetOpenIdTokenForDeveloperIdentityInput = {})); 37951var GetOpenIdTokenForDeveloperIdentityResponse; 37952(function (GetOpenIdTokenForDeveloperIdentityResponse) { 37953 GetOpenIdTokenForDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37954 GetOpenIdTokenForDeveloperIdentityResponse.isa = function (o) { 37955 return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetOpenIdTokenForDeveloperIdentityResponse"); 37956 }; 37957})(GetOpenIdTokenForDeveloperIdentityResponse || (GetOpenIdTokenForDeveloperIdentityResponse = {})); 37958var GetOpenIdTokenInput; 37959(function (GetOpenIdTokenInput) { 37960 GetOpenIdTokenInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37961 GetOpenIdTokenInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetOpenIdTokenInput"); }; 37962})(GetOpenIdTokenInput || (GetOpenIdTokenInput = {})); 37963var GetOpenIdTokenResponse; 37964(function (GetOpenIdTokenResponse) { 37965 GetOpenIdTokenResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37966 GetOpenIdTokenResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "GetOpenIdTokenResponse"); }; 37967})(GetOpenIdTokenResponse || (GetOpenIdTokenResponse = {})); 37968var IdentityDescription; 37969(function (IdentityDescription) { 37970 IdentityDescription.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37971 IdentityDescription.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "IdentityDescription"); }; 37972})(IdentityDescription || (IdentityDescription = {})); 37973var IdentityPool; 37974(function (IdentityPool) { 37975 IdentityPool.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37976 IdentityPool.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "IdentityPool"); }; 37977})(IdentityPool || (IdentityPool = {})); 37978var IdentityPoolShortDescription; 37979(function (IdentityPoolShortDescription) { 37980 IdentityPoolShortDescription.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37981 IdentityPoolShortDescription.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "IdentityPoolShortDescription"); }; 37982})(IdentityPoolShortDescription || (IdentityPoolShortDescription = {})); 37983var InternalErrorException; 37984(function (InternalErrorException) { 37985 InternalErrorException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37986 InternalErrorException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "InternalErrorException"); }; 37987})(InternalErrorException || (InternalErrorException = {})); 37988var InvalidIdentityPoolConfigurationException; 37989(function (InvalidIdentityPoolConfigurationException) { 37990 InvalidIdentityPoolConfigurationException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37991 InvalidIdentityPoolConfigurationException.isa = function (o) { 37992 return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "InvalidIdentityPoolConfigurationException"); 37993 }; 37994})(InvalidIdentityPoolConfigurationException || (InvalidIdentityPoolConfigurationException = {})); 37995var InvalidParameterException; 37996(function (InvalidParameterException) { 37997 InvalidParameterException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 37998 InvalidParameterException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "InvalidParameterException"); }; 37999})(InvalidParameterException || (InvalidParameterException = {})); 38000var LimitExceededException; 38001(function (LimitExceededException) { 38002 LimitExceededException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38003 LimitExceededException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "LimitExceededException"); }; 38004})(LimitExceededException || (LimitExceededException = {})); 38005var ListIdentitiesInput; 38006(function (ListIdentitiesInput) { 38007 ListIdentitiesInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38008 ListIdentitiesInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ListIdentitiesInput"); }; 38009})(ListIdentitiesInput || (ListIdentitiesInput = {})); 38010var ListIdentitiesResponse; 38011(function (ListIdentitiesResponse) { 38012 ListIdentitiesResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38013 ListIdentitiesResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ListIdentitiesResponse"); }; 38014})(ListIdentitiesResponse || (ListIdentitiesResponse = {})); 38015var ListIdentityPoolsInput; 38016(function (ListIdentityPoolsInput) { 38017 ListIdentityPoolsInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38018 ListIdentityPoolsInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ListIdentityPoolsInput"); }; 38019})(ListIdentityPoolsInput || (ListIdentityPoolsInput = {})); 38020var ListIdentityPoolsResponse; 38021(function (ListIdentityPoolsResponse) { 38022 ListIdentityPoolsResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38023 ListIdentityPoolsResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ListIdentityPoolsResponse"); }; 38024})(ListIdentityPoolsResponse || (ListIdentityPoolsResponse = {})); 38025var ListTagsForResourceInput; 38026(function (ListTagsForResourceInput) { 38027 ListTagsForResourceInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38028 ListTagsForResourceInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ListTagsForResourceInput"); }; 38029})(ListTagsForResourceInput || (ListTagsForResourceInput = {})); 38030var ListTagsForResourceResponse; 38031(function (ListTagsForResourceResponse) { 38032 ListTagsForResourceResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38033 ListTagsForResourceResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ListTagsForResourceResponse"); }; 38034})(ListTagsForResourceResponse || (ListTagsForResourceResponse = {})); 38035var LookupDeveloperIdentityInput; 38036(function (LookupDeveloperIdentityInput) { 38037 LookupDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38038 LookupDeveloperIdentityInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "LookupDeveloperIdentityInput"); }; 38039})(LookupDeveloperIdentityInput || (LookupDeveloperIdentityInput = {})); 38040var LookupDeveloperIdentityResponse; 38041(function (LookupDeveloperIdentityResponse) { 38042 LookupDeveloperIdentityResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38043 LookupDeveloperIdentityResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "LookupDeveloperIdentityResponse"); }; 38044})(LookupDeveloperIdentityResponse || (LookupDeveloperIdentityResponse = {})); 38045var MappingRule; 38046(function (MappingRule) { 38047 MappingRule.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38048 MappingRule.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "MappingRule"); }; 38049})(MappingRule || (MappingRule = {})); 38050var MappingRuleMatchType; 38051(function (MappingRuleMatchType) { 38052 MappingRuleMatchType["CONTAINS"] = "Contains"; 38053 MappingRuleMatchType["EQUALS"] = "Equals"; 38054 MappingRuleMatchType["NOT_EQUAL"] = "NotEqual"; 38055 MappingRuleMatchType["STARTS_WITH"] = "StartsWith"; 38056})(MappingRuleMatchType || (MappingRuleMatchType = {})); 38057var MergeDeveloperIdentitiesInput; 38058(function (MergeDeveloperIdentitiesInput) { 38059 MergeDeveloperIdentitiesInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38060 MergeDeveloperIdentitiesInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "MergeDeveloperIdentitiesInput"); }; 38061})(MergeDeveloperIdentitiesInput || (MergeDeveloperIdentitiesInput = {})); 38062var MergeDeveloperIdentitiesResponse; 38063(function (MergeDeveloperIdentitiesResponse) { 38064 MergeDeveloperIdentitiesResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38065 MergeDeveloperIdentitiesResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "MergeDeveloperIdentitiesResponse"); }; 38066})(MergeDeveloperIdentitiesResponse || (MergeDeveloperIdentitiesResponse = {})); 38067var NotAuthorizedException; 38068(function (NotAuthorizedException) { 38069 NotAuthorizedException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38070 NotAuthorizedException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "NotAuthorizedException"); }; 38071})(NotAuthorizedException || (NotAuthorizedException = {})); 38072var ResourceConflictException; 38073(function (ResourceConflictException) { 38074 ResourceConflictException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38075 ResourceConflictException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ResourceConflictException"); }; 38076})(ResourceConflictException || (ResourceConflictException = {})); 38077var ResourceNotFoundException; 38078(function (ResourceNotFoundException) { 38079 ResourceNotFoundException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38080 ResourceNotFoundException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "ResourceNotFoundException"); }; 38081})(ResourceNotFoundException || (ResourceNotFoundException = {})); 38082var RoleMapping; 38083(function (RoleMapping) { 38084 RoleMapping.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38085 RoleMapping.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "RoleMapping"); }; 38086})(RoleMapping || (RoleMapping = {})); 38087var RoleMappingType; 38088(function (RoleMappingType) { 38089 RoleMappingType["RULES"] = "Rules"; 38090 RoleMappingType["TOKEN"] = "Token"; 38091})(RoleMappingType || (RoleMappingType = {})); 38092var RulesConfigurationType; 38093(function (RulesConfigurationType) { 38094 RulesConfigurationType.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38095 RulesConfigurationType.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "RulesConfigurationType"); }; 38096})(RulesConfigurationType || (RulesConfigurationType = {})); 38097var SetIdentityPoolRolesInput; 38098(function (SetIdentityPoolRolesInput) { 38099 SetIdentityPoolRolesInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38100 SetIdentityPoolRolesInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "SetIdentityPoolRolesInput"); }; 38101})(SetIdentityPoolRolesInput || (SetIdentityPoolRolesInput = {})); 38102var TagResourceInput; 38103(function (TagResourceInput) { 38104 TagResourceInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38105 TagResourceInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "TagResourceInput"); }; 38106})(TagResourceInput || (TagResourceInput = {})); 38107var TagResourceResponse; 38108(function (TagResourceResponse) { 38109 TagResourceResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38110 TagResourceResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "TagResourceResponse"); }; 38111})(TagResourceResponse || (TagResourceResponse = {})); 38112var TooManyRequestsException; 38113(function (TooManyRequestsException) { 38114 TooManyRequestsException.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38115 TooManyRequestsException.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "TooManyRequestsException"); }; 38116})(TooManyRequestsException || (TooManyRequestsException = {})); 38117var UnlinkDeveloperIdentityInput; 38118(function (UnlinkDeveloperIdentityInput) { 38119 UnlinkDeveloperIdentityInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38120 UnlinkDeveloperIdentityInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "UnlinkDeveloperIdentityInput"); }; 38121})(UnlinkDeveloperIdentityInput || (UnlinkDeveloperIdentityInput = {})); 38122var UnlinkIdentityInput; 38123(function (UnlinkIdentityInput) { 38124 UnlinkIdentityInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38125 UnlinkIdentityInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "UnlinkIdentityInput"); }; 38126})(UnlinkIdentityInput || (UnlinkIdentityInput = {})); 38127var UnprocessedIdentityId; 38128(function (UnprocessedIdentityId) { 38129 UnprocessedIdentityId.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38130 UnprocessedIdentityId.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "UnprocessedIdentityId"); }; 38131})(UnprocessedIdentityId || (UnprocessedIdentityId = {})); 38132var UntagResourceInput; 38133(function (UntagResourceInput) { 38134 UntagResourceInput.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38135 UntagResourceInput.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "UntagResourceInput"); }; 38136})(UntagResourceInput || (UntagResourceInput = {})); 38137var UntagResourceResponse; 38138(function (UntagResourceResponse) { 38139 UntagResourceResponse.filterSensitiveLog = function (obj) { return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, obj)); }; 38140 UntagResourceResponse.isa = function (o) { return Object(_aws_sdk_smithy_client__WEBPACK_IMPORTED_MODULE_1__["isa"])(o, "UntagResourceResponse"); }; 38141})(UntagResourceResponse || (UntagResourceResponse = {})); 38142//# sourceMappingURL=index.js.map 38143 38144/***/ }), 38145
vendor: 3,724 bytes, lines 38146-38156
38146/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/package.json": 38147/*!****************************************************************************!*\ 38148 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/package.json ***! 38149 \****************************************************************************/ 38150/*! exports provided: name, description, version, scripts, main, types, module, browser, react-native, sideEffects, dependencies, devDependencies, engines, author, license, default */ 38151/***/ (function(module) { 38152 38153module.exports = JSON.parse("{\"name\":\"@aws-sdk/client-cognito-identity\",\"description\":\"@aws-sdk/client-cognito-identity client\",\"version\":\"1.0.0-gamma.4\",\"scripts\":{\"clean\":\"npm run remove-definitions && npm run remove-dist && npm run remove-js && npm run remove-maps\",\"build-documentation\":\"npm run clean && typedoc ./\",\"prepublishOnly\":\"yarn build\",\"pretest\":\"tsc\",\"remove-definitions\":\"rimraf ./types\",\"remove-dist\":\"rimraf ./dist\",\"remove-documentation\":\"rimraf ./docs\",\"remove-js\":\"rimraf *.js && rimraf ./commands/*.js && rimraf ./models/*.js && rimraf ./protocols/*.js\",\"remove-maps\":\"rimraf *.js.map && rimraf ./commands/*.js.map && rimraf ./models/*.js.map && rimraf ./protocols/*.js.map\",\"test:unit\":\"mocha **/cjs/**/*.spec.js\",\"test:e2e\":\"mocha **/cjs/**/*.ispec.js && karma start karma.conf.js\",\"test\":\"yarn test:unit\",\"build:es\":\"tsc -p tsconfig.es.json\",\"build\":\"yarn pretest && yarn build:es\"},\"main\":\"./dist/cjs/index.js\",\"types\":\"./types/index.d.ts\",\"module\":\"./dist/es/index.js\",\"browser\":{\"./runtimeConfig\":\"./runtimeConfig.browser\"},\"react-native\":{\"./runtimeConfig\":\"./runtimeConfig.native\"},\"sideEffects\":false,\"dependencies\":{\"@aws-crypto/sha256-browser\":\"^1.0.0-alpha.0\",\"@aws-crypto/sha256-js\":\"^1.0.0-alpha.0\",\"@aws-sdk/config-resolver\":\"1.0.0-gamma.3\",\"@aws-sdk/credential-provider-node\":\"1.0.0-gamma.3\",\"@aws-sdk/fetch-http-handler\":\"1.0.0-gamma.4\",\"@aws-sdk/hash-node\":\"1.0.0-gamma.3\",\"@aws-sdk/invalid-dependency\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-content-length\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-host-header\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-retry\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-serde\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-signing\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-stack\":\"1.0.0-gamma.3\",\"@aws-sdk/middleware-user-agent\":\"1.0.0-gamma.3\",\"@aws-sdk/node-http-handler\":\"1.0.0-gamma.3\",\"@aws-sdk/protocol-http\":\"1.0.0-gamma.3\",\"@aws-sdk/region-provider\":\"1.0.0-gamma.3\",\"@aws-sdk/retry-config-provider\":\"1.0.0-gamma.2\",\"@aws-sdk/smithy-client\":\"1.0.0-gamma.3\",\"@aws-sdk/types\":\"1.0.0-gamma.3\",\"@aws-sdk/url-parser-browser\":\"1.0.0-gamma.3\",\"@aws-sdk/url-parser-node\":\"1.0.0-gamma.3\",\"@aws-sdk/util-base64-browser\":\"1.0.0-gamma.3\",\"@aws-sdk/util-base64-node\":\"1.0.0-gamma.3\",\"@aws-sdk/util-body-length-browser\":\"1.0.0-gamma.3\",\"@aws-sdk/util-body-length-node\":\"1.0.0-gamma.3\",\"@aws-sdk/util-user-agent-browser\":\"1.0.0-gamma.3\",\"@aws-sdk/util-user-agent-node\":\"1.0.0-gamma.3\",\"@aws-sdk/util-utf8-browser\":\"1.0.0-gamma.3\",\"@aws-sdk/util-utf8-node\":\"1.0.0-gamma.3\",\"tslib\":\"^1.8.0\"},\"devDependencies\":{\"@aws-sdk/client-iam\":\"1.0.0-gamma.4\",\"@types/chai\":\"^4.2.11\",\"@types/mocha\":\"^7.0.2\",\"@types/node\":\"^12.7.5\",\"jest\":\"^25.1.0\",\"rimraf\":\"^3.0.0\",\"tslib\":\"^1.8.0\",\"typedoc\":\"^0.15.0\",\"typescript\":\"~3.9.3\"},\"engines\":{\"node\":\">=8.0.0\"},\"author\":{\"name\":\"AWS SDK for JavaScript Team\",\"url\":\"https://aws.amazon.com/javascript/\"},\"license\":\"Apache-2.0\"}"); 38154 38155/***/ }), 38156
vendor: 213,338 bytes, lines 38157-41102
38157/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js": 38158/*!****************************************************************************************!*\ 38159 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/protocols/Aws_json1_1.js ***! 38160 \****************************************************************************************/ 38161/*! exports provided: serializeAws_json1_1CreateIdentityPoolCommand, serializeAws_json1_1DeleteIdentitiesCommand, serializeAws_json1_1DeleteIdentityPoolCommand, serializeAws_json1_1DescribeIdentityCommand, serializeAws_json1_1DescribeIdentityPoolCommand, serializeAws_json1_1GetCredentialsForIdentityCommand, serializeAws_json1_1GetIdCommand, serializeAws_json1_1GetIdentityPoolRolesCommand, serializeAws_json1_1GetOpenIdTokenCommand, serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand, serializeAws_json1_1ListIdentitiesCommand, serializeAws_json1_1ListIdentityPoolsCommand, serializeAws_json1_1ListTagsForResourceCommand, serializeAws_json1_1LookupDeveloperIdentityCommand, serializeAws_json1_1MergeDeveloperIdentitiesCommand, serializeAws_json1_1SetIdentityPoolRolesCommand, serializeAws_json1_1TagResourceCommand, serializeAws_json1_1UnlinkDeveloperIdentityCommand, serializeAws_json1_1UnlinkIdentityCommand, serializeAws_json1_1UntagResourceCommand, serializeAws_json1_1UpdateIdentityPoolCommand, deserializeAws_json1_1CreateIdentityPoolCommand, deserializeAws_json1_1DeleteIdentitiesCommand, deserializeAws_json1_1DeleteIdentityPoolCommand, deserializeAws_json1_1DescribeIdentityCommand, deserializeAws_json1_1DescribeIdentityPoolCommand, deserializeAws_json1_1GetCredentialsForIdentityCommand, deserializeAws_json1_1GetIdCommand, deserializeAws_json1_1GetIdentityPoolRolesCommand, deserializeAws_json1_1GetOpenIdTokenCommand, deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand, deserializeAws_json1_1ListIdentitiesCommand, deserializeAws_json1_1ListIdentityPoolsCommand, deserializeAws_json1_1ListTagsForResourceCommand, deserializeAws_json1_1LookupDeveloperIdentityCommand, deserializeAws_json1_1MergeDeveloperIdentitiesCommand, deserializeAws_json1_1SetIdentityPoolRolesCommand, deserializeAws_json1_1TagResourceCommand, deserializeAws_json1_1UnlinkDeveloperIdentityCommand, deserializeAws_json1_1UnlinkIdentityCommand, deserializeAws_json1_1UntagResourceCommand, deserializeAws_json1_1UpdateIdentityPoolCommand */ 38162/***/ (function(module, __webpack_exports__, __webpack_require__) { 38163 38164"use strict"; 38165__webpack_require__.r(__webpack_exports__); 38166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1CreateIdentityPoolCommand", function() { return serializeAws_json1_1CreateIdentityPoolCommand; }); 38167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1DeleteIdentitiesCommand", function() { return serializeAws_json1_1DeleteIdentitiesCommand; }); 38168/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1DeleteIdentityPoolCommand", function() { return serializeAws_json1_1DeleteIdentityPoolCommand; }); 38169/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1DescribeIdentityCommand", function() { return serializeAws_json1_1DescribeIdentityCommand; }); 38170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1DescribeIdentityPoolCommand", function() { return serializeAws_json1_1DescribeIdentityPoolCommand; }); 38171/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1GetCredentialsForIdentityCommand", function() { return serializeAws_json1_1GetCredentialsForIdentityCommand; }); 38172/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1GetIdCommand", function() { return serializeAws_json1_1GetIdCommand; }); 38173/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1GetIdentityPoolRolesCommand", function() { return serializeAws_json1_1GetIdentityPoolRolesCommand; }); 38174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1GetOpenIdTokenCommand", function() { return serializeAws_json1_1GetOpenIdTokenCommand; }); 38175/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand", function() { return serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand; }); 38176/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1ListIdentitiesCommand", function() { return serializeAws_json1_1ListIdentitiesCommand; }); 38177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1ListIdentityPoolsCommand", function() { return serializeAws_json1_1ListIdentityPoolsCommand; }); 38178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1ListTagsForResourceCommand", function() { return serializeAws_json1_1ListTagsForResourceCommand; }); 38179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1LookupDeveloperIdentityCommand", function() { return serializeAws_json1_1LookupDeveloperIdentityCommand; }); 38180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1MergeDeveloperIdentitiesCommand", function() { return serializeAws_json1_1MergeDeveloperIdentitiesCommand; }); 38181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1SetIdentityPoolRolesCommand", function() { return serializeAws_json1_1SetIdentityPoolRolesCommand; }); 38182/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1TagResourceCommand", function() { return serializeAws_json1_1TagResourceCommand; }); 38183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1UnlinkDeveloperIdentityCommand", function() { return serializeAws_json1_1UnlinkDeveloperIdentityCommand; }); 38184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1UnlinkIdentityCommand", function() { return serializeAws_json1_1UnlinkIdentityCommand; }); 38185/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1UntagResourceCommand", function() { return serializeAws_json1_1UntagResourceCommand; }); 38186/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeAws_json1_1UpdateIdentityPoolCommand", function() { return serializeAws_json1_1UpdateIdentityPoolCommand; }); 38187/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1CreateIdentityPoolCommand", function() { return deserializeAws_json1_1CreateIdentityPoolCommand; }); 38188/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1DeleteIdentitiesCommand", function() { return deserializeAws_json1_1DeleteIdentitiesCommand; }); 38189/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1DeleteIdentityPoolCommand", function() { return deserializeAws_json1_1DeleteIdentityPoolCommand; }); 38190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1DescribeIdentityCommand", function() { return deserializeAws_json1_1DescribeIdentityCommand; }); 38191/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1DescribeIdentityPoolCommand", function() { return deserializeAws_json1_1DescribeIdentityPoolCommand; }); 38192/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1GetCredentialsForIdentityCommand", function() { return deserializeAws_json1_1GetCredentialsForIdentityCommand; }); 38193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1GetIdCommand", function() { return deserializeAws_json1_1GetIdCommand; }); 38194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1GetIdentityPoolRolesCommand", function() { return deserializeAws_json1_1GetIdentityPoolRolesCommand; }); 38195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1GetOpenIdTokenCommand", function() { return deserializeAws_json1_1GetOpenIdTokenCommand; }); 38196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand", function() { return deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand; }); 38197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1ListIdentitiesCommand", function() { return deserializeAws_json1_1ListIdentitiesCommand; }); 38198/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1ListIdentityPoolsCommand", function() { return deserializeAws_json1_1ListIdentityPoolsCommand; }); 38199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1ListTagsForResourceCommand", function() { return deserializeAws_json1_1ListTagsForResourceCommand; }); 38200/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1LookupDeveloperIdentityCommand", function() { return deserializeAws_json1_1LookupDeveloperIdentityCommand; }); 38201/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1MergeDeveloperIdentitiesCommand", function() { return deserializeAws_json1_1MergeDeveloperIdentitiesCommand; }); 38202/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1SetIdentityPoolRolesCommand", function() { return deserializeAws_json1_1SetIdentityPoolRolesCommand; }); 38203/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1TagResourceCommand", function() { return deserializeAws_json1_1TagResourceCommand; }); 38204/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1UnlinkDeveloperIdentityCommand", function() { return deserializeAws_json1_1UnlinkDeveloperIdentityCommand; }); 38205/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1UnlinkIdentityCommand", function() { return deserializeAws_json1_1UnlinkIdentityCommand; }); 38206/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1UntagResourceCommand", function() { return deserializeAws_json1_1UntagResourceCommand; }); 38207/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deserializeAws_json1_1UpdateIdentityPoolCommand", function() { return deserializeAws_json1_1UpdateIdentityPoolCommand; }); 38208/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 38209/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 38210/* harmony import */ var _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_1__); 38211 38212 38213var serializeAws_json1_1CreateIdentityPoolCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38214 var headers, body; 38215 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38216 headers = { 38217 "Content-Type": "application/x-amz-json-1.1", 38218 "X-Amz-Target": "AWSCognitoIdentityService.CreateIdentityPool", 38219 }; 38220 body = JSON.stringify(serializeAws_json1_1CreateIdentityPoolInput(input, context)); 38221 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38222 }); 38223}); }; 38224var serializeAws_json1_1DeleteIdentitiesCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38225 var headers, body; 38226 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38227 headers = { 38228 "Content-Type": "application/x-amz-json-1.1", 38229 "X-Amz-Target": "AWSCognitoIdentityService.DeleteIdentities", 38230 }; 38231 body = JSON.stringify(serializeAws_json1_1DeleteIdentitiesInput(input, context)); 38232 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38233 }); 38234}); }; 38235var serializeAws_json1_1DeleteIdentityPoolCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38236 var headers, body; 38237 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38238 headers = { 38239 "Content-Type": "application/x-amz-json-1.1", 38240 "X-Amz-Target": "AWSCognitoIdentityService.DeleteIdentityPool", 38241 }; 38242 body = JSON.stringify(serializeAws_json1_1DeleteIdentityPoolInput(input, context)); 38243 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38244 }); 38245}); }; 38246var serializeAws_json1_1DescribeIdentityCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38247 var headers, body; 38248 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38249 headers = { 38250 "Content-Type": "application/x-amz-json-1.1", 38251 "X-Amz-Target": "AWSCognitoIdentityService.DescribeIdentity", 38252 }; 38253 body = JSON.stringify(serializeAws_json1_1DescribeIdentityInput(input, context)); 38254 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38255 }); 38256}); }; 38257var serializeAws_json1_1DescribeIdentityPoolCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38258 var headers, body; 38259 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38260 headers = { 38261 "Content-Type": "application/x-amz-json-1.1", 38262 "X-Amz-Target": "AWSCognitoIdentityService.DescribeIdentityPool", 38263 }; 38264 body = JSON.stringify(serializeAws_json1_1DescribeIdentityPoolInput(input, context)); 38265 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38266 }); 38267}); }; 38268var serializeAws_json1_1GetCredentialsForIdentityCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38269 var headers, body; 38270 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38271 headers = { 38272 "Content-Type": "application/x-amz-json-1.1", 38273 "X-Amz-Target": "AWSCognitoIdentityService.GetCredentialsForIdentity", 38274 }; 38275 body = JSON.stringify(serializeAws_json1_1GetCredentialsForIdentityInput(input, context)); 38276 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38277 }); 38278}); }; 38279var serializeAws_json1_1GetIdCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38280 var headers, body; 38281 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38282 headers = { 38283 "Content-Type": "application/x-amz-json-1.1", 38284 "X-Amz-Target": "AWSCognitoIdentityService.GetId", 38285 }; 38286 body = JSON.stringify(serializeAws_json1_1GetIdInput(input, context)); 38287 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38288 }); 38289}); }; 38290var serializeAws_json1_1GetIdentityPoolRolesCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38291 var headers, body; 38292 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38293 headers = { 38294 "Content-Type": "application/x-amz-json-1.1", 38295 "X-Amz-Target": "AWSCognitoIdentityService.GetIdentityPoolRoles", 38296 }; 38297 body = JSON.stringify(serializeAws_json1_1GetIdentityPoolRolesInput(input, context)); 38298 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38299 }); 38300}); }; 38301var serializeAws_json1_1GetOpenIdTokenCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38302 var headers, body; 38303 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38304 headers = { 38305 "Content-Type": "application/x-amz-json-1.1", 38306 "X-Amz-Target": "AWSCognitoIdentityService.GetOpenIdToken", 38307 }; 38308 body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenInput(input, context)); 38309 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38310 }); 38311}); }; 38312var serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38313 var headers, body; 38314 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38315 headers = { 38316 "Content-Type": "application/x-amz-json-1.1", 38317 "X-Amz-Target": "AWSCognitoIdentityService.GetOpenIdTokenForDeveloperIdentity", 38318 }; 38319 body = JSON.stringify(serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput(input, context)); 38320 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38321 }); 38322}); }; 38323var serializeAws_json1_1ListIdentitiesCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38324 var headers, body; 38325 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38326 headers = { 38327 "Content-Type": "application/x-amz-json-1.1", 38328 "X-Amz-Target": "AWSCognitoIdentityService.ListIdentities", 38329 }; 38330 body = JSON.stringify(serializeAws_json1_1ListIdentitiesInput(input, context)); 38331 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38332 }); 38333}); }; 38334var serializeAws_json1_1ListIdentityPoolsCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38335 var headers, body; 38336 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38337 headers = { 38338 "Content-Type": "application/x-amz-json-1.1", 38339 "X-Amz-Target": "AWSCognitoIdentityService.ListIdentityPools", 38340 }; 38341 body = JSON.stringify(serializeAws_json1_1ListIdentityPoolsInput(input, context)); 38342 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38343 }); 38344}); }; 38345var serializeAws_json1_1ListTagsForResourceCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38346 var headers, body; 38347 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38348 headers = { 38349 "Content-Type": "application/x-amz-json-1.1", 38350 "X-Amz-Target": "AWSCognitoIdentityService.ListTagsForResource", 38351 }; 38352 body = JSON.stringify(serializeAws_json1_1ListTagsForResourceInput(input, context)); 38353 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38354 }); 38355}); }; 38356var serializeAws_json1_1LookupDeveloperIdentityCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38357 var headers, body; 38358 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38359 headers = { 38360 "Content-Type": "application/x-amz-json-1.1", 38361 "X-Amz-Target": "AWSCognitoIdentityService.LookupDeveloperIdentity", 38362 }; 38363 body = JSON.stringify(serializeAws_json1_1LookupDeveloperIdentityInput(input, context)); 38364 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38365 }); 38366}); }; 38367var serializeAws_json1_1MergeDeveloperIdentitiesCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38368 var headers, body; 38369 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38370 headers = { 38371 "Content-Type": "application/x-amz-json-1.1", 38372 "X-Amz-Target": "AWSCognitoIdentityService.MergeDeveloperIdentities", 38373 }; 38374 body = JSON.stringify(serializeAws_json1_1MergeDeveloperIdentitiesInput(input, context)); 38375 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38376 }); 38377}); }; 38378var serializeAws_json1_1SetIdentityPoolRolesCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38379 var headers, body; 38380 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38381 headers = { 38382 "Content-Type": "application/x-amz-json-1.1", 38383 "X-Amz-Target": "AWSCognitoIdentityService.SetIdentityPoolRoles", 38384 }; 38385 body = JSON.stringify(serializeAws_json1_1SetIdentityPoolRolesInput(input, context)); 38386 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38387 }); 38388}); }; 38389var serializeAws_json1_1TagResourceCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38390 var headers, body; 38391 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38392 headers = { 38393 "Content-Type": "application/x-amz-json-1.1", 38394 "X-Amz-Target": "AWSCognitoIdentityService.TagResource", 38395 }; 38396 body = JSON.stringify(serializeAws_json1_1TagResourceInput(input, context)); 38397 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38398 }); 38399}); }; 38400var serializeAws_json1_1UnlinkDeveloperIdentityCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38401 var headers, body; 38402 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38403 headers = { 38404 "Content-Type": "application/x-amz-json-1.1", 38405 "X-Amz-Target": "AWSCognitoIdentityService.UnlinkDeveloperIdentity", 38406 }; 38407 body = JSON.stringify(serializeAws_json1_1UnlinkDeveloperIdentityInput(input, context)); 38408 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38409 }); 38410}); }; 38411var serializeAws_json1_1UnlinkIdentityCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38412 var headers, body; 38413 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38414 headers = { 38415 "Content-Type": "application/x-amz-json-1.1", 38416 "X-Amz-Target": "AWSCognitoIdentityService.UnlinkIdentity", 38417 }; 38418 body = JSON.stringify(serializeAws_json1_1UnlinkIdentityInput(input, context)); 38419 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38420 }); 38421}); }; 38422var serializeAws_json1_1UntagResourceCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38423 var headers, body; 38424 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38425 headers = { 38426 "Content-Type": "application/x-amz-json-1.1", 38427 "X-Amz-Target": "AWSCognitoIdentityService.UntagResource", 38428 }; 38429 body = JSON.stringify(serializeAws_json1_1UntagResourceInput(input, context)); 38430 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38431 }); 38432}); }; 38433var serializeAws_json1_1UpdateIdentityPoolCommand = function (input, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38434 var headers, body; 38435 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38436 headers = { 38437 "Content-Type": "application/x-amz-json-1.1", 38438 "X-Amz-Target": "AWSCognitoIdentityService.UpdateIdentityPool", 38439 }; 38440 body = JSON.stringify(serializeAws_json1_1IdentityPool(input, context)); 38441 return [2 /*return*/, buildHttpRpcRequest(context, headers, "/", undefined, body)]; 38442 }); 38443}); }; 38444var deserializeAws_json1_1CreateIdentityPoolCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38445 var data, contents, response; 38446 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38447 switch (_a.label) { 38448 case 0: 38449 if (output.statusCode >= 400) { 38450 return [2 /*return*/, deserializeAws_json1_1CreateIdentityPoolCommandError(output, context)]; 38451 } 38452 return [4 /*yield*/, parseBody(output.body, context)]; 38453 case 1: 38454 data = _a.sent(); 38455 contents = {}; 38456 contents = deserializeAws_json1_1IdentityPool(data, context); 38457 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "IdentityPool" }, contents); 38458 return [2 /*return*/, Promise.resolve(response)]; 38459 } 38460 }); 38461}); }; 38462var deserializeAws_json1_1CreateIdentityPoolCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38463 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, parsedBody, message; 38464 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_k) { 38465 switch (_k.label) { 38466 case 0: 38467 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 38468 _b = {}; 38469 return [4 /*yield*/, parseBody(output.body, context)]; 38470 case 1: 38471 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _k.sent(), _b)])); 38472 errorCode = "UnknownError"; 38473 errorTypeParts = parsedOutput.body["__type"].split("#"); 38474 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 38475 _c = errorCode; 38476 switch (_c) { 38477 case "InternalErrorException": return [3 /*break*/, 2]; 38478 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 38479 case "InvalidParameterException": return [3 /*break*/, 4]; 38480 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 38481 case "LimitExceededException": return [3 /*break*/, 6]; 38482 case "com.amazonaws.cognitoidentity#LimitExceededException": return [3 /*break*/, 6]; 38483 case "NotAuthorizedException": return [3 /*break*/, 8]; 38484 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 8]; 38485 case "ResourceConflictException": return [3 /*break*/, 10]; 38486 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 10]; 38487 case "TooManyRequestsException": return [3 /*break*/, 12]; 38488 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 12]; 38489 } 38490 return [3 /*break*/, 14]; 38491 case 2: 38492 _d = [{}]; 38493 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 38494 case 3: 38495 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38496 return [3 /*break*/, 15]; 38497 case 4: 38498 _e = [{}]; 38499 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 38500 case 5: 38501 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38502 return [3 /*break*/, 15]; 38503 case 6: 38504 _f = [{}]; 38505 return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)]; 38506 case 7: 38507 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38508 return [3 /*break*/, 15]; 38509 case 8: 38510 _g = [{}]; 38511 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 38512 case 9: 38513 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38514 return [3 /*break*/, 15]; 38515 case 10: 38516 _h = [{}]; 38517 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 38518 case 11: 38519 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38520 return [3 /*break*/, 15]; 38521 case 12: 38522 _j = [{}]; 38523 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 38524 case 13: 38525 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38526 return [3 /*break*/, 15]; 38527 case 14: 38528 parsedBody = parsedOutput.body; 38529 errorCode = parsedBody.code || parsedBody.Code || errorCode; 38530 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 38531 _k.label = 15; 38532 case 15: 38533 message = response.message || response.Message || errorCode; 38534 response.message = message; 38535 delete response.Message; 38536 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 38537 } 38538 }); 38539}); }; 38540var deserializeAws_json1_1DeleteIdentitiesCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38541 var data, contents, response; 38542 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38543 switch (_a.label) { 38544 case 0: 38545 if (output.statusCode >= 400) { 38546 return [2 /*return*/, deserializeAws_json1_1DeleteIdentitiesCommandError(output, context)]; 38547 } 38548 return [4 /*yield*/, parseBody(output.body, context)]; 38549 case 1: 38550 data = _a.sent(); 38551 contents = {}; 38552 contents = deserializeAws_json1_1DeleteIdentitiesResponse(data, context); 38553 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "DeleteIdentitiesResponse" }, contents); 38554 return [2 /*return*/, Promise.resolve(response)]; 38555 } 38556 }); 38557}); }; 38558var deserializeAws_json1_1DeleteIdentitiesCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38559 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, parsedBody, message; 38560 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_g) { 38561 switch (_g.label) { 38562 case 0: 38563 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 38564 _b = {}; 38565 return [4 /*yield*/, parseBody(output.body, context)]; 38566 case 1: 38567 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _g.sent(), _b)])); 38568 errorCode = "UnknownError"; 38569 errorTypeParts = parsedOutput.body["__type"].split("#"); 38570 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 38571 _c = errorCode; 38572 switch (_c) { 38573 case "InternalErrorException": return [3 /*break*/, 2]; 38574 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 38575 case "InvalidParameterException": return [3 /*break*/, 4]; 38576 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 38577 case "TooManyRequestsException": return [3 /*break*/, 6]; 38578 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 6]; 38579 } 38580 return [3 /*break*/, 8]; 38581 case 2: 38582 _d = [{}]; 38583 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 38584 case 3: 38585 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38586 return [3 /*break*/, 9]; 38587 case 4: 38588 _e = [{}]; 38589 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 38590 case 5: 38591 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38592 return [3 /*break*/, 9]; 38593 case 6: 38594 _f = [{}]; 38595 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 38596 case 7: 38597 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_g.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38598 return [3 /*break*/, 9]; 38599 case 8: 38600 parsedBody = parsedOutput.body; 38601 errorCode = parsedBody.code || parsedBody.Code || errorCode; 38602 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 38603 _g.label = 9; 38604 case 9: 38605 message = response.message || response.Message || errorCode; 38606 response.message = message; 38607 delete response.Message; 38608 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 38609 } 38610 }); 38611}); }; 38612var deserializeAws_json1_1DeleteIdentityPoolCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38613 var response; 38614 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38615 switch (_a.label) { 38616 case 0: 38617 if (output.statusCode >= 400) { 38618 return [2 /*return*/, deserializeAws_json1_1DeleteIdentityPoolCommandError(output, context)]; 38619 } 38620 return [4 /*yield*/, collectBody(output.body, context)]; 38621 case 1: 38622 _a.sent(); 38623 response = { 38624 $metadata: deserializeMetadata(output), 38625 }; 38626 return [2 /*return*/, Promise.resolve(response)]; 38627 } 38628 }); 38629}); }; 38630var deserializeAws_json1_1DeleteIdentityPoolCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38631 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 38632 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 38633 switch (_j.label) { 38634 case 0: 38635 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 38636 _b = {}; 38637 return [4 /*yield*/, parseBody(output.body, context)]; 38638 case 1: 38639 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 38640 errorCode = "UnknownError"; 38641 errorTypeParts = parsedOutput.body["__type"].split("#"); 38642 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 38643 _c = errorCode; 38644 switch (_c) { 38645 case "InternalErrorException": return [3 /*break*/, 2]; 38646 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 38647 case "InvalidParameterException": return [3 /*break*/, 4]; 38648 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 38649 case "NotAuthorizedException": return [3 /*break*/, 6]; 38650 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 38651 case "ResourceNotFoundException": return [3 /*break*/, 8]; 38652 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 38653 case "TooManyRequestsException": return [3 /*break*/, 10]; 38654 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 38655 } 38656 return [3 /*break*/, 12]; 38657 case 2: 38658 _d = [{}]; 38659 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 38660 case 3: 38661 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38662 return [3 /*break*/, 13]; 38663 case 4: 38664 _e = [{}]; 38665 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 38666 case 5: 38667 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38668 return [3 /*break*/, 13]; 38669 case 6: 38670 _f = [{}]; 38671 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 38672 case 7: 38673 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38674 return [3 /*break*/, 13]; 38675 case 8: 38676 _g = [{}]; 38677 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 38678 case 9: 38679 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38680 return [3 /*break*/, 13]; 38681 case 10: 38682 _h = [{}]; 38683 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 38684 case 11: 38685 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38686 return [3 /*break*/, 13]; 38687 case 12: 38688 parsedBody = parsedOutput.body; 38689 errorCode = parsedBody.code || parsedBody.Code || errorCode; 38690 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 38691 _j.label = 13; 38692 case 13: 38693 message = response.message || response.Message || errorCode; 38694 response.message = message; 38695 delete response.Message; 38696 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 38697 } 38698 }); 38699}); }; 38700var deserializeAws_json1_1DescribeIdentityCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38701 var data, contents, response; 38702 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38703 switch (_a.label) { 38704 case 0: 38705 if (output.statusCode >= 400) { 38706 return [2 /*return*/, deserializeAws_json1_1DescribeIdentityCommandError(output, context)]; 38707 } 38708 return [4 /*yield*/, parseBody(output.body, context)]; 38709 case 1: 38710 data = _a.sent(); 38711 contents = {}; 38712 contents = deserializeAws_json1_1IdentityDescription(data, context); 38713 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "IdentityDescription" }, contents); 38714 return [2 /*return*/, Promise.resolve(response)]; 38715 } 38716 }); 38717}); }; 38718var deserializeAws_json1_1DescribeIdentityCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38719 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 38720 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 38721 switch (_j.label) { 38722 case 0: 38723 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 38724 _b = {}; 38725 return [4 /*yield*/, parseBody(output.body, context)]; 38726 case 1: 38727 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 38728 errorCode = "UnknownError"; 38729 errorTypeParts = parsedOutput.body["__type"].split("#"); 38730 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 38731 _c = errorCode; 38732 switch (_c) { 38733 case "InternalErrorException": return [3 /*break*/, 2]; 38734 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 38735 case "InvalidParameterException": return [3 /*break*/, 4]; 38736 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 38737 case "NotAuthorizedException": return [3 /*break*/, 6]; 38738 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 38739 case "ResourceNotFoundException": return [3 /*break*/, 8]; 38740 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 38741 case "TooManyRequestsException": return [3 /*break*/, 10]; 38742 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 38743 } 38744 return [3 /*break*/, 12]; 38745 case 2: 38746 _d = [{}]; 38747 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 38748 case 3: 38749 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38750 return [3 /*break*/, 13]; 38751 case 4: 38752 _e = [{}]; 38753 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 38754 case 5: 38755 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38756 return [3 /*break*/, 13]; 38757 case 6: 38758 _f = [{}]; 38759 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 38760 case 7: 38761 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38762 return [3 /*break*/, 13]; 38763 case 8: 38764 _g = [{}]; 38765 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 38766 case 9: 38767 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38768 return [3 /*break*/, 13]; 38769 case 10: 38770 _h = [{}]; 38771 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 38772 case 11: 38773 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38774 return [3 /*break*/, 13]; 38775 case 12: 38776 parsedBody = parsedOutput.body; 38777 errorCode = parsedBody.code || parsedBody.Code || errorCode; 38778 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 38779 _j.label = 13; 38780 case 13: 38781 message = response.message || response.Message || errorCode; 38782 response.message = message; 38783 delete response.Message; 38784 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 38785 } 38786 }); 38787}); }; 38788var deserializeAws_json1_1DescribeIdentityPoolCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38789 var data, contents, response; 38790 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38791 switch (_a.label) { 38792 case 0: 38793 if (output.statusCode >= 400) { 38794 return [2 /*return*/, deserializeAws_json1_1DescribeIdentityPoolCommandError(output, context)]; 38795 } 38796 return [4 /*yield*/, parseBody(output.body, context)]; 38797 case 1: 38798 data = _a.sent(); 38799 contents = {}; 38800 contents = deserializeAws_json1_1IdentityPool(data, context); 38801 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "IdentityPool" }, contents); 38802 return [2 /*return*/, Promise.resolve(response)]; 38803 } 38804 }); 38805}); }; 38806var deserializeAws_json1_1DescribeIdentityPoolCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38807 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 38808 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 38809 switch (_j.label) { 38810 case 0: 38811 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 38812 _b = {}; 38813 return [4 /*yield*/, parseBody(output.body, context)]; 38814 case 1: 38815 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 38816 errorCode = "UnknownError"; 38817 errorTypeParts = parsedOutput.body["__type"].split("#"); 38818 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 38819 _c = errorCode; 38820 switch (_c) { 38821 case "InternalErrorException": return [3 /*break*/, 2]; 38822 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 38823 case "InvalidParameterException": return [3 /*break*/, 4]; 38824 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 38825 case "NotAuthorizedException": return [3 /*break*/, 6]; 38826 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 38827 case "ResourceNotFoundException": return [3 /*break*/, 8]; 38828 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 38829 case "TooManyRequestsException": return [3 /*break*/, 10]; 38830 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 38831 } 38832 return [3 /*break*/, 12]; 38833 case 2: 38834 _d = [{}]; 38835 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 38836 case 3: 38837 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38838 return [3 /*break*/, 13]; 38839 case 4: 38840 _e = [{}]; 38841 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 38842 case 5: 38843 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38844 return [3 /*break*/, 13]; 38845 case 6: 38846 _f = [{}]; 38847 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 38848 case 7: 38849 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38850 return [3 /*break*/, 13]; 38851 case 8: 38852 _g = [{}]; 38853 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 38854 case 9: 38855 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38856 return [3 /*break*/, 13]; 38857 case 10: 38858 _h = [{}]; 38859 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 38860 case 11: 38861 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38862 return [3 /*break*/, 13]; 38863 case 12: 38864 parsedBody = parsedOutput.body; 38865 errorCode = parsedBody.code || parsedBody.Code || errorCode; 38866 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 38867 _j.label = 13; 38868 case 13: 38869 message = response.message || response.Message || errorCode; 38870 response.message = message; 38871 delete response.Message; 38872 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 38873 } 38874 }); 38875}); }; 38876var deserializeAws_json1_1GetCredentialsForIdentityCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38877 var data, contents, response; 38878 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38879 switch (_a.label) { 38880 case 0: 38881 if (output.statusCode >= 400) { 38882 return [2 /*return*/, deserializeAws_json1_1GetCredentialsForIdentityCommandError(output, context)]; 38883 } 38884 return [4 /*yield*/, parseBody(output.body, context)]; 38885 case 1: 38886 data = _a.sent(); 38887 contents = {}; 38888 contents = deserializeAws_json1_1GetCredentialsForIdentityResponse(data, context); 38889 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "GetCredentialsForIdentityResponse" }, contents); 38890 return [2 /*return*/, Promise.resolve(response)]; 38891 } 38892 }); 38893}); }; 38894var deserializeAws_json1_1GetCredentialsForIdentityCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38895 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, _l, parsedBody, message; 38896 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_m) { 38897 switch (_m.label) { 38898 case 0: 38899 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 38900 _b = {}; 38901 return [4 /*yield*/, parseBody(output.body, context)]; 38902 case 1: 38903 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _m.sent(), _b)])); 38904 errorCode = "UnknownError"; 38905 errorTypeParts = parsedOutput.body["__type"].split("#"); 38906 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 38907 _c = errorCode; 38908 switch (_c) { 38909 case "ExternalServiceException": return [3 /*break*/, 2]; 38910 case "com.amazonaws.cognitoidentity#ExternalServiceException": return [3 /*break*/, 2]; 38911 case "InternalErrorException": return [3 /*break*/, 4]; 38912 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 38913 case "InvalidIdentityPoolConfigurationException": return [3 /*break*/, 6]; 38914 case "com.amazonaws.cognitoidentity#InvalidIdentityPoolConfigurationException": return [3 /*break*/, 6]; 38915 case "InvalidParameterException": return [3 /*break*/, 8]; 38916 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 8]; 38917 case "NotAuthorizedException": return [3 /*break*/, 10]; 38918 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 10]; 38919 case "ResourceConflictException": return [3 /*break*/, 12]; 38920 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 12]; 38921 case "ResourceNotFoundException": return [3 /*break*/, 14]; 38922 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 14]; 38923 case "TooManyRequestsException": return [3 /*break*/, 16]; 38924 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 16]; 38925 } 38926 return [3 /*break*/, 18]; 38927 case 2: 38928 _d = [{}]; 38929 return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)]; 38930 case 3: 38931 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38932 return [3 /*break*/, 19]; 38933 case 4: 38934 _e = [{}]; 38935 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 38936 case 5: 38937 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38938 return [3 /*break*/, 19]; 38939 case 6: 38940 _f = [{}]; 38941 return [4 /*yield*/, deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse(parsedOutput, context)]; 38942 case 7: 38943 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38944 return [3 /*break*/, 19]; 38945 case 8: 38946 _g = [{}]; 38947 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 38948 case 9: 38949 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38950 return [3 /*break*/, 19]; 38951 case 10: 38952 _h = [{}]; 38953 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 38954 case 11: 38955 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38956 return [3 /*break*/, 19]; 38957 case 12: 38958 _j = [{}]; 38959 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 38960 case 13: 38961 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38962 return [3 /*break*/, 19]; 38963 case 14: 38964 _k = [{}]; 38965 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 38966 case 15: 38967 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38968 return [3 /*break*/, 19]; 38969 case 16: 38970 _l = [{}]; 38971 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 38972 case 17: 38973 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _l.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 38974 return [3 /*break*/, 19]; 38975 case 18: 38976 parsedBody = parsedOutput.body; 38977 errorCode = parsedBody.code || parsedBody.Code || errorCode; 38978 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 38979 _m.label = 19; 38980 case 19: 38981 message = response.message || response.Message || errorCode; 38982 response.message = message; 38983 delete response.Message; 38984 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 38985 } 38986 }); 38987}); }; 38988var deserializeAws_json1_1GetIdCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 38989 var data, contents, response; 38990 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 38991 switch (_a.label) { 38992 case 0: 38993 if (output.statusCode >= 400) { 38994 return [2 /*return*/, deserializeAws_json1_1GetIdCommandError(output, context)]; 38995 } 38996 return [4 /*yield*/, parseBody(output.body, context)]; 38997 case 1: 38998 data = _a.sent(); 38999 contents = {}; 39000 contents = deserializeAws_json1_1GetIdResponse(data, context); 39001 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "GetIdResponse" }, contents); 39002 return [2 /*return*/, Promise.resolve(response)]; 39003 } 39004 }); 39005}); }; 39006var deserializeAws_json1_1GetIdCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39007 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, _l, parsedBody, message; 39008 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_m) { 39009 switch (_m.label) { 39010 case 0: 39011 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39012 _b = {}; 39013 return [4 /*yield*/, parseBody(output.body, context)]; 39014 case 1: 39015 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _m.sent(), _b)])); 39016 errorCode = "UnknownError"; 39017 errorTypeParts = parsedOutput.body["__type"].split("#"); 39018 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39019 _c = errorCode; 39020 switch (_c) { 39021 case "ExternalServiceException": return [3 /*break*/, 2]; 39022 case "com.amazonaws.cognitoidentity#ExternalServiceException": return [3 /*break*/, 2]; 39023 case "InternalErrorException": return [3 /*break*/, 4]; 39024 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 39025 case "InvalidParameterException": return [3 /*break*/, 6]; 39026 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 6]; 39027 case "LimitExceededException": return [3 /*break*/, 8]; 39028 case "com.amazonaws.cognitoidentity#LimitExceededException": return [3 /*break*/, 8]; 39029 case "NotAuthorizedException": return [3 /*break*/, 10]; 39030 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 10]; 39031 case "ResourceConflictException": return [3 /*break*/, 12]; 39032 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 12]; 39033 case "ResourceNotFoundException": return [3 /*break*/, 14]; 39034 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 14]; 39035 case "TooManyRequestsException": return [3 /*break*/, 16]; 39036 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 16]; 39037 } 39038 return [3 /*break*/, 18]; 39039 case 2: 39040 _d = [{}]; 39041 return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)]; 39042 case 3: 39043 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39044 return [3 /*break*/, 19]; 39045 case 4: 39046 _e = [{}]; 39047 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39048 case 5: 39049 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39050 return [3 /*break*/, 19]; 39051 case 6: 39052 _f = [{}]; 39053 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39054 case 7: 39055 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39056 return [3 /*break*/, 19]; 39057 case 8: 39058 _g = [{}]; 39059 return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)]; 39060 case 9: 39061 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39062 return [3 /*break*/, 19]; 39063 case 10: 39064 _h = [{}]; 39065 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39066 case 11: 39067 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39068 return [3 /*break*/, 19]; 39069 case 12: 39070 _j = [{}]; 39071 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39072 case 13: 39073 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39074 return [3 /*break*/, 19]; 39075 case 14: 39076 _k = [{}]; 39077 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39078 case 15: 39079 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39080 return [3 /*break*/, 19]; 39081 case 16: 39082 _l = [{}]; 39083 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39084 case 17: 39085 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _l.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39086 return [3 /*break*/, 19]; 39087 case 18: 39088 parsedBody = parsedOutput.body; 39089 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39090 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39091 _m.label = 19; 39092 case 19: 39093 message = response.message || response.Message || errorCode; 39094 response.message = message; 39095 delete response.Message; 39096 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39097 } 39098 }); 39099}); }; 39100var deserializeAws_json1_1GetIdentityPoolRolesCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39101 var data, contents, response; 39102 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39103 switch (_a.label) { 39104 case 0: 39105 if (output.statusCode >= 400) { 39106 return [2 /*return*/, deserializeAws_json1_1GetIdentityPoolRolesCommandError(output, context)]; 39107 } 39108 return [4 /*yield*/, parseBody(output.body, context)]; 39109 case 1: 39110 data = _a.sent(); 39111 contents = {}; 39112 contents = deserializeAws_json1_1GetIdentityPoolRolesResponse(data, context); 39113 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "GetIdentityPoolRolesResponse" }, contents); 39114 return [2 /*return*/, Promise.resolve(response)]; 39115 } 39116 }); 39117}); }; 39118var deserializeAws_json1_1GetIdentityPoolRolesCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39119 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, parsedBody, message; 39120 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_k) { 39121 switch (_k.label) { 39122 case 0: 39123 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39124 _b = {}; 39125 return [4 /*yield*/, parseBody(output.body, context)]; 39126 case 1: 39127 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _k.sent(), _b)])); 39128 errorCode = "UnknownError"; 39129 errorTypeParts = parsedOutput.body["__type"].split("#"); 39130 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39131 _c = errorCode; 39132 switch (_c) { 39133 case "InternalErrorException": return [3 /*break*/, 2]; 39134 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39135 case "InvalidParameterException": return [3 /*break*/, 4]; 39136 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 39137 case "NotAuthorizedException": return [3 /*break*/, 6]; 39138 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 39139 case "ResourceConflictException": return [3 /*break*/, 8]; 39140 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 8]; 39141 case "ResourceNotFoundException": return [3 /*break*/, 10]; 39142 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 10]; 39143 case "TooManyRequestsException": return [3 /*break*/, 12]; 39144 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 12]; 39145 } 39146 return [3 /*break*/, 14]; 39147 case 2: 39148 _d = [{}]; 39149 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39150 case 3: 39151 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39152 return [3 /*break*/, 15]; 39153 case 4: 39154 _e = [{}]; 39155 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39156 case 5: 39157 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39158 return [3 /*break*/, 15]; 39159 case 6: 39160 _f = [{}]; 39161 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39162 case 7: 39163 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39164 return [3 /*break*/, 15]; 39165 case 8: 39166 _g = [{}]; 39167 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39168 case 9: 39169 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39170 return [3 /*break*/, 15]; 39171 case 10: 39172 _h = [{}]; 39173 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39174 case 11: 39175 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39176 return [3 /*break*/, 15]; 39177 case 12: 39178 _j = [{}]; 39179 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39180 case 13: 39181 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39182 return [3 /*break*/, 15]; 39183 case 14: 39184 parsedBody = parsedOutput.body; 39185 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39186 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39187 _k.label = 15; 39188 case 15: 39189 message = response.message || response.Message || errorCode; 39190 response.message = message; 39191 delete response.Message; 39192 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39193 } 39194 }); 39195}); }; 39196var deserializeAws_json1_1GetOpenIdTokenCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39197 var data, contents, response; 39198 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39199 switch (_a.label) { 39200 case 0: 39201 if (output.statusCode >= 400) { 39202 return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenCommandError(output, context)]; 39203 } 39204 return [4 /*yield*/, parseBody(output.body, context)]; 39205 case 1: 39206 data = _a.sent(); 39207 contents = {}; 39208 contents = deserializeAws_json1_1GetOpenIdTokenResponse(data, context); 39209 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "GetOpenIdTokenResponse" }, contents); 39210 return [2 /*return*/, Promise.resolve(response)]; 39211 } 39212 }); 39213}); }; 39214var deserializeAws_json1_1GetOpenIdTokenCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39215 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message; 39216 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_l) { 39217 switch (_l.label) { 39218 case 0: 39219 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39220 _b = {}; 39221 return [4 /*yield*/, parseBody(output.body, context)]; 39222 case 1: 39223 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _l.sent(), _b)])); 39224 errorCode = "UnknownError"; 39225 errorTypeParts = parsedOutput.body["__type"].split("#"); 39226 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39227 _c = errorCode; 39228 switch (_c) { 39229 case "ExternalServiceException": return [3 /*break*/, 2]; 39230 case "com.amazonaws.cognitoidentity#ExternalServiceException": return [3 /*break*/, 2]; 39231 case "InternalErrorException": return [3 /*break*/, 4]; 39232 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 39233 case "InvalidParameterException": return [3 /*break*/, 6]; 39234 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 6]; 39235 case "NotAuthorizedException": return [3 /*break*/, 8]; 39236 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 8]; 39237 case "ResourceConflictException": return [3 /*break*/, 10]; 39238 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 10]; 39239 case "ResourceNotFoundException": return [3 /*break*/, 12]; 39240 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 12]; 39241 case "TooManyRequestsException": return [3 /*break*/, 14]; 39242 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 14]; 39243 } 39244 return [3 /*break*/, 16]; 39245 case 2: 39246 _d = [{}]; 39247 return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)]; 39248 case 3: 39249 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39250 return [3 /*break*/, 17]; 39251 case 4: 39252 _e = [{}]; 39253 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39254 case 5: 39255 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39256 return [3 /*break*/, 17]; 39257 case 6: 39258 _f = [{}]; 39259 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39260 case 7: 39261 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39262 return [3 /*break*/, 17]; 39263 case 8: 39264 _g = [{}]; 39265 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39266 case 9: 39267 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39268 return [3 /*break*/, 17]; 39269 case 10: 39270 _h = [{}]; 39271 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39272 case 11: 39273 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39274 return [3 /*break*/, 17]; 39275 case 12: 39276 _j = [{}]; 39277 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39278 case 13: 39279 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39280 return [3 /*break*/, 17]; 39281 case 14: 39282 _k = [{}]; 39283 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39284 case 15: 39285 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39286 return [3 /*break*/, 17]; 39287 case 16: 39288 parsedBody = parsedOutput.body; 39289 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39290 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39291 _l.label = 17; 39292 case 17: 39293 message = response.message || response.Message || errorCode; 39294 response.message = message; 39295 delete response.Message; 39296 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39297 } 39298 }); 39299}); }; 39300var deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39301 var data, contents, response; 39302 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39303 switch (_a.label) { 39304 case 0: 39305 if (output.statusCode >= 400) { 39306 return [2 /*return*/, deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError(output, context)]; 39307 } 39308 return [4 /*yield*/, parseBody(output.body, context)]; 39309 case 1: 39310 data = _a.sent(); 39311 contents = {}; 39312 contents = deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse(data, context); 39313 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "GetOpenIdTokenForDeveloperIdentityResponse" }, contents); 39314 return [2 /*return*/, Promise.resolve(response)]; 39315 } 39316 }); 39317}); }; 39318var deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39319 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message; 39320 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_l) { 39321 switch (_l.label) { 39322 case 0: 39323 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39324 _b = {}; 39325 return [4 /*yield*/, parseBody(output.body, context)]; 39326 case 1: 39327 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _l.sent(), _b)])); 39328 errorCode = "UnknownError"; 39329 errorTypeParts = parsedOutput.body["__type"].split("#"); 39330 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39331 _c = errorCode; 39332 switch (_c) { 39333 case "DeveloperUserAlreadyRegisteredException": return [3 /*break*/, 2]; 39334 case "com.amazonaws.cognitoidentity#DeveloperUserAlreadyRegisteredException": return [3 /*break*/, 2]; 39335 case "InternalErrorException": return [3 /*break*/, 4]; 39336 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 39337 case "InvalidParameterException": return [3 /*break*/, 6]; 39338 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 6]; 39339 case "NotAuthorizedException": return [3 /*break*/, 8]; 39340 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 8]; 39341 case "ResourceConflictException": return [3 /*break*/, 10]; 39342 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 10]; 39343 case "ResourceNotFoundException": return [3 /*break*/, 12]; 39344 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 12]; 39345 case "TooManyRequestsException": return [3 /*break*/, 14]; 39346 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 14]; 39347 } 39348 return [3 /*break*/, 16]; 39349 case 2: 39350 _d = [{}]; 39351 return [4 /*yield*/, deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse(parsedOutput, context)]; 39352 case 3: 39353 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39354 return [3 /*break*/, 17]; 39355 case 4: 39356 _e = [{}]; 39357 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39358 case 5: 39359 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39360 return [3 /*break*/, 17]; 39361 case 6: 39362 _f = [{}]; 39363 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39364 case 7: 39365 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39366 return [3 /*break*/, 17]; 39367 case 8: 39368 _g = [{}]; 39369 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39370 case 9: 39371 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39372 return [3 /*break*/, 17]; 39373 case 10: 39374 _h = [{}]; 39375 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39376 case 11: 39377 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39378 return [3 /*break*/, 17]; 39379 case 12: 39380 _j = [{}]; 39381 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39382 case 13: 39383 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39384 return [3 /*break*/, 17]; 39385 case 14: 39386 _k = [{}]; 39387 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39388 case 15: 39389 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39390 return [3 /*break*/, 17]; 39391 case 16: 39392 parsedBody = parsedOutput.body; 39393 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39394 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39395 _l.label = 17; 39396 case 17: 39397 message = response.message || response.Message || errorCode; 39398 response.message = message; 39399 delete response.Message; 39400 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39401 } 39402 }); 39403}); }; 39404var deserializeAws_json1_1ListIdentitiesCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39405 var data, contents, response; 39406 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39407 switch (_a.label) { 39408 case 0: 39409 if (output.statusCode >= 400) { 39410 return [2 /*return*/, deserializeAws_json1_1ListIdentitiesCommandError(output, context)]; 39411 } 39412 return [4 /*yield*/, parseBody(output.body, context)]; 39413 case 1: 39414 data = _a.sent(); 39415 contents = {}; 39416 contents = deserializeAws_json1_1ListIdentitiesResponse(data, context); 39417 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "ListIdentitiesResponse" }, contents); 39418 return [2 /*return*/, Promise.resolve(response)]; 39419 } 39420 }); 39421}); }; 39422var deserializeAws_json1_1ListIdentitiesCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39423 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 39424 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 39425 switch (_j.label) { 39426 case 0: 39427 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39428 _b = {}; 39429 return [4 /*yield*/, parseBody(output.body, context)]; 39430 case 1: 39431 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 39432 errorCode = "UnknownError"; 39433 errorTypeParts = parsedOutput.body["__type"].split("#"); 39434 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39435 _c = errorCode; 39436 switch (_c) { 39437 case "InternalErrorException": return [3 /*break*/, 2]; 39438 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39439 case "InvalidParameterException": return [3 /*break*/, 4]; 39440 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 39441 case "NotAuthorizedException": return [3 /*break*/, 6]; 39442 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 39443 case "ResourceNotFoundException": return [3 /*break*/, 8]; 39444 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 39445 case "TooManyRequestsException": return [3 /*break*/, 10]; 39446 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 39447 } 39448 return [3 /*break*/, 12]; 39449 case 2: 39450 _d = [{}]; 39451 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39452 case 3: 39453 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39454 return [3 /*break*/, 13]; 39455 case 4: 39456 _e = [{}]; 39457 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39458 case 5: 39459 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39460 return [3 /*break*/, 13]; 39461 case 6: 39462 _f = [{}]; 39463 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39464 case 7: 39465 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39466 return [3 /*break*/, 13]; 39467 case 8: 39468 _g = [{}]; 39469 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39470 case 9: 39471 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39472 return [3 /*break*/, 13]; 39473 case 10: 39474 _h = [{}]; 39475 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39476 case 11: 39477 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39478 return [3 /*break*/, 13]; 39479 case 12: 39480 parsedBody = parsedOutput.body; 39481 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39482 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39483 _j.label = 13; 39484 case 13: 39485 message = response.message || response.Message || errorCode; 39486 response.message = message; 39487 delete response.Message; 39488 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39489 } 39490 }); 39491}); }; 39492var deserializeAws_json1_1ListIdentityPoolsCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39493 var data, contents, response; 39494 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39495 switch (_a.label) { 39496 case 0: 39497 if (output.statusCode >= 400) { 39498 return [2 /*return*/, deserializeAws_json1_1ListIdentityPoolsCommandError(output, context)]; 39499 } 39500 return [4 /*yield*/, parseBody(output.body, context)]; 39501 case 1: 39502 data = _a.sent(); 39503 contents = {}; 39504 contents = deserializeAws_json1_1ListIdentityPoolsResponse(data, context); 39505 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "ListIdentityPoolsResponse" }, contents); 39506 return [2 /*return*/, Promise.resolve(response)]; 39507 } 39508 }); 39509}); }; 39510var deserializeAws_json1_1ListIdentityPoolsCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39511 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 39512 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 39513 switch (_j.label) { 39514 case 0: 39515 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39516 _b = {}; 39517 return [4 /*yield*/, parseBody(output.body, context)]; 39518 case 1: 39519 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 39520 errorCode = "UnknownError"; 39521 errorTypeParts = parsedOutput.body["__type"].split("#"); 39522 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39523 _c = errorCode; 39524 switch (_c) { 39525 case "InternalErrorException": return [3 /*break*/, 2]; 39526 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39527 case "InvalidParameterException": return [3 /*break*/, 4]; 39528 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 39529 case "NotAuthorizedException": return [3 /*break*/, 6]; 39530 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 39531 case "ResourceNotFoundException": return [3 /*break*/, 8]; 39532 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 39533 case "TooManyRequestsException": return [3 /*break*/, 10]; 39534 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 39535 } 39536 return [3 /*break*/, 12]; 39537 case 2: 39538 _d = [{}]; 39539 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39540 case 3: 39541 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39542 return [3 /*break*/, 13]; 39543 case 4: 39544 _e = [{}]; 39545 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39546 case 5: 39547 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39548 return [3 /*break*/, 13]; 39549 case 6: 39550 _f = [{}]; 39551 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39552 case 7: 39553 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39554 return [3 /*break*/, 13]; 39555 case 8: 39556 _g = [{}]; 39557 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39558 case 9: 39559 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39560 return [3 /*break*/, 13]; 39561 case 10: 39562 _h = [{}]; 39563 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39564 case 11: 39565 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39566 return [3 /*break*/, 13]; 39567 case 12: 39568 parsedBody = parsedOutput.body; 39569 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39570 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39571 _j.label = 13; 39572 case 13: 39573 message = response.message || response.Message || errorCode; 39574 response.message = message; 39575 delete response.Message; 39576 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39577 } 39578 }); 39579}); }; 39580var deserializeAws_json1_1ListTagsForResourceCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39581 var data, contents, response; 39582 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39583 switch (_a.label) { 39584 case 0: 39585 if (output.statusCode >= 400) { 39586 return [2 /*return*/, deserializeAws_json1_1ListTagsForResourceCommandError(output, context)]; 39587 } 39588 return [4 /*yield*/, parseBody(output.body, context)]; 39589 case 1: 39590 data = _a.sent(); 39591 contents = {}; 39592 contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); 39593 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "ListTagsForResourceResponse" }, contents); 39594 return [2 /*return*/, Promise.resolve(response)]; 39595 } 39596 }); 39597}); }; 39598var deserializeAws_json1_1ListTagsForResourceCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39599 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 39600 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 39601 switch (_j.label) { 39602 case 0: 39603 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39604 _b = {}; 39605 return [4 /*yield*/, parseBody(output.body, context)]; 39606 case 1: 39607 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 39608 errorCode = "UnknownError"; 39609 errorTypeParts = parsedOutput.body["__type"].split("#"); 39610 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39611 _c = errorCode; 39612 switch (_c) { 39613 case "InternalErrorException": return [3 /*break*/, 2]; 39614 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39615 case "InvalidParameterException": return [3 /*break*/, 4]; 39616 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 39617 case "NotAuthorizedException": return [3 /*break*/, 6]; 39618 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 39619 case "ResourceNotFoundException": return [3 /*break*/, 8]; 39620 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 39621 case "TooManyRequestsException": return [3 /*break*/, 10]; 39622 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 39623 } 39624 return [3 /*break*/, 12]; 39625 case 2: 39626 _d = [{}]; 39627 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39628 case 3: 39629 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39630 return [3 /*break*/, 13]; 39631 case 4: 39632 _e = [{}]; 39633 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39634 case 5: 39635 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39636 return [3 /*break*/, 13]; 39637 case 6: 39638 _f = [{}]; 39639 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39640 case 7: 39641 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39642 return [3 /*break*/, 13]; 39643 case 8: 39644 _g = [{}]; 39645 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39646 case 9: 39647 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39648 return [3 /*break*/, 13]; 39649 case 10: 39650 _h = [{}]; 39651 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39652 case 11: 39653 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39654 return [3 /*break*/, 13]; 39655 case 12: 39656 parsedBody = parsedOutput.body; 39657 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39658 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39659 _j.label = 13; 39660 case 13: 39661 message = response.message || response.Message || errorCode; 39662 response.message = message; 39663 delete response.Message; 39664 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39665 } 39666 }); 39667}); }; 39668var deserializeAws_json1_1LookupDeveloperIdentityCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39669 var data, contents, response; 39670 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39671 switch (_a.label) { 39672 case 0: 39673 if (output.statusCode >= 400) { 39674 return [2 /*return*/, deserializeAws_json1_1LookupDeveloperIdentityCommandError(output, context)]; 39675 } 39676 return [4 /*yield*/, parseBody(output.body, context)]; 39677 case 1: 39678 data = _a.sent(); 39679 contents = {}; 39680 contents = deserializeAws_json1_1LookupDeveloperIdentityResponse(data, context); 39681 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "LookupDeveloperIdentityResponse" }, contents); 39682 return [2 /*return*/, Promise.resolve(response)]; 39683 } 39684 }); 39685}); }; 39686var deserializeAws_json1_1LookupDeveloperIdentityCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39687 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, parsedBody, message; 39688 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_k) { 39689 switch (_k.label) { 39690 case 0: 39691 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39692 _b = {}; 39693 return [4 /*yield*/, parseBody(output.body, context)]; 39694 case 1: 39695 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _k.sent(), _b)])); 39696 errorCode = "UnknownError"; 39697 errorTypeParts = parsedOutput.body["__type"].split("#"); 39698 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39699 _c = errorCode; 39700 switch (_c) { 39701 case "InternalErrorException": return [3 /*break*/, 2]; 39702 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39703 case "InvalidParameterException": return [3 /*break*/, 4]; 39704 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 39705 case "NotAuthorizedException": return [3 /*break*/, 6]; 39706 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 39707 case "ResourceConflictException": return [3 /*break*/, 8]; 39708 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 8]; 39709 case "ResourceNotFoundException": return [3 /*break*/, 10]; 39710 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 10]; 39711 case "TooManyRequestsException": return [3 /*break*/, 12]; 39712 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 12]; 39713 } 39714 return [3 /*break*/, 14]; 39715 case 2: 39716 _d = [{}]; 39717 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39718 case 3: 39719 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39720 return [3 /*break*/, 15]; 39721 case 4: 39722 _e = [{}]; 39723 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39724 case 5: 39725 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39726 return [3 /*break*/, 15]; 39727 case 6: 39728 _f = [{}]; 39729 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39730 case 7: 39731 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39732 return [3 /*break*/, 15]; 39733 case 8: 39734 _g = [{}]; 39735 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39736 case 9: 39737 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39738 return [3 /*break*/, 15]; 39739 case 10: 39740 _h = [{}]; 39741 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39742 case 11: 39743 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39744 return [3 /*break*/, 15]; 39745 case 12: 39746 _j = [{}]; 39747 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39748 case 13: 39749 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39750 return [3 /*break*/, 15]; 39751 case 14: 39752 parsedBody = parsedOutput.body; 39753 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39754 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39755 _k.label = 15; 39756 case 15: 39757 message = response.message || response.Message || errorCode; 39758 response.message = message; 39759 delete response.Message; 39760 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39761 } 39762 }); 39763}); }; 39764var deserializeAws_json1_1MergeDeveloperIdentitiesCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39765 var data, contents, response; 39766 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39767 switch (_a.label) { 39768 case 0: 39769 if (output.statusCode >= 400) { 39770 return [2 /*return*/, deserializeAws_json1_1MergeDeveloperIdentitiesCommandError(output, context)]; 39771 } 39772 return [4 /*yield*/, parseBody(output.body, context)]; 39773 case 1: 39774 data = _a.sent(); 39775 contents = {}; 39776 contents = deserializeAws_json1_1MergeDeveloperIdentitiesResponse(data, context); 39777 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "MergeDeveloperIdentitiesResponse" }, contents); 39778 return [2 /*return*/, Promise.resolve(response)]; 39779 } 39780 }); 39781}); }; 39782var deserializeAws_json1_1MergeDeveloperIdentitiesCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39783 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, parsedBody, message; 39784 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_k) { 39785 switch (_k.label) { 39786 case 0: 39787 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39788 _b = {}; 39789 return [4 /*yield*/, parseBody(output.body, context)]; 39790 case 1: 39791 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _k.sent(), _b)])); 39792 errorCode = "UnknownError"; 39793 errorTypeParts = parsedOutput.body["__type"].split("#"); 39794 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39795 _c = errorCode; 39796 switch (_c) { 39797 case "InternalErrorException": return [3 /*break*/, 2]; 39798 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39799 case "InvalidParameterException": return [3 /*break*/, 4]; 39800 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 39801 case "NotAuthorizedException": return [3 /*break*/, 6]; 39802 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 39803 case "ResourceConflictException": return [3 /*break*/, 8]; 39804 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 8]; 39805 case "ResourceNotFoundException": return [3 /*break*/, 10]; 39806 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 10]; 39807 case "TooManyRequestsException": return [3 /*break*/, 12]; 39808 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 12]; 39809 } 39810 return [3 /*break*/, 14]; 39811 case 2: 39812 _d = [{}]; 39813 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39814 case 3: 39815 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39816 return [3 /*break*/, 15]; 39817 case 4: 39818 _e = [{}]; 39819 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39820 case 5: 39821 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39822 return [3 /*break*/, 15]; 39823 case 6: 39824 _f = [{}]; 39825 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39826 case 7: 39827 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39828 return [3 /*break*/, 15]; 39829 case 8: 39830 _g = [{}]; 39831 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39832 case 9: 39833 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39834 return [3 /*break*/, 15]; 39835 case 10: 39836 _h = [{}]; 39837 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39838 case 11: 39839 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39840 return [3 /*break*/, 15]; 39841 case 12: 39842 _j = [{}]; 39843 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39844 case 13: 39845 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39846 return [3 /*break*/, 15]; 39847 case 14: 39848 parsedBody = parsedOutput.body; 39849 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39850 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39851 _k.label = 15; 39852 case 15: 39853 message = response.message || response.Message || errorCode; 39854 response.message = message; 39855 delete response.Message; 39856 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39857 } 39858 }); 39859}); }; 39860var deserializeAws_json1_1SetIdentityPoolRolesCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39861 var response; 39862 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39863 switch (_a.label) { 39864 case 0: 39865 if (output.statusCode >= 400) { 39866 return [2 /*return*/, deserializeAws_json1_1SetIdentityPoolRolesCommandError(output, context)]; 39867 } 39868 return [4 /*yield*/, collectBody(output.body, context)]; 39869 case 1: 39870 _a.sent(); 39871 response = { 39872 $metadata: deserializeMetadata(output), 39873 }; 39874 return [2 /*return*/, Promise.resolve(response)]; 39875 } 39876 }); 39877}); }; 39878var deserializeAws_json1_1SetIdentityPoolRolesCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39879 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message; 39880 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_l) { 39881 switch (_l.label) { 39882 case 0: 39883 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39884 _b = {}; 39885 return [4 /*yield*/, parseBody(output.body, context)]; 39886 case 1: 39887 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _l.sent(), _b)])); 39888 errorCode = "UnknownError"; 39889 errorTypeParts = parsedOutput.body["__type"].split("#"); 39890 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39891 _c = errorCode; 39892 switch (_c) { 39893 case "ConcurrentModificationException": return [3 /*break*/, 2]; 39894 case "com.amazonaws.cognitoidentity#ConcurrentModificationException": return [3 /*break*/, 2]; 39895 case "InternalErrorException": return [3 /*break*/, 4]; 39896 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 39897 case "InvalidParameterException": return [3 /*break*/, 6]; 39898 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 6]; 39899 case "NotAuthorizedException": return [3 /*break*/, 8]; 39900 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 8]; 39901 case "ResourceConflictException": return [3 /*break*/, 10]; 39902 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 10]; 39903 case "ResourceNotFoundException": return [3 /*break*/, 12]; 39904 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 12]; 39905 case "TooManyRequestsException": return [3 /*break*/, 14]; 39906 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 14]; 39907 } 39908 return [3 /*break*/, 16]; 39909 case 2: 39910 _d = [{}]; 39911 return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)]; 39912 case 3: 39913 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39914 return [3 /*break*/, 17]; 39915 case 4: 39916 _e = [{}]; 39917 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 39918 case 5: 39919 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39920 return [3 /*break*/, 17]; 39921 case 6: 39922 _f = [{}]; 39923 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 39924 case 7: 39925 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39926 return [3 /*break*/, 17]; 39927 case 8: 39928 _g = [{}]; 39929 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 39930 case 9: 39931 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39932 return [3 /*break*/, 17]; 39933 case 10: 39934 _h = [{}]; 39935 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 39936 case 11: 39937 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39938 return [3 /*break*/, 17]; 39939 case 12: 39940 _j = [{}]; 39941 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 39942 case 13: 39943 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39944 return [3 /*break*/, 17]; 39945 case 14: 39946 _k = [{}]; 39947 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 39948 case 15: 39949 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 39950 return [3 /*break*/, 17]; 39951 case 16: 39952 parsedBody = parsedOutput.body; 39953 errorCode = parsedBody.code || parsedBody.Code || errorCode; 39954 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 39955 _l.label = 17; 39956 case 17: 39957 message = response.message || response.Message || errorCode; 39958 response.message = message; 39959 delete response.Message; 39960 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 39961 } 39962 }); 39963}); }; 39964var deserializeAws_json1_1TagResourceCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39965 var data, contents, response; 39966 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 39967 switch (_a.label) { 39968 case 0: 39969 if (output.statusCode >= 400) { 39970 return [2 /*return*/, deserializeAws_json1_1TagResourceCommandError(output, context)]; 39971 } 39972 return [4 /*yield*/, parseBody(output.body, context)]; 39973 case 1: 39974 data = _a.sent(); 39975 contents = {}; 39976 contents = deserializeAws_json1_1TagResourceResponse(data, context); 39977 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "TagResourceResponse" }, contents); 39978 return [2 /*return*/, Promise.resolve(response)]; 39979 } 39980 }); 39981}); }; 39982var deserializeAws_json1_1TagResourceCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 39983 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 39984 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 39985 switch (_j.label) { 39986 case 0: 39987 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 39988 _b = {}; 39989 return [4 /*yield*/, parseBody(output.body, context)]; 39990 case 1: 39991 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 39992 errorCode = "UnknownError"; 39993 errorTypeParts = parsedOutput.body["__type"].split("#"); 39994 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 39995 _c = errorCode; 39996 switch (_c) { 39997 case "InternalErrorException": return [3 /*break*/, 2]; 39998 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 39999 case "InvalidParameterException": return [3 /*break*/, 4]; 40000 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 40001 case "NotAuthorizedException": return [3 /*break*/, 6]; 40002 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 40003 case "ResourceNotFoundException": return [3 /*break*/, 8]; 40004 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 40005 case "TooManyRequestsException": return [3 /*break*/, 10]; 40006 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 40007 } 40008 return [3 /*break*/, 12]; 40009 case 2: 40010 _d = [{}]; 40011 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 40012 case 3: 40013 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40014 return [3 /*break*/, 13]; 40015 case 4: 40016 _e = [{}]; 40017 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 40018 case 5: 40019 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40020 return [3 /*break*/, 13]; 40021 case 6: 40022 _f = [{}]; 40023 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 40024 case 7: 40025 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40026 return [3 /*break*/, 13]; 40027 case 8: 40028 _g = [{}]; 40029 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 40030 case 9: 40031 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40032 return [3 /*break*/, 13]; 40033 case 10: 40034 _h = [{}]; 40035 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 40036 case 11: 40037 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40038 return [3 /*break*/, 13]; 40039 case 12: 40040 parsedBody = parsedOutput.body; 40041 errorCode = parsedBody.code || parsedBody.Code || errorCode; 40042 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 40043 _j.label = 13; 40044 case 13: 40045 message = response.message || response.Message || errorCode; 40046 response.message = message; 40047 delete response.Message; 40048 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 40049 } 40050 }); 40051}); }; 40052var deserializeAws_json1_1UnlinkDeveloperIdentityCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40053 var response; 40054 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40055 switch (_a.label) { 40056 case 0: 40057 if (output.statusCode >= 400) { 40058 return [2 /*return*/, deserializeAws_json1_1UnlinkDeveloperIdentityCommandError(output, context)]; 40059 } 40060 return [4 /*yield*/, collectBody(output.body, context)]; 40061 case 1: 40062 _a.sent(); 40063 response = { 40064 $metadata: deserializeMetadata(output), 40065 }; 40066 return [2 /*return*/, Promise.resolve(response)]; 40067 } 40068 }); 40069}); }; 40070var deserializeAws_json1_1UnlinkDeveloperIdentityCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40071 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, parsedBody, message; 40072 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_k) { 40073 switch (_k.label) { 40074 case 0: 40075 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 40076 _b = {}; 40077 return [4 /*yield*/, parseBody(output.body, context)]; 40078 case 1: 40079 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _k.sent(), _b)])); 40080 errorCode = "UnknownError"; 40081 errorTypeParts = parsedOutput.body["__type"].split("#"); 40082 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 40083 _c = errorCode; 40084 switch (_c) { 40085 case "InternalErrorException": return [3 /*break*/, 2]; 40086 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 40087 case "InvalidParameterException": return [3 /*break*/, 4]; 40088 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 40089 case "NotAuthorizedException": return [3 /*break*/, 6]; 40090 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 40091 case "ResourceConflictException": return [3 /*break*/, 8]; 40092 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 8]; 40093 case "ResourceNotFoundException": return [3 /*break*/, 10]; 40094 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 10]; 40095 case "TooManyRequestsException": return [3 /*break*/, 12]; 40096 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 12]; 40097 } 40098 return [3 /*break*/, 14]; 40099 case 2: 40100 _d = [{}]; 40101 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 40102 case 3: 40103 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40104 return [3 /*break*/, 15]; 40105 case 4: 40106 _e = [{}]; 40107 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 40108 case 5: 40109 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40110 return [3 /*break*/, 15]; 40111 case 6: 40112 _f = [{}]; 40113 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 40114 case 7: 40115 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40116 return [3 /*break*/, 15]; 40117 case 8: 40118 _g = [{}]; 40119 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 40120 case 9: 40121 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40122 return [3 /*break*/, 15]; 40123 case 10: 40124 _h = [{}]; 40125 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 40126 case 11: 40127 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40128 return [3 /*break*/, 15]; 40129 case 12: 40130 _j = [{}]; 40131 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 40132 case 13: 40133 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_k.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40134 return [3 /*break*/, 15]; 40135 case 14: 40136 parsedBody = parsedOutput.body; 40137 errorCode = parsedBody.code || parsedBody.Code || errorCode; 40138 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 40139 _k.label = 15; 40140 case 15: 40141 message = response.message || response.Message || errorCode; 40142 response.message = message; 40143 delete response.Message; 40144 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 40145 } 40146 }); 40147}); }; 40148var deserializeAws_json1_1UnlinkIdentityCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40149 var response; 40150 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40151 switch (_a.label) { 40152 case 0: 40153 if (output.statusCode >= 400) { 40154 return [2 /*return*/, deserializeAws_json1_1UnlinkIdentityCommandError(output, context)]; 40155 } 40156 return [4 /*yield*/, collectBody(output.body, context)]; 40157 case 1: 40158 _a.sent(); 40159 response = { 40160 $metadata: deserializeMetadata(output), 40161 }; 40162 return [2 /*return*/, Promise.resolve(response)]; 40163 } 40164 }); 40165}); }; 40166var deserializeAws_json1_1UnlinkIdentityCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40167 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, parsedBody, message; 40168 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_l) { 40169 switch (_l.label) { 40170 case 0: 40171 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 40172 _b = {}; 40173 return [4 /*yield*/, parseBody(output.body, context)]; 40174 case 1: 40175 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _l.sent(), _b)])); 40176 errorCode = "UnknownError"; 40177 errorTypeParts = parsedOutput.body["__type"].split("#"); 40178 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 40179 _c = errorCode; 40180 switch (_c) { 40181 case "ExternalServiceException": return [3 /*break*/, 2]; 40182 case "com.amazonaws.cognitoidentity#ExternalServiceException": return [3 /*break*/, 2]; 40183 case "InternalErrorException": return [3 /*break*/, 4]; 40184 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 40185 case "InvalidParameterException": return [3 /*break*/, 6]; 40186 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 6]; 40187 case "NotAuthorizedException": return [3 /*break*/, 8]; 40188 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 8]; 40189 case "ResourceConflictException": return [3 /*break*/, 10]; 40190 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 10]; 40191 case "ResourceNotFoundException": return [3 /*break*/, 12]; 40192 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 12]; 40193 case "TooManyRequestsException": return [3 /*break*/, 14]; 40194 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 14]; 40195 } 40196 return [3 /*break*/, 16]; 40197 case 2: 40198 _d = [{}]; 40199 return [4 /*yield*/, deserializeAws_json1_1ExternalServiceExceptionResponse(parsedOutput, context)]; 40200 case 3: 40201 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40202 return [3 /*break*/, 17]; 40203 case 4: 40204 _e = [{}]; 40205 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 40206 case 5: 40207 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40208 return [3 /*break*/, 17]; 40209 case 6: 40210 _f = [{}]; 40211 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 40212 case 7: 40213 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40214 return [3 /*break*/, 17]; 40215 case 8: 40216 _g = [{}]; 40217 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 40218 case 9: 40219 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40220 return [3 /*break*/, 17]; 40221 case 10: 40222 _h = [{}]; 40223 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 40224 case 11: 40225 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40226 return [3 /*break*/, 17]; 40227 case 12: 40228 _j = [{}]; 40229 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 40230 case 13: 40231 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40232 return [3 /*break*/, 17]; 40233 case 14: 40234 _k = [{}]; 40235 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 40236 case 15: 40237 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_l.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40238 return [3 /*break*/, 17]; 40239 case 16: 40240 parsedBody = parsedOutput.body; 40241 errorCode = parsedBody.code || parsedBody.Code || errorCode; 40242 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 40243 _l.label = 17; 40244 case 17: 40245 message = response.message || response.Message || errorCode; 40246 response.message = message; 40247 delete response.Message; 40248 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 40249 } 40250 }); 40251}); }; 40252var deserializeAws_json1_1UntagResourceCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40253 var data, contents, response; 40254 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40255 switch (_a.label) { 40256 case 0: 40257 if (output.statusCode >= 400) { 40258 return [2 /*return*/, deserializeAws_json1_1UntagResourceCommandError(output, context)]; 40259 } 40260 return [4 /*yield*/, parseBody(output.body, context)]; 40261 case 1: 40262 data = _a.sent(); 40263 contents = {}; 40264 contents = deserializeAws_json1_1UntagResourceResponse(data, context); 40265 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "UntagResourceResponse" }, contents); 40266 return [2 /*return*/, Promise.resolve(response)]; 40267 } 40268 }); 40269}); }; 40270var deserializeAws_json1_1UntagResourceCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40271 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, parsedBody, message; 40272 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_j) { 40273 switch (_j.label) { 40274 case 0: 40275 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 40276 _b = {}; 40277 return [4 /*yield*/, parseBody(output.body, context)]; 40278 case 1: 40279 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _j.sent(), _b)])); 40280 errorCode = "UnknownError"; 40281 errorTypeParts = parsedOutput.body["__type"].split("#"); 40282 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 40283 _c = errorCode; 40284 switch (_c) { 40285 case "InternalErrorException": return [3 /*break*/, 2]; 40286 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 2]; 40287 case "InvalidParameterException": return [3 /*break*/, 4]; 40288 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 4]; 40289 case "NotAuthorizedException": return [3 /*break*/, 6]; 40290 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 6]; 40291 case "ResourceNotFoundException": return [3 /*break*/, 8]; 40292 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 8]; 40293 case "TooManyRequestsException": return [3 /*break*/, 10]; 40294 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 10]; 40295 } 40296 return [3 /*break*/, 12]; 40297 case 2: 40298 _d = [{}]; 40299 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 40300 case 3: 40301 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40302 return [3 /*break*/, 13]; 40303 case 4: 40304 _e = [{}]; 40305 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 40306 case 5: 40307 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40308 return [3 /*break*/, 13]; 40309 case 6: 40310 _f = [{}]; 40311 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 40312 case 7: 40313 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40314 return [3 /*break*/, 13]; 40315 case 8: 40316 _g = [{}]; 40317 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 40318 case 9: 40319 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40320 return [3 /*break*/, 13]; 40321 case 10: 40322 _h = [{}]; 40323 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 40324 case 11: 40325 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_j.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40326 return [3 /*break*/, 13]; 40327 case 12: 40328 parsedBody = parsedOutput.body; 40329 errorCode = parsedBody.code || parsedBody.Code || errorCode; 40330 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 40331 _j.label = 13; 40332 case 13: 40333 message = response.message || response.Message || errorCode; 40334 response.message = message; 40335 delete response.Message; 40336 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 40337 } 40338 }); 40339}); }; 40340var deserializeAws_json1_1UpdateIdentityPoolCommand = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40341 var data, contents, response; 40342 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40343 switch (_a.label) { 40344 case 0: 40345 if (output.statusCode >= 400) { 40346 return [2 /*return*/, deserializeAws_json1_1UpdateIdentityPoolCommandError(output, context)]; 40347 } 40348 return [4 /*yield*/, parseBody(output.body, context)]; 40349 case 1: 40350 data = _a.sent(); 40351 contents = {}; 40352 contents = deserializeAws_json1_1IdentityPool(data, context); 40353 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ $metadata: deserializeMetadata(output), __type: "IdentityPool" }, contents); 40354 return [2 /*return*/, Promise.resolve(response)]; 40355 } 40356 }); 40357}); }; 40358var deserializeAws_json1_1UpdateIdentityPoolCommandError = function (output, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40359 var parsedOutput, _a, _b, response, errorCode, errorTypeParts, _c, _d, _e, _f, _g, _h, _j, _k, _l, parsedBody, message; 40360 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_m) { 40361 switch (_m.label) { 40362 case 0: 40363 _a = [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, output)]; 40364 _b = {}; 40365 return [4 /*yield*/, parseBody(output.body, context)]; 40366 case 1: 40367 parsedOutput = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _a.concat([(_b.body = _m.sent(), _b)])); 40368 errorCode = "UnknownError"; 40369 errorTypeParts = parsedOutput.body["__type"].split("#"); 40370 errorCode = errorTypeParts[1] === undefined ? errorTypeParts[0] : errorTypeParts[1]; 40371 _c = errorCode; 40372 switch (_c) { 40373 case "ConcurrentModificationException": return [3 /*break*/, 2]; 40374 case "com.amazonaws.cognitoidentity#ConcurrentModificationException": return [3 /*break*/, 2]; 40375 case "InternalErrorException": return [3 /*break*/, 4]; 40376 case "com.amazonaws.cognitoidentity#InternalErrorException": return [3 /*break*/, 4]; 40377 case "InvalidParameterException": return [3 /*break*/, 6]; 40378 case "com.amazonaws.cognitoidentity#InvalidParameterException": return [3 /*break*/, 6]; 40379 case "LimitExceededException": return [3 /*break*/, 8]; 40380 case "com.amazonaws.cognitoidentity#LimitExceededException": return [3 /*break*/, 8]; 40381 case "NotAuthorizedException": return [3 /*break*/, 10]; 40382 case "com.amazonaws.cognitoidentity#NotAuthorizedException": return [3 /*break*/, 10]; 40383 case "ResourceConflictException": return [3 /*break*/, 12]; 40384 case "com.amazonaws.cognitoidentity#ResourceConflictException": return [3 /*break*/, 12]; 40385 case "ResourceNotFoundException": return [3 /*break*/, 14]; 40386 case "com.amazonaws.cognitoidentity#ResourceNotFoundException": return [3 /*break*/, 14]; 40387 case "TooManyRequestsException": return [3 /*break*/, 16]; 40388 case "com.amazonaws.cognitoidentity#TooManyRequestsException": return [3 /*break*/, 16]; 40389 } 40390 return [3 /*break*/, 18]; 40391 case 2: 40392 _d = [{}]; 40393 return [4 /*yield*/, deserializeAws_json1_1ConcurrentModificationExceptionResponse(parsedOutput, context)]; 40394 case 3: 40395 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _d.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40396 return [3 /*break*/, 19]; 40397 case 4: 40398 _e = [{}]; 40399 return [4 /*yield*/, deserializeAws_json1_1InternalErrorExceptionResponse(parsedOutput, context)]; 40400 case 5: 40401 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _e.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40402 return [3 /*break*/, 19]; 40403 case 6: 40404 _f = [{}]; 40405 return [4 /*yield*/, deserializeAws_json1_1InvalidParameterExceptionResponse(parsedOutput, context)]; 40406 case 7: 40407 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _f.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40408 return [3 /*break*/, 19]; 40409 case 8: 40410 _g = [{}]; 40411 return [4 /*yield*/, deserializeAws_json1_1LimitExceededExceptionResponse(parsedOutput, context)]; 40412 case 9: 40413 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _g.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40414 return [3 /*break*/, 19]; 40415 case 10: 40416 _h = [{}]; 40417 return [4 /*yield*/, deserializeAws_json1_1NotAuthorizedExceptionResponse(parsedOutput, context)]; 40418 case 11: 40419 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _h.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40420 return [3 /*break*/, 19]; 40421 case 12: 40422 _j = [{}]; 40423 return [4 /*yield*/, deserializeAws_json1_1ResourceConflictExceptionResponse(parsedOutput, context)]; 40424 case 13: 40425 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _j.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40426 return [3 /*break*/, 19]; 40427 case 14: 40428 _k = [{}]; 40429 return [4 /*yield*/, deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context)]; 40430 case 15: 40431 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _k.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40432 return [3 /*break*/, 19]; 40433 case 16: 40434 _l = [{}]; 40435 return [4 /*yield*/, deserializeAws_json1_1TooManyRequestsExceptionResponse(parsedOutput, context)]; 40436 case 17: 40437 response = tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, [tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"].apply(void 0, _l.concat([(_m.sent())])), { name: errorCode, $metadata: deserializeMetadata(output) }]); 40438 return [3 /*break*/, 19]; 40439 case 18: 40440 parsedBody = parsedOutput.body; 40441 errorCode = parsedBody.code || parsedBody.Code || errorCode; 40442 response = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, parsedBody), { name: "" + errorCode, message: parsedBody.message || parsedBody.Message || errorCode, $fault: "client", $metadata: deserializeMetadata(output) }); 40443 _m.label = 19; 40444 case 19: 40445 message = response.message || response.Message || errorCode; 40446 response.message = message; 40447 delete response.Message; 40448 return [2 /*return*/, Promise.reject(Object.assign(new Error(message), response))]; 40449 } 40450 }); 40451}); }; 40452var deserializeAws_json1_1ConcurrentModificationExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40453 var body, deserialized, contents; 40454 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40455 body = parsedOutput.body; 40456 deserialized = deserializeAws_json1_1ConcurrentModificationException(body, context); 40457 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "ConcurrentModificationException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40458 return [2 /*return*/, contents]; 40459 }); 40460}); }; 40461var deserializeAws_json1_1DeveloperUserAlreadyRegisteredExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40462 var body, deserialized, contents; 40463 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40464 body = parsedOutput.body; 40465 deserialized = deserializeAws_json1_1DeveloperUserAlreadyRegisteredException(body, context); 40466 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "DeveloperUserAlreadyRegisteredException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40467 return [2 /*return*/, contents]; 40468 }); 40469}); }; 40470var deserializeAws_json1_1ExternalServiceExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40471 var body, deserialized, contents; 40472 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40473 body = parsedOutput.body; 40474 deserialized = deserializeAws_json1_1ExternalServiceException(body, context); 40475 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "ExternalServiceException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40476 return [2 /*return*/, contents]; 40477 }); 40478}); }; 40479var deserializeAws_json1_1InternalErrorExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40480 var body, deserialized, contents; 40481 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40482 body = parsedOutput.body; 40483 deserialized = deserializeAws_json1_1InternalErrorException(body, context); 40484 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "InternalErrorException", $fault: "server", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40485 return [2 /*return*/, contents]; 40486 }); 40487}); }; 40488var deserializeAws_json1_1InvalidIdentityPoolConfigurationExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40489 var body, deserialized, contents; 40490 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40491 body = parsedOutput.body; 40492 deserialized = deserializeAws_json1_1InvalidIdentityPoolConfigurationException(body, context); 40493 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "InvalidIdentityPoolConfigurationException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40494 return [2 /*return*/, contents]; 40495 }); 40496}); }; 40497var deserializeAws_json1_1InvalidParameterExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40498 var body, deserialized, contents; 40499 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40500 body = parsedOutput.body; 40501 deserialized = deserializeAws_json1_1InvalidParameterException(body, context); 40502 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "InvalidParameterException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40503 return [2 /*return*/, contents]; 40504 }); 40505}); }; 40506var deserializeAws_json1_1LimitExceededExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40507 var body, deserialized, contents; 40508 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40509 body = parsedOutput.body; 40510 deserialized = deserializeAws_json1_1LimitExceededException(body, context); 40511 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "LimitExceededException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40512 return [2 /*return*/, contents]; 40513 }); 40514}); }; 40515var deserializeAws_json1_1NotAuthorizedExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40516 var body, deserialized, contents; 40517 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40518 body = parsedOutput.body; 40519 deserialized = deserializeAws_json1_1NotAuthorizedException(body, context); 40520 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "NotAuthorizedException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40521 return [2 /*return*/, contents]; 40522 }); 40523}); }; 40524var deserializeAws_json1_1ResourceConflictExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40525 var body, deserialized, contents; 40526 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40527 body = parsedOutput.body; 40528 deserialized = deserializeAws_json1_1ResourceConflictException(body, context); 40529 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "ResourceConflictException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40530 return [2 /*return*/, contents]; 40531 }); 40532}); }; 40533var deserializeAws_json1_1ResourceNotFoundExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40534 var body, deserialized, contents; 40535 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40536 body = parsedOutput.body; 40537 deserialized = deserializeAws_json1_1ResourceNotFoundException(body, context); 40538 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "ResourceNotFoundException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40539 return [2 /*return*/, contents]; 40540 }); 40541}); }; 40542var deserializeAws_json1_1TooManyRequestsExceptionResponse = function (parsedOutput, context) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 40543 var body, deserialized, contents; 40544 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 40545 body = parsedOutput.body; 40546 deserialized = deserializeAws_json1_1TooManyRequestsException(body, context); 40547 contents = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({ name: "TooManyRequestsException", $fault: "client", $metadata: deserializeMetadata(parsedOutput) }, deserialized); 40548 return [2 /*return*/, contents]; 40549 }); 40550}); }; 40551var serializeAws_json1_1CognitoIdentityProvider = function (input, context) { 40552 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.ClientId !== undefined && { ClientId: input.ClientId })), (input.ProviderName !== undefined && { ProviderName: input.ProviderName })), (input.ServerSideTokenCheck !== undefined && { ServerSideTokenCheck: input.ServerSideTokenCheck })); 40553}; 40554var serializeAws_json1_1CognitoIdentityProviderList = function (input, context) { 40555 return input.map(function (entry) { return serializeAws_json1_1CognitoIdentityProvider(entry, context); }); 40556}; 40557var serializeAws_json1_1CreateIdentityPoolInput = function (input, context) { 40558 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.AllowClassicFlow !== undefined && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined && { 40559 AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities, 40560 })), (input.CognitoIdentityProviders !== undefined && { 40561 CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context), 40562 })), (input.DeveloperProviderName !== undefined && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolName !== undefined && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined && { 40563 IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context), 40564 })), (input.OpenIdConnectProviderARNs !== undefined && { 40565 OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context), 40566 })), (input.SamlProviderARNs !== undefined && { 40567 SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context), 40568 })), (input.SupportedLoginProviders !== undefined && { 40569 SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context), 40570 })); 40571}; 40572var serializeAws_json1_1DeleteIdentitiesInput = function (input, context) { 40573 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityIdsToDelete !== undefined && { 40574 IdentityIdsToDelete: serializeAws_json1_1IdentityIdList(input.IdentityIdsToDelete, context), 40575 })); 40576}; 40577var serializeAws_json1_1DeleteIdentityPoolInput = function (input, context) { 40578 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })); 40579}; 40580var serializeAws_json1_1DescribeIdentityInput = function (input, context) { 40581 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityId !== undefined && { IdentityId: input.IdentityId })); 40582}; 40583var serializeAws_json1_1DescribeIdentityPoolInput = function (input, context) { 40584 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })); 40585}; 40586var serializeAws_json1_1GetCredentialsForIdentityInput = function (input, context) { 40587 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.CustomRoleArn !== undefined && { CustomRoleArn: input.CustomRoleArn })), (input.IdentityId !== undefined && { IdentityId: input.IdentityId })), (input.Logins !== undefined && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })); 40588}; 40589var serializeAws_json1_1GetIdentityPoolRolesInput = function (input, context) { 40590 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })); 40591}; 40592var serializeAws_json1_1GetIdInput = function (input, context) { 40593 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.AccountId !== undefined && { AccountId: input.AccountId })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })); 40594}; 40595var serializeAws_json1_1GetOpenIdTokenForDeveloperIdentityInput = function (input, context) { 40596 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityId !== undefined && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.Logins !== undefined && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.TokenDuration !== undefined && { TokenDuration: input.TokenDuration })); 40597}; 40598var serializeAws_json1_1GetOpenIdTokenInput = function (input, context) { 40599 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityId !== undefined && { IdentityId: input.IdentityId })), (input.Logins !== undefined && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })); 40600}; 40601var serializeAws_json1_1IdentityIdList = function (input, context) { 40602 return input.map(function (entry) { return entry; }); 40603}; 40604var serializeAws_json1_1IdentityPool = function (input, context) { 40605 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.AllowClassicFlow !== undefined && { AllowClassicFlow: input.AllowClassicFlow })), (input.AllowUnauthenticatedIdentities !== undefined && { 40606 AllowUnauthenticatedIdentities: input.AllowUnauthenticatedIdentities, 40607 })), (input.CognitoIdentityProviders !== undefined && { 40608 CognitoIdentityProviders: serializeAws_json1_1CognitoIdentityProviderList(input.CognitoIdentityProviders, context), 40609 })), (input.DeveloperProviderName !== undefined && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.IdentityPoolName !== undefined && { IdentityPoolName: input.IdentityPoolName })), (input.IdentityPoolTags !== undefined && { 40610 IdentityPoolTags: serializeAws_json1_1IdentityPoolTagsType(input.IdentityPoolTags, context), 40611 })), (input.OpenIdConnectProviderARNs !== undefined && { 40612 OpenIdConnectProviderARNs: serializeAws_json1_1OIDCProviderList(input.OpenIdConnectProviderARNs, context), 40613 })), (input.SamlProviderARNs !== undefined && { 40614 SamlProviderARNs: serializeAws_json1_1SAMLProviderList(input.SamlProviderARNs, context), 40615 })), (input.SupportedLoginProviders !== undefined && { 40616 SupportedLoginProviders: serializeAws_json1_1IdentityProviders(input.SupportedLoginProviders, context), 40617 })); 40618}; 40619var serializeAws_json1_1IdentityPoolTagsListType = function (input, context) { 40620 return input.map(function (entry) { return entry; }); 40621}; 40622var serializeAws_json1_1IdentityPoolTagsType = function (input, context) { 40623 return Object.entries(input).reduce(function (acc, _a) { 40624 var _b; 40625 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40626 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 40627 }, {}); 40628}; 40629var serializeAws_json1_1IdentityProviders = function (input, context) { 40630 return Object.entries(input).reduce(function (acc, _a) { 40631 var _b; 40632 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40633 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 40634 }, {}); 40635}; 40636var serializeAws_json1_1ListIdentitiesInput = function (input, context) { 40637 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.HideDisabled !== undefined && { HideDisabled: input.HideDisabled })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && { NextToken: input.NextToken })); 40638}; 40639var serializeAws_json1_1ListIdentityPoolsInput = function (input, context) { 40640 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.MaxResults !== undefined && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && { NextToken: input.NextToken })); 40641}; 40642var serializeAws_json1_1ListTagsForResourceInput = function (input, context) { 40643 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.ResourceArn !== undefined && { ResourceArn: input.ResourceArn })); 40644}; 40645var serializeAws_json1_1LoginsList = function (input, context) { 40646 return input.map(function (entry) { return entry; }); 40647}; 40648var serializeAws_json1_1LoginsMap = function (input, context) { 40649 return Object.entries(input).reduce(function (acc, _a) { 40650 var _b; 40651 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40652 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 40653 }, {}); 40654}; 40655var serializeAws_json1_1LookupDeveloperIdentityInput = function (input, context) { 40656 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.DeveloperUserIdentifier !== undefined && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.MaxResults !== undefined && { MaxResults: input.MaxResults })), (input.NextToken !== undefined && { NextToken: input.NextToken })); 40657}; 40658var serializeAws_json1_1MappingRule = function (input, context) { 40659 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.Claim !== undefined && { Claim: input.Claim })), (input.MatchType !== undefined && { MatchType: input.MatchType })), (input.RoleARN !== undefined && { RoleARN: input.RoleARN })), (input.Value !== undefined && { Value: input.Value })); 40660}; 40661var serializeAws_json1_1MappingRulesList = function (input, context) { 40662 return input.map(function (entry) { return serializeAws_json1_1MappingRule(entry, context); }); 40663}; 40664var serializeAws_json1_1MergeDeveloperIdentitiesInput = function (input, context) { 40665 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.DestinationUserIdentifier !== undefined && { 40666 DestinationUserIdentifier: input.DestinationUserIdentifier, 40667 })), (input.DeveloperProviderName !== undefined && { DeveloperProviderName: input.DeveloperProviderName })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.SourceUserIdentifier !== undefined && { SourceUserIdentifier: input.SourceUserIdentifier })); 40668}; 40669var serializeAws_json1_1OIDCProviderList = function (input, context) { 40670 return input.map(function (entry) { return entry; }); 40671}; 40672var serializeAws_json1_1RoleMapping = function (input, context) { 40673 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.AmbiguousRoleResolution !== undefined && { AmbiguousRoleResolution: input.AmbiguousRoleResolution })), (input.RulesConfiguration !== undefined && { 40674 RulesConfiguration: serializeAws_json1_1RulesConfigurationType(input.RulesConfiguration, context), 40675 })), (input.Type !== undefined && { Type: input.Type })); 40676}; 40677var serializeAws_json1_1RoleMappingMap = function (input, context) { 40678 return Object.entries(input).reduce(function (acc, _a) { 40679 var _b; 40680 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40681 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = serializeAws_json1_1RoleMapping(value, context), _b))); 40682 }, {}); 40683}; 40684var serializeAws_json1_1RolesMap = function (input, context) { 40685 return Object.entries(input).reduce(function (acc, _a) { 40686 var _b; 40687 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40688 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 40689 }, {}); 40690}; 40691var serializeAws_json1_1RulesConfigurationType = function (input, context) { 40692 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.Rules !== undefined && { Rules: serializeAws_json1_1MappingRulesList(input.Rules, context) })); 40693}; 40694var serializeAws_json1_1SAMLProviderList = function (input, context) { 40695 return input.map(function (entry) { return entry; }); 40696}; 40697var serializeAws_json1_1SetIdentityPoolRolesInput = function (input, context) { 40698 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })), (input.RoleMappings !== undefined && { 40699 RoleMappings: serializeAws_json1_1RoleMappingMap(input.RoleMappings, context), 40700 })), (input.Roles !== undefined && { Roles: serializeAws_json1_1RolesMap(input.Roles, context) })); 40701}; 40702var serializeAws_json1_1TagResourceInput = function (input, context) { 40703 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.ResourceArn !== undefined && { ResourceArn: input.ResourceArn })), (input.Tags !== undefined && { Tags: serializeAws_json1_1IdentityPoolTagsType(input.Tags, context) })); 40704}; 40705var serializeAws_json1_1UnlinkDeveloperIdentityInput = function (input, context) { 40706 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.DeveloperProviderName !== undefined && { DeveloperProviderName: input.DeveloperProviderName })), (input.DeveloperUserIdentifier !== undefined && { DeveloperUserIdentifier: input.DeveloperUserIdentifier })), (input.IdentityId !== undefined && { IdentityId: input.IdentityId })), (input.IdentityPoolId !== undefined && { IdentityPoolId: input.IdentityPoolId })); 40707}; 40708var serializeAws_json1_1UnlinkIdentityInput = function (input, context) { 40709 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.IdentityId !== undefined && { IdentityId: input.IdentityId })), (input.Logins !== undefined && { Logins: serializeAws_json1_1LoginsMap(input.Logins, context) })), (input.LoginsToRemove !== undefined && { 40710 LoginsToRemove: serializeAws_json1_1LoginsList(input.LoginsToRemove, context), 40711 })); 40712}; 40713var serializeAws_json1_1UntagResourceInput = function (input, context) { 40714 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, (input.ResourceArn !== undefined && { ResourceArn: input.ResourceArn })), (input.TagKeys !== undefined && { 40715 TagKeys: serializeAws_json1_1IdentityPoolTagsListType(input.TagKeys, context), 40716 })); 40717}; 40718var deserializeAws_json1_1CognitoIdentityProvider = function (output, context) { 40719 return { 40720 __type: "CognitoIdentityProvider", 40721 ClientId: output.ClientId !== undefined && output.ClientId !== null ? output.ClientId : undefined, 40722 ProviderName: output.ProviderName !== undefined && output.ProviderName !== null ? output.ProviderName : undefined, 40723 ServerSideTokenCheck: output.ServerSideTokenCheck !== undefined && output.ServerSideTokenCheck !== null 40724 ? output.ServerSideTokenCheck 40725 : undefined, 40726 }; 40727}; 40728var deserializeAws_json1_1CognitoIdentityProviderList = function (output, context) { 40729 return (output || []).map(function (entry) { return deserializeAws_json1_1CognitoIdentityProvider(entry, context); }); 40730}; 40731var deserializeAws_json1_1ConcurrentModificationException = function (output, context) { 40732 return { 40733 __type: "ConcurrentModificationException", 40734 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40735 }; 40736}; 40737var deserializeAws_json1_1Credentials = function (output, context) { 40738 return { 40739 __type: "Credentials", 40740 AccessKeyId: output.AccessKeyId !== undefined && output.AccessKeyId !== null ? output.AccessKeyId : undefined, 40741 Expiration: output.Expiration !== undefined && output.Expiration !== null 40742 ? new Date(Math.round(output.Expiration * 1000)) 40743 : undefined, 40744 SecretKey: output.SecretKey !== undefined && output.SecretKey !== null ? output.SecretKey : undefined, 40745 SessionToken: output.SessionToken !== undefined && output.SessionToken !== null ? output.SessionToken : undefined, 40746 }; 40747}; 40748var deserializeAws_json1_1DeleteIdentitiesResponse = function (output, context) { 40749 return { 40750 __type: "DeleteIdentitiesResponse", 40751 UnprocessedIdentityIds: output.UnprocessedIdentityIds !== undefined && output.UnprocessedIdentityIds !== null 40752 ? deserializeAws_json1_1UnprocessedIdentityIdList(output.UnprocessedIdentityIds, context) 40753 : undefined, 40754 }; 40755}; 40756var deserializeAws_json1_1DeveloperUserAlreadyRegisteredException = function (output, context) { 40757 return { 40758 __type: "DeveloperUserAlreadyRegisteredException", 40759 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40760 }; 40761}; 40762var deserializeAws_json1_1DeveloperUserIdentifierList = function (output, context) { 40763 return (output || []).map(function (entry) { return entry; }); 40764}; 40765var deserializeAws_json1_1ExternalServiceException = function (output, context) { 40766 return { 40767 __type: "ExternalServiceException", 40768 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40769 }; 40770}; 40771var deserializeAws_json1_1GetCredentialsForIdentityResponse = function (output, context) { 40772 return { 40773 __type: "GetCredentialsForIdentityResponse", 40774 Credentials: output.Credentials !== undefined && output.Credentials !== null 40775 ? deserializeAws_json1_1Credentials(output.Credentials, context) 40776 : undefined, 40777 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40778 }; 40779}; 40780var deserializeAws_json1_1GetIdentityPoolRolesResponse = function (output, context) { 40781 return { 40782 __type: "GetIdentityPoolRolesResponse", 40783 IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined, 40784 RoleMappings: output.RoleMappings !== undefined && output.RoleMappings !== null 40785 ? deserializeAws_json1_1RoleMappingMap(output.RoleMappings, context) 40786 : undefined, 40787 Roles: output.Roles !== undefined && output.Roles !== null 40788 ? deserializeAws_json1_1RolesMap(output.Roles, context) 40789 : undefined, 40790 }; 40791}; 40792var deserializeAws_json1_1GetIdResponse = function (output, context) { 40793 return { 40794 __type: "GetIdResponse", 40795 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40796 }; 40797}; 40798var deserializeAws_json1_1GetOpenIdTokenForDeveloperIdentityResponse = function (output, context) { 40799 return { 40800 __type: "GetOpenIdTokenForDeveloperIdentityResponse", 40801 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40802 Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined, 40803 }; 40804}; 40805var deserializeAws_json1_1GetOpenIdTokenResponse = function (output, context) { 40806 return { 40807 __type: "GetOpenIdTokenResponse", 40808 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40809 Token: output.Token !== undefined && output.Token !== null ? output.Token : undefined, 40810 }; 40811}; 40812var deserializeAws_json1_1IdentitiesList = function (output, context) { 40813 return (output || []).map(function (entry) { return deserializeAws_json1_1IdentityDescription(entry, context); }); 40814}; 40815var deserializeAws_json1_1IdentityDescription = function (output, context) { 40816 return { 40817 __type: "IdentityDescription", 40818 CreationDate: output.CreationDate !== undefined && output.CreationDate !== null 40819 ? new Date(Math.round(output.CreationDate * 1000)) 40820 : undefined, 40821 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40822 LastModifiedDate: output.LastModifiedDate !== undefined && output.LastModifiedDate !== null 40823 ? new Date(Math.round(output.LastModifiedDate * 1000)) 40824 : undefined, 40825 Logins: output.Logins !== undefined && output.Logins !== null 40826 ? deserializeAws_json1_1LoginsList(output.Logins, context) 40827 : undefined, 40828 }; 40829}; 40830var deserializeAws_json1_1IdentityPool = function (output, context) { 40831 return { 40832 __type: "IdentityPool", 40833 AllowClassicFlow: output.AllowClassicFlow !== undefined && output.AllowClassicFlow !== null ? output.AllowClassicFlow : undefined, 40834 AllowUnauthenticatedIdentities: output.AllowUnauthenticatedIdentities !== undefined && output.AllowUnauthenticatedIdentities !== null 40835 ? output.AllowUnauthenticatedIdentities 40836 : undefined, 40837 CognitoIdentityProviders: output.CognitoIdentityProviders !== undefined && output.CognitoIdentityProviders !== null 40838 ? deserializeAws_json1_1CognitoIdentityProviderList(output.CognitoIdentityProviders, context) 40839 : undefined, 40840 DeveloperProviderName: output.DeveloperProviderName !== undefined && output.DeveloperProviderName !== null 40841 ? output.DeveloperProviderName 40842 : undefined, 40843 IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined, 40844 IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined, 40845 IdentityPoolTags: output.IdentityPoolTags !== undefined && output.IdentityPoolTags !== null 40846 ? deserializeAws_json1_1IdentityPoolTagsType(output.IdentityPoolTags, context) 40847 : undefined, 40848 OpenIdConnectProviderARNs: output.OpenIdConnectProviderARNs !== undefined && output.OpenIdConnectProviderARNs !== null 40849 ? deserializeAws_json1_1OIDCProviderList(output.OpenIdConnectProviderARNs, context) 40850 : undefined, 40851 SamlProviderARNs: output.SamlProviderARNs !== undefined && output.SamlProviderARNs !== null 40852 ? deserializeAws_json1_1SAMLProviderList(output.SamlProviderARNs, context) 40853 : undefined, 40854 SupportedLoginProviders: output.SupportedLoginProviders !== undefined && output.SupportedLoginProviders !== null 40855 ? deserializeAws_json1_1IdentityProviders(output.SupportedLoginProviders, context) 40856 : undefined, 40857 }; 40858}; 40859var deserializeAws_json1_1IdentityPoolShortDescription = function (output, context) { 40860 return { 40861 __type: "IdentityPoolShortDescription", 40862 IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined, 40863 IdentityPoolName: output.IdentityPoolName !== undefined && output.IdentityPoolName !== null ? output.IdentityPoolName : undefined, 40864 }; 40865}; 40866var deserializeAws_json1_1IdentityPoolsList = function (output, context) { 40867 return (output || []).map(function (entry) { return deserializeAws_json1_1IdentityPoolShortDescription(entry, context); }); 40868}; 40869var deserializeAws_json1_1IdentityPoolTagsType = function (output, context) { 40870 return Object.entries(output).reduce(function (acc, _a) { 40871 var _b; 40872 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40873 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 40874 }, {}); 40875}; 40876var deserializeAws_json1_1IdentityProviders = function (output, context) { 40877 return Object.entries(output).reduce(function (acc, _a) { 40878 var _b; 40879 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 40880 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 40881 }, {}); 40882}; 40883var deserializeAws_json1_1InternalErrorException = function (output, context) { 40884 return { 40885 __type: "InternalErrorException", 40886 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40887 }; 40888}; 40889var deserializeAws_json1_1InvalidIdentityPoolConfigurationException = function (output, context) { 40890 return { 40891 __type: "InvalidIdentityPoolConfigurationException", 40892 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40893 }; 40894}; 40895var deserializeAws_json1_1InvalidParameterException = function (output, context) { 40896 return { 40897 __type: "InvalidParameterException", 40898 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40899 }; 40900}; 40901var deserializeAws_json1_1LimitExceededException = function (output, context) { 40902 return { 40903 __type: "LimitExceededException", 40904 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40905 }; 40906}; 40907var deserializeAws_json1_1ListIdentitiesResponse = function (output, context) { 40908 return { 40909 __type: "ListIdentitiesResponse", 40910 Identities: output.Identities !== undefined && output.Identities !== null 40911 ? deserializeAws_json1_1IdentitiesList(output.Identities, context) 40912 : undefined, 40913 IdentityPoolId: output.IdentityPoolId !== undefined && output.IdentityPoolId !== null ? output.IdentityPoolId : undefined, 40914 NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, 40915 }; 40916}; 40917var deserializeAws_json1_1ListIdentityPoolsResponse = function (output, context) { 40918 return { 40919 __type: "ListIdentityPoolsResponse", 40920 IdentityPools: output.IdentityPools !== undefined && output.IdentityPools !== null 40921 ? deserializeAws_json1_1IdentityPoolsList(output.IdentityPools, context) 40922 : undefined, 40923 NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, 40924 }; 40925}; 40926var deserializeAws_json1_1ListTagsForResourceResponse = function (output, context) { 40927 return { 40928 __type: "ListTagsForResourceResponse", 40929 Tags: output.Tags !== undefined && output.Tags !== null 40930 ? deserializeAws_json1_1IdentityPoolTagsType(output.Tags, context) 40931 : undefined, 40932 }; 40933}; 40934var deserializeAws_json1_1LoginsList = function (output, context) { 40935 return (output || []).map(function (entry) { return entry; }); 40936}; 40937var deserializeAws_json1_1LookupDeveloperIdentityResponse = function (output, context) { 40938 return { 40939 __type: "LookupDeveloperIdentityResponse", 40940 DeveloperUserIdentifierList: output.DeveloperUserIdentifierList !== undefined && output.DeveloperUserIdentifierList !== null 40941 ? deserializeAws_json1_1DeveloperUserIdentifierList(output.DeveloperUserIdentifierList, context) 40942 : undefined, 40943 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40944 NextToken: output.NextToken !== undefined && output.NextToken !== null ? output.NextToken : undefined, 40945 }; 40946}; 40947var deserializeAws_json1_1MappingRule = function (output, context) { 40948 return { 40949 __type: "MappingRule", 40950 Claim: output.Claim !== undefined && output.Claim !== null ? output.Claim : undefined, 40951 MatchType: output.MatchType !== undefined && output.MatchType !== null ? output.MatchType : undefined, 40952 RoleARN: output.RoleARN !== undefined && output.RoleARN !== null ? output.RoleARN : undefined, 40953 Value: output.Value !== undefined && output.Value !== null ? output.Value : undefined, 40954 }; 40955}; 40956var deserializeAws_json1_1MappingRulesList = function (output, context) { 40957 return (output || []).map(function (entry) { return deserializeAws_json1_1MappingRule(entry, context); }); 40958}; 40959var deserializeAws_json1_1MergeDeveloperIdentitiesResponse = function (output, context) { 40960 return { 40961 __type: "MergeDeveloperIdentitiesResponse", 40962 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 40963 }; 40964}; 40965var deserializeAws_json1_1NotAuthorizedException = function (output, context) { 40966 return { 40967 __type: "NotAuthorizedException", 40968 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40969 }; 40970}; 40971var deserializeAws_json1_1OIDCProviderList = function (output, context) { 40972 return (output || []).map(function (entry) { return entry; }); 40973}; 40974var deserializeAws_json1_1ResourceConflictException = function (output, context) { 40975 return { 40976 __type: "ResourceConflictException", 40977 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40978 }; 40979}; 40980var deserializeAws_json1_1ResourceNotFoundException = function (output, context) { 40981 return { 40982 __type: "ResourceNotFoundException", 40983 message: output.message !== undefined && output.message !== null ? output.message : undefined, 40984 }; 40985}; 40986var deserializeAws_json1_1RoleMapping = function (output, context) { 40987 return { 40988 __type: "RoleMapping", 40989 AmbiguousRoleResolution: output.AmbiguousRoleResolution !== undefined && output.AmbiguousRoleResolution !== null 40990 ? output.AmbiguousRoleResolution 40991 : undefined, 40992 RulesConfiguration: output.RulesConfiguration !== undefined && output.RulesConfiguration !== null 40993 ? deserializeAws_json1_1RulesConfigurationType(output.RulesConfiguration, context) 40994 : undefined, 40995 Type: output.Type !== undefined && output.Type !== null ? output.Type : undefined, 40996 }; 40997}; 40998var deserializeAws_json1_1RoleMappingMap = function (output, context) { 40999 return Object.entries(output).reduce(function (acc, _a) { 41000 var _b; 41001 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 41002 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = deserializeAws_json1_1RoleMapping(value, context), _b))); 41003 }, {}); 41004}; 41005var deserializeAws_json1_1RolesMap = function (output, context) { 41006 return Object.entries(output).reduce(function (acc, _a) { 41007 var _b; 41008 var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__read"])(_a, 2), key = _c[0], value = _c[1]; 41009 return (Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, acc), (_b = {}, _b[key] = value, _b))); 41010 }, {}); 41011}; 41012var deserializeAws_json1_1RulesConfigurationType = function (output, context) { 41013 return { 41014 __type: "RulesConfigurationType", 41015 Rules: output.Rules !== undefined && output.Rules !== null 41016 ? deserializeAws_json1_1MappingRulesList(output.Rules, context) 41017 : undefined, 41018 }; 41019}; 41020var deserializeAws_json1_1SAMLProviderList = function (output, context) { 41021 return (output || []).map(function (entry) { return entry; }); 41022}; 41023var deserializeAws_json1_1TagResourceResponse = function (output, context) { 41024 return { 41025 __type: "TagResourceResponse", 41026 }; 41027}; 41028var deserializeAws_json1_1TooManyRequestsException = function (output, context) { 41029 return { 41030 __type: "TooManyRequestsException", 41031 message: output.message !== undefined && output.message !== null ? output.message : undefined, 41032 }; 41033}; 41034var deserializeAws_json1_1UnprocessedIdentityId = function (output, context) { 41035 return { 41036 __type: "UnprocessedIdentityId", 41037 ErrorCode: output.ErrorCode !== undefined && output.ErrorCode !== null ? output.ErrorCode : undefined, 41038 IdentityId: output.IdentityId !== undefined && output.IdentityId !== null ? output.IdentityId : undefined, 41039 }; 41040}; 41041var deserializeAws_json1_1UnprocessedIdentityIdList = function (output, context) { 41042 return (output || []).map(function (entry) { return deserializeAws_json1_1UnprocessedIdentityId(entry, context); }); 41043}; 41044var deserializeAws_json1_1UntagResourceResponse = function (output, context) { 41045 return { 41046 __type: "UntagResourceResponse", 41047 }; 41048}; 41049var deserializeMetadata = function (output) { return ({ 41050 httpStatusCode: output.statusCode, 41051 httpHeaders: output.headers, 41052 requestId: output.headers["x-amzn-requestid"], 41053}); }; 41054// Collect low-level response body stream to Uint8Array. 41055var collectBody = function (streamBody, context) { 41056 if (streamBody === void 0) { streamBody = new Uint8Array(); } 41057 if (streamBody instanceof Uint8Array) { 41058 return Promise.resolve(streamBody); 41059 } 41060 return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array()); 41061}; 41062// Encode Uint8Array data into string with utf-8. 41063var collectBodyString = function (streamBody, context) { 41064 return collectBody(streamBody, context).then(function (body) { return context.utf8Encoder(body); }); 41065}; 41066var buildHttpRpcRequest = function (context, headers, path, resolvedHostname, body) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(void 0, void 0, void 0, function () { 41067 var _a, hostname, _b, protocol, port, contents; 41068 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_c) { 41069 switch (_c.label) { 41070 case 0: return [4 /*yield*/, context.endpoint()]; 41071 case 1: 41072 _a = _c.sent(), hostname = _a.hostname, _b = _a.protocol, protocol = _b === void 0 ? "https" : _b, port = _a.port; 41073 contents = { 41074 protocol: protocol, 41075 hostname: hostname, 41076 port: port, 41077 method: "POST", 41078 path: path, 41079 headers: headers, 41080 }; 41081 if (resolvedHostname !== undefined) { 41082 contents.hostname = resolvedHostname; 41083 } 41084 if (body !== undefined) { 41085 contents.body = body; 41086 } 41087 return [2 /*return*/, new _aws_sdk_protocol_http__WEBPACK_IMPORTED_MODULE_1__["HttpRequest"](contents)]; 41088 } 41089 }); 41090}); }; 41091var parseBody = function (streamBody, context) { 41092 return collectBodyString(streamBody, context).then(function (encoded) { 41093 if (encoded.length) { 41094 return JSON.parse(encoded); 41095 } 41096 return {}; 41097 }); 41098}; 41099//# sourceMappingURL=Aws_json1_1.js.map 41100 41101/***/ }), 41102
vendor: 6,131 bytes, lines 41103-41148
41103/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js": 41104/*!****************************************************************************************!*\ 41105 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.browser.js ***! 41106 \****************************************************************************************/ 41107/*! exports provided: ClientDefaultValues */ 41108/***/ (function(module, __webpack_exports__, __webpack_require__) { 41109 41110"use strict"; 41111__webpack_require__.r(__webpack_exports__); 41112/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientDefaultValues", function() { return ClientDefaultValues; }); 41113/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41114/* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./package.json */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/package.json"); 41115var _package_json__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t(/*! ./package.json */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/package.json", 1); 41116/* harmony import */ var _aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-crypto/sha256-browser */ "./node_modules/@aws-crypto/sha256-browser/build/index.js"); 41117/* harmony import */ var _aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_2__); 41118/* harmony import */ var _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @aws-sdk/fetch-http-handler */ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/index.js"); 41119/* harmony import */ var _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_3__); 41120/* harmony import */ var _aws_sdk_invalid_dependency__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @aws-sdk/invalid-dependency */ "./node_modules/@aws-sdk/invalid-dependency/dist/cjs/index.js"); 41121/* harmony import */ var _aws_sdk_invalid_dependency__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_invalid_dependency__WEBPACK_IMPORTED_MODULE_4__); 41122/* harmony import */ var _aws_sdk_url_parser_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @aws-sdk/url-parser-browser */ "./node_modules/@aws-sdk/url-parser-browser/dist/cjs/index.js"); 41123/* harmony import */ var _aws_sdk_url_parser_browser__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_url_parser_browser__WEBPACK_IMPORTED_MODULE_5__); 41124/* harmony import */ var _aws_sdk_util_base64_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @aws-sdk/util-base64-browser */ "./node_modules/@aws-sdk/util-base64-browser/dist/cjs/index.js"); 41125/* harmony import */ var _aws_sdk_util_base64_browser__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_base64_browser__WEBPACK_IMPORTED_MODULE_6__); 41126/* harmony import */ var _aws_sdk_util_body_length_browser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @aws-sdk/util-body-length-browser */ "./node_modules/@aws-sdk/util-body-length-browser/dist/cjs/index.js"); 41127/* harmony import */ var _aws_sdk_util_body_length_browser__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_body_length_browser__WEBPACK_IMPORTED_MODULE_7__); 41128/* harmony import */ var _aws_sdk_util_user_agent_browser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @aws-sdk/util-user-agent-browser */ "./node_modules/@aws-sdk/util-user-agent-browser/dist/cjs/index.js"); 41129/* harmony import */ var _aws_sdk_util_user_agent_browser__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_user_agent_browser__WEBPACK_IMPORTED_MODULE_8__); 41130/* harmony import */ var _aws_sdk_util_utf8_browser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @aws-sdk/util-utf8-browser */ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/index.js"); 41131/* harmony import */ var _aws_sdk_util_utf8_browser__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_utf8_browser__WEBPACK_IMPORTED_MODULE_9__); 41132/* harmony import */ var _runtimeConfig_shared__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./runtimeConfig.shared */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js"); 41133 41134 41135 41136 41137 41138 41139 41140 41141 41142 41143 41144var ClientDefaultValues = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, _runtimeConfig_shared__WEBPACK_IMPORTED_MODULE_10__["ClientSharedValues"]), { runtime: "browser", base64Decoder: _aws_sdk_util_base64_browser__WEBPACK_IMPORTED_MODULE_6__["fromBase64"], base64Encoder: _aws_sdk_util_base64_browser__WEBPACK_IMPORTED_MODULE_6__["toBase64"], bodyLengthChecker: _aws_sdk_util_body_length_browser__WEBPACK_IMPORTED_MODULE_7__["calculateBodyLength"], credentialDefaultProvider: (function () { }), defaultUserAgent: Object(_aws_sdk_util_user_agent_browser__WEBPACK_IMPORTED_MODULE_8__["defaultUserAgent"])(_package_json__WEBPACK_IMPORTED_MODULE_1__["name"], _package_json__WEBPACK_IMPORTED_MODULE_1__["version"]), maxAttemptsDefaultProvider: (function () { return "3"; }), regionDefaultProvider: Object(_aws_sdk_invalid_dependency__WEBPACK_IMPORTED_MODULE_4__["invalidFunction"])("Region is missing"), requestHandler: new _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_3__["FetchHttpHandler"](), sha256: _aws_crypto_sha256_browser__WEBPACK_IMPORTED_MODULE_2__["Sha256"], streamCollector: _aws_sdk_fetch_http_handler__WEBPACK_IMPORTED_MODULE_3__["streamCollector"], urlParser: _aws_sdk_url_parser_browser__WEBPACK_IMPORTED_MODULE_5__["parseUrl"], utf8Decoder: _aws_sdk_util_utf8_browser__WEBPACK_IMPORTED_MODULE_9__["fromUtf8"], utf8Encoder: _aws_sdk_util_utf8_browser__WEBPACK_IMPORTED_MODULE_9__["toUtf8"] }); 41145//# sourceMappingURL=runtimeConfig.browser.js.map 41146 41147/***/ }), 41148
vendor: 1,140 bytes, lines 41149-41170
41149/***/ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js": 41150/*!***************************************************************************************!*\ 41151 !*** ./node_modules/@aws-sdk/client-cognito-identity/dist/es/runtimeConfig.shared.js ***! 41152 \***************************************************************************************/ 41153/*! exports provided: ClientSharedValues */ 41154/***/ (function(module, __webpack_exports__, __webpack_require__) { 41155 41156"use strict"; 41157__webpack_require__.r(__webpack_exports__); 41158/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSharedValues", function() { return ClientSharedValues; }); 41159/* harmony import */ var _endpoints__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./endpoints */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/endpoints.js"); 41160 41161var ClientSharedValues = { 41162 apiVersion: "2014-06-30", 41163 disableHostPrefix: false, 41164 regionInfoProvider: _endpoints__WEBPACK_IMPORTED_MODULE_0__["defaultRegionInfoProvider"], 41165 signingName: "cognito-identity", 41166}; 41167//# sourceMappingURL=runtimeConfig.shared.js.map 41168 41169/***/ }), 41170
vendor: 6,664 bytes, lines 41171-41224
41171/***/ "./node_modules/@aws-sdk/config-resolver/dist/cjs/EndpointsConfig.js": 41172/*!***************************************************************************!*\ 41173 !*** ./node_modules/@aws-sdk/config-resolver/dist/cjs/EndpointsConfig.js ***! 41174 \***************************************************************************/ 41175/*! no static exports found */ 41176/***/ (function(module, exports, __webpack_require__) { 41177 41178"use strict"; 41179 41180Object.defineProperty(exports, "__esModule", { value: true }); 41181exports.resolveEndpointsConfig = exports.normalizeEndpoint = void 0; 41182var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41183function normalizeEndpoint(endpoint, urlParser) { 41184 if (typeof endpoint === "string") { 41185 var promisified_1 = Promise.resolve(urlParser(endpoint)); 41186 return function () { return promisified_1; }; 41187 } 41188 else if (typeof endpoint === "object") { 41189 var promisified_2 = Promise.resolve(endpoint); 41190 return function () { return promisified_2; }; 41191 } 41192 return endpoint; 41193} 41194exports.normalizeEndpoint = normalizeEndpoint; 41195function resolveEndpointsConfig(input) { 41196 var _this = this; 41197 var tls = input.tls === undefined ? true : input.tls; 41198 var endpoint = input.endpoint 41199 ? normalizeEndpoint(input.endpoint, input.urlParser) 41200 : function () { 41201 return input.region().then(function (region) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 41202 var hostname, endpoint; 41203 return tslib_1.__generator(this, function (_a) { 41204 switch (_a.label) { 41205 case 0: return [4 /*yield*/, input.regionInfoProvider(region)]; 41206 case 1: 41207 hostname = ((_a.sent()) || {}).hostname; 41208 if (!hostname) { 41209 throw new Error("Cannot resolve hostname from client config"); 41210 } 41211 endpoint = input.urlParser((tls ? "https:" : "http:") + "//" + hostname); 41212 return [2 /*return*/, endpoint]; 41213 } 41214 }); 41215 }); }); 41216 }; 41217 return tslib_1.__assign(tslib_1.__assign({}, input), { endpoint: endpoint, 41218 tls: tls }); 41219} 41220exports.resolveEndpointsConfig = resolveEndpointsConfig; 41221//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnRzQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VuZHBvaW50c0NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsU0FBZ0IsaUJBQWlCLENBQy9CLFFBQWlELEVBQ2pELFNBQXFCO0lBRXJCLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO1FBQ2hDLElBQU0sYUFBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUQsT0FBTyxjQUFNLE9BQUEsYUFBVyxFQUFYLENBQVcsQ0FBQztLQUMxQjtTQUFNLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO1FBQ3ZDLElBQU0sYUFBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsT0FBTyxjQUFNLE9BQUEsYUFBVyxFQUFYLENBQVcsQ0FBQztLQUMxQjtJQUNELE9BQU8sUUFBUyxDQUFDO0FBQ25CLENBQUM7QUFaRCw4Q0FZQztBQXFCRCxTQUFnQixzQkFBc0IsQ0FDcEMsS0FBb0Q7SUFEdEQsaUJBb0JDO0lBakJDLElBQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDdkQsSUFBTSxRQUFRLEdBQXVCLEtBQUssQ0FBQyxRQUFRO1FBQ2pELENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1lBQ0UsT0FBQSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQU8sTUFBTTs7OztnQ0FDWixxQkFBTSxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUE7OzRCQUFuRCxRQUFRLEdBQUcsQ0FBQyxDQUFDLFNBQXNDLENBQUMsSUFBSyxFQUFpQixDQUFDLENBQUMsUUFBUTs0QkFDMUYsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQ0FDYixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7NkJBQy9EOzRCQUNLLFFBQVEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sV0FBSyxRQUFVLENBQUMsQ0FBQzs0QkFDN0Usc0JBQU8sUUFBUSxFQUFDOzs7aUJBQ2pCLENBQUM7UUFQRixDQU9FLENBQUM7SUFDVCw2Q0FDSyxLQUFLLEtBQ1IsUUFBUSxVQUFBO1FBQ1IsR0FBRyxLQUFBLElBQ0g7QUFDSixDQUFDO0FBcEJELHdEQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBQcm92aWRlciwgUmVnaW9uSW5mbyxSZWdpb25JbmZvUHJvdmlkZXIsIFVybFBhcnNlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRW5kcG9pbnQoXG4gIGVuZHBvaW50Pzogc3RyaW5nIHwgRW5kcG9pbnQgfCBQcm92aWRlcjxFbmRwb2ludD4sXG4gIHVybFBhcnNlcj86IFVybFBhcnNlclxuKTogUHJvdmlkZXI8RW5kcG9pbnQ+IHtcbiAgaWYgKHR5cGVvZiBlbmRwb2ludCA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKHVybFBhcnNlciEoZW5kcG9pbnQpKTtcbiAgICByZXR1cm4gKCkgPT4gcHJvbWlzaWZpZWQ7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVuZHBvaW50ID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoZW5kcG9pbnQpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gZW5kcG9pbnQhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50c0lucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBmdWxseSBxdWFsaWZpZWQgZW5kcG9pbnQgb2YgdGhlIHdlYnNlcnZpY2UuIFRoaXMgaXMgb25seSByZXF1aXJlZCB3aGVuIHVzaW5nIGEgY3VzdG9tIGVuZHBvaW50IChmb3IgZXhhbXBsZSwgd2hlbiB1c2luZyBhIGxvY2FsIHZlcnNpb24gb2YgUzMpLlxuICAgKi9cbiAgZW5kcG9pbnQ/OiBzdHJpbmcgfCBFbmRwb2ludCB8IFByb3ZpZGVyPEVuZHBvaW50PjtcblxuICAvKipcbiAgICogV2hldGhlciBUTFMgaXMgZW5hYmxlZCBmb3IgcmVxdWVzdHMuXG4gICAqL1xuICB0bHM/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIHJlZ2lvbkluZm9Qcm92aWRlcjogUmVnaW9uSW5mb1Byb3ZpZGVyO1xuICB1cmxQYXJzZXI6IFVybFBhcnNlcjtcbiAgcmVnaW9uOiBQcm92aWRlcjxzdHJpbmc+O1xufVxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludHNSZXNvbHZlZENvbmZpZyBleHRlbmRzIFJlcXVpcmVkPEVuZHBvaW50c0lucHV0Q29uZmlnPiB7XG4gIGVuZHBvaW50OiBQcm92aWRlcjxFbmRwb2ludD47XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUVuZHBvaW50c0NvbmZpZzxUPihcbiAgaW5wdXQ6IFQgJiBFbmRwb2ludHNJbnB1dENvbmZpZyAmIFByZXZpb3VzbHlSZXNvbHZlZFxuKTogVCAmIEVuZHBvaW50c1Jlc29sdmVkQ29uZmlnIHtcbiAgY29uc3QgdGxzID0gaW5wdXQudGxzID09PSB1bmRlZmluZWQgPyB0cnVlIDogaW5wdXQudGxzO1xuICBjb25zdCBlbmRwb2ludDogUHJvdmlkZXI8RW5kcG9pbnQ+ID0gaW5wdXQuZW5kcG9pbnRcbiAgICA/IG5vcm1hbGl6ZUVuZHBvaW50KGlucHV0LmVuZHBvaW50LCBpbnB1dC51cmxQYXJzZXIpXG4gICAgOiAoKSA9PlxuICAgICAgICBpbnB1dC5yZWdpb24oKS50aGVuKGFzeW5jIChyZWdpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBob3N0bmFtZSA9ICgoYXdhaXQgaW5wdXQucmVnaW9uSW5mb1Byb3ZpZGVyKHJlZ2lvbikpIHx8ICh7fSBhcyBSZWdpb25JbmZvKSkuaG9zdG5hbWU7XG4gICAgICAgICAgaWYgKCFob3N0bmFtZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHJlc29sdmUgaG9zdG5hbWUgZnJvbSBjbGllbnQgY29uZmlnXCIpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IGlucHV0LnVybFBhcnNlcihgJHt0bHMgPyBcImh0dHBzOlwiIDogXCJodHRwOlwifS8vJHtob3N0bmFtZX1gKTtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnQ7XG4gICAgICAgIH0pO1xuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIGVuZHBvaW50LFxuICAgIHRscyxcbiAgfTtcbn1cbiJdfQ== 41222 41223/***/ }), 41224
vendor: 3,013 bytes, lines 41225-41252
41225/***/ "./node_modules/@aws-sdk/config-resolver/dist/cjs/RegionConfig.js": 41226/*!************************************************************************!*\ 41227 !*** ./node_modules/@aws-sdk/config-resolver/dist/cjs/RegionConfig.js ***! 41228 \************************************************************************/ 41229/*! no static exports found */ 41230/***/ (function(module, exports, __webpack_require__) { 41231 41232"use strict"; 41233 41234Object.defineProperty(exports, "__esModule", { value: true }); 41235exports.resolveRegionConfig = void 0; 41236var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41237function resolveRegionConfig(input) { 41238 var region = input.region || input.regionDefaultProvider(input); 41239 return tslib_1.__assign(tslib_1.__assign({}, input), { region: normalizeRegion(region) }); 41240} 41241exports.resolveRegionConfig = resolveRegionConfig; 41242function normalizeRegion(region) { 41243 if (typeof region === "string") { 41244 var promisified_1 = Promise.resolve(region); 41245 return function () { return promisified_1; }; 41246 } 41247 return region; 41248} 41249//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaW9uQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JlZ2lvbkNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBY0EsU0FBZ0IsbUJBQW1CLENBQUksS0FBaUQ7SUFDdEYsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsS0FBWSxDQUFDLENBQUM7SUFDekUsNkNBQ0ssS0FBSyxLQUNSLE1BQU0sRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQy9CO0FBQ0osQ0FBQztBQU5ELGtEQU1DO0FBRUQsU0FBUyxlQUFlLENBQUMsTUFBaUM7SUFDeEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7UUFDOUIsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxNQUEwQixDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lvbklucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHRvIHdoaWNoIHRoaXMgY2xpZW50IHdpbGwgc2VuZCByZXF1ZXN0c1xuICAgKi9cbiAgcmVnaW9uPzogc3RyaW5nIHwgUHJvdmlkZXI8c3RyaW5nPjtcbn1cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICByZWdpb25EZWZhdWx0UHJvdmlkZXI6IChpbnB1dDogYW55KSA9PiBQcm92aWRlcjxzdHJpbmc+O1xufVxuZXhwb3J0IGludGVyZmFjZSBSZWdpb25SZXNvbHZlZENvbmZpZyB7XG4gIHJlZ2lvbjogUHJvdmlkZXI8c3RyaW5nPjtcbn1cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUmVnaW9uQ29uZmlnPFQ+KGlucHV0OiBUICYgUmVnaW9uSW5wdXRDb25maWcgJiBQcmV2aW91c2x5UmVzb2x2ZWQpOiBUICYgUmVnaW9uUmVzb2x2ZWRDb25maWcge1xuICBjb25zdCByZWdpb24gPSBpbnB1dC5yZWdpb24gfHwgaW5wdXQucmVnaW9uRGVmYXVsdFByb3ZpZGVyKGlucHV0IGFzIGFueSk7XG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgcmVnaW9uOiBub3JtYWxpemVSZWdpb24ocmVnaW9uKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplUmVnaW9uKHJlZ2lvbjogc3RyaW5nIHwgUHJvdmlkZXI8c3RyaW5nPik6IFByb3ZpZGVyPHN0cmluZz4ge1xuICBpZiAodHlwZW9mIHJlZ2lvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHByb21pc2lmaWVkID0gUHJvbWlzZS5yZXNvbHZlKHJlZ2lvbik7XG4gICAgcmV0dXJuICgpID0+IHByb21pc2lmaWVkO1xuICB9XG4gIHJldHVybiByZWdpb24gYXMgUHJvdmlkZXI8c3RyaW5nPjtcbn1cbiJdfQ== 41250 41251/***/ }), 41252
vendor: 1,187 bytes, lines 41253-41269
41253/***/ "./node_modules/@aws-sdk/config-resolver/dist/cjs/index.js": 41254/*!*****************************************************************!*\ 41255 !*** ./node_modules/@aws-sdk/config-resolver/dist/cjs/index.js ***! 41256 \*****************************************************************/ 41257/*! no static exports found */ 41258/***/ (function(module, exports, __webpack_require__) { 41259 41260"use strict"; 41261 41262Object.defineProperty(exports, "__esModule", { value: true }); 41263var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41264tslib_1.__exportStar(__webpack_require__(/*! ./EndpointsConfig */ "./node_modules/@aws-sdk/config-resolver/dist/cjs/EndpointsConfig.js"), exports); 41265tslib_1.__exportStar(__webpack_require__(/*! ./RegionConfig */ "./node_modules/@aws-sdk/config-resolver/dist/cjs/RegionConfig.js"), exports); 41266//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQWtDO0FBQ2xDLHlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0VuZHBvaW50c0NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVnaW9uQ29uZmlnXCI7XG4iXX0= 41267 41268/***/ }), 41269
vendor: 675 bytes, lines 41270-41283
41270/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/CognitoProviderParameters.js": 41271/*!**********************************************************************************************************!*\ 41272 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/CognitoProviderParameters.js ***! 41273 \**********************************************************************************************************/ 41274/*! no static exports found */ 41275/***/ (function(module, exports, __webpack_require__) { 41276 41277"use strict"; 41278 41279Object.defineProperty(exports, "__esModule", { value: true }); 41280//# sourceMappingURL=CognitoProviderParameters.js.map 41281 41282/***/ }), 41283
vendor: 1,272 bytes, lines 41284-41318
41284/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/InMemoryStorage.js": 41285/*!************************************************************************************************!*\ 41286 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/InMemoryStorage.js ***! 41287 \************************************************************************************************/ 41288/*! no static exports found */ 41289/***/ (function(module, exports, __webpack_require__) { 41290 41291"use strict"; 41292 41293Object.defineProperty(exports, "__esModule", { value: true }); 41294exports.InMemoryStorage = void 0; 41295var InMemoryStorage = /** @class */ (function () { 41296 function InMemoryStorage(store) { 41297 if (store === void 0) { store = {}; } 41298 this.store = store; 41299 } 41300 InMemoryStorage.prototype.getItem = function (key) { 41301 if (key in this.store) { 41302 return this.store[key]; 41303 } 41304 return null; 41305 }; 41306 InMemoryStorage.prototype.removeItem = function (key) { 41307 delete this.store[key]; 41308 }; 41309 InMemoryStorage.prototype.setItem = function (key, value) { 41310 this.store[key] = value; 41311 }; 41312 return InMemoryStorage; 41313}()); 41314exports.InMemoryStorage = InMemoryStorage; 41315//# sourceMappingURL=InMemoryStorage.js.map 41316 41317/***/ }), 41318
vendor: 3,694 bytes, lines 41319-41403
41319/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/IndexedDbStorage.js": 41320/*!*************************************************************************************************!*\ 41321 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/IndexedDbStorage.js ***! 41322 \*************************************************************************************************/ 41323/*! no static exports found */ 41324/***/ (function(module, exports, __webpack_require__) { 41325 41326"use strict"; 41327 41328Object.defineProperty(exports, "__esModule", { value: true }); 41329exports.IndexedDbStorage = void 0; 41330var STORE_NAME = "IdentityIds"; 41331var IndexedDbStorage = /** @class */ (function () { 41332 function IndexedDbStorage(dbName) { 41333 if (dbName === void 0) { dbName = "aws:cognito-identity-ids"; } 41334 this.dbName = dbName; 41335 } 41336 IndexedDbStorage.prototype.getItem = function (key) { 41337 return this.withObjectStore("readonly", function (store) { 41338 var req = store.get(key); 41339 return new Promise(function (resolve) { 41340 req.onerror = function () { return resolve(null); }; 41341 req.onsuccess = function () { return resolve(req.result ? req.result.value : null); }; 41342 }); 41343 }).catch(function () { return null; }); 41344 }; 41345 IndexedDbStorage.prototype.removeItem = function (key) { 41346 return this.withObjectStore("readwrite", function (store) { 41347 var req = store.delete(key); 41348 return new Promise(function (resolve, reject) { 41349 req.onerror = function () { return reject(req.error); }; 41350 req.onsuccess = function () { return resolve(); }; 41351 }); 41352 }); 41353 }; 41354 IndexedDbStorage.prototype.setItem = function (id, value) { 41355 return this.withObjectStore("readwrite", function (store) { 41356 var req = store.put({ id: id, value: value }); 41357 return new Promise(function (resolve, reject) { 41358 req.onerror = function () { return reject(req.error); }; 41359 req.onsuccess = function () { return resolve(); }; 41360 }); 41361 }); 41362 }; 41363 IndexedDbStorage.prototype.getDb = function () { 41364 var openDbRequest = self.indexedDB.open(this.dbName, 1); 41365 return new Promise(function (resolve, reject) { 41366 openDbRequest.onsuccess = function () { 41367 resolve(openDbRequest.result); 41368 }; 41369 openDbRequest.onerror = function () { 41370 reject(openDbRequest.error); 41371 }; 41372 openDbRequest.onblocked = function () { 41373 reject(new Error("Unable to access DB")); 41374 }; 41375 openDbRequest.onupgradeneeded = function () { 41376 var db = openDbRequest.result; 41377 db.onerror = function () { 41378 reject(new Error("Failed to create object store")); 41379 }; 41380 db.createObjectStore(STORE_NAME, { keyPath: "id" }); 41381 }; 41382 }); 41383 }; 41384 IndexedDbStorage.prototype.withObjectStore = function (mode, action) { 41385 return this.getDb().then(function (db) { 41386 var tx = db.transaction(STORE_NAME, mode); 41387 tx.oncomplete = function () { return db.close(); }; 41388 return new Promise(function (resolve, reject) { 41389 tx.onerror = function () { return reject(tx.error); }; 41390 resolve(action(tx.objectStore(STORE_NAME))); 41391 }).catch(function (err) { 41392 db.close(); 41393 throw err; 41394 }); 41395 }); 41396 }; 41397 return IndexedDbStorage; 41398}()); 41399exports.IndexedDbStorage = IndexedDbStorage; 41400//# sourceMappingURL=IndexedDbStorage.js.map 41401 41402/***/ }), 41403
vendor: 580 bytes, lines 41404-41417
41404/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/Logins.js": 41405/*!***************************************************************************************!*\ 41406 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/Logins.js ***! 41407 \***************************************************************************************/ 41408/*! no static exports found */ 41409/***/ (function(module, exports, __webpack_require__) { 41410 41411"use strict"; 41412 41413Object.defineProperty(exports, "__esModule", { value: true }); 41414//# sourceMappingURL=Logins.js.map 41415 41416/***/ }), 41417
vendor: 585 bytes, lines 41418-41431
41418/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/Storage.js": 41419/*!****************************************************************************************!*\ 41420 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/Storage.js ***! 41421 \****************************************************************************************/ 41422/*! no static exports found */ 41423/***/ (function(module, exports, __webpack_require__) { 41424 41425"use strict"; 41426 41427Object.defineProperty(exports, "__esModule", { value: true }); 41428//# sourceMappingURL=Storage.js.map 41429 41430/***/ }), 41431
vendor: 3,825 bytes, lines 41432-41501
41432/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentity.js": 41433/*!****************************************************************************************************!*\ 41434 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentity.js ***! 41435 \****************************************************************************************************/ 41436/*! no static exports found */ 41437/***/ (function(module, exports, __webpack_require__) { 41438 41439"use strict"; 41440 41441Object.defineProperty(exports, "__esModule", { value: true }); 41442exports.fromCognitoIdentity = void 0; 41443var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41444var client_cognito_identity_1 = __webpack_require__(/*! @aws-sdk/client-cognito-identity */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/index.js"); 41445var property_provider_1 = __webpack_require__(/*! @aws-sdk/property-provider */ "./node_modules/@aws-sdk/property-provider/dist/cjs/index.js"); 41446var resolveLogins_1 = __webpack_require__(/*! ./resolveLogins */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/resolveLogins.js"); 41447/** 41448 * Retrieves temporary AWS credentials using Amazon Cognito's 41449 * `GetCredentialsForIdentity` operation. 41450 * 41451 * Results from this function call are not cached internally. 41452 */ 41453function fromCognitoIdentity(parameters) { 41454 var _this = this; 41455 return function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 41456 var _a, _b, _c, AccessKeyId, Expiration, _d, SecretKey, SessionToken, _e, _f, _g, _h, _j; 41457 return tslib_1.__generator(this, function (_k) { 41458 switch (_k.label) { 41459 case 0: 41460 _f = (_e = parameters.client).send; 41461 _g = client_cognito_identity_1.GetCredentialsForIdentityCommand.bind; 41462 _h = { 41463 CustomRoleArn: parameters.customRoleArn, 41464 IdentityId: parameters.identityId 41465 }; 41466 if (!parameters.logins) return [3 /*break*/, 2]; 41467 return [4 /*yield*/, resolveLogins_1.resolveLogins(parameters.logins)]; 41468 case 1: 41469 _j = _k.sent(); 41470 return [3 /*break*/, 3]; 41471 case 2: 41472 _j = undefined; 41473 _k.label = 3; 41474 case 3: return [4 /*yield*/, _f.apply(_e, [new (_g.apply(client_cognito_identity_1.GetCredentialsForIdentityCommand, [void 0, (_h.Logins = _j, 41475 _h)]))()])]; 41476 case 4: 41477 _a = (_k.sent()).Credentials, _b = _a === void 0 ? throwOnMissingCredentials() : _a, _c = _b.AccessKeyId, AccessKeyId = _c === void 0 ? throwOnMissingAccessKeyId() : _c, Expiration = _b.Expiration, _d = _b.SecretKey, SecretKey = _d === void 0 ? throwOnMissingSecretKey() : _d, SessionToken = _b.SessionToken; 41478 return [2 /*return*/, { 41479 accessKeyId: AccessKeyId, 41480 secretAccessKey: SecretKey, 41481 sessionToken: SessionToken, 41482 expiration: Expiration, 41483 }]; 41484 } 41485 }); 41486 }); }; 41487} 41488exports.fromCognitoIdentity = fromCognitoIdentity; 41489function throwOnMissingAccessKeyId() { 41490 throw new property_provider_1.ProviderError("Response from Amazon Cognito contained no access key ID"); 41491} 41492function throwOnMissingCredentials() { 41493 throw new property_provider_1.ProviderError("Response from Amazon Cognito contained no credentials"); 41494} 41495function throwOnMissingSecretKey() { 41496 throw new property_provider_1.ProviderError("Response from Amazon Cognito contained no secret key"); 41497} 41498//# sourceMappingURL=fromCognitoIdentity.js.map 41499 41500/***/ }), 41501
vendor: 5,228 bytes, lines 41502-41597
41502/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentityPool.js": 41503/*!********************************************************************************************************!*\ 41504 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentityPool.js ***! 41505 \********************************************************************************************************/ 41506/*! no static exports found */ 41507/***/ (function(module, exports, __webpack_require__) { 41508 41509"use strict"; 41510 41511Object.defineProperty(exports, "__esModule", { value: true }); 41512exports.fromCognitoIdentityPool = void 0; 41513var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41514var client_cognito_identity_1 = __webpack_require__(/*! @aws-sdk/client-cognito-identity */ "./node_modules/@aws-sdk/client-cognito-identity/dist/es/index.js"); 41515var property_provider_1 = __webpack_require__(/*! @aws-sdk/property-provider */ "./node_modules/@aws-sdk/property-provider/dist/cjs/index.js"); 41516var fromCognitoIdentity_1 = __webpack_require__(/*! ./fromCognitoIdentity */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentity.js"); 41517var localStorage_1 = __webpack_require__(/*! ./localStorage */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/localStorage.js"); 41518var resolveLogins_1 = __webpack_require__(/*! ./resolveLogins */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/resolveLogins.js"); 41519/** 41520 * Retrieves or generates a unique identifier using Amazon Cognito's `GetId` 41521 * operation, then generates temporary AWS credentials using Amazon Cognito's 41522 * `GetCredentialsForIdentity` operation. 41523 * 41524 * Results from `GetId` are cached internally, but results from 41525 * `GetCredentialsForIdentity` are not. 41526 */ 41527function fromCognitoIdentityPool(_a) { 41528 var _this = this; 41529 var accountId = _a.accountId, _b = _a.cache, cache = _b === void 0 ? localStorage_1.localStorage() : _b, client = _a.client, customRoleArn = _a.customRoleArn, identityPoolId = _a.identityPoolId, logins = _a.logins, _c = _a.userIdentifier, userIdentifier = _c === void 0 ? !logins || Object.keys(logins).length === 0 ? "ANONYMOUS" : undefined : _c; 41530 var cacheKey = userIdentifier ? "aws:cognito-identity-credentials:" + identityPoolId + ":" + userIdentifier : undefined; 41531 var provider = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { 41532 var identityId, _a, _b, IdentityId, _c, _d, _e, _f, _g; 41533 return tslib_1.__generator(this, function (_h) { 41534 switch (_h.label) { 41535 case 0: 41536 _a = cacheKey; 41537 if (!_a) return [3 /*break*/, 2]; 41538 return [4 /*yield*/, cache.getItem(cacheKey)]; 41539 case 1: 41540 _a = (_h.sent()); 41541 _h.label = 2; 41542 case 2: 41543 identityId = _a; 41544 if (!!identityId) return [3 /*break*/, 7]; 41545 _d = (_c = client).send; 41546 _e = client_cognito_identity_1.GetIdCommand.bind; 41547 _f = { 41548 AccountId: accountId, 41549 IdentityPoolId: identityPoolId 41550 }; 41551 if (!logins) return [3 /*break*/, 4]; 41552 return [4 /*yield*/, resolveLogins_1.resolveLogins(logins)]; 41553 case 3: 41554 _g = _h.sent(); 41555 return [3 /*break*/, 5]; 41556 case 4: 41557 _g = undefined; 41558 _h.label = 5; 41559 case 5: return [4 /*yield*/, _d.apply(_c, [new (_e.apply(client_cognito_identity_1.GetIdCommand, [void 0, (_f.Logins = _g, 41560 _f)]))()])]; 41561 case 6: 41562 _b = (_h.sent()).IdentityId, IdentityId = _b === void 0 ? throwOnMissingId() : _b; 41563 identityId = IdentityId; 41564 if (cacheKey) { 41565 Promise.resolve(cache.setItem(cacheKey, identityId)).catch(function () { }); 41566 } 41567 _h.label = 7; 41568 case 7: 41569 provider = fromCognitoIdentity_1.fromCognitoIdentity({ 41570 client: client, 41571 customRoleArn: customRoleArn, 41572 logins: logins, 41573 identityId: identityId, 41574 }); 41575 return [2 /*return*/, provider()]; 41576 } 41577 }); 41578 }); }; 41579 return function () { 41580 return provider().catch(function (err) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 41581 return tslib_1.__generator(this, function (_a) { 41582 if (cacheKey) { 41583 Promise.resolve(cache.removeItem(cacheKey)).catch(function () { }); 41584 } 41585 throw err; 41586 }); 41587 }); }); 41588 }; 41589} 41590exports.fromCognitoIdentityPool = fromCognitoIdentityPool; 41591function throwOnMissingId() { 41592 throw new property_provider_1.ProviderError("Response from Amazon Cognito contained no identity ID"); 41593} 41594//# sourceMappingURL=fromCognitoIdentityPool.js.map 41595 41596/***/ }), 41597
vendor: 1,515 bytes, lines 41598-41617
41598/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/index.js": 41599/*!**************************************************************************************!*\ 41600 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/index.js ***! 41601 \**************************************************************************************/ 41602/*! no static exports found */ 41603/***/ (function(module, exports, __webpack_require__) { 41604 41605"use strict"; 41606 41607Object.defineProperty(exports, "__esModule", { value: true }); 41608var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41609tslib_1.__exportStar(__webpack_require__(/*! ./CognitoProviderParameters */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/CognitoProviderParameters.js"), exports); 41610tslib_1.__exportStar(__webpack_require__(/*! ./fromCognitoIdentity */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentity.js"), exports); 41611tslib_1.__exportStar(__webpack_require__(/*! ./fromCognitoIdentityPool */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/fromCognitoIdentityPool.js"), exports); 41612tslib_1.__exportStar(__webpack_require__(/*! ./Logins */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/Logins.js"), exports); 41613tslib_1.__exportStar(__webpack_require__(/*! ./Storage */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/Storage.js"), exports); 41614//# sourceMappingURL=index.js.map 41615 41616/***/ }), 41617
vendor: 1,345 bytes, lines 41618-41645
41618/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/localStorage.js": 41619/*!*********************************************************************************************!*\ 41620 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/localStorage.js ***! 41621 \*********************************************************************************************/ 41622/*! no static exports found */ 41623/***/ (function(module, exports, __webpack_require__) { 41624 41625"use strict"; 41626 41627Object.defineProperty(exports, "__esModule", { value: true }); 41628exports.localStorage = void 0; 41629var IndexedDbStorage_1 = __webpack_require__(/*! ./IndexedDbStorage */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/IndexedDbStorage.js"); 41630var InMemoryStorage_1 = __webpack_require__(/*! ./InMemoryStorage */ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/InMemoryStorage.js"); 41631var inMemoryStorage = new InMemoryStorage_1.InMemoryStorage(); 41632function localStorage() { 41633 if (typeof self === "object" && self.indexedDB) { 41634 return new IndexedDbStorage_1.IndexedDbStorage(); 41635 } 41636 if (typeof window === "object" && window.localStorage) { 41637 return window.localStorage; 41638 } 41639 return inMemoryStorage; 41640} 41641exports.localStorage = localStorage; 41642//# sourceMappingURL=localStorage.js.map 41643 41644/***/ }), 41645
vendor: 1,447 bytes, lines 41646-41683
41646/***/ "./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/resolveLogins.js": 41647/*!**********************************************************************************************!*\ 41648 !*** ./node_modules/@aws-sdk/credential-provider-cognito-identity/dist/cjs/resolveLogins.js ***! 41649 \**********************************************************************************************/ 41650/*! no static exports found */ 41651/***/ (function(module, exports, __webpack_require__) { 41652 41653"use strict"; 41654 41655Object.defineProperty(exports, "__esModule", { value: true }); 41656exports.resolveLogins = void 0; 41657var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41658/** 41659 * @internal 41660 */ 41661function resolveLogins(logins) { 41662 return Promise.all(Object.keys(logins).reduce(function (arr, name) { 41663 var tokenOrProvider = logins[name]; 41664 if (typeof tokenOrProvider === "string") { 41665 arr.push([name, tokenOrProvider]); 41666 } 41667 else { 41668 arr.push(tokenOrProvider().then(function (token) { return [name, token]; })); 41669 } 41670 return arr; 41671 }, [])).then(function (resolvedPairs) { 41672 return resolvedPairs.reduce(function (logins, _a) { 41673 var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1]; 41674 logins[key] = value; 41675 return logins; 41676 }, {}); 41677 }); 41678} 41679exports.resolveLogins = resolveLogins; 41680//# sourceMappingURL=resolveLogins.js.map 41681 41682/***/ }), 41683
vendor: 13,079 bytes, lines 41684-41793
41684/***/ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/fetch-http-handler.js": 41685/*!*********************************************************************************!*\ 41686 !*** ./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/fetch-http-handler.js ***! 41687 \*********************************************************************************/ 41688/*! no static exports found */ 41689/***/ (function(module, exports, __webpack_require__) { 41690 41691"use strict"; 41692 41693Object.defineProperty(exports, "__esModule", { value: true }); 41694exports.FetchHttpHandler = void 0; 41695var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41696var protocol_http_1 = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 41697var querystring_builder_1 = __webpack_require__(/*! @aws-sdk/querystring-builder */ "./node_modules/@aws-sdk/querystring-builder/dist/cjs/index.js"); 41698var request_timeout_1 = __webpack_require__(/*! ./request-timeout */ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/request-timeout.js"); 41699var FetchHttpHandler = /** @class */ (function () { 41700 function FetchHttpHandler(httpOptions) { 41701 if (httpOptions === void 0) { httpOptions = {}; } 41702 this.httpOptions = httpOptions; 41703 } 41704 FetchHttpHandler.prototype.destroy = function () { 41705 // Do nothing. TLS and HTTP/2 connection pooling is handled by the 41706 // browser. 41707 }; 41708 FetchHttpHandler.prototype.handle = function (request, options) { 41709 var abortSignal = options === null || options === void 0 ? void 0 : options.abortSignal; 41710 var requestTimeoutInMs = this.httpOptions.requestTimeout; 41711 // if the request was already aborted, prevent doing extra work 41712 if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) { 41713 var abortError = new Error("Request aborted"); 41714 abortError.name = "AbortError"; 41715 return Promise.reject(abortError); 41716 } 41717 var path = request.path; 41718 if (request.query) { 41719 var queryString = querystring_builder_1.buildQueryString(request.query); 41720 if (queryString) { 41721 path += "?" + queryString; 41722 } 41723 } 41724 var port = request.port; 41725 var url = request.protocol + "//" + request.hostname + (port ? ":" + port : "") + path; 41726 var requestOptions = { 41727 body: request.body, 41728 headers: new Headers(request.headers), 41729 method: request.method, 41730 }; 41731 // some browsers support abort signal 41732 if (typeof AbortController !== "undefined") { 41733 requestOptions["signal"] = abortSignal; 41734 } 41735 var fetchRequest = new Request(url, requestOptions); 41736 var raceOfPromises = [ 41737 fetch(fetchRequest).then(function (response) { 41738 var e_1, _a; 41739 var fetchHeaders = response.headers; 41740 var transformedHeaders = {}; 41741 try { 41742 for (var _b = tslib_1.__values(fetchHeaders.entries()), _c = _b.next(); !_c.done; _c = _b.next()) { 41743 var pair = _c.value; 41744 transformedHeaders[pair[0]] = pair[1]; 41745 } 41746 } 41747 catch (e_1_1) { e_1 = { error: e_1_1 }; } 41748 finally { 41749 try { 41750 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 41751 } 41752 finally { if (e_1) throw e_1.error; } 41753 } 41754 var hasReadableStream = response.body !== undefined; 41755 // Return the response with buffered body 41756 if (!hasReadableStream) { 41757 return response.blob().then(function (body) { return ({ 41758 response: new protocol_http_1.HttpResponse({ 41759 headers: transformedHeaders, 41760 statusCode: response.status, 41761 body: body, 41762 }), 41763 }); }); 41764 } 41765 // Return the response with streaming body 41766 return { 41767 response: new protocol_http_1.HttpResponse({ 41768 headers: transformedHeaders, 41769 statusCode: response.status, 41770 body: response.body, 41771 }), 41772 }; 41773 }), 41774 request_timeout_1.requestTimeout(requestTimeoutInMs), 41775 ]; 41776 if (abortSignal) { 41777 raceOfPromises.push(new Promise(function (resolve, reject) { 41778 abortSignal.onabort = function () { 41779 var abortError = new Error("Request aborted"); 41780 abortError.name = "AbortError"; 41781 reject(abortError); 41782 }; 41783 })); 41784 } 41785 return Promise.race(raceOfPromises); 41786 }; 41787 return FetchHttpHandler; 41788}()); 41789exports.FetchHttpHandler = FetchHttpHandler; 41790//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtaHR0cC1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZldGNoLWh0dHAtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0RBQWdGO0FBQ2hGLG9FQUFnRTtBQUdoRSxxREFBbUQ7QUFlbkQ7SUFDRSwwQkFBNkIsV0FBb0M7UUFBcEMsNEJBQUEsRUFBQSxnQkFBb0M7UUFBcEMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO0lBQUcsQ0FBQztJQUVyRSxrQ0FBTyxHQUFQO1FBQ0Usa0VBQWtFO1FBQ2xFLFdBQVc7SUFDYixDQUFDO0lBRUQsaUNBQU0sR0FBTixVQUFPLE9BQW9CLEVBQUUsT0FBMkI7UUFDdEQsSUFBTSxXQUFXLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsQ0FBQztRQUN6QyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBRTNELCtEQUErRDtRQUMvRCxJQUFJLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxPQUFPLEVBQUU7WUFDeEIsSUFBTSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNoRCxVQUFVLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUMvQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkM7UUFFRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNqQixJQUFNLFdBQVcsR0FBRyxzQ0FBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxJQUFJLE1BQUksV0FBYSxDQUFDO2FBQzNCO1NBQ0Y7UUFFRCxJQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzFCLElBQU0sR0FBRyxHQUFNLE9BQU8sQ0FBQyxRQUFRLFVBQUssT0FBTyxDQUFDLFFBQVEsSUFBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQUksSUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUcsSUFBTSxDQUFDO1FBQ3ZGLElBQU0sY0FBYyxHQUFnQjtZQUNsQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDckMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQ3ZCLENBQUM7UUFFRixxQ0FBcUM7UUFDckMsSUFBSSxPQUFPLGVBQWUsS0FBSyxXQUFXLEVBQUU7WUFDekMsY0FBc0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUM7U0FDakQ7UUFFRCxJQUFNLFlBQVksR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBTSxjQUFjLEdBQUc7WUFDckIsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLFFBQVE7O2dCQUNoQyxJQUFNLFlBQVksR0FBUSxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUMzQyxJQUFNLGtCQUFrQixHQUFjLEVBQUUsQ0FBQzs7b0JBRXpDLEtBQW1CLElBQUEsS0FBQSxpQkFBaUIsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFBLGdCQUFBLDRCQUFFO3dCQUF2RCxJQUFNLElBQUksV0FBQTt3QkFDYixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3ZDOzs7Ozs7Ozs7Z0JBRUQsSUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztnQkFFdEQseUNBQXlDO2dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0JBQ3RCLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLElBQUksSUFBSyxPQUFBLENBQUM7d0JBQ3JDLFFBQVEsRUFBRSxJQUFJLDRCQUFZLENBQUM7NEJBQ3pCLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTTs0QkFDM0IsSUFBSSxNQUFBO3lCQUNMLENBQUM7cUJBQ0gsQ0FBQyxFQU5vQyxDQU1wQyxDQUFDLENBQUM7aUJBQ0w7Z0JBQ0QsMENBQTBDO2dCQUMxQyxPQUFPO29CQUNMLFFBQVEsRUFBRSxJQUFJLDRCQUFZLENBQUM7d0JBQ3pCLE9BQU8sRUFBRSxrQkFBa0I7d0JBQzNCLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTTt3QkFDM0IsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJO3FCQUNwQixDQUFDO2lCQUNILENBQUM7WUFDSixDQUFDLENBQUM7WUFDRixnQ0FBYyxDQUFDLGtCQUFrQixDQUFDO1NBQ25DLENBQUM7UUFDRixJQUFJLFdBQVcsRUFBRTtZQUNmLGNBQWMsQ0FBQyxJQUFJLENBQ2pCLElBQUksT0FBTyxDQUFRLFVBQUMsT0FBTyxFQUFFLE1BQU07Z0JBQ2pDLFdBQVcsQ0FBQyxPQUFPLEdBQUc7b0JBQ3BCLElBQU0sVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ2hELFVBQVUsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO29CQUMvQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBdEZELElBc0ZDO0FBdEZZLDRDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIYW5kbGVyLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7IGJ1aWxkUXVlcnlTdHJpbmcgfSBmcm9tIFwiQGF3cy1zZGsvcXVlcnlzdHJpbmctYnVpbGRlclwiO1xuaW1wb3J0IHsgSGVhZGVyQmFnLCBIdHRwSGFuZGxlck9wdGlvbnMgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgcmVxdWVzdFRpbWVvdXQgfSBmcm9tIFwiLi9yZXF1ZXN0LXRpbWVvdXRcIjtcblxuZGVjbGFyZSBsZXQgQWJvcnRDb250cm9sbGVyOiBhbnk7XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgaHR0cCBvcHRpb25zIHRoYXQgY2FuIGJlIHBhc3NlZCB0byBhIGJyb3dzZXIgaHR0cCBjbGllbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3Nlckh0dHBPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIGEgcmVxdWVzdCBjYW4gdGFrZSBiZWZvcmUgYmVpbmcgYXV0b21hdGljYWxseVxuICAgKiB0ZXJtaW5hdGVkLlxuICAgKi9cbiAgcmVxdWVzdFRpbWVvdXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBGZXRjaEh0dHBIYW5kbGVyIGltcGxlbWVudHMgSHR0cEhhbmRsZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHBPcHRpb25zOiBCcm93c2VySHR0cE9wdGlvbnMgPSB7fSkge31cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIERvIG5vdGhpbmcuIFRMUyBhbmQgSFRUUC8yIGNvbm5lY3Rpb24gcG9vbGluZyBpcyBoYW5kbGVkIGJ5IHRoZVxuICAgIC8vIGJyb3dzZXIuXG4gIH1cblxuICBoYW5kbGUocmVxdWVzdDogSHR0cFJlcXVlc3QsIG9wdGlvbnM6IEh0dHBIYW5kbGVyT3B0aW9ucyk6IFByb21pc2U8eyByZXNwb25zZTogSHR0cFJlc3BvbnNlIH0+IHtcbiAgICBjb25zdCBhYm9ydFNpZ25hbCA9IG9wdGlvbnM/LmFib3J0U2lnbmFsO1xuICAgIGNvbnN0IHJlcXVlc3RUaW1lb3V0SW5NcyA9IHRoaXMuaHR0cE9wdGlvbnMucmVxdWVzdFRpbWVvdXQ7XG5cbiAgICAvLyBpZiB0aGUgcmVxdWVzdCB3YXMgYWxyZWFkeSBhYm9ydGVkLCBwcmV2ZW50IGRvaW5nIGV4dHJhIHdvcmtcbiAgICBpZiAoYWJvcnRTaWduYWw/LmFib3J0ZWQpIHtcbiAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChhYm9ydEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHJlcXVlc3QucGF0aDtcbiAgICBpZiAocmVxdWVzdC5xdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBidWlsZFF1ZXJ5U3RyaW5nKHJlcXVlc3QucXVlcnkpO1xuICAgICAgaWYgKHF1ZXJ5U3RyaW5nKSB7XG4gICAgICAgIHBhdGggKz0gYD8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcG9ydCA9IHJlcXVlc3QucG9ydDtcbiAgICBjb25zdCB1cmwgPSBgJHtyZXF1ZXN0LnByb3RvY29sfS8vJHtyZXF1ZXN0Lmhvc3RuYW1lfSR7cG9ydCA/IGA6JHtwb3J0fWAgOiBcIlwifSR7cGF0aH1gO1xuICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAgIGJvZHk6IHJlcXVlc3QuYm9keSxcbiAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHJlcXVlc3QuaGVhZGVycyksXG4gICAgICBtZXRob2Q6IHJlcXVlc3QubWV0aG9kLFxuICAgIH07XG5cbiAgICAvLyBzb21lIGJyb3dzZXJzIHN1cHBvcnQgYWJvcnQgc2lnbmFsXG4gICAgaWYgKHR5cGVvZiBBYm9ydENvbnRyb2xsZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIChyZXF1ZXN0T3B0aW9ucyBhcyBhbnkpW1wic2lnbmFsXCJdID0gYWJvcnRTaWduYWw7XG4gICAgfVxuXG4gICAgY29uc3QgZmV0Y2hSZXF1ZXN0ID0gbmV3IFJlcXVlc3QodXJsLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgY29uc3QgcmFjZU9mUHJvbWlzZXMgPSBbXG4gICAgICBmZXRjaChmZXRjaFJlcXVlc3QpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGZldGNoSGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWRIZWFkZXJzOiBIZWFkZXJCYWcgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IHBhaXIgb2YgPEFycmF5PHN0cmluZ1tdPj5mZXRjaEhlYWRlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgdHJhbnNmb3JtZWRIZWFkZXJzW3BhaXJbMF1dID0gcGFpclsxXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc1JlYWRhYmxlU3RyZWFtID0gcmVzcG9uc2UuYm9keSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBidWZmZXJlZCBib2R5XG4gICAgICAgIGlmICghaGFzUmVhZGFibGVTdHJlYW0pIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpLnRoZW4oKGJvZHkpID0+ICh7XG4gICAgICAgICAgICByZXNwb25zZTogbmV3IEh0dHBSZXNwb25zZSh7XG4gICAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgICAgc3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJldHVybiB0aGUgcmVzcG9uc2Ugd2l0aCBzdHJlYW1pbmcgYm9keVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3BvbnNlOiBuZXcgSHR0cFJlc3BvbnNlKHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHRyYW5zZm9ybWVkSGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IHJlc3BvbnNlLnN0YXR1cyxcbiAgICAgICAgICAgIGJvZHk6IHJlc3BvbnNlLmJvZHksXG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHJlcXVlc3RUaW1lb3V0KHJlcXVlc3RUaW1lb3V0SW5NcyksXG4gICAgXTtcbiAgICBpZiAoYWJvcnRTaWduYWwpIHtcbiAgICAgIHJhY2VPZlByb21pc2VzLnB1c2goXG4gICAgICAgIG5ldyBQcm9taXNlPG5ldmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgYWJvcnRTaWduYWwub25hYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXCJSZXF1ZXN0IGFib3J0ZWRcIik7XG4gICAgICAgICAgICBhYm9ydEVycm9yLm5hbWUgPSBcIkFib3J0RXJyb3JcIjtcbiAgICAgICAgICAgIHJlamVjdChhYm9ydEVycm9yKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmFjZShyYWNlT2ZQcm9taXNlcyk7XG4gIH1cbn1cbiJdfQ== 41791 41792/***/ }), 41793
vendor: 1,227 bytes, lines 41794-41810
41794/***/ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/index.js": 41795/*!********************************************************************!*\ 41796 !*** ./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/index.js ***! 41797 \********************************************************************/ 41798/*! no static exports found */ 41799/***/ (function(module, exports, __webpack_require__) { 41800 41801"use strict"; 41802 41803Object.defineProperty(exports, "__esModule", { value: true }); 41804var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41805tslib_1.__exportStar(__webpack_require__(/*! ./fetch-http-handler */ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/fetch-http-handler.js"), exports); 41806tslib_1.__exportStar(__webpack_require__(/*! ./stream-collector */ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/stream-collector.js"), exports); 41807//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0RBQXFDO0FBQ3JDLDZEQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2ZldGNoLWh0dHAtaGFuZGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RyZWFtLWNvbGxlY3RvclwiO1xuIl19 41808 41809/***/ }), 41810
vendor: 2,237 bytes, lines 41811-41838
41811/***/ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/request-timeout.js": 41812/*!******************************************************************************!*\ 41813 !*** ./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/request-timeout.js ***! 41814 \******************************************************************************/ 41815/*! no static exports found */ 41816/***/ (function(module, exports, __webpack_require__) { 41817 41818"use strict"; 41819 41820Object.defineProperty(exports, "__esModule", { value: true }); 41821exports.requestTimeout = void 0; 41822function requestTimeout(timeoutInMs) { 41823 if (timeoutInMs === void 0) { timeoutInMs = 0; } 41824 return new Promise(function (resolve, reject) { 41825 if (timeoutInMs) { 41826 setTimeout(function () { 41827 var timeoutError = new Error("Request did not complete within " + timeoutInMs + " ms"); 41828 timeoutError.name = "TimeoutError"; 41829 reject(timeoutError); 41830 }, timeoutInMs); 41831 } 41832 }); 41833} 41834exports.requestTimeout = requestTimeout; 41835//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC10aW1lb3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JlcXVlc3QtdGltZW91dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixjQUFjLENBQUMsV0FBZTtJQUFmLDRCQUFBLEVBQUEsZUFBZTtJQUM1QyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDakMsSUFBSSxXQUFXLEVBQUU7WUFDZixVQUFVLENBQUM7Z0JBQ1QsSUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLENBQUMscUNBQW1DLFdBQVcsUUFBSyxDQUFDLENBQUM7Z0JBQ3BGLFlBQVksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDO2dCQUNuQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBVkQsd0NBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcmVxdWVzdFRpbWVvdXQodGltZW91dEluTXMgPSAwKTogUHJvbWlzZTxuZXZlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmICh0aW1lb3V0SW5Ncykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWVvdXRFcnJvciA9IG5ldyBFcnJvcihgUmVxdWVzdCBkaWQgbm90IGNvbXBsZXRlIHdpdGhpbiAke3RpbWVvdXRJbk1zfSBtc2ApO1xuICAgICAgICB0aW1lb3V0RXJyb3IubmFtZSA9IFwiVGltZW91dEVycm9yXCI7XG4gICAgICAgIHJlamVjdCh0aW1lb3V0RXJyb3IpO1xuICAgICAgfSwgdGltZW91dEluTXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0= 41836 41837/***/ }), 41838
vendor: 9,188 bytes, lines 41839-41927
41839/***/ "./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/stream-collector.js": 41840/*!*******************************************************************************!*\ 41841 !*** ./node_modules/@aws-sdk/fetch-http-handler/dist/cjs/stream-collector.js ***! 41842 \*******************************************************************************/ 41843/*! no static exports found */ 41844/***/ (function(module, exports, __webpack_require__) { 41845 41846"use strict"; 41847 41848Object.defineProperty(exports, "__esModule", { value: true }); 41849exports.streamCollector = void 0; 41850var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41851var util_base64_browser_1 = __webpack_require__(/*! @aws-sdk/util-base64-browser */ "./node_modules/@aws-sdk/util-base64-browser/dist/cjs/index.js"); 41852//reference: https://snack.expo.io/r1JCSWRGU 41853exports.streamCollector = function (stream) { 41854 if (stream instanceof Blob) { 41855 return collectBlob(stream); 41856 } 41857 return collectStream(stream); 41858}; 41859function collectBlob(blob) { 41860 return tslib_1.__awaiter(this, void 0, void 0, function () { 41861 var base64, arrayBuffer; 41862 return tslib_1.__generator(this, function (_a) { 41863 switch (_a.label) { 41864 case 0: return [4 /*yield*/, readToBase64(blob)]; 41865 case 1: 41866 base64 = _a.sent(); 41867 arrayBuffer = util_base64_browser_1.fromBase64(base64); 41868 return [2 /*return*/, new Uint8Array(arrayBuffer)]; 41869 } 41870 }); 41871 }); 41872} 41873function collectStream(stream) { 41874 return tslib_1.__awaiter(this, void 0, void 0, function () { 41875 var res, reader, isDone, _a, done, value, prior; 41876 return tslib_1.__generator(this, function (_b) { 41877 switch (_b.label) { 41878 case 0: 41879 res = new Uint8Array(0); 41880 reader = stream.getReader(); 41881 isDone = false; 41882 _b.label = 1; 41883 case 1: 41884 if (!!isDone) return [3 /*break*/, 3]; 41885 return [4 /*yield*/, reader.read()]; 41886 case 2: 41887 _a = _b.sent(), done = _a.done, value = _a.value; 41888 if (value) { 41889 prior = res; 41890 res = new Uint8Array(prior.length + value.length); 41891 res.set(prior); 41892 res.set(value, prior.length); 41893 } 41894 isDone = done; 41895 return [3 /*break*/, 1]; 41896 case 3: return [2 /*return*/, res]; 41897 } 41898 }); 41899 }); 41900} 41901function readToBase64(blob) { 41902 return new Promise(function (resolve, reject) { 41903 var reader = new FileReader(); 41904 reader.onloadend = function () { 41905 var _a; 41906 // reference: https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL 41907 // response from readAsDataURL is always prepended with "data:*/*;base64," 41908 if (reader.readyState !== 2) { 41909 return reject(new Error("Reader aborted too early")); 41910 } 41911 var result = ((_a = reader.result) !== null && _a !== void 0 ? _a : ""); 41912 // Response can include only 'data:' for empty blob, return empty string in this case. 41913 // Otherwise, return the string after ',' 41914 var commaIndex = result.indexOf(","); 41915 var dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length; 41916 resolve(result.substring(dataOffset)); 41917 }; 41918 reader.onabort = function () { return reject(new Error("Read aborted")); }; 41919 reader.onerror = function () { return reject(reader.error); }; 41920 // reader.readAsArrayBuffer is not always available 41921 reader.readAsDataURL(blob); 41922 }); 41923} 41924//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLWNvbGxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlYW0tY29sbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxvRUFBMEQ7QUFFMUQsNENBQTRDO0FBQy9CLFFBQUEsZUFBZSxHQUFvQixVQUFDLE1BQTZCO0lBQzVFLElBQUksTUFBTSxZQUFZLElBQUksRUFBRTtRQUMxQixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM1QjtJQUVELE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQztBQUVGLFNBQWUsV0FBVyxDQUFDLElBQVU7Ozs7O3dCQUNwQixxQkFBTSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUE7O29CQUFqQyxNQUFNLEdBQUcsU0FBd0I7b0JBQ2pDLFdBQVcsR0FBRyxnQ0FBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN2QyxzQkFBTyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBQzs7OztDQUNwQztBQUVELFNBQWUsYUFBYSxDQUFDLE1BQXNCOzs7Ozs7b0JBQzdDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxHQUFHLEtBQUssQ0FBQzs7O3lCQUNaLENBQUMsTUFBTTtvQkFDWSxxQkFBTSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUE7O29CQUFyQyxLQUFrQixTQUFtQixFQUFuQyxJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUE7b0JBQ25CLElBQUksS0FBSyxFQUFFO3dCQUNILEtBQUssR0FBRyxHQUFHLENBQUM7d0JBQ2xCLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDbEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDZixHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQzlCO29CQUNELE1BQU0sR0FBRyxJQUFJLENBQUM7O3dCQUVoQixzQkFBTyxHQUFHLEVBQUM7Ozs7Q0FDWjtBQUVELFNBQVMsWUFBWSxDQUFDLElBQVU7SUFDOUIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ2pDLElBQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLFNBQVMsR0FBRzs7WUFDakIsdUZBQXVGO1lBQ3ZGLDBFQUEwRTtZQUMxRSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO2dCQUMzQixPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUM7YUFDdEQ7WUFDRCxJQUFNLE1BQU0sR0FBRyxPQUFDLE1BQU0sQ0FBQyxNQUFNLG1DQUFJLEVBQUUsQ0FBVyxDQUFDO1lBQy9DLHNGQUFzRjtZQUN0Rix5Q0FBeUM7WUFDekMsSUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFNLFVBQVUsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDcEUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFDRixNQUFNLENBQUMsT0FBTyxHQUFHLGNBQU0sT0FBQSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBakMsQ0FBaUMsQ0FBQztRQUN6RCxNQUFNLENBQUMsT0FBTyxHQUFHLGNBQU0sT0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFwQixDQUFvQixDQUFDO1FBQzVDLG1EQUFtRDtRQUNuRCxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0cmVhbUNvbGxlY3RvciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZnJvbUJhc2U2NCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWJhc2U2NC1icm93c2VyXCI7XG5cbi8vcmVmZXJlbmNlOiBodHRwczovL3NuYWNrLmV4cG8uaW8vcjFKQ1NXUkdVXG5leHBvcnQgY29uc3Qgc3RyZWFtQ29sbGVjdG9yOiBTdHJlYW1Db2xsZWN0b3IgPSAoc3RyZWFtOiBCbG9iIHwgUmVhZGFibGVTdHJlYW0pOiBQcm9taXNlPFVpbnQ4QXJyYXk+ID0+IHtcbiAgaWYgKHN0cmVhbSBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICByZXR1cm4gY29sbGVjdEJsb2Ioc3RyZWFtKTtcbiAgfVxuXG4gIHJldHVybiBjb2xsZWN0U3RyZWFtKHN0cmVhbSk7XG59O1xuXG5hc3luYyBmdW5jdGlvbiBjb2xsZWN0QmxvYihibG9iOiBCbG9iKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGNvbnN0IGJhc2U2NCA9IGF3YWl0IHJlYWRUb0Jhc2U2NChibG9iKTtcbiAgY29uc3QgYXJyYXlCdWZmZXIgPSBmcm9tQmFzZTY0KGJhc2U2NCk7XG4gIHJldHVybiBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbGxlY3RTdHJlYW0oc3RyZWFtOiBSZWFkYWJsZVN0cmVhbSk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICBsZXQgcmVzID0gbmV3IFVpbnQ4QXJyYXkoMCk7XG4gIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKTtcbiAgbGV0IGlzRG9uZSA9IGZhbHNlO1xuICB3aGlsZSAoIWlzRG9uZSkge1xuICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBjb25zdCBwcmlvciA9IHJlcztcbiAgICAgIHJlcyA9IG5ldyBVaW50OEFycmF5KHByaW9yLmxlbmd0aCArIHZhbHVlLmxlbmd0aCk7XG4gICAgICByZXMuc2V0KHByaW9yKTtcbiAgICAgIHJlcy5zZXQodmFsdWUsIHByaW9yLmxlbmd0aCk7XG4gICAgfVxuICAgIGlzRG9uZSA9IGRvbmU7XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuZnVuY3Rpb24gcmVhZFRvQmFzZTY0KGJsb2I6IEJsb2IpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgIC8vIHJlZmVyZW5jZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0ZpbGVSZWFkZXIvcmVhZEFzRGF0YVVSTFxuICAgICAgLy8gcmVzcG9uc2UgZnJvbSByZWFkQXNEYXRhVVJMIGlzIGFsd2F5cyBwcmVwZW5kZWQgd2l0aCBcImRhdGE6Ki8qO2Jhc2U2NCxcIlxuICAgICAgaWYgKHJlYWRlci5yZWFkeVN0YXRlICE9PSAyKSB7XG4gICAgICAgIHJldHVybiByZWplY3QobmV3IEVycm9yKFwiUmVhZGVyIGFib3J0ZWQgdG9vIGVhcmx5XCIpKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc3VsdCA9IChyZWFkZXIucmVzdWx0ID8/IFwiXCIpIGFzIHN0cmluZztcbiAgICAgIC8vIFJlc3BvbnNlIGNhbiBpbmNsdWRlIG9ubHkgJ2RhdGE6JyBmb3IgZW1wdHkgYmxvYiwgcmV0dXJuIGVtcHR5IHN0cmluZyBpbiB0aGlzIGNhc2UuXG4gICAgICAvLyBPdGhlcndpc2UsIHJldHVybiB0aGUgc3RyaW5nIGFmdGVyICcsJ1xuICAgICAgY29uc3QgY29tbWFJbmRleCA9IHJlc3VsdC5pbmRleE9mKFwiLFwiKTtcbiAgICAgIGNvbnN0IGRhdGFPZmZzZXQgPSBjb21tYUluZGV4ID4gLTEgPyBjb21tYUluZGV4ICsgMSA6IHJlc3VsdC5sZW5ndGg7XG4gICAgICByZXNvbHZlKHJlc3VsdC5zdWJzdHJpbmcoZGF0YU9mZnNldCkpO1xuICAgIH07XG4gICAgcmVhZGVyLm9uYWJvcnQgPSAoKSA9PiByZWplY3QobmV3IEVycm9yKFwiUmVhZCBhYm9ydGVkXCIpKTtcbiAgICByZWFkZXIub25lcnJvciA9ICgpID0+IHJlamVjdChyZWFkZXIuZXJyb3IpO1xuICAgIC8vIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlciBpcyBub3QgYWx3YXlzIGF2YWlsYWJsZVxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICB9KTtcbn1cbiJdfQ== 41925 41926/***/ }), 41927
vendor: 1,102 bytes, lines 41928-41945
41928/***/ "./node_modules/@aws-sdk/invalid-dependency/dist/cjs/index.js": 41929/*!********************************************************************!*\ 41930 !*** ./node_modules/@aws-sdk/invalid-dependency/dist/cjs/index.js ***! 41931 \********************************************************************/ 41932/*! no static exports found */ 41933/***/ (function(module, exports, __webpack_require__) { 41934 41935"use strict"; 41936 41937Object.defineProperty(exports, "__esModule", { value: true }); 41938exports.invalidFunction = void 0; 41939exports.invalidFunction = function (message) { return function () { 41940 throw new Error(message); 41941}; }; 41942//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxlQUFlLEdBQUcsVUFBQyxPQUFlLElBQUssT0FBQTtJQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzNCLENBQUMsRUFGbUQsQ0FFbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpbnZhbGlkRnVuY3Rpb24gPSAobWVzc2FnZTogc3RyaW5nKSA9PiAoKSA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbn07XG4iXX0= 41943 41944/***/ }), 41945
vendor: 1,497 bytes, lines 41946-41965
41946/***/ "./node_modules/@aws-sdk/is-array-buffer/dist/cjs/index.js": 41947/*!*****************************************************************!*\ 41948 !*** ./node_modules/@aws-sdk/is-array-buffer/dist/cjs/index.js ***! 41949 \*****************************************************************/ 41950/*! no static exports found */ 41951/***/ (function(module, exports, __webpack_require__) { 41952 41953"use strict"; 41954 41955Object.defineProperty(exports, "__esModule", { value: true }); 41956exports.isArrayBuffer = void 0; 41957function isArrayBuffer(arg) { 41958 return ((typeof ArrayBuffer === "function" && arg instanceof ArrayBuffer) || 41959 Object.prototype.toString.call(arg) === "[object ArrayBuffer]"); 41960} 41961exports.isArrayBuffer = isArrayBuffer; 41962//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixhQUFhLENBQUMsR0FBUTtJQUNwQyxPQUFPLENBQ0wsQ0FBQyxPQUFPLFdBQVcsS0FBSyxVQUFVLElBQUksR0FBRyxZQUFZLFdBQVcsQ0FBQztRQUNqRSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssc0JBQXNCLENBQy9ELENBQUM7QUFDSixDQUFDO0FBTEQsc0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNBcnJheUJ1ZmZlcihhcmc6IGFueSk6IGFyZyBpcyBBcnJheUJ1ZmZlciB7XG4gIHJldHVybiAoXG4gICAgKHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gXCJmdW5jdGlvblwiICYmIGFyZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fFxuICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmcpID09PSBcIltvYmplY3QgQXJyYXlCdWZmZXJdXCJcbiAgKTtcbn1cbiJdfQ== 41963 41964/***/ }), 41965
vendor: 6,359 bytes, lines 41966-42017
41966/***/ "./node_modules/@aws-sdk/middleware-content-length/dist/cjs/index.js": 41967/*!***************************************************************************!*\ 41968 !*** ./node_modules/@aws-sdk/middleware-content-length/dist/cjs/index.js ***! 41969 \***************************************************************************/ 41970/*! no static exports found */ 41971/***/ (function(module, exports, __webpack_require__) { 41972 41973"use strict"; 41974 41975Object.defineProperty(exports, "__esModule", { value: true }); 41976exports.getContentLengthPlugin = exports.contentLengthMiddlewareOptions = exports.contentLengthMiddleware = void 0; 41977var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 41978var protocol_http_1 = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 41979var CONTENT_LENGTH_HEADER = "content-length"; 41980function contentLengthMiddleware(bodyLengthChecker) { 41981 var _this = this; 41982 return function (next) { return function (args) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 41983 var request, body, headers, length; 41984 var _a; 41985 return tslib_1.__generator(this, function (_b) { 41986 request = args.request; 41987 if (protocol_http_1.HttpRequest.isInstance(request)) { 41988 body = request.body, headers = request.headers; 41989 if (body && 41990 Object.keys(headers) 41991 .map(function (str) { return str.toLowerCase(); }) 41992 .indexOf(CONTENT_LENGTH_HEADER) === -1) { 41993 length = bodyLengthChecker(body); 41994 if (length !== undefined) { 41995 request.headers = tslib_1.__assign(tslib_1.__assign({}, request.headers), (_a = {}, _a[CONTENT_LENGTH_HEADER] = String(length), _a)); 41996 } 41997 } 41998 } 41999 return [2 /*return*/, next(tslib_1.__assign(tslib_1.__assign({}, args), { request: request }))]; 42000 }); 42001 }); }; }; 42002} 42003exports.contentLengthMiddleware = contentLengthMiddleware; 42004exports.contentLengthMiddlewareOptions = { 42005 step: "build", 42006 tags: ["SET_CONTENT_LENGTH", "CONTENT_LENGTH"], 42007 name: "contentLengthMiddleware", 42008}; 42009exports.getContentLengthPlugin = function (options) { return ({ 42010 applyToStack: function (clientStack) { 42011 clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), exports.contentLengthMiddlewareOptions); 42012 }, 42013}); }; 42014//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdEQUFxRDtBQVlyRCxJQUFNLHFCQUFxQixHQUFHLGdCQUFnQixDQUFDO0FBRS9DLFNBQWdCLHVCQUF1QixDQUFDLGlCQUF1QztJQUEvRSxpQkE0QkM7SUEzQkMsT0FBTyxVQUFnQyxJQUErQixJQUFnQyxPQUFBLFVBQ3BHLElBQWdDOzs7O1lBRTFCLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzdCLElBQUksMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzNCLElBQUksR0FBYyxPQUFPLEtBQXJCLEVBQUUsT0FBTyxHQUFLLE9BQU8sUUFBWixDQUFhO2dCQUNsQyxJQUNFLElBQUk7b0JBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7eUJBQ2pCLEdBQUcsQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBakIsQ0FBaUIsQ0FBQzt5QkFDL0IsT0FBTyxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hDO29CQUNNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN4QixPQUFPLENBQUMsT0FBTyx5Q0FDVixPQUFPLENBQUMsT0FBTyxnQkFDakIscUJBQXFCLElBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUN4QyxDQUFDO3FCQUNIO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBTyxJQUFJLHVDQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxFQUFDOztTQUNKLEVBMUJxRyxDQTBCckcsQ0FBQztBQUNKLENBQUM7QUE1QkQsMERBNEJDO0FBRVksUUFBQSw4QkFBOEIsR0FBd0I7SUFDakUsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQztJQUM5QyxJQUFJLEVBQUUseUJBQXlCO0NBQ2hDLENBQUM7QUFFVyxRQUFBLHNCQUFzQixHQUFHLFVBQUMsT0FBb0QsSUFBMEIsT0FBQSxDQUFDO0lBQ3BILFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRSxzQ0FBOEIsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRixDQUFDLEVBSm1ILENBSW5ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQge1xuICBCb2R5TGVuZ3RoQ2FsY3VsYXRvcixcbiAgQnVpbGRIYW5kbGVyLFxuICBCdWlsZEhhbmRsZXJBcmd1bWVudHMsXG4gIEJ1aWxkSGFuZGxlck9wdGlvbnMsXG4gIEJ1aWxkSGFuZGxlck91dHB1dCxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuY29uc3QgQ09OVEVOVF9MRU5HVEhfSEVBREVSID0gXCJjb250ZW50LWxlbmd0aFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udGVudExlbmd0aE1pZGRsZXdhcmUoYm9keUxlbmd0aENoZWNrZXI6IEJvZHlMZW5ndGhDYWxjdWxhdG9yKTogQnVpbGRNaWRkbGV3YXJlPGFueSwgYW55PiB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIE91dHB1dD4pOiBCdWlsZEhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IGFyZ3MucmVxdWVzdDtcbiAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgY29uc3QgeyBib2R5LCBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgICAgaWYgKFxuICAgICAgICBib2R5ICYmXG4gICAgICAgIE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgICAgLm1hcCgoc3RyKSA9PiBzdHIudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAuaW5kZXhPZihDT05URU5UX0xFTkdUSF9IRUFERVIpID09PSAtMVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IGJvZHlMZW5ndGhDaGVja2VyKGJvZHkpO1xuICAgICAgICBpZiAobGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXF1ZXN0LmhlYWRlcnMgPSB7XG4gICAgICAgICAgICAuLi5yZXF1ZXN0LmhlYWRlcnMsXG4gICAgICAgICAgICBbQ09OVEVOVF9MRU5HVEhfSEVBREVSXTogU3RyaW5nKGxlbmd0aCksXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgY29udGVudExlbmd0aE1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zID0ge1xuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9DT05URU5UX0xFTkdUSFwiLCBcIkNPTlRFTlRfTEVOR1RIXCJdLFxuICBuYW1lOiBcImNvbnRlbnRMZW5ndGhNaWRkbGV3YXJlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q29udGVudExlbmd0aFBsdWdpbiA9IChvcHRpb25zOiB7IGJvZHlMZW5ndGhDaGVja2VyOiBCb2R5TGVuZ3RoQ2FsY3VsYXRvciB9KTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChjb250ZW50TGVuZ3RoTWlkZGxld2FyZShvcHRpb25zLmJvZHlMZW5ndGhDaGVja2VyKSwgY29udGVudExlbmd0aE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19 42015 42016/***/ }), 42017
vendor: 6,685 bytes, lines 42018-42068
42018/***/ "./node_modules/@aws-sdk/middleware-host-header/dist/cjs/index.js": 42019/*!************************************************************************!*\ 42020 !*** ./node_modules/@aws-sdk/middleware-host-header/dist/cjs/index.js ***! 42021 \************************************************************************/ 42022/*! no static exports found */ 42023/***/ (function(module, exports, __webpack_require__) { 42024 42025"use strict"; 42026 42027Object.defineProperty(exports, "__esModule", { value: true }); 42028exports.getHostHeaderPlugin = exports.hostHeaderMiddlewareOptions = exports.hostHeaderMiddleware = exports.resolveHostHeaderConfig = void 0; 42029var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42030var protocol_http_1 = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 42031function resolveHostHeaderConfig(input) { 42032 return input; 42033} 42034exports.resolveHostHeaderConfig = resolveHostHeaderConfig; 42035exports.hostHeaderMiddleware = function (options) { return function (next) { return function (args) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { 42036 var request, _a, handlerProtocol; 42037 return tslib_1.__generator(this, function (_b) { 42038 if (!protocol_http_1.HttpRequest.isInstance(args.request)) 42039 return [2 /*return*/, next(args)]; 42040 request = args.request; 42041 _a = (options.requestHandler.metadata || {}).handlerProtocol, handlerProtocol = _a === void 0 ? "" : _a; 42042 //For H2 request, remove 'host' header and use ':authority' header instead 42043 //reference: https://nodejs.org/dist/latest-v13.x/docs/api/errors.html#ERR_HTTP2_INVALID_CONNECTION_HEADERS 42044 if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) { 42045 delete request.headers["host"]; 42046 request.headers[":authority"] = ""; 42047 //non-H2 request and 'host' header is not set, set the 'host' header to request's hostname. 42048 } 42049 else if (!request.headers["host"]) { 42050 request.headers["host"] = request.hostname; 42051 } 42052 return [2 /*return*/, next(args)]; 42053 }); 42054}); }; }; }; 42055exports.hostHeaderMiddlewareOptions = { 42056 name: "hostHeaderMiddleware", 42057 step: "build", 42058 tags: ["HOST"], 42059}; 42060exports.getHostHeaderPlugin = function (options) { return ({ 42061 applyToStack: function (clientStack) { 42062 clientStack.add(exports.hostHeaderMiddleware(options), exports.hostHeaderMiddlewareOptions); 42063 }, 42064}); }; 42065//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHdEQUFxRDtBQVVyRCxTQUFnQix1QkFBdUIsQ0FDckMsS0FBcUQ7SUFFckQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBSkQsMERBSUM7QUFFWSxRQUFBLG9CQUFvQixHQUFHLFVBQ2xDLE9BQWlDLElBQ0UsT0FBQSxVQUFDLElBQUksSUFBSyxPQUFBLFVBQU8sSUFBSTs7O1FBQ3hELElBQUksQ0FBQywyQkFBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQUUsc0JBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDO1FBQ3JELE9BQU8sR0FBSyxJQUFJLFFBQVQsQ0FBVTtRQUNqQixLQUF5QixDQUFBLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQSxnQkFBMUMsRUFBcEIsZUFBZSxtQkFBRyxFQUFFLEtBQUEsQ0FBMkM7UUFDdkUsMEVBQTBFO1FBQzFFLDJHQUEyRztRQUMzRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN4RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbkMsMkZBQTJGO1NBQzVGO2FBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1NBQzVDO1FBQ0Qsc0JBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDOztLQUNuQixFQWQ4QyxDQWM5QyxFQWRvQyxDQWNwQyxDQUFDO0FBRVcsUUFBQSwyQkFBMkIsR0FBMkM7SUFDakYsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztDQUNmLENBQUM7QUFFVyxRQUFBLG1CQUFtQixHQUFHLFVBQUMsT0FBaUMsSUFBMEIsT0FBQSxDQUFDO0lBQzlGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyw0QkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxtQ0FBMkIsQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRixDQUFDLEVBSjZGLENBSTdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYXdzLXNkay9wcm90b2NvbC1odHRwXCI7XG5pbXBvcnQgeyBBYnNvbHV0ZUxvY2F0aW9uLCBCdWlsZEhhbmRsZXJPcHRpb25zLCBCdWlsZE1pZGRsZXdhcmUsIFBsdWdnYWJsZSxSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJJbnB1dENvbmZpZyB7fVxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZyB7XG4gIHJlcXVlc3RIYW5kbGVyOiBSZXF1ZXN0SGFuZGxlcjxhbnksIGFueT47XG59XG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhvc3RIZWFkZXJDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgSG9zdEhlYWRlcklucHV0Q29uZmlnXG4pOiBUICYgSG9zdEhlYWRlclJlc29sdmVkQ29uZmlnIHtcbiAgcmV0dXJuIGlucHV0O1xufVxuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmUgPSA8SW5wdXQgZXh0ZW5kcyBvYmplY3QsIE91dHB1dCBleHRlbmRzIG9iamVjdD4oXG4gIG9wdGlvbnM6IEhvc3RIZWFkZXJSZXNvbHZlZENvbmZpZ1xuKTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+ID0+IChuZXh0KSA9PiBhc3luYyAoYXJncykgPT4ge1xuICBpZiAoIUh0dHBSZXF1ZXN0LmlzSW5zdGFuY2UoYXJncy5yZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gIGNvbnN0IHsgcmVxdWVzdCB9ID0gYXJncztcbiAgY29uc3QgeyBoYW5kbGVyUHJvdG9jb2wgPSBcIlwiIH0gPSBvcHRpb25zLnJlcXVlc3RIYW5kbGVyLm1ldGFkYXRhIHx8IHt9O1xuICAvL0ZvciBIMiByZXF1ZXN0LCByZW1vdmUgJ2hvc3QnIGhlYWRlciBhbmQgdXNlICc6YXV0aG9yaXR5JyBoZWFkZXIgaW5zdGVhZFxuICAvL3JlZmVyZW5jZTogaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0LXYxMy54L2RvY3MvYXBpL2Vycm9ycy5odG1sI0VSUl9IVFRQMl9JTlZBTElEX0NPTk5FQ1RJT05fSEVBREVSU1xuICBpZiAoaGFuZGxlclByb3RvY29sLmluZGV4T2YoXCJoMlwiKSA+PSAwICYmICFyZXF1ZXN0LmhlYWRlcnNbXCI6YXV0aG9yaXR5XCJdKSB7XG4gICAgZGVsZXRlIHJlcXVlc3QuaGVhZGVyc1tcImhvc3RcIl07XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiOmF1dGhvcml0eVwiXSA9IFwiXCI7XG4gICAgLy9ub24tSDIgcmVxdWVzdCBhbmQgJ2hvc3QnIGhlYWRlciBpcyBub3Qgc2V0LCBzZXQgdGhlICdob3N0JyBoZWFkZXIgdG8gcmVxdWVzdCdzIGhvc3RuYW1lLlxuICB9IGVsc2UgaWYgKCFyZXF1ZXN0LmhlYWRlcnNbXCJob3N0XCJdKSB7XG4gICAgcmVxdWVzdC5oZWFkZXJzW1wiaG9zdFwiXSA9IHJlcXVlc3QuaG9zdG5hbWU7XG4gIH1cbiAgcmV0dXJuIG5leHQoYXJncyk7XG59O1xuXG5leHBvcnQgY29uc3QgaG9zdEhlYWRlck1pZGRsZXdhcmVPcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJob3N0SGVhZGVyTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIkhPU1RcIl0sXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SG9zdEhlYWRlclBsdWdpbiA9IChvcHRpb25zOiBIb3N0SGVhZGVyUmVzb2x2ZWRDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkKGhvc3RIZWFkZXJNaWRkbGV3YXJlKG9wdGlvbnMpLCBob3N0SGVhZGVyTWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0= 42066 42067/***/ }), 42068
vendor: 3,869 bytes, lines 42069-42096
42069/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/configurations.js": 42070/*!***************************************************************************!*\ 42071 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/configurations.js ***! 42072 \***************************************************************************/ 42073/*! no static exports found */ 42074/***/ (function(module, exports, __webpack_require__) { 42075 42076"use strict"; 42077 42078Object.defineProperty(exports, "__esModule", { value: true }); 42079exports.resolveRetryConfig = void 0; 42080var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42081var defaultStrategy_1 = __webpack_require__(/*! ./defaultStrategy */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultStrategy.js"); 42082exports.resolveRetryConfig = function (input) { 42083 var _a; 42084 var maxAttempts = (_a = normalizeMaxAttempts(input.maxAttempts)) !== null && _a !== void 0 ? _a : input.maxAttemptsDefaultProvider(input); 42085 return tslib_1.__assign(tslib_1.__assign({}, input), { maxAttempts: maxAttempts, retryStrategy: input.retryStrategy || new defaultStrategy_1.StandardRetryStrategy(maxAttempts) }); 42086}; 42087var normalizeMaxAttempts = function (maxAttempts) { 42088 if (maxAttempts) { 42089 var promisified_1 = Promise.resolve(maxAttempts.toString()); 42090 return function () { return promisified_1; }; 42091 } 42092}; 42093//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLHFEQUEwRDtBQXFCN0MsUUFBQSxrQkFBa0IsR0FBRyxVQUFJLEtBQWdEOztJQUNwRixJQUFNLFdBQVcsU0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLG1DQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxLQUFZLENBQUMsQ0FBQztJQUM5Ryw2Q0FDSyxLQUFLLEtBQ1IsV0FBVyxhQUFBLEVBQ1gsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSx1Q0FBcUIsQ0FBQyxXQUFXLENBQUMsSUFDNUU7QUFDSixDQUFDLENBQUM7QUFFRixJQUFNLG9CQUFvQixHQUFHLFVBQUMsV0FBb0I7SUFDaEQsSUFBSSxXQUFXLEVBQUU7UUFDZixJQUFNLGFBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE9BQU8sY0FBTSxPQUFBLGFBQVcsRUFBWCxDQUFXLENBQUM7S0FDMUI7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciwgUmV0cnlTdHJhdGVneSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kgfSBmcm9tIFwiLi9kZWZhdWx0U3RyYXRlZ3lcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSZXRyeUlucHV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyByZXF1ZXN0cyB0aGF0IGVuY291bnRlciByZXRyeWFibGUgZmFpbHVyZXMgc2hvdWxkIGJlIGF0dGVtcHRlZC5cbiAgICovXG4gIG1heEF0dGVtcHRzPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHN0cmF0ZWd5IHRvIHJldHJ5IHRoZSByZXF1ZXN0LiBVc2luZyBidWlsdC1pbiBleHBvbmVudGlhbCBiYWNrb2ZmIHN0cmF0ZWd5IGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZXRyeVN0cmF0ZWd5PzogUmV0cnlTdHJhdGVneTtcbn1cblxuaW50ZXJmYWNlIFByZXZpb3VzbHlSZXNvbHZlZCB7XG4gIG1heEF0dGVtcHRzRGVmYXVsdFByb3ZpZGVyOiAoaW5wdXQ6IGFueSkgPT4gUHJvdmlkZXI8c3RyaW5nPjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlSZXNvbHZlZENvbmZpZyB7XG4gIG1heEF0dGVtcHRzOiBQcm92aWRlcjxzdHJpbmc+O1xuICByZXRyeVN0cmF0ZWd5OiBSZXRyeVN0cmF0ZWd5O1xufVxuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVJldHJ5Q29uZmlnID0gPFQ+KGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgUmV0cnlJbnB1dENvbmZpZyk6IFQgJiBSZXRyeVJlc29sdmVkQ29uZmlnID0+IHtcbiAgY29uc3QgbWF4QXR0ZW1wdHMgPSBub3JtYWxpemVNYXhBdHRlbXB0cyhpbnB1dC5tYXhBdHRlbXB0cykgPz8gaW5wdXQubWF4QXR0ZW1wdHNEZWZhdWx0UHJvdmlkZXIoaW5wdXQgYXMgYW55KTtcbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtYXhBdHRlbXB0cyxcbiAgICByZXRyeVN0cmF0ZWd5OiBpbnB1dC5yZXRyeVN0cmF0ZWd5IHx8IG5ldyBTdGFuZGFyZFJldHJ5U3RyYXRlZ3kobWF4QXR0ZW1wdHMpLFxuICB9O1xufTtcblxuY29uc3Qgbm9ybWFsaXplTWF4QXR0ZW1wdHMgPSAobWF4QXR0ZW1wdHM/OiBudW1iZXIpOiBQcm92aWRlcjxzdHJpbmc+IHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKG1heEF0dGVtcHRzKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUobWF4QXR0ZW1wdHMudG9TdHJpbmcoKSk7XG4gICAgcmV0dXJuICgpID0+IHByb21pc2lmaWVkO1xuICB9XG59O1xuIl19 42094 42095/***/ }), 42096
vendor: 3,878 bytes, lines 42097-42144
42097/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/constants.js": 42098/*!**********************************************************************!*\ 42099 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/constants.js ***! 42100 \**********************************************************************/ 42101/*! no static exports found */ 42102/***/ (function(module, exports, __webpack_require__) { 42103 42104"use strict"; 42105 42106Object.defineProperty(exports, "__esModule", { value: true }); 42107exports.NO_RETRY_INCREMENT = exports.TIMEOUT_RETRY_COST = exports.RETRY_COST = exports.INITIAL_RETRY_TOKENS = exports.THROTTLING_RETRY_DELAY_BASE = exports.MAXIMUM_RETRY_DELAY = exports.DEFAULT_RETRY_DELAY_BASE = void 0; 42108/** 42109 * The base number of milliseconds to use in calculating a suitable cool-down 42110 * time when a retryable error is encountered. 42111 */ 42112exports.DEFAULT_RETRY_DELAY_BASE = 100; 42113/** 42114 * The maximum amount of time (in milliseconds) that will be used as a delay 42115 * between retry attempts. 42116 */ 42117exports.MAXIMUM_RETRY_DELAY = 20 * 1000; 42118/** 42119 * The retry delay base (in milliseconds) to use when a throttling error is 42120 * encountered. 42121 */ 42122exports.THROTTLING_RETRY_DELAY_BASE = 500; 42123/** 42124 * Initial number of retry tokens in Retry Quota 42125 */ 42126exports.INITIAL_RETRY_TOKENS = 500; 42127/** 42128 * The total amount of retry tokens to be decremented from retry token balance. 42129 */ 42130exports.RETRY_COST = 5; 42131/** 42132 * The total amount of retry tokens to be decremented from retry token balance 42133 * when a throttling error is encountered. 42134 */ 42135exports.TIMEOUT_RETRY_COST = 10; 42136/** 42137 * The total amount of retry token to be incremented from retry token balance 42138 * if an SDK operation invocation succeeds without requiring a retry request. 42139 */ 42140exports.NO_RETRY_INCREMENT = 1; 42141//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDVSxRQUFBLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDVSxRQUFBLG1CQUFtQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFN0M7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxHQUFHLENBQUM7QUFFL0M7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUV4Qzs7R0FFRztBQUNVLFFBQUEsVUFBVSxHQUFHLENBQUMsQ0FBQztBQUU1Qjs7O0dBR0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztBQUVyQzs7O0dBR0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGJhc2UgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB1c2UgaW4gY2FsY3VsYXRpbmcgYSBzdWl0YWJsZSBjb29sLWRvd25cbiAqIHRpbWUgd2hlbiBhIHJldHJ5YWJsZSBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSA9IDEwMDtcblxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSAoaW4gbWlsbGlzZWNvbmRzKSB0aGF0IHdpbGwgYmUgdXNlZCBhcyBhIGRlbGF5XG4gKiBiZXR3ZWVuIHJldHJ5IGF0dGVtcHRzLlxuICovXG5leHBvcnQgY29uc3QgTUFYSU1VTV9SRVRSWV9ERUxBWSA9IDIwICogMTAwMDtcblxuLyoqXG4gKiBUaGUgcmV0cnkgZGVsYXkgYmFzZSAoaW4gbWlsbGlzZWNvbmRzKSB0byB1c2Ugd2hlbiBhIHRocm90dGxpbmcgZXJyb3IgaXNcbiAqIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgY29uc3QgVEhST1RUTElOR19SRVRSWV9ERUxBWV9CQVNFID0gNTAwO1xuXG4vKipcbiAqIEluaXRpYWwgbnVtYmVyIG9mIHJldHJ5IHRva2VucyBpbiBSZXRyeSBRdW90YVxuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9SRVRSWV9UT0tFTlMgPSA1MDA7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlLlxuICovXG5leHBvcnQgY29uc3QgUkVUUllfQ09TVCA9IDU7XG5cbi8qKlxuICogVGhlIHRvdGFsIGFtb3VudCBvZiByZXRyeSB0b2tlbnMgdG8gYmUgZGVjcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiB3aGVuIGEgdGhyb3R0bGluZyBlcnJvciBpcyBlbmNvdW50ZXJlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJTUVPVVRfUkVUUllfQ09TVCA9IDEwO1xuXG4vKipcbiAqIFRoZSB0b3RhbCBhbW91bnQgb2YgcmV0cnkgdG9rZW4gdG8gYmUgaW5jcmVtZW50ZWQgZnJvbSByZXRyeSB0b2tlbiBiYWxhbmNlXG4gKiBpZiBhbiBTREsgb3BlcmF0aW9uIGludm9jYXRpb24gc3VjY2VlZHMgd2l0aG91dCByZXF1aXJpbmcgYSByZXRyeSByZXF1ZXN0LlxuICovXG5leHBvcnQgY29uc3QgTk9fUkVUUllfSU5DUkVNRU5UID0gMTtcbiJdfQ== 42142 42143/***/ }), 42144
vendor: 5,039 bytes, lines 42145-42184
42145/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultRetryQuota.js": 42146/*!******************************************************************************!*\ 42147 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultRetryQuota.js ***! 42148 \******************************************************************************/ 42149/*! no static exports found */ 42150/***/ (function(module, exports, __webpack_require__) { 42151 42152"use strict"; 42153 42154Object.defineProperty(exports, "__esModule", { value: true }); 42155exports.getDefaultRetryQuota = void 0; 42156var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/constants.js"); 42157exports.getDefaultRetryQuota = function (initialRetryTokens) { 42158 var MAX_CAPACITY = initialRetryTokens; 42159 var availableCapacity = initialRetryTokens; 42160 var getCapacityAmount = function (error) { return (error.name === "TimeoutError" ? constants_1.TIMEOUT_RETRY_COST : constants_1.RETRY_COST); }; 42161 var hasRetryTokens = function (error) { return getCapacityAmount(error) <= availableCapacity; }; 42162 var retrieveRetryTokens = function (error) { 42163 if (!hasRetryTokens(error)) { 42164 // retryStrategy should stop retrying, and return last error 42165 throw new Error("No retry token available"); 42166 } 42167 var capacityAmount = getCapacityAmount(error); 42168 availableCapacity -= capacityAmount; 42169 return capacityAmount; 42170 }; 42171 var releaseRetryTokens = function (capacityReleaseAmount) { 42172 availableCapacity += capacityReleaseAmount !== null && capacityReleaseAmount !== void 0 ? capacityReleaseAmount : constants_1.NO_RETRY_INCREMENT; 42173 availableCapacity = Math.min(availableCapacity, MAX_CAPACITY); 42174 }; 42175 return Object.freeze({ 42176 hasRetryTokens: hasRetryTokens, 42177 retrieveRetryTokens: retrieveRetryTokens, 42178 releaseRetryTokens: releaseRetryTokens, 42179 }); 42180}; 42181//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFJldHJ5UXVvdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVmYXVsdFJldHJ5UXVvdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUNBQWlGO0FBR3BFLFFBQUEsb0JBQW9CLEdBQUcsVUFBQyxrQkFBMEI7SUFDN0QsSUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUM7SUFDeEMsSUFBSSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztJQUUzQyxJQUFNLGlCQUFpQixHQUFHLFVBQUMsS0FBZSxJQUFLLE9BQUEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsOEJBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFVLENBQUMsRUFBakUsQ0FBaUUsQ0FBQztJQUVqSCxJQUFNLGNBQWMsR0FBRyxVQUFDLEtBQWUsSUFBSyxPQUFBLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLGlCQUFpQixFQUE3QyxDQUE2QyxDQUFDO0lBRTFGLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxLQUFlO1FBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUIsNERBQTREO1lBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM3QztRQUNELElBQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELGlCQUFpQixJQUFJLGNBQWMsQ0FBQztRQUNwQyxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDLENBQUM7SUFFRixJQUFNLGtCQUFrQixHQUFHLFVBQUMscUJBQThCO1FBQ3hELGlCQUFpQixJQUFJLHFCQUFxQixhQUFyQixxQkFBcUIsY0FBckIscUJBQXFCLEdBQUksOEJBQWtCLENBQUM7UUFDakUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDbkIsY0FBYyxnQkFBQTtRQUNkLG1CQUFtQixxQkFBQTtRQUNuQixrQkFBa0Isb0JBQUE7S0FDbkIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuXG5pbXBvcnQgeyBOT19SRVRSWV9JTkNSRU1FTlQsIFJFVFJZX0NPU1QsIFRJTUVPVVRfUkVUUllfQ09TVCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUmV0cnlRdW90YSB9IGZyb20gXCIuL2RlZmF1bHRTdHJhdGVneVwiO1xuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFJldHJ5UXVvdGEgPSAoaW5pdGlhbFJldHJ5VG9rZW5zOiBudW1iZXIpOiBSZXRyeVF1b3RhID0+IHtcbiAgY29uc3QgTUFYX0NBUEFDSVRZID0gaW5pdGlhbFJldHJ5VG9rZW5zO1xuICBsZXQgYXZhaWxhYmxlQ2FwYWNpdHkgPSBpbml0aWFsUmV0cnlUb2tlbnM7XG5cbiAgY29uc3QgZ2V0Q2FwYWNpdHlBbW91bnQgPSAoZXJyb3I6IFNka0Vycm9yKSA9PiAoZXJyb3IubmFtZSA9PT0gXCJUaW1lb3V0RXJyb3JcIiA/IFRJTUVPVVRfUkVUUllfQ09TVCA6IFJFVFJZX0NPU1QpO1xuXG4gIGNvbnN0IGhhc1JldHJ5VG9rZW5zID0gKGVycm9yOiBTZGtFcnJvcikgPT4gZ2V0Q2FwYWNpdHlBbW91bnQoZXJyb3IpIDw9IGF2YWlsYWJsZUNhcGFjaXR5O1xuXG4gIGNvbnN0IHJldHJpZXZlUmV0cnlUb2tlbnMgPSAoZXJyb3I6IFNka0Vycm9yKSA9PiB7XG4gICAgaWYgKCFoYXNSZXRyeVRva2VucyhlcnJvcikpIHtcbiAgICAgIC8vIHJldHJ5U3RyYXRlZ3kgc2hvdWxkIHN0b3AgcmV0cnlpbmcsIGFuZCByZXR1cm4gbGFzdCBlcnJvclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gcmV0cnkgdG9rZW4gYXZhaWxhYmxlXCIpO1xuICAgIH1cbiAgICBjb25zdCBjYXBhY2l0eUFtb3VudCA9IGdldENhcGFjaXR5QW1vdW50KGVycm9yKTtcbiAgICBhdmFpbGFibGVDYXBhY2l0eSAtPSBjYXBhY2l0eUFtb3VudDtcbiAgICByZXR1cm4gY2FwYWNpdHlBbW91bnQ7XG4gIH07XG5cbiAgY29uc3QgcmVsZWFzZVJldHJ5VG9rZW5zID0gKGNhcGFjaXR5UmVsZWFzZUFtb3VudD86IG51bWJlcikgPT4ge1xuICAgIGF2YWlsYWJsZUNhcGFjaXR5ICs9IGNhcGFjaXR5UmVsZWFzZUFtb3VudCA/PyBOT19SRVRSWV9JTkNSRU1FTlQ7XG4gICAgYXZhaWxhYmxlQ2FwYWNpdHkgPSBNYXRoLm1pbihhdmFpbGFibGVDYXBhY2l0eSwgTUFYX0NBUEFDSVRZKTtcbiAgfTtcblxuICByZXR1cm4gT2JqZWN0LmZyZWV6ZSh7XG4gICAgaGFzUmV0cnlUb2tlbnMsXG4gICAgcmV0cmlldmVSZXRyeVRva2VucyxcbiAgICByZWxlYXNlUmV0cnlUb2tlbnMsXG4gIH0pO1xufTtcbiJdfQ== 42182 42183/***/ }), 42184
vendor: 18,196 bytes, lines 42185-42320
42185/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultStrategy.js": 42186/*!****************************************************************************!*\ 42187 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultStrategy.js ***! 42188 \****************************************************************************/ 42189/*! no static exports found */ 42190/***/ (function(module, exports, __webpack_require__) { 42191 42192"use strict"; 42193 42194Object.defineProperty(exports, "__esModule", { value: true }); 42195exports.StandardRetryStrategy = exports.DEFAULT_RETRY_MODE = exports.DEFAULT_MAX_ATTEMPTS = void 0; 42196var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42197var protocol_http_1 = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 42198var service_error_classification_1 = __webpack_require__(/*! @aws-sdk/service-error-classification */ "./node_modules/@aws-sdk/service-error-classification/dist/cjs/index.js"); 42199var uuid_1 = __webpack_require__(/*! uuid */ "./node_modules/uuid/index.js"); 42200var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/constants.js"); 42201var defaultRetryQuota_1 = __webpack_require__(/*! ./defaultRetryQuota */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultRetryQuota.js"); 42202var delayDecider_1 = __webpack_require__(/*! ./delayDecider */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/delayDecider.js"); 42203var retryDecider_1 = __webpack_require__(/*! ./retryDecider */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryDecider.js"); 42204/** 42205 * The default value for how many HTTP requests an SDK should make for a 42206 * single SDK operation invocation before giving up 42207 */ 42208exports.DEFAULT_MAX_ATTEMPTS = "3"; 42209/** 42210 * The default retry algorithm to use. 42211 */ 42212exports.DEFAULT_RETRY_MODE = "standard"; 42213var StandardRetryStrategy = /** @class */ (function () { 42214 function StandardRetryStrategy(maxAttemptsProvider, options) { 42215 var _a, _b, _c; 42216 this.maxAttemptsProvider = maxAttemptsProvider; 42217 this.retryDecider = (_a = options === null || options === void 0 ? void 0 : options.retryDecider) !== null && _a !== void 0 ? _a : retryDecider_1.defaultRetryDecider; 42218 this.delayDecider = (_b = options === null || options === void 0 ? void 0 : options.delayDecider) !== null && _b !== void 0 ? _b : delayDecider_1.defaultDelayDecider; 42219 this.retryQuota = (_c = options === null || options === void 0 ? void 0 : options.retryQuota) !== null && _c !== void 0 ? _c : defaultRetryQuota_1.getDefaultRetryQuota(constants_1.INITIAL_RETRY_TOKENS); 42220 } 42221 StandardRetryStrategy.prototype.shouldRetry = function (error, attempts, maxAttempts) { 42222 return attempts < maxAttempts && this.retryDecider(error) && this.retryQuota.hasRetryTokens(error); 42223 }; 42224 StandardRetryStrategy.prototype.getMaxAttempts = function () { 42225 return tslib_1.__awaiter(this, void 0, void 0, function () { 42226 var maxAttemptsStr, error_1, maxAttempts; 42227 return tslib_1.__generator(this, function (_a) { 42228 switch (_a.label) { 42229 case 0: 42230 _a.trys.push([0, 2, , 3]); 42231 return [4 /*yield*/, this.maxAttemptsProvider()]; 42232 case 1: 42233 maxAttemptsStr = _a.sent(); 42234 return [3 /*break*/, 3]; 42235 case 2: 42236 error_1 = _a.sent(); 42237 maxAttemptsStr = exports.DEFAULT_MAX_ATTEMPTS; 42238 return [3 /*break*/, 3]; 42239 case 3: 42240 maxAttempts = parseInt(maxAttemptsStr); 42241 return [2 /*return*/, Number.isNaN(maxAttempts) ? parseInt(exports.DEFAULT_MAX_ATTEMPTS) : maxAttempts]; 42242 } 42243 }); 42244 }); 42245 }; 42246 StandardRetryStrategy.prototype.retry = function (next, args) { 42247 return tslib_1.__awaiter(this, void 0, void 0, function () { 42248 var retryTokenAmount, attempts, totalDelay, maxAttempts, request, _loop_1, this_1, state_1; 42249 return tslib_1.__generator(this, function (_a) { 42250 switch (_a.label) { 42251 case 0: 42252 attempts = 0; 42253 totalDelay = 0; 42254 return [4 /*yield*/, this.getMaxAttempts()]; 42255 case 1: 42256 maxAttempts = _a.sent(); 42257 request = args.request; 42258 if (protocol_http_1.HttpRequest.isInstance(request)) { 42259 request.headers["amz-sdk-invocation-id"] = uuid_1.v4(); 42260 } 42261 _loop_1 = function () { 42262 var _a, response, output, err_1, delay_1; 42263 return tslib_1.__generator(this, function (_b) { 42264 switch (_b.label) { 42265 case 0: 42266 _b.trys.push([0, 2, , 5]); 42267 if (protocol_http_1.HttpRequest.isInstance(request)) { 42268 request.headers["amz-sdk-request"] = "attempt=" + (attempts + 1) + "; max=" + maxAttempts; 42269 } 42270 return [4 /*yield*/, next(args)]; 42271 case 1: 42272 _a = _b.sent(), response = _a.response, output = _a.output; 42273 this_1.retryQuota.releaseRetryTokens(retryTokenAmount); 42274 output.$metadata.attempts = attempts + 1; 42275 output.$metadata.totalRetryDelay = totalDelay; 42276 return [2 /*return*/, { value: { response: response, output: output } }]; 42277 case 2: 42278 err_1 = _b.sent(); 42279 attempts++; 42280 if (!this_1.shouldRetry(err_1, attempts, maxAttempts)) return [3 /*break*/, 4]; 42281 retryTokenAmount = this_1.retryQuota.retrieveRetryTokens(err_1); 42282 delay_1 = this_1.delayDecider(service_error_classification_1.isThrottlingError(err_1) ? constants_1.THROTTLING_RETRY_DELAY_BASE : constants_1.DEFAULT_RETRY_DELAY_BASE, attempts); 42283 totalDelay += delay_1; 42284 return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, delay_1); })]; 42285 case 3: 42286 _b.sent(); 42287 return [2 /*return*/, "continue"]; 42288 case 4: 42289 if (!err_1.$metadata) { 42290 err_1.$metadata = {}; 42291 } 42292 err_1.$metadata.attempts = attempts; 42293 err_1.$metadata.totalRetryDelay = totalDelay; 42294 throw err_1; 42295 case 5: return [2 /*return*/]; 42296 } 42297 }); 42298 }; 42299 this_1 = this; 42300 _a.label = 2; 42301 case 2: 42302 if (false) {} 42303 return [5 /*yield**/, _loop_1()]; 42304 case 3: 42305 state_1 = _a.sent(); 42306 if (typeof state_1 === "object") 42307 return [2 /*return*/, state_1.value]; 42308 return [3 /*break*/, 2]; 42309 case 4: return [2 /*return*/]; 42310 } 42311 }); 42312 }); 42313 }; 42314 return StandardRetryStrategy; 42315}()); 42316exports.StandardRetryStrategy = StandardRetryStrategy; 42317//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlZmF1bHRTdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsd0RBQXFEO0FBQ3JELHNGQUEwRTtBQUcxRSw2QkFBMEI7QUFFMUIseUNBQTBHO0FBQzFHLHlEQUEyRDtBQUMzRCwrQ0FBcUQ7QUFDckQsK0NBQXFEO0FBRXJEOzs7R0FHRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBRXhDOztHQUVHO0FBQ1UsUUFBQSxrQkFBa0IsR0FBRyxVQUFVLENBQUM7QUFvRDdDO0lBS0UsK0JBQTZCLG1CQUFxQyxFQUFFLE9BQXNDOztRQUE3RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQWtCO1FBQ2hFLElBQUksQ0FBQyxZQUFZLFNBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksbUNBQUksa0NBQW1CLENBQUM7UUFDakUsSUFBSSxDQUFDLFlBQVksU0FBRyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsWUFBWSxtQ0FBSSxrQ0FBbUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxTQUFHLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLG1DQUFJLHdDQUFvQixDQUFDLGdDQUFvQixDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVPLDJDQUFXLEdBQW5CLFVBQW9CLEtBQWUsRUFBRSxRQUFnQixFQUFFLFdBQW1CO1FBQ3hFLE9BQU8sUUFBUSxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFFYSw4Q0FBYyxHQUE1Qjs7Ozs7Ozt3QkFHcUIscUJBQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUE7O3dCQUFqRCxjQUFjLEdBQUcsU0FBZ0MsQ0FBQzs7Ozt3QkFFbEQsY0FBYyxHQUFHLDRCQUFvQixDQUFDOzs7d0JBRWxDLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzdDLHNCQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyw0QkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUM7Ozs7S0FDakY7SUFFSyxxQ0FBSyxHQUFYLFVBQ0UsSUFBbUMsRUFDbkMsSUFBcUM7Ozs7Ozt3QkFHakMsUUFBUSxHQUFHLENBQUMsQ0FBQzt3QkFDYixVQUFVLEdBQUcsQ0FBQyxDQUFDO3dCQUVDLHFCQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBQTs7d0JBQXpDLFdBQVcsR0FBRyxTQUEyQjt3QkFFdkMsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO3dCQUN6QixJQUFJLDJCQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsU0FBRSxFQUFFLENBQUM7eUJBQ2pEOzs7Ozs7O3dDQUlHLElBQUksMkJBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7NENBQ25DLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxjQUFXLFFBQVEsR0FBRyxDQUFDLGVBQVMsV0FBYSxDQUFDO3lDQUNwRjt3Q0FDNEIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFBOzt3Q0FBdkMsS0FBdUIsU0FBZ0IsRUFBckMsUUFBUSxjQUFBLEVBQUUsTUFBTSxZQUFBO3dDQUV4QixPQUFLLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3dDQUNyRCxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO3dDQUN6QyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7dUVBRXZDLEVBQUUsUUFBUSxVQUFBLEVBQUUsTUFBTSxRQUFBLEVBQUU7Ozt3Q0FFM0IsUUFBUSxFQUFFLENBQUM7NkNBQ1AsT0FBSyxXQUFXLENBQUMsS0FBZSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBeEQsd0JBQXdEO3dDQUMxRCxnQkFBZ0IsR0FBRyxPQUFLLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFHLENBQUMsQ0FBQzt3Q0FDdEQsVUFBUSxPQUFLLFlBQVksQ0FDN0IsZ0RBQWlCLENBQUMsS0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVDQUEyQixDQUFDLENBQUMsQ0FBQyxvQ0FBd0IsRUFDL0UsUUFBUSxDQUNULENBQUM7d0NBQ0YsVUFBVSxJQUFJLE9BQUssQ0FBQzt3Q0FFcEIscUJBQU0sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLElBQUssT0FBQSxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQUssQ0FBQyxFQUExQixDQUEwQixDQUFDLEVBQUE7O3dDQUExRCxTQUEwRCxDQUFDOzs7d0NBSTdELElBQUksQ0FBQyxLQUFHLENBQUMsU0FBUyxFQUFFOzRDQUNsQixLQUFHLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQzt5Q0FDcEI7d0NBRUQsS0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO3dDQUNsQyxLQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7d0NBQzNDLE1BQU0sS0FBRyxDQUFDOzs7Ozs7Ozs2QkFoQ1AsSUFBSTs7Ozs7Ozs7Ozs7S0FtQ1o7SUFDSCw0QkFBQztBQUFELENBQUMsQUE3RUQsSUE2RUM7QUE3RVksc0RBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGF3cy1zZGsvcHJvdG9jb2wtaHR0cFwiO1xuaW1wb3J0IHsgaXNUaHJvdHRsaW5nRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc2VydmljZS1lcnJvci1jbGFzc2lmaWNhdGlvblwiO1xuaW1wb3J0IHsgU2RrRXJyb3IgfSBmcm9tIFwiQGF3cy1zZGsvc21pdGh5LWNsaWVudFwiO1xuaW1wb3J0IHsgRmluYWxpemVIYW5kbGVyLCBGaW5hbGl6ZUhhbmRsZXJBcmd1bWVudHMsIE1ldGFkYXRhQmVhcmVyLCBQcm92aWRlciwgUmV0cnlTdHJhdGVneSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgdjQgfSBmcm9tIFwidXVpZFwiO1xuXG5pbXBvcnQgeyBERUZBVUxUX1JFVFJZX0RFTEFZX0JBU0UsIElOSVRJQUxfUkVUUllfVE9LRU5TLCBUSFJPVFRMSU5HX1JFVFJZX0RFTEFZX0JBU0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldERlZmF1bHRSZXRyeVF1b3RhIH0gZnJvbSBcIi4vZGVmYXVsdFJldHJ5UXVvdGFcIjtcbmltcG9ydCB7IGRlZmF1bHREZWxheURlY2lkZXIgfSBmcm9tIFwiLi9kZWxheURlY2lkZXJcIjtcbmltcG9ydCB7IGRlZmF1bHRSZXRyeURlY2lkZXIgfSBmcm9tIFwiLi9yZXRyeURlY2lkZXJcIjtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgaG93IG1hbnkgSFRUUCByZXF1ZXN0cyBhbiBTREsgc2hvdWxkIG1ha2UgZm9yIGFcbiAqIHNpbmdsZSBTREsgb3BlcmF0aW9uIGludm9jYXRpb24gYmVmb3JlIGdpdmluZyB1cFxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVhfQVRURU1QVFMgPSBcIjNcIjtcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCByZXRyeSBhbGdvcml0aG0gdG8gdXNlLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9SRVRSWV9NT0RFID0gXCJzdGFuZGFyZFwiO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhbiBlcnJvciBpcyByZXRyeWFibGUgYmFzZWQgb24gdGhlIG51bWJlciBvZiByZXRyaWVzXG4gKiBhbHJlYWR5IGF0dGVtcHRlZCwgdGhlIEhUVFAgc3RhdHVzIGNvZGUsIGFuZCB0aGUgZXJyb3IgcmVjZWl2ZWQgKGlmIGFueSkuXG4gKlxuICogQHBhcmFtIGVycm9yICAgICAgICAgVGhlIGVycm9yIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5RGVjaWRlciB7XG4gIChlcnJvcjogU2RrRXJyb3IpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgcmV0cnlpbmcgYW4gYWN0aW9uLlxuICpcbiAqIEBwYXJhbSBkZWxheUJhc2UgVGhlIGJhc2UgZGVsYXkgKGluIG1pbGxpc2Vjb25kcykuXG4gKiBAcGFyYW0gYXR0ZW1wdHMgIFRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGFjdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHRyaWVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlbGF5RGVjaWRlciB7XG4gIChkZWxheUJhc2U6IG51bWJlciwgYXR0ZW1wdHM6IG51bWJlcik6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgdGhhdCBzcGVjaWZpZXMgdGhlIHJldHJ5IHF1b3RhIGJlaGF2aW9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5UXVvdGEge1xuICAvKipcbiAgICogcmV0dXJucyB0cnVlIGlmIHJldHJ5IHRva2VucyBhcmUgYXZhaWxhYmxlIGZyb20gdGhlIHJldHJ5IHF1b3RhIGJ1Y2tldC5cbiAgICovXG4gIGhhc1JldHJ5VG9rZW5zOiAoZXJyb3I6IFNka0Vycm9yKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiByZXR1cm5zIHRva2VuIGFtb3VudCBmcm9tIHRoZSByZXRyeSBxdW90YSBidWNrZXQuXG4gICAqIHRocm93cyBlcnJvciBpcyByZXRyeSB0b2tlbnMgYXJlIG5vdCBhdmFpbGFibGUuXG4gICAqL1xuICByZXRyaWV2ZVJldHJ5VG9rZW5zOiAoZXJyb3I6IFNka0Vycm9yKSA9PiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIHJlbGVhc2VzIHRva2VucyBiYWNrIHRvIHRoZSByZXRyeSBxdW90YS5cbiAgICovXG4gIHJlbGVhc2VSZXRyeVRva2VuczogKHJlbGVhc2VDYXBhY2l0eUFtb3VudD86IG51bWJlcikgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBTdHJhdGVneSBvcHRpb25zIHRvIGJlIHBhc3NlZCB0byBTdGFuZGFyZFJldHJ5U3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFuZGFyZFJldHJ5U3RyYXRlZ3lPcHRpb25zIHtcbiAgcmV0cnlEZWNpZGVyPzogUmV0cnlEZWNpZGVyO1xuICBkZWxheURlY2lkZXI/OiBEZWxheURlY2lkZXI7XG4gIHJldHJ5UXVvdGE/OiBSZXRyeVF1b3RhO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRSZXRyeVN0cmF0ZWd5IGltcGxlbWVudHMgUmV0cnlTdHJhdGVneSB7XG4gIHByaXZhdGUgcmV0cnlEZWNpZGVyOiBSZXRyeURlY2lkZXI7XG4gIHByaXZhdGUgZGVsYXlEZWNpZGVyOiBEZWxheURlY2lkZXI7XG4gIHByaXZhdGUgcmV0cnlRdW90YTogUmV0cnlRdW90YTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1heEF0dGVtcHRzUHJvdmlkZXI6IFByb3ZpZGVyPHN0cmluZz4sIG9wdGlvbnM/OiBTdGFuZGFyZFJldHJ5U3RyYXRlZ3lPcHRpb25zKSB7XG4gICAgdGhpcy5yZXRyeURlY2lkZXIgPSBvcHRpb25zPy5yZXRyeURlY2lkZXIgPz8gZGVmYXVsdFJldHJ5RGVjaWRlcjtcbiAgICB0aGlzLmRlbGF5RGVjaWRlciA9IG9wdGlvbnM/LmRlbGF5RGVjaWRlciA/PyBkZWZhdWx0RGVsYXlEZWNpZGVyO1xuICAgIHRoaXMucmV0cnlRdW90YSA9IG9wdGlvbnM/LnJldHJ5UXVvdGEgPz8gZ2V0RGVmYXVsdFJldHJ5UXVvdGEoSU5JVElBTF9SRVRSWV9UT0tFTlMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRSZXRyeShlcnJvcjogU2RrRXJyb3IsIGF0dGVtcHRzOiBudW1iZXIsIG1heEF0dGVtcHRzOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYXR0ZW1wdHMgPCBtYXhBdHRlbXB0cyAmJiB0aGlzLnJldHJ5RGVjaWRlcihlcnJvcikgJiYgdGhpcy5yZXRyeVF1b3RhLmhhc1JldHJ5VG9rZW5zKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TWF4QXR0ZW1wdHMoKSB7XG4gICAgbGV0IG1heEF0dGVtcHRzU3RyOiBzdHJpbmc7XG4gICAgdHJ5IHtcbiAgICAgIG1heEF0dGVtcHRzU3RyID0gYXdhaXQgdGhpcy5tYXhBdHRlbXB0c1Byb3ZpZGVyKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIG1heEF0dGVtcHRzU3RyID0gREVGQVVMVF9NQVhfQVRURU1QVFM7XG4gICAgfVxuICAgIGNvbnN0IG1heEF0dGVtcHRzID0gcGFyc2VJbnQobWF4QXR0ZW1wdHNTdHIpO1xuICAgIHJldHVybiBOdW1iZXIuaXNOYU4obWF4QXR0ZW1wdHMpID8gcGFyc2VJbnQoREVGQVVMVF9NQVhfQVRURU1QVFMpIDogbWF4QXR0ZW1wdHM7XG4gIH1cblxuICBhc3luYyByZXRyeTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3VwdXQgZXh0ZW5kcyBNZXRhZGF0YUJlYXJlcj4oXG4gICAgbmV4dDogRmluYWxpemVIYW5kbGVyPElucHV0LCBPdXB1dD4sXG4gICAgYXJnczogRmluYWxpemVIYW5kbGVyQXJndW1lbnRzPElucHV0PlxuICApIHtcbiAgICBsZXQgcmV0cnlUb2tlbkFtb3VudDtcbiAgICBsZXQgYXR0ZW1wdHMgPSAwO1xuICAgIGxldCB0b3RhbERlbGF5ID0gMDtcblxuICAgIGNvbnN0IG1heEF0dGVtcHRzID0gYXdhaXQgdGhpcy5nZXRNYXhBdHRlbXB0cygpO1xuXG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmIChIdHRwUmVxdWVzdC5pc0luc3RhbmNlKHJlcXVlc3QpKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnNbXCJhbXotc2RrLWludm9jYXRpb24taWRcIl0gPSB2NCgpO1xuICAgIH1cblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkge1xuICAgICAgICAgIHJlcXVlc3QuaGVhZGVyc1tcImFtei1zZGstcmVxdWVzdFwiXSA9IGBhdHRlbXB0PSR7YXR0ZW1wdHMgKyAxfTsgbWF4PSR7bWF4QXR0ZW1wdHN9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IHJlc3BvbnNlLCBvdXRwdXQgfSA9IGF3YWl0IG5leHQoYXJncyk7XG5cbiAgICAgICAgdGhpcy5yZXRyeVF1b3RhLnJlbGVhc2VSZXRyeVRva2VucyhyZXRyeVRva2VuQW1vdW50KTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS5hdHRlbXB0cyA9IGF0dGVtcHRzICsgMTtcbiAgICAgICAgb3V0cHV0LiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuXG4gICAgICAgIHJldHVybiB7IHJlc3BvbnNlLCBvdXRwdXQgfTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhdHRlbXB0cysrO1xuICAgICAgICBpZiAodGhpcy5zaG91bGRSZXRyeShlcnIgYXMgU2RrRXJyb3IsIGF0dGVtcHRzLCBtYXhBdHRlbXB0cykpIHtcbiAgICAgICAgICByZXRyeVRva2VuQW1vdW50ID0gdGhpcy5yZXRyeVF1b3RhLnJldHJpZXZlUmV0cnlUb2tlbnMoZXJyKTtcbiAgICAgICAgICBjb25zdCBkZWxheSA9IHRoaXMuZGVsYXlEZWNpZGVyKFxuICAgICAgICAgICAgaXNUaHJvdHRsaW5nRXJyb3IoZXJyKSA/IFRIUk9UVExJTkdfUkVUUllfREVMQVlfQkFTRSA6IERFRkFVTFRfUkVUUllfREVMQVlfQkFTRSxcbiAgICAgICAgICAgIGF0dGVtcHRzXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0b3RhbERlbGF5ICs9IGRlbGF5O1xuXG4gICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgZGVsYXkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXJyLiRtZXRhZGF0YSkge1xuICAgICAgICAgIGVyci4kbWV0YWRhdGEgPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVyci4kbWV0YWRhdGEuYXR0ZW1wdHMgPSBhdHRlbXB0cztcbiAgICAgICAgZXJyLiRtZXRhZGF0YS50b3RhbFJldHJ5RGVsYXkgPSB0b3RhbERlbGF5O1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0= 42318 42319/***/ }), 42320
vendor: 1,837 bytes, lines 42321-42342
42321/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/delayDecider.js": 42322/*!*************************************************************************!*\ 42323 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/delayDecider.js ***! 42324 \*************************************************************************/ 42325/*! no static exports found */ 42326/***/ (function(module, exports, __webpack_require__) { 42327 42328"use strict"; 42329 42330Object.defineProperty(exports, "__esModule", { value: true }); 42331exports.defaultDelayDecider = void 0; 42332var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/constants.js"); 42333/** 42334 * Calculate a capped, fully-jittered exponential backoff time. 42335 */ 42336exports.defaultDelayDecider = function (delayBase, attempts) { 42337 return Math.floor(Math.min(constants_1.MAXIMUM_RETRY_DELAY, Math.random() * Math.pow(2, attempts) * delayBase)); 42338}; 42339//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlbGF5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBa0Q7QUFFbEQ7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFHLFVBQUMsU0FBaUIsRUFBRSxRQUFnQjtJQUNyRSxPQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQywrQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsU0FBQSxDQUFDLEVBQUksUUFBUSxDQUFBLEdBQUcsU0FBUyxDQUFDLENBQUM7QUFBcEYsQ0FBb0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1BWElNVU1fUkVUUllfREVMQVkgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBDYWxjdWxhdGUgYSBjYXBwZWQsIGZ1bGx5LWppdHRlcmVkIGV4cG9uZW50aWFsIGJhY2tvZmYgdGltZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHREZWxheURlY2lkZXIgPSAoZGVsYXlCYXNlOiBudW1iZXIsIGF0dGVtcHRzOiBudW1iZXIpID0+XG4gIE1hdGguZmxvb3IoTWF0aC5taW4oTUFYSU1VTV9SRVRSWV9ERUxBWSwgTWF0aC5yYW5kb20oKSAqIDIgKiogYXR0ZW1wdHMgKiBkZWxheUJhc2UpKTtcbiJdfQ== 42340 42341/***/ }), 42342
vendor: 1,832 bytes, lines 42343-42362
42343/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/index.js": 42344/*!******************************************************************!*\ 42345 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/index.js ***! 42346 \******************************************************************/ 42347/*! no static exports found */ 42348/***/ (function(module, exports, __webpack_require__) { 42349 42350"use strict"; 42351 42352Object.defineProperty(exports, "__esModule", { value: true }); 42353var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42354tslib_1.__exportStar(__webpack_require__(/*! ./retryMiddleware */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryMiddleware.js"), exports); 42355tslib_1.__exportStar(__webpack_require__(/*! ./defaultStrategy */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/defaultStrategy.js"), exports); 42356tslib_1.__exportStar(__webpack_require__(/*! ./configurations */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/configurations.js"), exports); 42357tslib_1.__exportStar(__webpack_require__(/*! ./delayDecider */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/delayDecider.js"), exports); 42358tslib_1.__exportStar(__webpack_require__(/*! ./retryDecider */ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryDecider.js"), exports); 42359//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQWtDO0FBQ2xDLDREQUFrQztBQUNsQywyREFBaUM7QUFDakMseURBQStCO0FBQy9CLHlEQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3JldHJ5TWlkZGxld2FyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVmYXVsdFN0cmF0ZWd5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVsYXlEZWNpZGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXRyeURlY2lkZXJcIjtcbiJdfQ== 42360 42361/***/ }), 42362
vendor: 2,169 bytes, lines 42363-42384
42363/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryDecider.js": 42364/*!*************************************************************************!*\ 42365 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryDecider.js ***! 42366 \*************************************************************************/ 42367/*! no static exports found */ 42368/***/ (function(module, exports, __webpack_require__) { 42369 42370"use strict"; 42371 42372Object.defineProperty(exports, "__esModule", { value: true }); 42373exports.defaultRetryDecider = void 0; 42374var service_error_classification_1 = __webpack_require__(/*! @aws-sdk/service-error-classification */ "./node_modules/@aws-sdk/service-error-classification/dist/cjs/index.js"); 42375exports.defaultRetryDecider = function (error) { 42376 if (!error) { 42377 return false; 42378 } 42379 return service_error_classification_1.isRetryableByTrait(error) || service_error_classification_1.isClockSkewError(error) || service_error_classification_1.isThrottlingError(error) || service_error_classification_1.isTransientError(error); 42380}; 42381//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlEZWNpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5RGVjaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzRkFLK0M7QUFHbEMsUUFBQSxtQkFBbUIsR0FBRyxVQUFDLEtBQWU7SUFDakQsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLGlEQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLCtDQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLGdEQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLCtDQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzQ2xvY2tTa2V3RXJyb3IsXG4gIGlzUmV0cnlhYmxlQnlUcmFpdCxcbiAgaXNUaHJvdHRsaW5nRXJyb3IsXG4gIGlzVHJhbnNpZW50RXJyb3IsXG59IGZyb20gXCJAYXdzLXNkay9zZXJ2aWNlLWVycm9yLWNsYXNzaWZpY2F0aW9uXCI7XG5pbXBvcnQgeyBTZGtFcnJvciB9IGZyb20gXCJAYXdzLXNkay9zbWl0aHktY2xpZW50XCI7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmV0cnlEZWNpZGVyID0gKGVycm9yOiBTZGtFcnJvcikgPT4ge1xuICBpZiAoIWVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGlzUmV0cnlhYmxlQnlUcmFpdChlcnJvcikgfHwgaXNDbG9ja1NrZXdFcnJvcihlcnJvcikgfHwgaXNUaHJvdHRsaW5nRXJyb3IoZXJyb3IpIHx8IGlzVHJhbnNpZW50RXJyb3IoZXJyb3IpO1xufTtcbiJdfQ== 42382 42383/***/ }), 42384
vendor: 3,550 bytes, lines 42385-42414
42385/***/ "./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryMiddleware.js": 42386/*!****************************************************************************!*\ 42387 !*** ./node_modules/@aws-sdk/middleware-retry/dist/cjs/retryMiddleware.js ***! 42388 \****************************************************************************/ 42389/*! no static exports found */ 42390/***/ (function(module, exports, __webpack_require__) { 42391 42392"use strict"; 42393 42394Object.defineProperty(exports, "__esModule", { value: true }); 42395exports.getRetryPlugin = exports.retryMiddlewareOptions = exports.retryMiddleware = void 0; 42396var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42397exports.retryMiddleware = function (options) { return function (next) { return function (args) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { 42398 return [2 /*return*/, options.retryStrategy.retry(next, args)]; 42399}); }); }; }; }; 42400exports.retryMiddlewareOptions = { 42401 name: "retryMiddleware", 42402 tags: ["RETRY"], 42403 step: "finalizeRequest", 42404 priority: "high", 42405}; 42406exports.getRetryPlugin = function (options) { return ({ 42407 applyToStack: function (clientStack) { 42408 clientStack.add(exports.retryMiddleware(options), exports.retryMiddlewareOptions); 42409 }, 42410}); }; 42411//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlNaWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5TWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBWWEsUUFBQSxlQUFlLEdBQUcsVUFBQyxPQUE0QixJQUFLLE9BQUEsVUFDL0QsSUFBa0MsSUFDRCxPQUFBLFVBQ2pDLElBQW1DO0lBQ1Esc0JBQUEsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFBO1NBQUEsRUFGakQsQ0FFaUQsRUFKbkIsQ0FJbUIsQ0FBQztBQUV4RSxRQUFBLHNCQUFzQixHQUFxRDtJQUN0RixJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUNmLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsUUFBUSxFQUFFLE1BQU07Q0FDakIsQ0FBQztBQUVXLFFBQUEsY0FBYyxHQUFHLFVBQUMsT0FBNEIsSUFBMEIsT0FBQSxDQUFDO0lBQ3BGLFlBQVksRUFBRSxVQUFDLFdBQVc7UUFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyx1QkFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLDhCQUFzQixDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsRUFKbUYsQ0FJbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFic29sdXRlTG9jYXRpb24sXG4gIEZpbmFsaXplSGFuZGxlcixcbiAgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBGaW5hbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgUGx1Z2dhYmxlLFxufSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgUmV0cnlSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbmV4cG9ydCBjb25zdCByZXRyeU1pZGRsZXdhcmUgPSAob3B0aW9uczogUmV0cnlSZXNvbHZlZENvbmZpZykgPT4gPE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyID0gTWV0YWRhdGFCZWFyZXI+KFxuICBuZXh0OiBGaW5hbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+XG4pOiBGaW5hbGl6ZUhhbmRsZXI8YW55LCBPdXRwdXQ+ID0+IGFzeW5jIChcbiAgYXJnczogRmluYWxpemVIYW5kbGVyQXJndW1lbnRzPGFueT5cbik6IFByb21pc2U8RmluYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IG9wdGlvbnMucmV0cnlTdHJhdGVneS5yZXRyeShuZXh0LCBhcmdzKTtcblxuZXhwb3J0IGNvbnN0IHJldHJ5TWlkZGxld2FyZU9wdGlvbnM6IEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbiA9IHtcbiAgbmFtZTogXCJyZXRyeU1pZGRsZXdhcmVcIixcbiAgdGFnczogW1wiUkVUUllcIl0sXG4gIHN0ZXA6IFwiZmluYWxpemVSZXF1ZXN0XCIsXG4gIHByaW9yaXR5OiBcImhpZ2hcIixcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZXRyeVBsdWdpbiA9IChvcHRpb25zOiBSZXRyeVJlc29sdmVkQ29uZmlnKTogUGx1Z2dhYmxlPGFueSwgYW55PiA9PiAoe1xuICBhcHBseVRvU3RhY2s6IChjbGllbnRTdGFjaykgPT4ge1xuICAgIGNsaWVudFN0YWNrLmFkZChyZXRyeU1pZGRsZXdhcmUob3B0aW9ucyksIHJldHJ5TWlkZGxld2FyZU9wdGlvbnMpO1xuICB9LFxufSk7XG4iXX0= 42412 42413/***/ }), 42414
vendor: 3,313 bytes, lines 42415-42451
42415/***/ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/deserializerMiddleware.js": 42416/*!***********************************************************************************!*\ 42417 !*** ./node_modules/@aws-sdk/middleware-serde/dist/cjs/deserializerMiddleware.js ***! 42418 \***********************************************************************************/ 42419/*! no static exports found */ 42420/***/ (function(module, exports, __webpack_require__) { 42421 42422"use strict"; 42423 42424Object.defineProperty(exports, "__esModule", { value: true }); 42425exports.deserializerMiddleware = void 0; 42426var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42427function deserializerMiddleware(options, deserializer) { 42428 var _this = this; 42429 return function (next) { return function (args) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 42430 var response, parsed; 42431 return tslib_1.__generator(this, function (_a) { 42432 switch (_a.label) { 42433 case 0: return [4 /*yield*/, next(args)]; 42434 case 1: 42435 response = (_a.sent()).response; 42436 return [4 /*yield*/, deserializer(response, options)]; 42437 case 2: 42438 parsed = _a.sent(); 42439 return [2 /*return*/, { 42440 response: response, 42441 output: parsed, 42442 }]; 42443 } 42444 }); 42445 }); }; }; 42446} 42447exports.deserializerMiddleware = deserializerMiddleware; 42448//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyTWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXNlcmlhbGl6ZXJNaWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFRQSxTQUFnQixzQkFBc0IsQ0FDcEMsT0FBcUIsRUFDckIsWUFBMEQ7SUFGNUQsaUJBY0M7SUFWQyxPQUFPLFVBQUMsSUFBdUMsSUFBd0MsT0FBQSxVQUNyRixJQUF3Qzs7Ozt3QkFFbkIscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFBOztvQkFBN0IsUUFBUSxHQUFLLENBQUEsU0FBZ0IsQ0FBQSxTQUFyQjtvQkFDRCxxQkFBTSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFBOztvQkFBOUMsTUFBTSxHQUFHLFNBQXFDO29CQUNwRCxzQkFBTzs0QkFDTCxRQUFRLFVBQUE7NEJBQ1IsTUFBTSxFQUFFLE1BQWdCO3lCQUN6QixFQUFDOzs7U0FDSCxFQVRzRixDQVN0RixDQUFDO0FBQ0osQ0FBQztBQWRELHdEQWNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVzZXJpYWxpemVIYW5kbGVyLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXJBcmd1bWVudHMsXG4gIERlc2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgRGVzZXJpYWxpemVNaWRkbGV3YXJlLFxuICBSZXNwb25zZURlc2VyaWFsaXplcixcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgZXh0ZW5kcyBvYmplY3QsIFJ1bnRpbWVVdGlscyA9IGFueT4oXG4gIG9wdGlvbnM6IFJ1bnRpbWVVdGlscyxcbiAgZGVzZXJpYWxpemVyOiBSZXNwb25zZURlc2VyaWFsaXplcjxhbnksIGFueSwgUnVudGltZVV0aWxzPlxuKTogRGVzZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+IHtcbiAgcmV0dXJuIChuZXh0OiBEZXNlcmlhbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4pOiBEZXNlcmlhbGl6ZUhhbmRsZXI8SW5wdXQsIE91dHB1dD4gPT4gYXN5bmMgKFxuICAgIGFyZ3M6IERlc2VyaWFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbiAgKTogUHJvbWlzZTxEZXNlcmlhbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4gPT4ge1xuICAgIGNvbnN0IHsgcmVzcG9uc2UgfSA9IGF3YWl0IG5leHQoYXJncyk7XG4gICAgY29uc3QgcGFyc2VkID0gYXdhaXQgZGVzZXJpYWxpemVyKHJlc3BvbnNlLCBvcHRpb25zKTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVzcG9uc2UsXG4gICAgICBvdXRwdXQ6IHBhcnNlZCBhcyBPdXRwdXQsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ== 42449 42450/***/ }), 42451
vendor: 1,448 bytes, lines 42452-42469
42452/***/ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js": 42453/*!******************************************************************!*\ 42454 !*** ./node_modules/@aws-sdk/middleware-serde/dist/cjs/index.js ***! 42455 \******************************************************************/ 42456/*! no static exports found */ 42457/***/ (function(module, exports, __webpack_require__) { 42458 42459"use strict"; 42460 42461Object.defineProperty(exports, "__esModule", { value: true }); 42462var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42463tslib_1.__exportStar(__webpack_require__(/*! ./deserializerMiddleware */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/deserializerMiddleware.js"), exports); 42464tslib_1.__exportStar(__webpack_require__(/*! ./serializerMiddleware */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/serializerMiddleware.js"), exports); 42465tslib_1.__exportStar(__webpack_require__(/*! ./serdePlugin */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/serdePlugin.js"), exports); 42466//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQXlDO0FBQ3pDLGlFQUF1QztBQUN2Qyx3REFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9kZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VyZGVQbHVnaW5cIjtcbiJdfQ== 42467 42468/***/ }), 42469
vendor: 4,339 bytes, lines 42470-42505
42470/***/ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/serdePlugin.js": 42471/*!************************************************************************!*\ 42472 !*** ./node_modules/@aws-sdk/middleware-serde/dist/cjs/serdePlugin.js ***! 42473 \************************************************************************/ 42474/*! no static exports found */ 42475/***/ (function(module, exports, __webpack_require__) { 42476 42477"use strict"; 42478 42479Object.defineProperty(exports, "__esModule", { value: true }); 42480exports.getSerdePlugin = exports.serializerMiddlewareOption = exports.deserializerMiddlewareOption = void 0; 42481var deserializerMiddleware_1 = __webpack_require__(/*! ./deserializerMiddleware */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/deserializerMiddleware.js"); 42482var serializerMiddleware_1 = __webpack_require__(/*! ./serializerMiddleware */ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/serializerMiddleware.js"); 42483exports.deserializerMiddlewareOption = { 42484 name: "deserializerMiddleware", 42485 step: "deserialize", 42486 tags: ["DESERIALIZER"], 42487}; 42488exports.serializerMiddlewareOption = { 42489 name: "serializerMiddleware", 42490 step: "serialize", 42491 tags: ["SERIALIZER"], 42492}; 42493function getSerdePlugin(config, serializer, deserializer) { 42494 return { 42495 applyToStack: function (commandStack) { 42496 commandStack.add(deserializerMiddleware_1.deserializerMiddleware(config, deserializer), exports.deserializerMiddlewareOption); 42497 commandStack.add(serializerMiddleware_1.serializerMiddleware(config, serializer), exports.serializerMiddlewareOption); 42498 }, 42499 }; 42500} 42501exports.getSerdePlugin = getSerdePlugin; 42502//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGVQbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyZGVQbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBV0EsbUVBQWtFO0FBQ2xFLCtEQUE4RDtBQUVqRCxRQUFBLDRCQUE0QixHQUE4QjtJQUNyRSxJQUFJLEVBQUUsd0JBQXdCO0lBQzlCLElBQUksRUFBRSxhQUFhO0lBQ25CLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztDQUN2QixDQUFDO0FBRVcsUUFBQSwwQkFBMEIsR0FBNEI7SUFDakUsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUsV0FBVztJQUNqQixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUM7Q0FDckIsQ0FBQztBQUVGLFNBQWdCLGNBQWMsQ0FLNUIsTUFBb0IsRUFDcEIsVUFBZ0QsRUFDaEQsWUFBaUU7SUFFakUsT0FBTztRQUNMLFlBQVksRUFBRSxVQUFDLFlBQW9EO1lBQ2pFLFlBQVksQ0FBQyxHQUFHLENBQUMsK0NBQXNCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFLG9DQUE0QixDQUFDLENBQUM7WUFDN0YsWUFBWSxDQUFDLEdBQUcsQ0FBQywyQ0FBb0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsa0NBQTBCLENBQUMsQ0FBQztRQUN6RixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFmRCx3Q0FlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIEVuZHBvaW50QmVhcmVyLFxuICBNZXRhZGF0YUJlYXJlcixcbiAgTWlkZGxld2FyZVN0YWNrLFxuICBQbHVnZ2FibGUsXG4gIFJlcXVlc3RTZXJpYWxpemVyLFxuICBSZXNwb25zZURlc2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlIH0gZnJvbSBcIi4vZGVzZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuaW1wb3J0IHsgc2VyaWFsaXplck1pZGRsZXdhcmUgfSBmcm9tIFwiLi9zZXJpYWxpemVyTWlkZGxld2FyZVwiO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbjogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlXCIsXG4gIHN0ZXA6IFwiZGVzZXJpYWxpemVcIixcbiAgdGFnczogW1wiREVTRVJJQUxJWkVSXCJdLFxufTtcblxuZXhwb3J0IGNvbnN0IHNlcmlhbGl6ZXJNaWRkbGV3YXJlT3B0aW9uOiBTZXJpYWxpemVIYW5kbGVyT3B0aW9ucyA9IHtcbiAgbmFtZTogXCJzZXJpYWxpemVyTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcInNlcmlhbGl6ZVwiLFxuICB0YWdzOiBbXCJTRVJJQUxJWkVSXCJdLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcmRlUGx1Z2luPFxuICBJbnB1dFR5cGUgZXh0ZW5kcyBvYmplY3QsXG4gIFNlckRlQ29udGV4dCBleHRlbmRzIEVuZHBvaW50QmVhcmVyLFxuICBPdXRwdXRUeXBlIGV4dGVuZHMgTWV0YWRhdGFCZWFyZXJcbj4oXG4gIGNvbmZpZzogU2VyRGVDb250ZXh0LFxuICBzZXJpYWxpemVyOiBSZXF1ZXN0U2VyaWFsaXplcjxhbnksIFNlckRlQ29udGV4dD4sXG4gIGRlc2VyaWFsaXplcjogUmVzcG9uc2VEZXNlcmlhbGl6ZXI8T3V0cHV0VHlwZSwgYW55LCBTZXJEZUNvbnRleHQ+XG4pOiBQbHVnZ2FibGU8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPiB7XG4gIHJldHVybiB7XG4gICAgYXBwbHlUb1N0YWNrOiAoY29tbWFuZFN0YWNrOiBNaWRkbGV3YXJlU3RhY2s8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPikgPT4ge1xuICAgICAgY29tbWFuZFN0YWNrLmFkZChkZXNlcmlhbGl6ZXJNaWRkbGV3YXJlKGNvbmZpZywgZGVzZXJpYWxpemVyKSwgZGVzZXJpYWxpemVyTWlkZGxld2FyZU9wdGlvbik7XG4gICAgICBjb21tYW5kU3RhY2suYWRkKHNlcmlhbGl6ZXJNaWRkbGV3YXJlKGNvbmZpZywgc2VyaWFsaXplciksIHNlcmlhbGl6ZXJNaWRkbGV3YXJlT3B0aW9uKTtcbiAgICB9LFxuICB9O1xufVxuIl19 42503 42504/***/ }), 42505
vendor: 2,933 bytes, lines 42506-42536
42506/***/ "./node_modules/@aws-sdk/middleware-serde/dist/cjs/serializerMiddleware.js": 42507/*!*********************************************************************************!*\ 42508 !*** ./node_modules/@aws-sdk/middleware-serde/dist/cjs/serializerMiddleware.js ***! 42509 \*********************************************************************************/ 42510/*! no static exports found */ 42511/***/ (function(module, exports, __webpack_require__) { 42512 42513"use strict"; 42514 42515Object.defineProperty(exports, "__esModule", { value: true }); 42516exports.serializerMiddleware = void 0; 42517var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42518function serializerMiddleware(options, serializer) { 42519 var _this = this; 42520 return function (next) { return function (args) { return tslib_1.__awaiter(_this, void 0, void 0, function () { 42521 var request; 42522 return tslib_1.__generator(this, function (_a) { 42523 switch (_a.label) { 42524 case 0: return [4 /*yield*/, serializer(args.input, options)]; 42525 case 1: 42526 request = _a.sent(); 42527 return [2 /*return*/, next(tslib_1.__assign(tslib_1.__assign({}, args), { request: request }))]; 42528 } 42529 }); 42530 }); }; }; 42531} 42532exports.serializerMiddleware = serializerMiddleware; 42533//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplck1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplck1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQVNBLFNBQWdCLG9CQUFvQixDQUNsQyxPQUFxQixFQUNyQixVQUFnRDtJQUZsRCxpQkFhQztJQVRDLE9BQU8sVUFBQyxJQUFxQyxJQUFzQyxPQUFBLFVBQ2pGLElBQXNDOzs7O3dCQUV0QixxQkFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBQTs7b0JBQS9DLE9BQU8sR0FBRyxTQUFxQztvQkFDckQsc0JBQU8sSUFBSSx1Q0FDTixJQUFJLEtBQ1AsT0FBTyxTQUFBLElBQ1AsRUFBQzs7O1NBQ0osRUFSa0YsQ0FRbEYsQ0FBQztBQUNKLENBQUM7QUFiRCxvREFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVuZHBvaW50QmVhcmVyLFxuICBSZXF1ZXN0U2VyaWFsaXplcixcbiAgU2VyaWFsaXplSGFuZGxlcixcbiAgU2VyaWFsaXplSGFuZGxlckFyZ3VtZW50cyxcbiAgU2VyaWFsaXplSGFuZGxlck91dHB1dCxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVyTWlkZGxld2FyZTxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0LCBSdW50aW1lVXRpbHMgZXh0ZW5kcyBFbmRwb2ludEJlYXJlcj4oXG4gIG9wdGlvbnM6IFJ1bnRpbWVVdGlscyxcbiAgc2VyaWFsaXplcjogUmVxdWVzdFNlcmlhbGl6ZXI8YW55LCBSdW50aW1lVXRpbHM+XG4pOiBTZXJpYWxpemVNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+IHtcbiAgcmV0dXJuIChuZXh0OiBTZXJpYWxpemVIYW5kbGVyPElucHV0LCBPdXRwdXQ+KTogU2VyaWFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PiA9PiBhc3luYyAoXG4gICAgYXJnczogU2VyaWFsaXplSGFuZGxlckFyZ3VtZW50czxJbnB1dD5cbiAgKTogUHJvbWlzZTxTZXJpYWxpemVIYW5kbGVyT3V0cHV0PE91dHB1dD4+ID0+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgc2VyaWFsaXplcihhcmdzLmlucHV0LCBvcHRpb25zKTtcbiAgICByZXR1cm4gbmV4dCh7XG4gICAgICAuLi5hcmdzLFxuICAgICAgcmVxdWVzdCxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ== 42534 42535/***/ }), 42536
vendor: 10,102 bytes, lines 42537-42601
42537/***/ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/configurations.js": 42538/*!*****************************************************************************!*\ 42539 !*** ./node_modules/@aws-sdk/middleware-signing/dist/cjs/configurations.js ***! 42540 \*****************************************************************************/ 42541/*! no static exports found */ 42542/***/ (function(module, exports, __webpack_require__) { 42543 42544"use strict"; 42545 42546Object.defineProperty(exports, "__esModule", { value: true }); 42547exports.resolveAwsAuthConfig = void 0; 42548var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42549var signature_v4_1 = __webpack_require__(/*! @aws-sdk/signature-v4 */ "./node_modules/@aws-sdk/signature-v4/dist/es/index.js"); 42550function resolveAwsAuthConfig(input) { 42551 var _this = this; 42552 var credentials = input.credentials || input.credentialDefaultProvider(input); 42553 var normalizedCreds = normalizeProvider(credentials); 42554 var _a = input.signingEscapePath, signingEscapePath = _a === void 0 ? true : _a, _b = input.systemClockOffset, systemClockOffset = _b === void 0 ? input.systemClockOffset || 0 : _b, sha256 = input.sha256; 42555 var signer; 42556 if (input.signer) { 42557 //if signer is supplied by user, normalize it to a function returning a promise for signer. 42558 signer = normalizeProvider(input.signer); 42559 } 42560 else { 42561 //construct a provider inferring signing from region. 42562 signer = function () { 42563 return normalizeProvider(input.region)() 42564 .then(function (region) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { 42565 switch (_a.label) { 42566 case 0: return [4 /*yield*/, input.regionInfoProvider(region)]; 42567 case 1: return [2 /*return*/, [(_a.sent()) || {}, region]]; 42568 } 42569 }); }); }) 42570 .then(function (_a) { 42571 var _b = tslib_1.__read(_a, 2), regionInfo = _b[0], region = _b[1]; 42572 var _c = regionInfo.signingRegion, signingRegion = _c === void 0 ? input.signingRegion : _c, _d = regionInfo.signingService, signingService = _d === void 0 ? input.signingName : _d; 42573 //update client's singing region and signing service config if they are resolved. 42574 //signing region resolving order: user supplied signingRegion -> endpoints.json inferred region -> client region 42575 input.signingRegion = input.signingRegion || signingRegion || region; 42576 input.signingName = input.signingName || signingService; 42577 return new signature_v4_1.SignatureV4({ 42578 credentials: normalizedCreds, 42579 region: input.signingRegion, 42580 service: input.signingName, 42581 sha256: sha256, 42582 uriEscapePath: signingEscapePath, 42583 }); 42584 }); 42585 }; 42586 } 42587 return tslib_1.__assign(tslib_1.__assign({}, input), { systemClockOffset: systemClockOffset, 42588 signingEscapePath: signingEscapePath, credentials: normalizedCreds, signer: signer }); 42589} 42590exports.resolveAwsAuthConfig = resolveAwsAuthConfig; 42591function normalizeProvider(input) { 42592 if (typeof input === "object") { 42593 var promisified_1 = Promise.resolve(input); 42594 return function () { return promisified_1; }; 42595 } 42596 return input; 42597} 42598//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHNEQUFvRDtBQTJDcEQsU0FBZ0Isb0JBQW9CLENBQUksS0FBa0Q7SUFBMUYsaUJBcUNDO0lBcENDLElBQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLEtBQVksQ0FBQyxDQUFDO0lBQ3ZGLElBQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLElBQUEsS0FBdUYsS0FBSyxrQkFBcEUsRUFBeEIsaUJBQWlCLG1CQUFHLElBQUksS0FBQSxFQUFFLEtBQTZELEtBQUssa0JBQWxCLEVBQWhELGlCQUFpQixtQkFBRyxLQUFLLENBQUMsaUJBQWlCLElBQUksQ0FBQyxLQUFBLEVBQUUsTUFBTSxHQUFLLEtBQUssT0FBVixDQUFXO0lBQ3JHLElBQUksTUFBK0IsQ0FBQztJQUNwQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDaEIsMkZBQTJGO1FBQzNGLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUM7U0FBTTtRQUNMLHFEQUFxRDtRQUNyRCxNQUFNLEdBQUc7WUFDUCxPQUFBLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtpQkFDOUIsSUFBSSxDQUFDLFVBQU8sTUFBTTs7NEJBQU8scUJBQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFBOzRCQUF4QyxzQkFBQSxDQUFDLENBQUMsU0FBc0MsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQXlCLEVBQUE7O3FCQUFBLENBQUM7aUJBQ3hHLElBQUksQ0FBQyxVQUFDLEVBQW9CO29CQUFwQixLQUFBLHFCQUFvQixFQUFuQixVQUFVLFFBQUEsRUFBRSxNQUFNLFFBQUE7Z0JBQ2hCLElBQUEsS0FBNEUsVUFBVSxjQUFuRCxFQUFuQyxhQUFhLG1CQUFHLEtBQUssQ0FBQyxhQUFhLEtBQUEsRUFBRSxLQUF1QyxVQUFVLGVBQWYsRUFBbEMsY0FBYyxtQkFBRyxLQUFLLENBQUMsV0FBVyxLQUFBLENBQWdCO2dCQUMvRixpRkFBaUY7Z0JBQ2pGLGdIQUFnSDtnQkFDaEgsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxJQUFJLGFBQWEsSUFBSSxNQUFNLENBQUM7Z0JBQ3JFLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUM7Z0JBRXhELE9BQU8sSUFBSSwwQkFBVyxDQUFDO29CQUNyQixXQUFXLEVBQUUsZUFBZTtvQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxhQUFhO29CQUMzQixPQUFPLEVBQUUsS0FBSyxDQUFDLFdBQVc7b0JBQzFCLE1BQU0sUUFBQTtvQkFDTixhQUFhLEVBQUUsaUJBQWlCO2lCQUNqQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUM7UUFoQkosQ0FnQkksQ0FBQztLQUNSO0lBRUQsNkNBQ0ssS0FBSyxLQUNSLGlCQUFpQixtQkFBQTtRQUNqQixpQkFBaUIsbUJBQUEsRUFDakIsV0FBVyxFQUFFLGVBQWUsRUFDNUIsTUFBTSxRQUFBLElBQ047QUFDSixDQUFDO0FBckNELG9EQXFDQztBQUVELFNBQVMsaUJBQWlCLENBQUksS0FBc0I7SUFDbEQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsSUFBTSxhQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxPQUFPLGNBQU0sT0FBQSxhQUFXLEVBQVgsQ0FBVyxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxLQUFvQixDQUFDO0FBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYXR1cmVWNCB9IGZyb20gXCJAYXdzLXNkay9zaWduYXR1cmUtdjRcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxzLCBIYXNoQ29uc3RydWN0b3IsIFByb3ZpZGVyLCBSZWdpb25JbmZvLCBSZWdpb25JbmZvUHJvdmlkZXIsIFJlcXVlc3RTaWduZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBd3NBdXRoSW5wdXRDb25maWcge1xuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWxzIHVzZWQgdG8gc2lnbiByZXF1ZXN0cy5cbiAgICovXG4gIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHMgfCBQcm92aWRlcjxDcmVkZW50aWFscz47XG5cbiAgLyoqXG4gICAqIFRoZSBzaWduZXIgdG8gdXNlIHdoZW4gc2lnbmluZyByZXF1ZXN0cy5cbiAgICovXG4gIHNpZ25lcj86IFJlcXVlc3RTaWduZXIgfCBQcm92aWRlcjxSZXF1ZXN0U2lnbmVyPjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBlc2NhcGUgcmVxdWVzdCBwYXRoIHdoZW4gc2lnbmluZyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHNpZ25pbmdFc2NhcGVQYXRoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQW4gb2Zmc2V0IHZhbHVlIGluIG1pbGxpc2Vjb25kcyB0byBhcHBseSB0byBhbGwgc2lnbmluZyB0aW1lcy5cbiAgICovXG4gIHN5c3RlbUNsb2NrT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHdoZXJlIHlvdSB3YW50IHRvIHNpZ24geW91ciByZXF1ZXN0IGFnYWluc3QuIFRoaXNcbiAgICogY2FuIGJlIGRpZmZlcmVudCB0byB0aGUgcmVnaW9uIGluIHRoZSBlbmRwb2ludC5cbiAgICovXG4gIHNpZ25pbmdSZWdpb24/OiBzdHJpbmc7XG59XG5pbnRlcmZhY2UgUHJldmlvdXNseVJlc29sdmVkIHtcbiAgY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcjogKGlucHV0OiBhbnkpID0+IFByb3ZpZGVyPENyZWRlbnRpYWxzPjtcbiAgcmVnaW9uOiBzdHJpbmcgfCBQcm92aWRlcjxzdHJpbmc+O1xuICByZWdpb25JbmZvUHJvdmlkZXI6IFJlZ2lvbkluZm9Qcm92aWRlcjtcbiAgc2lnbmluZ05hbWU6IHN0cmluZztcbiAgc2hhMjU2OiBIYXNoQ29uc3RydWN0b3I7XG59XG5leHBvcnQgaW50ZXJmYWNlIEF3c0F1dGhSZXNvbHZlZENvbmZpZyB7XG4gIGNyZWRlbnRpYWxzOiBQcm92aWRlcjxDcmVkZW50aWFscz47XG4gIHNpZ25lcjogUHJvdmlkZXI8UmVxdWVzdFNpZ25lcj47XG4gIHNpZ25pbmdFc2NhcGVQYXRoOiBib29sZWFuO1xuICBzeXN0ZW1DbG9ja09mZnNldDogbnVtYmVyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBd3NBdXRoQ29uZmlnPFQ+KGlucHV0OiBUICYgQXdzQXV0aElucHV0Q29uZmlnICYgUHJldmlvdXNseVJlc29sdmVkKTogVCAmIEF3c0F1dGhSZXNvbHZlZENvbmZpZyB7XG4gIGNvbnN0IGNyZWRlbnRpYWxzID0gaW5wdXQuY3JlZGVudGlhbHMgfHwgaW5wdXQuY3JlZGVudGlhbERlZmF1bHRQcm92aWRlcihpbnB1dCBhcyBhbnkpO1xuICBjb25zdCBub3JtYWxpemVkQ3JlZHMgPSBub3JtYWxpemVQcm92aWRlcihjcmVkZW50aWFscyk7XG4gIGNvbnN0IHsgc2lnbmluZ0VzY2FwZVBhdGggPSB0cnVlLCBzeXN0ZW1DbG9ja09mZnNldCA9IGlucHV0LnN5c3RlbUNsb2NrT2Zmc2V0IHx8IDAsIHNoYTI1NiB9ID0gaW5wdXQ7XG4gIGxldCBzaWduZXI6IFByb3ZpZGVyPFJlcXVlc3RTaWduZXI+O1xuICBpZiAoaW5wdXQuc2lnbmVyKSB7XG4gICAgLy9pZiBzaWduZXIgaXMgc3VwcGxpZWQgYnkgdXNlciwgbm9ybWFsaXplIGl0IHRvIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgcHJvbWlzZSBmb3Igc2lnbmVyLlxuICAgIHNpZ25lciA9IG5vcm1hbGl6ZVByb3ZpZGVyKGlucHV0LnNpZ25lcik7XG4gIH0gZWxzZSB7XG4gICAgLy9jb25zdHJ1Y3QgYSBwcm92aWRlciBpbmZlcnJpbmcgc2lnbmluZyBmcm9tIHJlZ2lvbi5cbiAgICBzaWduZXIgPSAoKSA9PlxuICAgICAgbm9ybWFsaXplUHJvdmlkZXIoaW5wdXQucmVnaW9uKSgpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZWdpb24pID0+IFsoYXdhaXQgaW5wdXQucmVnaW9uSW5mb1Byb3ZpZGVyKHJlZ2lvbikpIHx8IHt9LCByZWdpb25dIGFzIFtSZWdpb25JbmZvLCBzdHJpbmddKVxuICAgICAgICAudGhlbigoW3JlZ2lvbkluZm8sIHJlZ2lvbl0pID0+IHtcbiAgICAgICAgICBjb25zdCB7IHNpZ25pbmdSZWdpb24gPSBpbnB1dC5zaWduaW5nUmVnaW9uLCBzaWduaW5nU2VydmljZSA9IGlucHV0LnNpZ25pbmdOYW1lIH0gPSByZWdpb25JbmZvO1xuICAgICAgICAgIC8vdXBkYXRlIGNsaWVudCdzIHNpbmdpbmcgcmVnaW9uIGFuZCBzaWduaW5nIHNlcnZpY2UgY29uZmlnIGlmIHRoZXkgYXJlIHJlc29sdmVkLlxuICAgICAgICAgIC8vc2lnbmluZyByZWdpb24gcmVzb2x2aW5nIG9yZGVyOiB1c2VyIHN1cHBsaWVkIHNpZ25pbmdSZWdpb24gLT4gZW5kcG9pbnRzLmpzb24gaW5mZXJyZWQgcmVnaW9uIC0+IGNsaWVudCByZWdpb25cbiAgICAgICAgICBpbnB1dC5zaWduaW5nUmVnaW9uID0gaW5wdXQuc2lnbmluZ1JlZ2lvbiB8fCBzaWduaW5nUmVnaW9uIHx8IHJlZ2lvbjtcbiAgICAgICAgICBpbnB1dC5zaWduaW5nTmFtZSA9IGlucHV0LnNpZ25pbmdOYW1lIHx8IHNpZ25pbmdTZXJ2aWNlO1xuXG4gICAgICAgICAgcmV0dXJuIG5ldyBTaWduYXR1cmVWNCh7XG4gICAgICAgICAgICBjcmVkZW50aWFsczogbm9ybWFsaXplZENyZWRzLFxuICAgICAgICAgICAgcmVnaW9uOiBpbnB1dC5zaWduaW5nUmVnaW9uLFxuICAgICAgICAgICAgc2VydmljZTogaW5wdXQuc2lnbmluZ05hbWUsXG4gICAgICAgICAgICBzaGEyNTYsXG4gICAgICAgICAgICB1cmlFc2NhcGVQYXRoOiBzaWduaW5nRXNjYXBlUGF0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIHN5c3RlbUNsb2NrT2Zmc2V0LFxuICAgIHNpZ25pbmdFc2NhcGVQYXRoLFxuICAgIGNyZWRlbnRpYWxzOiBub3JtYWxpemVkQ3JlZHMsXG4gICAgc2lnbmVyLFxuICB9O1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVQcm92aWRlcjxUPihpbnB1dDogVCB8IFByb3ZpZGVyPFQ+KTogUHJvdmlkZXI8VD4ge1xuICBpZiAodHlwZW9mIGlucHV0ID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgcHJvbWlzaWZpZWQgPSBQcm9taXNlLnJlc29sdmUoaW5wdXQpO1xuICAgIHJldHVybiAoKSA9PiBwcm9taXNpZmllZDtcbiAgfVxuICByZXR1cm4gaW5wdXQgYXMgUHJvdmlkZXI8VD47XG59XG4iXX0= 42599 42600/***/ }), 42601
vendor: 1,195 bytes, lines 42602-42618
42602/***/ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js": 42603/*!********************************************************************!*\ 42604 !*** ./node_modules/@aws-sdk/middleware-signing/dist/cjs/index.js ***! 42605 \********************************************************************/ 42606/*! no static exports found */ 42607/***/ (function(module, exports, __webpack_require__) { 42608 42609"use strict"; 42610 42611Object.defineProperty(exports, "__esModule", { value: true }); 42612var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42613tslib_1.__exportStar(__webpack_require__(/*! ./configurations */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/configurations.js"), exports); 42614tslib_1.__exportStar(__webpack_require__(/*! ./middleware */ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/middleware.js"), exports); 42615//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQWlDO0FBQ2pDLHVEQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9taWRkbGV3YXJlXCI7XG4iXX0= 42616 42617/***/ }), 42618
vendor: 9,168 bytes, lines 42619-42696
42619/***/ "./node_modules/@aws-sdk/middleware-signing/dist/cjs/middleware.js": 42620/*!*************************************************************************!*\ 42621 !*** ./node_modules/@aws-sdk/middleware-signing/dist/cjs/middleware.js ***! 42622 \*************************************************************************/ 42623/*! no static exports found */ 42624/***/ (function(module, exports, __webpack_require__) { 42625 42626"use strict"; 42627 42628Object.defineProperty(exports, "__esModule", { value: true }); 42629exports.getAwsAuthPlugin = exports.awsAuthMiddlewareOptions = exports.awsAuthMiddleware = void 0; 42630var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42631var protocol_http_1 = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 42632var isClockSkewed = function (newServerTime, systemClockOffset) { 42633 return Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - newServerTime) >= 300000; 42634}; 42635var getSkewCorrectedDate = function (systemClockOffset) { return new Date(Date.now() + systemClockOffset); }; 42636function awsAuthMiddleware(options) { 42637 return function (next) { 42638 return function (args) { 42639 return tslib_1.__awaiter(this, void 0, void 0, function () { 42640 var signer, _a, output, _b, _c, _d, headers, dateHeader, serverTime; 42641 return tslib_1.__generator(this, function (_e) { 42642 switch (_e.label) { 42643 case 0: 42644 if (!protocol_http_1.HttpRequest.isInstance(args.request)) 42645 return [2 /*return*/, next(args)]; 42646 if (!(typeof options.signer === "function")) return [3 /*break*/, 2]; 42647 return [4 /*yield*/, options.signer()]; 42648 case 1: 42649 _a = _e.sent(); 42650 return [3 /*break*/, 3]; 42651 case 2: 42652 _a = options.signer; 42653 _e.label = 3; 42654 case 3: 42655 signer = _a; 42656 _b = next; 42657 _c = [tslib_1.__assign({}, args)]; 42658 _d = {}; 42659 return [4 /*yield*/, signer.sign(args.request, { 42660 signingDate: new Date(Date.now() + options.systemClockOffset), 42661 })]; 42662 case 4: return [4 /*yield*/, _b.apply(void 0, [tslib_1.__assign.apply(void 0, _c.concat([(_d.request = _e.sent(), _d)]))])]; 42663 case 5: 42664 output = _e.sent(); 42665 headers = output.response.headers; 42666 dateHeader = headers && (headers.date || headers.Date); 42667 if (dateHeader) { 42668 serverTime = Date.parse(dateHeader); 42669 if (isClockSkewed(serverTime, options.systemClockOffset)) { 42670 options.systemClockOffset = serverTime - Date.now(); 42671 } 42672 } 42673 return [2 /*return*/, output]; 42674 } 42675 }); 42676 }); 42677 }; 42678 }; 42679} 42680exports.awsAuthMiddleware = awsAuthMiddleware; 42681exports.awsAuthMiddlewareOptions = { 42682 name: "awsAuthMiddleware", 42683 step: "finalizeRequest", 42684 tags: ["SIGNATURE", "AWSAUTH"], 42685 relation: "after", 42686 toMiddleware: "retryMiddleware", 42687}; 42688exports.getAwsAuthPlugin = function (options) { return ({ 42689 applyToStack: function (clientStack) { 42690 clientStack.addRelativeTo(awsAuthMiddleware(options), exports.awsAuthMiddlewareOptions); 42691 }, 42692}); }; 42693//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx3REFBcUQ7QUFhckQsSUFBTSxhQUFhLEdBQUcsVUFBQyxhQUFxQixFQUFFLGlCQUF5QjtJQUNyRSxPQUFBLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUMsSUFBSSxNQUFNO0FBQXJGLENBQXFGLENBQUM7QUFFeEYsSUFBTSxvQkFBb0IsR0FBRyxVQUFDLGlCQUF5QixJQUFLLE9BQUEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLGlCQUFpQixDQUFDLEVBQXhDLENBQXdDLENBQUM7QUFFckcsU0FBZ0IsaUJBQWlCLENBQy9CLE9BQThCO0lBRTlCLE9BQU8sVUFBQyxJQUFvQztRQUMxQyxPQUFBLFVBQWdCLElBQXFDOzs7Ozs7NEJBQ25ELElBQUksQ0FBQywyQkFBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dDQUFFLHNCQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQztpQ0FDOUMsQ0FBQSxPQUFPLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFBLEVBQXBDLHdCQUFvQzs0QkFBRyxxQkFBTSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUE7OzRCQUF0QixLQUFBLFNBQXNCLENBQUE7Ozs0QkFBRyxLQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUE7Ozs0QkFBdkYsTUFBTSxLQUFpRjs0QkFDeEUsS0FBQSxJQUFJLENBQUE7dURBQ3BCLElBQUk7OzRCQUNFLHFCQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQ0FDdkMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUM7aUNBQzlELENBQUMsRUFBQTtnQ0FKVyxxQkFBTSw2REFFbkIsVUFBTyxHQUFFLFNBRVAsVUFDRixFQUFBOzs0QkFMSSxNQUFNLEdBQUcsU0FLYjs0QkFFTSxPQUFPLEdBQUssTUFBTSxDQUFDLFFBQWUsUUFBM0IsQ0FBNEI7NEJBQ3JDLFVBQVUsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDN0QsSUFBSSxVQUFVLEVBQUU7Z0NBQ1IsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0NBQzFDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQ0FDeEQsT0FBTyxDQUFDLGlCQUFpQixHQUFHLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7aUNBQ3JEOzZCQUNGOzRCQUVELHNCQUFPLE1BQU0sRUFBQzs7OztTQUNmO0lBcEJELENBb0JDLENBQUM7QUFDTixDQUFDO0FBekJELDhDQXlCQztBQUVZLFFBQUEsd0JBQXdCLEdBQStEO0lBQ2xHLElBQUksRUFBRSxtQkFBbUI7SUFDekIsSUFBSSxFQUFFLGlCQUFpQjtJQUN2QixJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO0lBQzlCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLFlBQVksRUFBRSxpQkFBaUI7Q0FDaEMsQ0FBQztBQUVXLFFBQUEsZ0JBQWdCLEdBQUcsVUFBQyxPQUE4QixJQUEwQixPQUFBLENBQUM7SUFDeEYsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLGdDQUF3QixDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNGLENBQUMsRUFKdUYsQ0FJdkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEZpbmFsaXplSGFuZGxlcixcbiAgRmluYWxpemVIYW5kbGVyQXJndW1lbnRzLFxuICBGaW5hbGl6ZUhhbmRsZXJPdXRwdXQsXG4gIEZpbmFsaXplUmVxdWVzdEhhbmRsZXJPcHRpb25zLFxuICBGaW5hbGl6ZVJlcXVlc3RNaWRkbGV3YXJlLFxuICBQbHVnZ2FibGUsXG4gIFJlbGF0aXZlTG9jYXRpb24sXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBBd3NBdXRoUmVzb2x2ZWRDb25maWcgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc1wiO1xuXG5jb25zdCBpc0Nsb2NrU2tld2VkID0gKG5ld1NlcnZlclRpbWU6IG51bWJlciwgc3lzdGVtQ2xvY2tPZmZzZXQ6IG51bWJlcikgPT5cbiAgTWF0aC5hYnMoZ2V0U2tld0NvcnJlY3RlZERhdGUoc3lzdGVtQ2xvY2tPZmZzZXQpLmdldFRpbWUoKSAtIG5ld1NlcnZlclRpbWUpID49IDMwMDAwMDtcblxuY29uc3QgZ2V0U2tld0NvcnJlY3RlZERhdGUgPSAoc3lzdGVtQ2xvY2tPZmZzZXQ6IG51bWJlcikgPT4gbmV3IERhdGUoRGF0ZS5ub3coKSArIHN5c3RlbUNsb2NrT2Zmc2V0KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGF3c0F1dGhNaWRkbGV3YXJlPElucHV0IGV4dGVuZHMgb2JqZWN0LCBPdXRwdXQgZXh0ZW5kcyBvYmplY3Q+KFxuICBvcHRpb25zOiBBd3NBdXRoUmVzb2x2ZWRDb25maWdcbik6IEZpbmFsaXplUmVxdWVzdE1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4ge1xuICByZXR1cm4gKG5leHQ6IEZpbmFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0Pik6IEZpbmFsaXplSGFuZGxlcjxJbnB1dCwgT3V0cHV0PiA9PlxuICAgIGFzeW5jIGZ1bmN0aW9uIChhcmdzOiBGaW5hbGl6ZUhhbmRsZXJBcmd1bWVudHM8SW5wdXQ+KTogUHJvbWlzZTxGaW5hbGl6ZUhhbmRsZXJPdXRwdXQ8T3V0cHV0Pj4ge1xuICAgICAgaWYgKCFIdHRwUmVxdWVzdC5pc0luc3RhbmNlKGFyZ3MucmVxdWVzdCkpIHJldHVybiBuZXh0KGFyZ3MpO1xuICAgICAgY29uc3Qgc2lnbmVyID0gdHlwZW9mIG9wdGlvbnMuc2lnbmVyID09PSBcImZ1bmN0aW9uXCIgPyBhd2FpdCBvcHRpb25zLnNpZ25lcigpIDogb3B0aW9ucy5zaWduZXI7XG4gICAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBuZXh0KHtcbiAgICAgICAgLi4uYXJncyxcbiAgICAgICAgcmVxdWVzdDogYXdhaXQgc2lnbmVyLnNpZ24oYXJncy5yZXF1ZXN0LCB7XG4gICAgICAgICAgc2lnbmluZ0RhdGU6IG5ldyBEYXRlKERhdGUubm93KCkgKyBvcHRpb25zLnN5c3RlbUNsb2NrT2Zmc2V0KSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgeyBoZWFkZXJzIH0gPSBvdXRwdXQucmVzcG9uc2UgYXMgYW55O1xuICAgICAgY29uc3QgZGF0ZUhlYWRlciA9IGhlYWRlcnMgJiYgKGhlYWRlcnMuZGF0ZSB8fCBoZWFkZXJzLkRhdGUpO1xuICAgICAgaWYgKGRhdGVIZWFkZXIpIHtcbiAgICAgICAgY29uc3Qgc2VydmVyVGltZSA9IERhdGUucGFyc2UoZGF0ZUhlYWRlcik7XG4gICAgICAgIGlmIChpc0Nsb2NrU2tld2VkKHNlcnZlclRpbWUsIG9wdGlvbnMuc3lzdGVtQ2xvY2tPZmZzZXQpKSB7XG4gICAgICAgICAgb3B0aW9ucy5zeXN0ZW1DbG9ja09mZnNldCA9IHNlcnZlclRpbWUgLSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGF3c0F1dGhNaWRkbGV3YXJlT3B0aW9uczogRmluYWxpemVSZXF1ZXN0SGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uPGFueSwgYW55PiA9IHtcbiAgbmFtZTogXCJhd3NBdXRoTWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImZpbmFsaXplUmVxdWVzdFwiLFxuICB0YWdzOiBbXCJTSUdOQVRVUkVcIiwgXCJBV1NBVVRIXCJdLFxuICByZWxhdGlvbjogXCJhZnRlclwiLFxuICB0b01pZGRsZXdhcmU6IFwicmV0cnlNaWRkbGV3YXJlXCIsXG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXdzQXV0aFBsdWdpbiA9IChvcHRpb25zOiBBd3NBdXRoUmVzb2x2ZWRDb25maWcpOiBQbHVnZ2FibGU8YW55LCBhbnk+ID0+ICh7XG4gIGFwcGx5VG9TdGFjazogKGNsaWVudFN0YWNrKSA9PiB7XG4gICAgY2xpZW50U3RhY2suYWRkUmVsYXRpdmVUbyhhd3NBdXRoTWlkZGxld2FyZShvcHRpb25zKSwgYXdzQXV0aE1pZGRsZXdhcmVPcHRpb25zKTtcbiAgfSxcbn0pO1xuIl19 42694 42695/***/ }), 42696
vendor: 50,833 bytes, lines 42697-43054
42697/***/ "./node_modules/@aws-sdk/middleware-stack/dist/cjs/MiddlewareStack.js": 42698/*!****************************************************************************!*\ 42699 !*** ./node_modules/@aws-sdk/middleware-stack/dist/cjs/MiddlewareStack.js ***! 42700 \****************************************************************************/ 42701/*! no static exports found */ 42702/***/ (function(module, exports, __webpack_require__) { 42703 42704"use strict"; 42705 42706Object.defineProperty(exports, "__esModule", { value: true }); 42707exports.MiddlewareStack = void 0; 42708var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 42709var MiddlewareStack = /** @class */ (function () { 42710 function MiddlewareStack() { 42711 this.absoluteEntries = []; 42712 this.relativeEntries = []; 42713 this.entriesNameMap = {}; 42714 } 42715 MiddlewareStack.prototype.add = function (middleware, options) { 42716 if (options === void 0) { options = {}; } 42717 var name = options.name, _a = options.step, step = _a === void 0 ? "initialize" : _a, tags = options.tags, _b = options.priority, priority = _b === void 0 ? "normal" : _b; 42718 var entry = { 42719 name: name, 42720 step: step, 42721 tags: tags, 42722 priority: priority, 42723 middleware: middleware, 42724 }; 42725 if (name) { 42726 if (Object.prototype.hasOwnProperty.call(this.entriesNameMap, name)) { 42727 throw new Error("Duplicated middleware name '" + name + "'"); 42728 } 42729 this.entriesNameMap[name] = entry; 42730 } 42731 this.absoluteEntries.push(entry); 42732 }; 42733 MiddlewareStack.prototype.addRelativeTo = function (middleware, options) { 42734 var _a = options.step, step = _a === void 0 ? "initialize" : _a, name = options.name, tags = options.tags, relation = options.relation, toMiddleware = options.toMiddleware; 42735 var entry = { 42736 middleware: middleware, 42737 step: step, 42738 name: name, 42739 tags: tags, 42740 next: relation === "before" ? toMiddleware : undefined, 42741 prev: relation === "after" ? toMiddleware : undefined, 42742 }; 42743 if (name) { 42744 if (Object.prototype.hasOwnProperty.call(this.entriesNameMap, name)) { 42745 throw new Error("Duplicated middleware name '" + name + "'"); 42746 } 42747 this.entriesNameMap[name] = entry; 42748 } 42749 this.relativeEntries.push(entry); 42750 }; 42751 MiddlewareStack.prototype.sort = function (entries) { 42752 //reverse before sorting so that middleware of same step will execute in 42753 //the order of being added 42754 return entries.sort(function (a, b) { 42755 return stepWeights[b.step] - stepWeights[a.step] || 42756 priorityWeights[b.priority || "normal"] - priorityWeights[a.priority || "normal"]; 42757 }); 42758 }; 42759 MiddlewareStack.prototype.clone = function () { 42760 var _a, _b; 42761 var clone = new MiddlewareStack(); 42762 (_a = clone.absoluteEntries).push.apply(_a, tslib_1.__spread(this.absoluteEntries)); 42763 (_b = clone.relativeEntries).push.apply(_b, tslib_1.__spread(this.relativeEntries)); 42764 clone.entriesNameMap = tslib_1.__assign({}, this.entriesNameMap); 42765 return clone; 42766 }; 42767 MiddlewareStack.prototype.concat = function (from) { 42768 var _a, _b; 42769 var clone = new MiddlewareStack(); 42770 clone.entriesNameMap = tslib_1.__assign({}, this.entriesNameMap); 42771 // IMiddlewareStack interface doesn't contain private members variables 42772 // like `entriesNameMap`, but in fact the function expects `MiddlewareStack` 42773 // class instance. So here we cast it. 42774 var _from = from; 42775 for (var name in _from.entriesNameMap) { 42776 if (clone.entriesNameMap[name]) { 42777 throw new Error("Duplicated middleware name '" + name + "'"); 42778 } 42779 clone.entriesNameMap[name] = _from.entriesNameMap[name]; 42780 } 42781 (_a = clone.absoluteEntries).push.apply(_a, tslib_1.__spread(this.absoluteEntries, _from.absoluteEntries)); 42782 (_b = clone.relativeEntries).push.apply(_b, tslib_1.__spread(this.relativeEntries, _from.relativeEntries)); 42783 return clone; 42784 }; 42785 MiddlewareStack.prototype.remove = function (toRemove) { 42786 if (typeof toRemove === "string") 42787 return this.removeByName(toRemove); 42788 else 42789 return this.removeByReference(toRemove); 42790 }; 42791 MiddlewareStack.prototype.removeByName = function (toRemove) { 42792 for (var i = this.absoluteEntries.length - 1; i >= 0; i--) { 42793 if (this.absoluteEntries[i].name && this.absoluteEntries[i].name === toRemove) { 42794 this.absoluteEntries.splice(i, 1); 42795 delete this.entriesNameMap[toRemove]; 42796 return true; 42797 } 42798 } 42799 for (var i = this.relativeEntries.length - 1; i >= 0; i--) { 42800 if (this.relativeEntries[i].name && this.relativeEntries[i].name === toRemove) { 42801 this.relativeEntries.splice(i, 1); 42802 delete this.entriesNameMap[toRemove]; 42803 return true; 42804 } 42805 } 42806 return false; 42807 }; 42808 MiddlewareStack.prototype.removeByReference = function (toRemove) { 42809 for (var i = this.absoluteEntries.length - 1; i >= 0; i--) { 42810 if (this.absoluteEntries[i].middleware === toRemove) { 42811 var name = this.absoluteEntries[i].name; 42812 if (name) 42813 delete this.entriesNameMap[name]; 42814 this.absoluteEntries.splice(i, 1); 42815 return true; 42816 } 42817 } 42818 for (var i = this.relativeEntries.length - 1; i >= 0; i--) { 42819 if (this.relativeEntries[i].middleware === toRemove) { 42820 var name = this.relativeEntries[i].name; 42821 if (name) 42822 delete this.entriesNameMap[name]; 42823 this.relativeEntries.splice(i, 1); 42824 return true; 42825 } 42826 } 42827 return false; 42828 }; 42829 MiddlewareStack.prototype.removeByTag = function (toRemove) { 42830 var removed = false; 42831 for (var i = this.absoluteEntries.length - 1; i >= 0; i--) { 42832 var _a = this.absoluteEntries[i], tags = _a.tags, name = _a.name; 42833 if (tags && tags.indexOf(toRemove) > -1) { 42834 this.absoluteEntries.splice(i, 1); 42835 if (name) 42836 delete this.entriesNameMap[name]; 42837 removed = true; 42838 } 42839 } 42840 for (var i = this.relativeEntries.length - 1; i >= 0; i--) { 42841 var _b = this.relativeEntries[i], tags = _b.tags, name = _b.name; 42842 if (tags && tags.indexOf(toRemove) > -1) { 42843 this.relativeEntries.splice(i, 1); 42844 if (name) 42845 delete this.entriesNameMap[name]; 42846 removed = true; 42847 } 42848 } 42849 return removed; 42850 }; 42851 MiddlewareStack.prototype.use = function (plugin) { 42852 plugin.applyToStack(this); 42853 }; 42854 /** 42855 * Resolve relative middleware entries to multiple double linked lists 42856 * depicting the relative location of middleware. Only middleware that have 42857 * direct or transitive relation will form a linked list. 42858 * 42859 * This function normalizes relative middleware into 2 categories of linked 42860 * lists. (1) linked list that have absolute-located middleware on one end. 42861 * These middleware will be resolved accordingly before or after the absolute- 42862 * located middleware. (2) Linked list that have no absolute-located middleware 42863 * on any end. They will be resolved to corresponding step with normal priority 42864 * 42865 * The 2 types of linked list will return as a tuple 42866 */ 42867 MiddlewareStack.prototype.normalizeRelativeEntries = function () { 42868 var e_1, _a; 42869 var absoluteMiddlewareNamesMap = this.absoluteEntries 42870 .filter(function (entry) { return entry.name; }) 42871 .reduce(function (accumulator, entry) { 42872 accumulator[entry.name] = entry; 42873 return accumulator; 42874 }, {}); 42875 var normalized = this.relativeEntries.map(function (entry) { 42876 return (tslib_1.__assign(tslib_1.__assign({}, entry), { priority: null, next: undefined, prev: undefined })); 42877 }); 42878 var relativeMiddlewareNamesMap = normalized 42879 .filter(function (entry) { return entry.name; }) 42880 .reduce(function (accumulator, entry) { 42881 accumulator[entry.name] = entry; 42882 return accumulator; 42883 }, {}); 42884 var anchors = {}; 42885 for (var i = 0; i < this.relativeEntries.length; i++) { 42886 var _b = this.relativeEntries[i], prev = _b.prev, next = _b.next; 42887 var resolvedCurr = normalized[i]; 42888 //either prev or next is set 42889 if (prev) { 42890 if (absoluteMiddlewareNamesMap[prev] && absoluteMiddlewareNamesMap[prev].step === resolvedCurr.step) { 42891 if (!anchors[prev]) 42892 anchors[prev] = {}; 42893 resolvedCurr.next = anchors[prev].next; 42894 if (anchors[prev].next) 42895 anchors[prev].next.prev = resolvedCurr; 42896 anchors[prev].next = resolvedCurr; 42897 } 42898 else if (relativeMiddlewareNamesMap[prev] && relativeMiddlewareNamesMap[prev].step === resolvedCurr.step) { 42899 var resolvedPrev = relativeMiddlewareNamesMap[prev]; 42900 if (resolvedPrev.next === resolvedCurr) 42901 continue; 42902 resolvedCurr.next = resolvedPrev.next; 42903 resolvedPrev.next = resolvedCurr; 42904 if (resolvedCurr.next) 42905 resolvedCurr.next.prev = resolvedCurr; 42906 resolvedCurr.prev = resolvedPrev; 42907 } 42908 } 42909 else if (next) { 42910 if (absoluteMiddlewareNamesMap[next] && absoluteMiddlewareNamesMap[next].step === resolvedCurr.step) { 42911 if (!anchors[next]) 42912 anchors[next] = {}; 42913 resolvedCurr.prev = anchors[next].prev; 42914 if (anchors[next].prev) 42915 anchors[next].prev.next = resolvedCurr; 42916 anchors[next].prev = resolvedCurr; 42917 } 42918 else if (relativeMiddlewareNamesMap[next] && relativeMiddlewareNamesMap[next].step === resolvedCurr.step) { 42919 var resolvedNext = relativeMiddlewareNamesMap[next]; 42920 if (resolvedNext.prev === resolvedCurr) 42921 continue; 42922 resolvedCurr.prev = resolvedNext.prev; 42923 resolvedNext.prev = resolvedCurr; 42924 if (resolvedCurr.prev) 42925 resolvedCurr.prev.next = resolvedCurr; 42926 resolvedCurr.next = resolvedNext; 42927 } 42928 } 42929 } 42930 // get the head of the relative middleware linked list that have 42931 // no transitive relation to absolute middleware. 42932 var orphanedRelativeEntries = []; 42933 var visited = new WeakSet(); 42934 try { 42935 for (var _c = tslib_1.__values(Object.keys(anchors)), _d = _c.next(); !_d.done; _d = _c.next()) { 42936 var anchorName = _d.value; 42937 var _e = anchors[anchorName], prev = _e.prev, next = _e.next; 42938 while (prev) { 42939 visited.add(prev); 42940 prev = prev.prev; 42941 } 42942 while (next) { 42943 visited.add(next); 42944 next = next.next; 42945 } 42946 } 42947 } 42948 catch (e_1_1) { e_1 = { error: e_1_1 }; } 42949 finally { 42950 try { 42951 if (_d && !_d.done && (_a = _c.return)) _a.call(_c); 42952 } 42953 finally { if (e_1) throw e_1.error; } 42954 } 42955 for (var i = 0; i < normalized.length; i++) { 42956 var entry = normalized[i]; 42957 if (visited.has(entry)) 42958 continue; 42959 if (!entry.prev) 42960 orphanedRelativeEntries.push(entry); 42961 while (entry && !visited.has(entry)) { 42962 visited.add(entry); 42963 entry = entry.next; 42964 } 42965 } 42966 return [orphanedRelativeEntries, anchors]; 42967 }; 42968 /** 42969 * Get a final list of middleware in the order of being executed in the resolved handler. 42970 * If relative entries list is not empty, those entries will be added to final middleware 42971 * list with rules below: 42972 * 1. if `toMiddleware` exists in the specific `step`, the middleware will be inserted before 42973 * or after the specified `toMiddleware` 42974 * 2. if `toMiddleware` doesn't exist in the specific `step`, the middleware will be appended 42975 * to specific `step` with priority of `normal` 42976 */ 42977 MiddlewareStack.prototype.getMiddlewareList = function () { 42978 var e_2, _a; 42979 var middlewareList = []; 42980 var _b = tslib_1.__read(this.normalizeRelativeEntries(), 2), orphanedRelativeEntries = _b[0], anchors = _b[1]; 42981 var entryList = tslib_1.__spread(this.absoluteEntries, orphanedRelativeEntries); 42982 entryList = this.sort(entryList); 42983 try { 42984 for (var entryList_1 = tslib_1.__values(entryList), entryList_1_1 = entryList_1.next(); !entryList_1_1.done; entryList_1_1 = entryList_1.next()) { 42985 var entry = entryList_1_1.value; 42986 var defaultAnchorValue = { prev: undefined, next: undefined }; 42987 var _c = entry.name ? anchors[entry.name] || defaultAnchorValue : defaultAnchorValue, prev = _c.prev, next = _c.next; 42988 var relativeEntry = prev; 42989 //reverse relative entry linked list and add to ordered handler list 42990 while (relativeEntry === null || relativeEntry === void 0 ? void 0 : relativeEntry.prev) { 42991 relativeEntry = relativeEntry.prev; 42992 } 42993 while (relativeEntry) { 42994 middlewareList.push(relativeEntry.middleware); 42995 relativeEntry = relativeEntry.next; 42996 } 42997 middlewareList.push(entry.middleware); 42998 var orphanedEntry = entry; 42999 while (orphanedEntry.next) { 43000 middlewareList.push(orphanedEntry.next.middleware); 43001 orphanedEntry = orphanedEntry.next; 43002 } 43003 relativeEntry = next; 43004 while (relativeEntry) { 43005 middlewareList.push(relativeEntry.middleware); 43006 relativeEntry = relativeEntry.next; 43007 } 43008 } 43009 } 43010 catch (e_2_1) { e_2 = { error: e_2_1 }; } 43011 finally { 43012 try { 43013 if (entryList_1_1 && !entryList_1_1.done && (_a = entryList_1.return)) _a.call(entryList_1); 43014 } 43015 finally { if (e_2) throw e_2.error; } 43016 } 43017 return middlewareList.reverse(); 43018 }; 43019 MiddlewareStack.prototype.resolve = function (handler, context) { 43020 var e_3, _a; 43021 try { 43022 for (var _b = tslib_1.__values(this.getMiddlewareList()), _c = _b.next(); !_c.done; _c = _b.next()) { 43023 var middleware = _c.value; 43024 handler = middleware(handler, context); 43025 } 43026 } 43027 catch (e_3_1) { e_3 = { error: e_3_1 }; } 43028 finally { 43029 try { 43030 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 43031 } 43032 finally { if (e_3) throw e_3.error; } 43033 } 43034 return handler; 43035 }; 43036 return MiddlewareStack; 43037}()); 43038exports.MiddlewareStack = MiddlewareStack; 43039var stepWeights = { 43040 initialize: 5, 43041 serialize: 4, 43042 build: 3, 43043 finalizeRequest: 2, 43044 deserialize: 1, 43045}; 43046var priorityWeights = { 43047 high: 3, 43048 normal: 2, 43049 low: 1, 43050}; 43051//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlkZGxld2FyZVN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL01pZGRsZXdhcmVTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBb0NBO0lBQUE7UUFDbUIsb0JBQWUsR0FBMEMsRUFBRSxDQUFDO1FBQzVELG9CQUFlLEdBQWtELEVBQUUsQ0FBQztRQUM3RSxtQkFBYyxHQUVsQixFQUFFLENBQUM7SUFpVlQsQ0FBQztJQWxVQyw2QkFBRyxHQUFILFVBQUksVUFBeUMsRUFBRSxPQUErQztRQUEvQyx3QkFBQSxFQUFBLFlBQStDO1FBQ3BGLElBQUEsSUFBSSxHQUFxRCxPQUFPLEtBQTVELEVBQUUsS0FBbUQsT0FBTyxLQUF2QyxFQUFuQixJQUFJLG1CQUFHLFlBQVksS0FBQSxFQUFFLElBQUksR0FBMEIsT0FBTyxLQUFqQyxFQUFFLEtBQXdCLE9BQU8sU0FBWixFQUFuQixRQUFRLG1CQUFHLFFBQVEsS0FBQSxDQUFhO1FBQ3pFLElBQU0sS0FBSyxHQUFtQztZQUM1QyxJQUFJLE1BQUE7WUFDSixJQUFJLE1BQUE7WUFDSixJQUFJLE1BQUE7WUFDSixRQUFRLFVBQUE7WUFDUixVQUFVLFlBQUE7U0FDWCxDQUFDO1FBQ0YsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUErQixJQUFJLE1BQUcsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBMkJELHVDQUFhLEdBQWIsVUFDRSxVQUF5QyxFQUN6QyxPQUF5RDtRQUVqRCxJQUFBLEtBQTRELE9BQU8sS0FBaEQsRUFBbkIsSUFBSSxtQkFBRyxZQUFZLEtBQUEsRUFBRSxJQUFJLEdBQW1DLE9BQU8sS0FBMUMsRUFBRSxJQUFJLEdBQTZCLE9BQU8sS0FBcEMsRUFBRSxRQUFRLEdBQW1CLE9BQU8sU0FBMUIsRUFBRSxZQUFZLEdBQUssT0FBTyxhQUFaLENBQWE7UUFDNUUsSUFBTSxLQUFLLEdBQTJDO1lBQ3BELFVBQVUsWUFBQTtZQUNWLElBQUksTUFBQTtZQUNKLElBQUksTUFBQTtZQUNKLElBQUksTUFBQTtZQUNKLElBQUksRUFBRSxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDdEQsSUFBSSxFQUFFLFFBQVEsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN0RCxDQUFDO1FBQ0YsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUErQixJQUFJLE1BQUcsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU8sOEJBQUksR0FBWixVQUNFLE9BQXVGO1FBRXZGLHdFQUF3RTtRQUN4RSwwQkFBMEI7UUFDMUIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixVQUFDLENBQUMsRUFBRSxDQUFDO1lBQ0gsT0FBQSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUM7UUFEakYsQ0FDaUYsQ0FDcEYsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBSyxHQUFMOztRQUNFLElBQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUFpQixDQUFDO1FBQ25ELENBQUEsS0FBQSxLQUFLLENBQUMsZUFBZSxDQUFBLENBQUMsSUFBSSw0QkFBSSxJQUFJLENBQUMsZUFBZSxHQUFFO1FBQ3BELENBQUEsS0FBQSxLQUFLLENBQUMsZUFBZSxDQUFBLENBQUMsSUFBSSw0QkFBSSxJQUFJLENBQUMsZUFBZSxHQUFFO1FBQ3BELEtBQUssQ0FBQyxjQUFjLHdCQUFRLElBQUksQ0FBQyxjQUFjLENBQUUsQ0FBQztRQUNsRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQ0FBTSxHQUFOLFVBQ0UsSUFBNkM7O1FBRTdDLElBQU0sS0FBSyxHQUFHLElBQUksZUFBZSxFQUF5QixDQUFDO1FBQzNELEtBQUssQ0FBQyxjQUFjLHdCQUFTLElBQUksQ0FBQyxjQUFzQixDQUFFLENBQUM7UUFDM0QsdUVBQXVFO1FBQ3ZFLDRFQUE0RTtRQUM1RSxzQ0FBc0M7UUFDdEMsSUFBTSxLQUFLLEdBQUcsSUFBOEMsQ0FBQztRQUM3RCxLQUFLLElBQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDdkMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUErQixJQUFJLE1BQUcsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsQ0FBQSxLQUFBLEtBQUssQ0FBQyxlQUFlLENBQUEsQ0FBQyxJQUFJLDRCQUFLLElBQUksQ0FBQyxlQUF1QixFQUFLLEtBQUssQ0FBQyxlQUFlLEdBQUU7UUFDdkYsQ0FBQSxLQUFBLEtBQUssQ0FBQyxlQUFlLENBQUEsQ0FBQyxJQUFJLDRCQUFLLElBQUksQ0FBQyxlQUF1QixFQUFLLEtBQUssQ0FBQyxlQUFlLEdBQUU7UUFDdkYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZ0NBQU0sR0FBTixVQUFPLFFBQWdEO1FBQ3JELElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7WUFDaEUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLHNDQUFZLEdBQXBCLFVBQXFCLFFBQWdCO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzdFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUM3RSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckMsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sMkNBQWlCLEdBQXpCLFVBQTBCLFFBQXVDO1FBQy9ELEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUU7Z0JBQzNDLElBQUEsSUFBSSxHQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQTVCLENBQTZCO2dCQUN6QyxJQUFJLElBQUk7b0JBQUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUU7Z0JBQzNDLElBQUEsSUFBSSxHQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQTVCLENBQTZCO2dCQUN6QyxJQUFJLElBQUk7b0JBQUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHFDQUFXLEdBQVgsVUFBWSxRQUFnQjtRQUMxQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuRCxJQUFBLEtBQWlCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQXRDLElBQUksVUFBQSxFQUFFLElBQUksVUFBNEIsQ0FBQztZQUMvQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksSUFBSTtvQkFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDaEI7U0FDRjtRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkQsSUFBQSxLQUFpQixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUF0QyxJQUFJLFVBQUEsRUFBRSxJQUFJLFVBQTRCLENBQUM7WUFDL0MsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLElBQUk7b0JBQUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2hCO1NBQ0Y7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsNkJBQUcsR0FBSCxVQUFJLE1BQWdDO1FBQ2xDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNLLGtEQUF3QixHQUFoQzs7UUFDRSxJQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQyxlQUFlO2FBQ3BELE1BQU0sQ0FBQyxVQUFDLEtBQUssSUFBSyxPQUFBLEtBQUssQ0FBQyxJQUFJLEVBQVYsQ0FBVSxDQUFDO2FBQzdCLE1BQU0sQ0FBQyxVQUFDLFdBQVcsRUFBRSxLQUFLO1lBQ3pCLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsRUFBRSxFQUE4QyxDQUFDLENBQUM7UUFDckQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQ3pDLFVBQUMsS0FBSztZQUNKLE9BQUEsQ0FBQyxzQ0FDSSxLQUFLLEtBQ1IsUUFBUSxFQUFFLElBQUksRUFDZCxJQUFJLEVBQUUsU0FBUyxFQUNmLElBQUksRUFBRSxTQUFTLEdBQzJCLENBQUE7UUFMNUMsQ0FLNEMsQ0FDL0MsQ0FBQztRQUNGLElBQU0sMEJBQTBCLEdBQUcsVUFBVTthQUMxQyxNQUFNLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsSUFBSSxFQUFWLENBQVUsQ0FBQzthQUM3QixNQUFNLENBQUMsVUFBQyxXQUFXLEVBQUUsS0FBSztZQUN6QixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNqQyxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDLEVBQUUsRUFBNEMsQ0FBQyxDQUFDO1FBRW5ELElBQU0sT0FBTyxHQUE0QyxFQUFFLENBQUM7UUFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLElBQUEsS0FBaUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBdEMsSUFBSSxVQUFBLEVBQUUsSUFBSSxVQUE0QixDQUFDO1lBQy9DLElBQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyw0QkFBNEI7WUFDNUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtvQkFDbkcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7d0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDdkMsWUFBWSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUN2QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJO3dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztvQkFDaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7aUJBQ25DO3FCQUFNLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7b0JBQzFHLElBQU0sWUFBWSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0RCxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssWUFBWTt3QkFBRSxTQUFTO29CQUNqRCxZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQ3RDLFlBQVksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO29CQUNqQyxJQUFJLFlBQVksQ0FBQyxJQUFJO3dCQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztvQkFDN0QsWUFBWSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7aUJBQ2xDO2FBQ0Y7aUJBQU0sSUFBSSxJQUFJLEVBQUU7Z0JBQ2YsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtvQkFDbkcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7d0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDdkMsWUFBWSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUN2QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJO3dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztvQkFDaEUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7aUJBQ25DO3FCQUFNLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7b0JBQzFHLElBQU0sWUFBWSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0RCxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssWUFBWTt3QkFBRSxTQUFTO29CQUNqRCxZQUFZLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQ3RDLFlBQVksQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO29CQUNqQyxJQUFJLFlBQVksQ0FBQyxJQUFJO3dCQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztvQkFDN0QsWUFBWSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7aUJBQ2xDO2FBQ0Y7U0FDRjtRQUNELGdFQUFnRTtRQUNoRSxpREFBaUQ7UUFDakQsSUFBTSx1QkFBdUIsR0FBa0QsRUFBRSxDQUFDO1FBQ2xGLElBQU0sT0FBTyxHQUFvRCxJQUFJLE9BQU8sRUFBRSxDQUFDOztZQUMvRSxLQUF5QixJQUFBLEtBQUEsaUJBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBMUMsSUFBTSxVQUFVLFdBQUE7Z0JBQ2YsSUFBQSxLQUFpQixPQUFPLENBQUMsVUFBVSxDQUFDLEVBQWxDLElBQUksVUFBQSxFQUFFLElBQUksVUFBd0IsQ0FBQztnQkFDekMsT0FBTyxJQUFJLEVBQUU7b0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDbEIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQ2xCO2dCQUNELE9BQU8sSUFBSSxFQUFFO29CQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUNsQjthQUNGOzs7Ozs7Ozs7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLEtBQUssR0FBdUQsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsU0FBUztZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQUUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE9BQU8sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDcEI7U0FDRjtRQUNELE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSywyQ0FBaUIsR0FBekI7O1FBQ0UsSUFBTSxjQUFjLEdBQXlDLEVBQUUsQ0FBQztRQUMxRCxJQUFBLEtBQUEsZUFBcUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUEsRUFBbkUsdUJBQXVCLFFBQUEsRUFBRSxPQUFPLFFBQW1DLENBQUM7UUFDM0UsSUFBSSxTQUFTLG9CQUFPLElBQUksQ0FBQyxlQUFlLEVBQUssdUJBQXVCLENBQUMsQ0FBQztRQUN0RSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7WUFDakMsS0FBb0IsSUFBQSxjQUFBLGlCQUFBLFNBQVMsQ0FBQSxvQ0FBQSwyREFBRTtnQkFBMUIsSUFBTSxLQUFLLHNCQUFBO2dCQUNkLElBQU0sa0JBQWtCLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDMUQsSUFBQSxLQUFpQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBMUYsSUFBSSxVQUFBLEVBQUUsSUFBSSxVQUFnRixDQUFDO2dCQUNuRyxJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3pCLG9FQUFvRTtnQkFDcEUsT0FBTyxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsSUFBSSxFQUFFO29CQUMxQixhQUFhLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztpQkFDcEM7Z0JBQ0QsT0FBTyxhQUFhLEVBQUU7b0JBQ3BCLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUM5QyxhQUFhLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztpQkFDcEM7Z0JBQ0QsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksYUFBYSxHQUFHLEtBQVksQ0FBQztnQkFDakMsT0FBUSxhQUFxQixDQUFDLElBQUksRUFBRTtvQkFDbEMsY0FBYyxDQUFDLElBQUksQ0FBRSxhQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDNUQsYUFBYSxHQUFJLGFBQXFCLENBQUMsSUFBSSxDQUFDO2lCQUM3QztnQkFDRCxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixPQUFPLGFBQWEsRUFBRTtvQkFDcEIsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQzlDLGFBQWEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO2lCQUNwQzthQUNGOzs7Ozs7Ozs7UUFDRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsaUNBQU8sR0FBUCxVQUNFLE9BQWtELEVBQ2xELE9BQWdDOzs7WUFFaEMsS0FBeUIsSUFBQSxLQUFBLGlCQUFBLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBLGdCQUFBLDRCQUFFO2dCQUE5QyxJQUFNLFVBQVUsV0FBQTtnQkFDbkIsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFxQyxFQUFFLE9BQU8sQ0FBUSxDQUFDO2FBQzdFOzs7Ozs7Ozs7UUFFRCxPQUFPLE9BQXlDLENBQUM7SUFDbkQsQ0FBQztJQUNILHNCQUFDO0FBQUQsQ0FBQyxBQXRWRCxJQXNWQztBQXRWWSwwQ0FBZTtBQXdWNUIsSUFBTSxXQUFXLEdBQThCO0lBQzdDLFVBQVUsRUFBRSxDQUFDO0lBQ2IsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsQ0FBQztJQUNSLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQztBQUVGLElBQU0sZUFBZSxHQUFrQztJQUNyRCxJQUFJLEVBQUUsQ0FBQztJQUNQLE1BQU0sRUFBRSxDQUFDO0lBQ1QsR0FBRyxFQUFFLENBQUM7Q0FDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzb2x1dGVMb2NhdGlvbixcbiAgQnVpbGRIYW5kbGVyT3B0aW9ucyxcbiAgQnVpbGRNaWRkbGV3YXJlLFxuICBEZXNlcmlhbGl6ZUhhbmRsZXIsXG4gIERlc2VyaWFsaXplSGFuZGxlck9wdGlvbnMsXG4gIERlc2VyaWFsaXplTWlkZGxld2FyZSxcbiAgRmluYWxpemVSZXF1ZXN0SGFuZGxlck9wdGlvbnMsXG4gIEZpbmFsaXplUmVxdWVzdE1pZGRsZXdhcmUsXG4gIEhhbmRsZXIsXG4gIEhhbmRsZXJFeGVjdXRpb25Db250ZXh0LFxuICBIYW5kbGVyT3B0aW9ucyxcbiAgSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zLFxuICBJbml0aWFsaXplTWlkZGxld2FyZSxcbiAgTWlkZGxld2FyZVN0YWNrIGFzIElNaWRkbGV3YXJlU3RhY2ssXG4gIE1pZGRsZXdhcmVUeXBlLFxuICBQbHVnZ2FibGUsXG4gIFByaW9yaXR5LFxuICBSZWxhdGl2ZUxvY2F0aW9uLFxuICBTZXJpYWxpemVIYW5kbGVyT3B0aW9ucyxcbiAgU2VyaWFsaXplTWlkZGxld2FyZSxcbiAgU3RlcCxcbn0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmltcG9ydCB7XG4gIE1pZGRsZXdhcmVFbnRyeSxcbiAgTmFtZWRNaWRkbGV3YXJlRW50cmllc01hcCxcbiAgTmFtZWRSZWxhdGl2ZUVudHJpZXNNYXAsXG4gIE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5LFxuICBOb3JtYWxpemluZ0VudHJ5UmVzdWx0LFxuICBSZWxhdGl2ZU1pZGRsZXdhcmVBbmNob3IsXG4gIFJlbGF0aXZlTWlkZGxld2FyZUVudHJ5LFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1pZGRsZXdhcmVTdGFjazxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIElNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4ge31cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVTdGFjazxJbnB1dCBleHRlbmRzIG9iamVjdCwgT3V0cHV0IGV4dGVuZHMgb2JqZWN0PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWJzb2x1dGVFbnRyaWVzOiBBcnJheTxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4+ID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsYXRpdmVFbnRyaWVzOiBBcnJheTxSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj4gPSBbXTtcbiAgcHJpdmF0ZSBlbnRyaWVzTmFtZU1hcDoge1xuICAgIFttaWRkbGV3YXJlTmFtZTogc3RyaW5nXTogTWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgUmVsYXRpdmVNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD47XG4gIH0gPSB7fTtcblxuICBhZGQobWlkZGxld2FyZTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sIG9wdGlvbnM/OiBJbml0aWFsaXplSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uKTogdm9pZDtcblxuICBhZGQobWlkZGxld2FyZTogU2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogU2VyaWFsaXplSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uKTogdm9pZDtcblxuICBhZGQobWlkZGxld2FyZTogQnVpbGRNaWRkbGV3YXJlPElucHV0LCBPdXRwdXQ+LCBvcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgQWJzb2x1dGVMb2NhdGlvbik6IHZvaWQ7XG5cbiAgYWRkKFxuICAgIG1pZGRsZXdhcmU6IEZpbmFsaXplUmVxdWVzdE1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogRmluYWxpemVSZXF1ZXN0SGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uXG4gICk6IHZvaWQ7XG5cbiAgYWRkKG1pZGRsZXdhcmU6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogRGVzZXJpYWxpemVIYW5kbGVyT3B0aW9ucyAmIEFic29sdXRlTG9jYXRpb24pOiB2b2lkO1xuXG4gIGFkZChtaWRkbGV3YXJlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Piwgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBBYnNvbHV0ZUxvY2F0aW9uID0ge30pOiB2b2lkIHtcbiAgICBjb25zdCB7IG5hbWUsIHN0ZXAgPSBcImluaXRpYWxpemVcIiwgdGFncywgcHJpb3JpdHkgPSBcIm5vcm1hbFwiIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGVudHJ5OiBNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gPSB7XG4gICAgICBuYW1lLFxuICAgICAgc3RlcCxcbiAgICAgIHRhZ3MsXG4gICAgICBwcmlvcml0eSxcbiAgICAgIG1pZGRsZXdhcmUsXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmVudHJpZXNOYW1lTWFwLCBuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXSA9IGVudHJ5O1xuICAgIH1cbiAgICB0aGlzLmFic29sdXRlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogSW5pdGlhbGl6ZU1pZGRsZXdhcmU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogSW5pdGlhbGl6ZUhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogU2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBTZXJpYWxpemVIYW5kbGVyT3B0aW9ucyAmIFJlbGF0aXZlTG9jYXRpb248SW5wdXQsIE91dHB1dD5cbiAgKTogdm9pZDtcblxuICBhZGRSZWxhdGl2ZVRvKFxuICAgIG1pZGRsZXdhcmU6IEJ1aWxkTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBCdWlsZEhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogRmluYWxpemVSZXF1ZXN0TWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBGaW5hbGl6ZVJlcXVlc3RIYW5kbGVyT3B0aW9ucyAmIFJlbGF0aXZlTG9jYXRpb248SW5wdXQsIE91dHB1dD5cbiAgKTogdm9pZDtcblxuICBhZGRSZWxhdGl2ZVRvKFxuICAgIG1pZGRsZXdhcmU6IERlc2VyaWFsaXplTWlkZGxld2FyZTxJbnB1dCwgT3V0cHV0PixcbiAgICBvcHRpb25zOiBEZXNlcmlhbGl6ZUhhbmRsZXJPcHRpb25zICYgUmVsYXRpdmVMb2NhdGlvbjxJbnB1dCwgT3V0cHV0PlxuICApOiB2b2lkO1xuXG4gIGFkZFJlbGF0aXZlVG8oXG4gICAgbWlkZGxld2FyZTogTWlkZGxld2FyZVR5cGU8SW5wdXQsIE91dHB1dD4sXG4gICAgb3B0aW9uczogSGFuZGxlck9wdGlvbnMgJiBSZWxhdGl2ZUxvY2F0aW9uPElucHV0LCBPdXRwdXQ+XG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHsgc3RlcCA9IFwiaW5pdGlhbGl6ZVwiLCBuYW1lLCB0YWdzLCByZWxhdGlvbiwgdG9NaWRkbGV3YXJlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGVudHJ5OiBSZWxhdGl2ZU1pZGRsZXdhcmVFbnRyeTxJbnB1dCwgT3V0cHV0PiA9IHtcbiAgICAgIG1pZGRsZXdhcmUsXG4gICAgICBzdGVwLFxuICAgICAgbmFtZSxcbiAgICAgIHRhZ3MsXG4gICAgICBuZXh0OiByZWxhdGlvbiA9PT0gXCJiZWZvcmVcIiA/IHRvTWlkZGxld2FyZSA6IHVuZGVmaW5lZCxcbiAgICAgIHByZXY6IHJlbGF0aW9uID09PSBcImFmdGVyXCIgPyB0b01pZGRsZXdhcmUgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmVudHJpZXNOYW1lTWFwLCBuYW1lKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXSA9IGVudHJ5O1xuICAgIH1cbiAgICB0aGlzLnJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydChcbiAgICBlbnRyaWVzOiBBcnJheTxNaWRkbGV3YXJlRW50cnk8SW5wdXQsIE91dHB1dD4gfCBOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj5cbiAgKTogQXJyYXk8TWlkZGxld2FyZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgTm9ybWFsaXplZFJlbGF0aXZlRW50cnk8SW5wdXQsIE91dHB1dD4+IHtcbiAgICAvL3JldmVyc2UgYmVmb3JlIHNvcnRpbmcgc28gdGhhdCBtaWRkbGV3YXJlIG9mIHNhbWUgc3RlcCB3aWxsIGV4ZWN1dGUgaW5cbiAgICAvL3RoZSBvcmRlciBvZiBiZWluZyBhZGRlZFxuICAgIHJldHVybiBlbnRyaWVzLnNvcnQoXG4gICAgICAoYSwgYikgPT5cbiAgICAgICAgc3RlcFdlaWdodHNbYi5zdGVwXSAtIHN0ZXBXZWlnaHRzW2Euc3RlcF0gfHxcbiAgICAgICAgcHJpb3JpdHlXZWlnaHRzW2IucHJpb3JpdHkgfHwgXCJub3JtYWxcIl0gLSBwcmlvcml0eVdlaWdodHNbYS5wcmlvcml0eSB8fCBcIm5vcm1hbFwiXVxuICAgICk7XG4gIH1cblxuICBjbG9uZSgpOiBJTWlkZGxld2FyZVN0YWNrPElucHV0LCBPdXRwdXQ+IHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBNaWRkbGV3YXJlU3RhY2s8SW5wdXQsIE91dHB1dD4oKTtcbiAgICBjbG9uZS5hYnNvbHV0ZUVudHJpZXMucHVzaCguLi50aGlzLmFic29sdXRlRW50cmllcyk7XG4gICAgY2xvbmUucmVsYXRpdmVFbnRyaWVzLnB1c2goLi4udGhpcy5yZWxhdGl2ZUVudHJpZXMpO1xuICAgIGNsb25lLmVudHJpZXNOYW1lTWFwID0geyAuLi50aGlzLmVudHJpZXNOYW1lTWFwIH07XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgY29uY2F0PElucHV0VHlwZSBleHRlbmRzIElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgT3V0cHV0PihcbiAgICBmcm9tOiBJTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT5cbiAgKTogTWlkZGxld2FyZVN0YWNrPElucHV0VHlwZSwgT3V0cHV0VHlwZT4ge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IE1pZGRsZXdhcmVTdGFjazxJbnB1dFR5cGUsIE91dHB1dFR5cGU+KCk7XG4gICAgY2xvbmUuZW50cmllc05hbWVNYXAgPSB7IC4uLih0aGlzLmVudHJpZXNOYW1lTWFwIGFzIGFueSkgfTtcbiAgICAvLyBJTWlkZGxld2FyZVN0YWNrIGludGVyZmFjZSBkb2Vzbid0IGNvbnRhaW4gcHJpdmF0ZSBtZW1iZXJzIHZhcmlhYmxlc1xuICAgIC8vIGxpa2UgYGVudHJpZXNOYW1lTWFwYCwgYnV0IGluIGZhY3QgdGhlIGZ1bmN0aW9uIGV4cGVjdHMgYE1pZGRsZXdhcmVTdGFja2BcbiAgICAvLyBjbGFzcyBpbnN0YW5jZS4gU28gaGVyZSB3ZSBjYXN0IGl0LlxuICAgIGNvbnN0IF9mcm9tID0gZnJvbSBhcyBNaWRkbGV3YXJlU3RhY2s8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPjtcbiAgICBmb3IgKGNvbnN0IG5hbWUgaW4gX2Zyb20uZW50cmllc05hbWVNYXApIHtcbiAgICAgIGlmIChjbG9uZS5lbnRyaWVzTmFtZU1hcFtuYW1lXSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZWQgbWlkZGxld2FyZSBuYW1lICcke25hbWV9J2ApO1xuICAgICAgfVxuICAgICAgY2xvbmUuZW50cmllc05hbWVNYXBbbmFtZV0gPSBfZnJvbS5lbnRyaWVzTmFtZU1hcFtuYW1lXTtcbiAgICB9XG4gICAgY2xvbmUuYWJzb2x1dGVFbnRyaWVzLnB1c2goLi4uKHRoaXMuYWJzb2x1dGVFbnRyaWVzIGFzIGFueSksIC4uLl9mcm9tLmFic29sdXRlRW50cmllcyk7XG4gICAgY2xvbmUucmVsYXRpdmVFbnRyaWVzLnB1c2goLi4uKHRoaXMucmVsYXRpdmVFbnRyaWVzIGFzIGFueSksIC4uLl9mcm9tLnJlbGF0aXZlRW50cmllcyk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgcmVtb3ZlKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0PiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdG9SZW1vdmUgPT09IFwic3RyaW5nXCIpIHJldHVybiB0aGlzLnJlbW92ZUJ5TmFtZSh0b1JlbW92ZSk7XG4gICAgZWxzZSByZXR1cm4gdGhpcy5yZW1vdmVCeVJlZmVyZW5jZSh0b1JlbW92ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ5TmFtZSh0b1JlbW92ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IHRoaXMuYWJzb2x1dGVFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAodGhpcy5hYnNvbHV0ZUVudHJpZXNbaV0ubmFtZSAmJiB0aGlzLmFic29sdXRlRW50cmllc1tpXS5uYW1lID09PSB0b1JlbW92ZSkge1xuICAgICAgICB0aGlzLmFic29sdXRlRW50cmllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmVudHJpZXNOYW1lTWFwW3RvUmVtb3ZlXTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSB0aGlzLnJlbGF0aXZlRW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpdmVFbnRyaWVzW2ldLm5hbWUgJiYgdGhpcy5yZWxhdGl2ZUVudHJpZXNbaV0ubmFtZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBkZWxldGUgdGhpcy5lbnRyaWVzTmFtZU1hcFt0b1JlbW92ZV07XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUJ5UmVmZXJlbmNlKHRvUmVtb3ZlOiBNaWRkbGV3YXJlVHlwZTxJbnB1dCwgT3V0cHV0Pik6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLmFic29sdXRlRW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHRoaXMuYWJzb2x1dGVFbnRyaWVzW2ldLm1pZGRsZXdhcmUgPT09IHRvUmVtb3ZlKSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV07XG4gICAgICAgIGlmIChuYW1lKSBkZWxldGUgdGhpcy5lbnRyaWVzTmFtZU1hcFtuYW1lXTtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IHRoaXMucmVsYXRpdmVFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAodGhpcy5yZWxhdGl2ZUVudHJpZXNbaV0ubWlkZGxld2FyZSA9PT0gdG9SZW1vdmUpIHtcbiAgICAgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLnJlbGF0aXZlRW50cmllc1tpXTtcbiAgICAgICAgaWYgKG5hbWUpIGRlbGV0ZSB0aGlzLmVudHJpZXNOYW1lTWFwW25hbWVdO1xuICAgICAgICB0aGlzLnJlbGF0aXZlRW50cmllcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZW1vdmVCeVRhZyh0b1JlbW92ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlbW92ZWQgPSBmYWxzZTtcbiAgICBmb3IgKGxldCBpID0gdGhpcy5hYnNvbHV0ZUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHsgdGFncywgbmFtZSB9ID0gdGhpcy5hYnNvbHV0ZUVudHJpZXNbaV07XG4gICAgICBpZiAodGFncyAmJiB0YWdzLmluZGV4T2YodG9SZW1vdmUpID4gLTEpIHtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBpZiAobmFtZSkgZGVsZXRlIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV07XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gdGhpcy5yZWxhdGl2ZUVudHJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IHsgdGFncywgbmFtZSB9ID0gdGhpcy5yZWxhdGl2ZUVudHJpZXNbaV07XG4gICAgICBpZiAodGFncyAmJiB0YWdzLmluZGV4T2YodG9SZW1vdmUpID4gLTEpIHtcbiAgICAgICAgdGhpcy5yZWxhdGl2ZUVudHJpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICBpZiAobmFtZSkgZGVsZXRlIHRoaXMuZW50cmllc05hbWVNYXBbbmFtZV07XG4gICAgICAgIHJlbW92ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVtb3ZlZDtcbiAgfVxuXG4gIHVzZShwbHVnaW46IFBsdWdnYWJsZTxJbnB1dCwgT3V0cHV0Pikge1xuICAgIHBsdWdpbi5hcHBseVRvU3RhY2sodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSByZWxhdGl2ZSBtaWRkbGV3YXJlIGVudHJpZXMgdG8gbXVsdGlwbGUgZG91YmxlIGxpbmtlZCBsaXN0c1xuICAgKiBkZXBpY3RpbmcgdGhlIHJlbGF0aXZlIGxvY2F0aW9uIG9mIG1pZGRsZXdhcmUuIE9ubHkgbWlkZGxld2FyZSB0aGF0IGhhdmVcbiAgICogZGlyZWN0IG9yIHRyYW5zaXRpdmUgcmVsYXRpb24gd2lsbCBmb3JtIGEgbGlua2VkIGxpc3QuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gbm9ybWFsaXplcyByZWxhdGl2ZSBtaWRkbGV3YXJlIGludG8gMiBjYXRlZ29yaWVzIG9mIGxpbmtlZFxuICAgKiBsaXN0cy4gKDEpIGxpbmtlZCBsaXN0IHRoYXQgaGF2ZSBhYnNvbHV0ZS1sb2NhdGVkIG1pZGRsZXdhcmUgb24gb25lIGVuZC5cbiAgICogVGhlc2UgbWlkZGxld2FyZSB3aWxsIGJlIHJlc29sdmVkIGFjY29yZGluZ2x5IGJlZm9yZSBvciBhZnRlciB0aGUgYWJzb2x1dGUtXG4gICAqIGxvY2F0ZWQgbWlkZGxld2FyZS4gKDIpIExpbmtlZCBsaXN0IHRoYXQgaGF2ZSBubyBhYnNvbHV0ZS1sb2NhdGVkIG1pZGRsZXdhcmVcbiAgICogb24gYW55IGVuZC4gVGhleSB3aWxsIGJlIHJlc29sdmVkIHRvIGNvcnJlc3BvbmRpbmcgc3RlcCB3aXRoIG5vcm1hbCBwcmlvcml0eVxuICAgKlxuICAgKiBUaGUgMiB0eXBlcyBvZiBsaW5rZWQgbGlzdCB3aWxsIHJldHVybiBhcyBhIHR1cGxlXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZVJlbGF0aXZlRW50cmllcygpOiBOb3JtYWxpemluZ0VudHJ5UmVzdWx0PElucHV0LCBPdXRwdXQ+IHtcbiAgICBjb25zdCBhYnNvbHV0ZU1pZGRsZXdhcmVOYW1lc01hcCA9IHRoaXMuYWJzb2x1dGVFbnRyaWVzXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkubmFtZSlcbiAgICAgIC5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBlbnRyeSkgPT4ge1xuICAgICAgICBhY2N1bXVsYXRvcltlbnRyeS5uYW1lIV0gPSBlbnRyeTtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfSwge30gYXMgTmFtZWRNaWRkbGV3YXJlRW50cmllc01hcDxJbnB1dCwgT3V0cHV0Pik7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IHRoaXMucmVsYXRpdmVFbnRyaWVzLm1hcChcbiAgICAgIChlbnRyeSkgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICAuLi5lbnRyeSxcbiAgICAgICAgICBwcmlvcml0eTogbnVsbCxcbiAgICAgICAgICBuZXh0OiB1bmRlZmluZWQsXG4gICAgICAgICAgcHJldjogdW5kZWZpbmVkLFxuICAgICAgICB9IGFzIE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+KVxuICAgICk7XG4gICAgY29uc3QgcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXAgPSBub3JtYWxpemVkXG4gICAgICAuZmlsdGVyKChlbnRyeSkgPT4gZW50cnkubmFtZSlcbiAgICAgIC5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBlbnRyeSkgPT4ge1xuICAgICAgICBhY2N1bXVsYXRvcltlbnRyeS5uYW1lIV0gPSBlbnRyeTtcbiAgICAgICAgcmV0dXJuIGFjY3VtdWxhdG9yO1xuICAgICAgfSwge30gYXMgTmFtZWRSZWxhdGl2ZUVudHJpZXNNYXA8SW5wdXQsIE91dHB1dD4pO1xuXG4gICAgY29uc3QgYW5jaG9yczogUmVsYXRpdmVNaWRkbGV3YXJlQW5jaG9yPElucHV0LCBPdXRwdXQ+ID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlbGF0aXZlRW50cmllcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgeyBwcmV2LCBuZXh0IH0gPSB0aGlzLnJlbGF0aXZlRW50cmllc1tpXTtcbiAgICAgIGNvbnN0IHJlc29sdmVkQ3VyciA9IG5vcm1hbGl6ZWRbaV07XG4gICAgICAvL2VpdGhlciBwcmV2IG9yIG5leHQgaXMgc2V0XG4gICAgICBpZiAocHJldikge1xuICAgICAgICBpZiAoYWJzb2x1dGVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl0gJiYgYWJzb2x1dGVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl0uc3RlcCA9PT0gcmVzb2x2ZWRDdXJyLnN0ZXApIHtcbiAgICAgICAgICBpZiAoIWFuY2hvcnNbcHJldl0pIGFuY2hvcnNbcHJldl0gPSB7fTtcbiAgICAgICAgICByZXNvbHZlZEN1cnIubmV4dCA9IGFuY2hvcnNbcHJldl0ubmV4dDtcbiAgICAgICAgICBpZiAoYW5jaG9yc1twcmV2XS5uZXh0KSBhbmNob3JzW3ByZXZdLm5leHQhLnByZXYgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgYW5jaG9yc1twcmV2XS5uZXh0ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICB9IGVsc2UgaWYgKHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW3ByZXZdICYmIHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW3ByZXZdLnN0ZXAgPT09IHJlc29sdmVkQ3Vyci5zdGVwKSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRQcmV2ID0gcmVsYXRpdmVNaWRkbGV3YXJlTmFtZXNNYXBbcHJldl07XG4gICAgICAgICAgaWYgKHJlc29sdmVkUHJldi5uZXh0ID09PSByZXNvbHZlZEN1cnIpIGNvbnRpbnVlO1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5uZXh0ID0gcmVzb2x2ZWRQcmV2Lm5leHQ7XG4gICAgICAgICAgcmVzb2x2ZWRQcmV2Lm5leHQgPSByZXNvbHZlZEN1cnI7XG4gICAgICAgICAgaWYgKHJlc29sdmVkQ3Vyci5uZXh0KSByZXNvbHZlZEN1cnIubmV4dC5wcmV2ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIHJlc29sdmVkQ3Vyci5wcmV2ID0gcmVzb2x2ZWRQcmV2O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKG5leHQpIHtcbiAgICAgICAgaWYgKGFic29sdXRlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdICYmIGFic29sdXRlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdLnN0ZXAgPT09IHJlc29sdmVkQ3Vyci5zdGVwKSB7XG4gICAgICAgICAgaWYgKCFhbmNob3JzW25leHRdKSBhbmNob3JzW25leHRdID0ge307XG4gICAgICAgICAgcmVzb2x2ZWRDdXJyLnByZXYgPSBhbmNob3JzW25leHRdLnByZXY7XG4gICAgICAgICAgaWYgKGFuY2hvcnNbbmV4dF0ucHJldikgYW5jaG9yc1tuZXh0XS5wcmV2IS5uZXh0ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIGFuY2hvcnNbbmV4dF0ucHJldiA9IHJlc29sdmVkQ3VycjtcbiAgICAgICAgfSBlbHNlIGlmIChyZWxhdGl2ZU1pZGRsZXdhcmVOYW1lc01hcFtuZXh0XSAmJiByZWxhdGl2ZU1pZGRsZXdhcmVOYW1lc01hcFtuZXh0XS5zdGVwID09PSByZXNvbHZlZEN1cnIuc3RlcCkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkTmV4dCA9IHJlbGF0aXZlTWlkZGxld2FyZU5hbWVzTWFwW25leHRdO1xuICAgICAgICAgIGlmIChyZXNvbHZlZE5leHQucHJldiA9PT0gcmVzb2x2ZWRDdXJyKSBjb250aW51ZTtcbiAgICAgICAgICByZXNvbHZlZEN1cnIucHJldiA9IHJlc29sdmVkTmV4dC5wcmV2O1xuICAgICAgICAgIHJlc29sdmVkTmV4dC5wcmV2ID0gcmVzb2x2ZWRDdXJyO1xuICAgICAgICAgIGlmIChyZXNvbHZlZEN1cnIucHJldikgcmVzb2x2ZWRDdXJyLnByZXYubmV4dCA9IHJlc29sdmVkQ3VycjtcbiAgICAgICAgICByZXNvbHZlZEN1cnIubmV4dCA9IHJlc29sdmVkTmV4dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBnZXQgdGhlIGhlYWQgb2YgdGhlIHJlbGF0aXZlIG1pZGRsZXdhcmUgbGlua2VkIGxpc3QgdGhhdCBoYXZlXG4gICAgLy8gbm8gdHJhbnNpdGl2ZSByZWxhdGlvbiB0byBhYnNvbHV0ZSBtaWRkbGV3YXJlLlxuICAgIGNvbnN0IG9ycGhhbmVkUmVsYXRpdmVFbnRyaWVzOiBBcnJheTxOb3JtYWxpemVkUmVsYXRpdmVFbnRyeTxJbnB1dCwgT3V0cHV0Pj4gPSBbXTtcbiAgICBjb25zdCB2aXNpdGVkOiBXZWFrU2V0PE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+PiA9IG5ldyBXZWFrU2V0KCk7XG4gICAgZm9yIChjb25zdCBhbmNob3JOYW1lIG9mIE9iamVjdC5rZXlzKGFuY2hvcnMpKSB7XG4gICAgICBsZXQgeyBwcmV2LCBuZXh0IH0gPSBhbmNob3JzW2FuY2hvck5hbWVdO1xuICAgICAgd2hpbGUgKHByZXYpIHtcbiAgICAgICAgdmlzaXRlZC5hZGQocHJldik7XG4gICAgICAgIHByZXYgPSBwcmV2LnByZXY7XG4gICAgICB9XG4gICAgICB3aGlsZSAobmV4dCkge1xuICAgICAgICB2aXNpdGVkLmFkZChuZXh0KTtcbiAgICAgICAgbmV4dCA9IG5leHQubmV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub3JtYWxpemVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgZW50cnk6IE5vcm1hbGl6ZWRSZWxhdGl2ZUVudHJ5PElucHV0LCBPdXRwdXQ+IHwgdW5kZWZpbmVkID0gbm9ybWFsaXplZFtpXTtcbiAgICAgIGlmICh2aXNpdGVkLmhhcyhlbnRyeSkpIGNvbnRpbnVlO1xuICAgICAgaWYgKCFlbnRyeS5wcmV2KSBvcnBoYW5lZFJlbGF0aXZlRW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICAgIHdoaWxlIChlbnRyeSAmJiAhdmlzaXRlZC5oYXMoZW50cnkpKSB7XG4gICAgICAgIHZpc2l0ZWQuYWRkKGVudHJ5KTtcbiAgICAgICAgZW50cnkgPSBlbnRyeS5uZXh0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW29ycGhhbmVkUmVsYXRpdmVFbnRyaWVzLCBhbmNob3JzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBmaW5hbCBsaXN0IG9mIG1pZGRsZXdhcmUgaW4gdGhlIG9yZGVyIG9mIGJlaW5nIGV4ZWN1dGVkIGluIHRoZSByZXNvbHZlZCBoYW5kbGVyLlxuICAgKiBJZiByZWxhdGl2ZSBlbnRyaWVzIGxpc3QgaXMgbm90IGVtcHR5LCB0aG9zZSBlbnRyaWVzIHdpbGwgYmUgYWRkZWQgdG8gZmluYWwgbWlkZGxld2FyZVxuICAgKiBsaXN0IHdpdGggcnVsZXMgYmVsb3c6XG4gICAqIDEuIGlmIGB0b01pZGRsZXdhcmVgIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWMgYHN0ZXBgLCB0aGUgbWlkZGxld2FyZSB3aWxsIGJlIGluc2VydGVkIGJlZm9yZVxuICAgKiAgICAgb3IgYWZ0ZXIgdGhlIHNwZWNpZmllZCBgdG9NaWRkbGV3YXJlYFxuICAgKiAyLiBpZiBgdG9NaWRkbGV3YXJlYCBkb2Vzbid0IGV4aXN0IGluIHRoZSBzcGVjaWZpYyBgc3RlcGAsIHRoZSBtaWRkbGV3YXJlIHdpbGwgYmUgYXBwZW5kZWRcbiAgICogICAgIHRvIHNwZWNpZmljIGBzdGVwYCB3aXRoIHByaW9yaXR5IG9mIGBub3JtYWxgXG4gICAqL1xuICBwcml2YXRlIGdldE1pZGRsZXdhcmVMaXN0KCk6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiB7XG4gICAgY29uc3QgbWlkZGxld2FyZUxpc3Q6IEFycmF5PE1pZGRsZXdhcmVUeXBlPElucHV0LCBPdXRwdXQ+PiA9IFtdO1xuICAgIGNvbnN0IFtvcnBoYW5lZFJlbGF0aXZlRW50cmllcywgYW5jaG9yc10gPSB0aGlzLm5vcm1hbGl6ZVJlbGF0aXZlRW50cmllcygpO1xuICAgIGxldCBlbnRyeUxpc3QgPSBbLi4udGhpcy5hYnNvbHV0ZUVudHJpZXMsIC4uLm9ycGhhbmVkUmVsYXRpdmVFbnRyaWVzXTtcbiAgICBlbnRyeUxpc3QgPSB0aGlzLnNvcnQoZW50cnlMaXN0KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJ5TGlzdCkge1xuICAgICAgY29uc3QgZGVmYXVsdEFuY2hvclZhbHVlID0geyBwcmV2OiB1bmRlZmluZWQsIG5leHQ6IHVuZGVmaW5lZCB9O1xuICAgICAgY29uc3QgeyBwcmV2LCBuZXh0IH0gPSBlbnRyeS5uYW1lID8gYW5jaG9yc1tlbnRyeS5uYW1lXSB8fCBkZWZhdWx0QW5jaG9yVmFsdWUgOiBkZWZhdWx0QW5jaG9yVmFsdWU7XG4gICAgICBsZXQgcmVsYXRpdmVFbnRyeSA9IHByZXY7XG4gICAgICAvL3JldmVyc2UgcmVsYXRpdmUgZW50cnkgbGlua2VkIGxpc3QgYW5kIGFkZCB0byBvcmRlcmVkIGhhbmRsZXIgbGlzdFxuICAgICAgd2hpbGUgKHJlbGF0aXZlRW50cnk/LnByZXYpIHtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkucHJldjtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChyZWxhdGl2ZUVudHJ5KSB7XG4gICAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2gocmVsYXRpdmVFbnRyeS5taWRkbGV3YXJlKTtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkubmV4dDtcbiAgICAgIH1cbiAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2goZW50cnkubWlkZGxld2FyZSk7XG4gICAgICBsZXQgb3JwaGFuZWRFbnRyeSA9IGVudHJ5IGFzIGFueTtcbiAgICAgIHdoaWxlICgob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQpIHtcbiAgICAgICAgbWlkZGxld2FyZUxpc3QucHVzaCgob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQubWlkZGxld2FyZSk7XG4gICAgICAgIG9ycGhhbmVkRW50cnkgPSAob3JwaGFuZWRFbnRyeSBhcyBhbnkpLm5leHQ7XG4gICAgICB9XG4gICAgICByZWxhdGl2ZUVudHJ5ID0gbmV4dDtcbiAgICAgIHdoaWxlIChyZWxhdGl2ZUVudHJ5KSB7XG4gICAgICAgIG1pZGRsZXdhcmVMaXN0LnB1c2gocmVsYXRpdmVFbnRyeS5taWRkbGV3YXJlKTtcbiAgICAgICAgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlRW50cnkubmV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1pZGRsZXdhcmVMaXN0LnJldmVyc2UoKTtcbiAgfVxuXG4gIHJlc29sdmU8SW5wdXRUeXBlIGV4dGVuZHMgSW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBPdXRwdXQ+KFxuICAgIGhhbmRsZXI6IERlc2VyaWFsaXplSGFuZGxlcjxJbnB1dFR5cGUsIE91dHB1dFR5cGU+LFxuICAgIGNvbnRleHQ6IEhhbmRsZXJFeGVjdXRpb25Db250ZXh0XG4gICk6IEhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPiB7XG4gICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIHRoaXMuZ2V0TWlkZGxld2FyZUxpc3QoKSkge1xuICAgICAgaGFuZGxlciA9IG1pZGRsZXdhcmUoaGFuZGxlciBhcyBIYW5kbGVyPElucHV0LCBPdXRwdXRUeXBlPiwgY29udGV4dCkgYXMgYW55O1xuICAgIH1cblxuICAgIHJldHVybiBoYW5kbGVyIGFzIEhhbmRsZXI8SW5wdXRUeXBlLCBPdXRwdXRUeXBlPjtcbiAgfVxufVxuXG5jb25zdCBzdGVwV2VpZ2h0czogeyBba2V5IGluIFN0ZXBdOiBudW1iZXIgfSA9IHtcbiAgaW5pdGlhbGl6ZTogNSxcbiAgc2VyaWFsaXplOiA0LFxuICBidWlsZDogMyxcbiAgZmluYWxpemVSZXF1ZXN0OiAyLFxuICBkZXNlcmlhbGl6ZTogMSxcbn07XG5cbmNvbnN0IHByaW9yaXR5V2VpZ2h0czogeyBba2V5IGluIFByaW9yaXR5XTogbnVtYmVyIH0gPSB7XG4gIGhpZ2g6IDMsXG4gIG5vcm1hbDogMixcbiAgbG93OiAxLFxufTtcbiJdfQ== 43052 43053/***/ }), 43054
vendor: 986 bytes, lines 43055-43070
43055/***/ "./node_modules/@aws-sdk/middleware-stack/dist/cjs/index.js": 43056/*!******************************************************************!*\ 43057 !*** ./node_modules/@aws-sdk/middleware-stack/dist/cjs/index.js ***! 43058 \******************************************************************/ 43059/*! no static exports found */ 43060/***/ (function(module, exports, __webpack_require__) { 43061 43062"use strict"; 43063 43064Object.defineProperty(exports, "__esModule", { value: true }); 43065var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43066tslib_1.__exportStar(__webpack_require__(/*! ./MiddlewareStack */ "./node_modules/@aws-sdk/middleware-stack/dist/cjs/MiddlewareStack.js"), exports); 43067//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNERBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vTWlkZGxld2FyZVN0YWNrXCI7XG4iXX0= 43068 43069/***/ }), 43070
vendor: 1,719 bytes, lines 43071-43089
43071/***/ "./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/configurations.js": 43072/*!********************************************************************************!*\ 43073 !*** ./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/configurations.js ***! 43074 \********************************************************************************/ 43075/*! no static exports found */ 43076/***/ (function(module, exports, __webpack_require__) { 43077 43078"use strict"; 43079 43080Object.defineProperty(exports, "__esModule", { value: true }); 43081exports.resolveUserAgentConfig = void 0; 43082function resolveUserAgentConfig(input) { 43083 return input; 43084} 43085exports.resolveUserAgentConfig = resolveUserAgentConfig; 43086//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlndXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsU0FBZ0Isc0JBQXNCLENBQ3BDLEtBQW9EO0lBRXBELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUpELHdEQUlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyQWdlbnRJbnB1dENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgY3VzdG9tIHVzZXIgYWdlbnQgaGVhZGVyIHRoYXQgd291bGQgYmUgYXBwZW5kZWQgdG8gZGVmYXVsdCBvbmVcbiAgICovXG4gIGN1c3RvbVVzZXJBZ2VudD86IHN0cmluZztcbn1cbmludGVyZmFjZSBQcmV2aW91c2x5UmVzb2x2ZWQge1xuICBkZWZhdWx0VXNlckFnZW50OiBzdHJpbmc7XG4gIHJ1bnRpbWU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckFnZW50UmVzb2x2ZWRDb25maWcge1xuICBkZWZhdWx0VXNlckFnZW50OiBzdHJpbmc7XG4gIGN1c3RvbVVzZXJBZ2VudD86IHN0cmluZztcbiAgcnVudGltZTogc3RyaW5nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVVc2VyQWdlbnRDb25maWc8VD4oXG4gIGlucHV0OiBUICYgUHJldmlvdXNseVJlc29sdmVkICYgVXNlckFnZW50SW5wdXRDb25maWdcbik6IFQgJiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB7XG4gIHJldHVybiBpbnB1dDtcbn1cbiJdfQ== 43087 43088/***/ }), 43089
vendor: 1,213 bytes, lines 43090-43106
43090/***/ "./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/index.js": 43091/*!***********************************************************************!*\ 43092 !*** ./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/index.js ***! 43093 \***********************************************************************/ 43094/*! no static exports found */ 43095/***/ (function(module, exports, __webpack_require__) { 43096 43097"use strict"; 43098 43099Object.defineProperty(exports, "__esModule", { value: true }); 43100var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43101tslib_1.__exportStar(__webpack_require__(/*! ./configurations */ "./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/configurations.js"), exports); 43102tslib_1.__exportStar(__webpack_require__(/*! ./middleware */ "./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/middleware.js"), exports); 43103//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQWlDO0FBQ2pDLHVEQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9taWRkbGV3YXJlXCI7XG4iXX0= 43104 43105/***/ }), 43106
vendor: 5,667 bytes, lines 43107-43153
43107/***/ "./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/middleware.js": 43108/*!****************************************************************************!*\ 43109 !*** ./node_modules/@aws-sdk/middleware-user-agent/dist/cjs/middleware.js ***! 43110 \****************************************************************************/ 43111/*! no static exports found */ 43112/***/ (function(module, exports, __webpack_require__) { 43113 43114"use strict"; 43115 43116Object.defineProperty(exports, "__esModule", { value: true }); 43117exports.getUserAgentPlugin = exports.getUserAgentMiddlewareOptions = exports.userAgentMiddleware = void 0; 43118var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43119var protocol_http_1 = __webpack_require__(/*! @aws-sdk/protocol-http */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js"); 43120function userAgentMiddleware(options) { 43121 return function (next) { return function (args) { 43122 var request = args.request; 43123 if (!protocol_http_1.HttpRequest.isInstance(request)) 43124 return next(args); 43125 var headers = request.headers; 43126 var userAgentHeader = options.runtime === "node" ? "user-agent" : "x-amz-user-agent"; 43127 if (!headers[userAgentHeader]) { 43128 headers[userAgentHeader] = "" + options.defaultUserAgent; 43129 } 43130 else { 43131 headers[userAgentHeader] += " " + options.defaultUserAgent; 43132 } 43133 if (options.customUserAgent) { 43134 headers[userAgentHeader] += " " + options.customUserAgent; 43135 } 43136 return next(tslib_1.__assign(tslib_1.__assign({}, args), { request: request })); 43137 }; }; 43138} 43139exports.userAgentMiddleware = userAgentMiddleware; 43140exports.getUserAgentMiddlewareOptions = { 43141 name: "getUserAgentMiddleware", 43142 step: "build", 43143 tags: ["SET_USER_AGENT", "USER_AGENT"], 43144}; 43145exports.getUserAgentPlugin = function (config) { return ({ 43146 applyToStack: function (clientStack) { 43147 clientStack.add(userAgentMiddleware(config), exports.getUserAgentMiddlewareOptions); 43148 }, 43149}); }; 43150//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx3REFBcUQ7QUFZckQsU0FBZ0IsbUJBQW1CLENBQUMsT0FBZ0M7SUFDbEUsT0FBTyxVQUFnQyxJQUE0QixJQUE2QixPQUFBLFVBQzlGLElBQWdDO1FBRXhCLElBQUEsT0FBTyxHQUFLLElBQUksUUFBVCxDQUFVO1FBQ3pCLElBQUksQ0FBQywyQkFBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxJQUFBLE9BQU8sR0FBSyxPQUFPLFFBQVosQ0FBYTtRQUM1QixJQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUN2RixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxLQUFHLE9BQU8sQ0FBQyxnQkFBa0IsQ0FBQztTQUMxRDthQUFNO1lBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLE1BQUksT0FBTyxDQUFDLGdCQUFrQixDQUFDO1NBQzVEO1FBQ0QsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxNQUFJLE9BQU8sQ0FBQyxlQUFpQixDQUFDO1NBQzNEO1FBQ0QsT0FBTyxJQUFJLHVDQUNOLElBQUksS0FDUCxPQUFPLFNBQUEsSUFDUCxDQUFDO0lBQ0wsQ0FBQyxFQW5CK0YsQ0FtQi9GLENBQUM7QUFDSixDQUFDO0FBckJELGtEQXFCQztBQUVZLFFBQUEsNkJBQTZCLEdBQXdCO0lBQ2hFLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUM7Q0FDdkMsQ0FBQztBQUVXLFFBQUEsa0JBQWtCLEdBQUcsVUFBQyxNQUErQixJQUEwQixPQUFBLENBQUM7SUFDM0YsWUFBWSxFQUFFLFVBQUMsV0FBVztRQUN4QixXQUFXLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxFQUFFLHFDQUE2QixDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGLENBQUMsRUFKMEYsQ0FJMUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSBcIkBhd3Mtc2RrL3Byb3RvY29sLWh0dHBcIjtcbmltcG9ydCB7XG4gIEJ1aWxkSGFuZGxlcixcbiAgQnVpbGRIYW5kbGVyQXJndW1lbnRzLFxuICBCdWlsZEhhbmRsZXJPcHRpb25zLFxuICBCdWlsZEhhbmRsZXJPdXRwdXQsXG4gIE1ldGFkYXRhQmVhcmVyLFxuICBQbHVnZ2FibGUsXG59IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VyQWdlbnRNaWRkbGV3YXJlKG9wdGlvbnM6IFVzZXJBZ2VudFJlc29sdmVkQ29uZmlnKSB7XG4gIHJldHVybiA8T3V0cHV0IGV4dGVuZHMgTWV0YWRhdGFCZWFyZXI+KG5leHQ6IEJ1aWxkSGFuZGxlcjxhbnksIGFueT4pOiBCdWlsZEhhbmRsZXI8YW55LCBhbnk+ID0+IChcbiAgICBhcmdzOiBCdWlsZEhhbmRsZXJBcmd1bWVudHM8YW55PlxuICApOiBQcm9taXNlPEJ1aWxkSGFuZGxlck91dHB1dDxPdXRwdXQ+PiA9PiB7XG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSBhcmdzO1xuICAgIGlmICghSHR0cFJlcXVlc3QuaXNJbnN0YW5jZShyZXF1ZXN0KSkgcmV0dXJuIG5leHQoYXJncyk7XG4gICAgY29uc3QgeyBoZWFkZXJzIH0gPSByZXF1ZXN0O1xuICAgIGNvbnN0IHVzZXJBZ2VudEhlYWRlciA9IG9wdGlvbnMucnVudGltZSA9PT0gXCJub2RlXCIgPyBcInVzZXItYWdlbnRcIiA6IFwieC1hbXotdXNlci1hZ2VudFwiO1xuICAgIGlmICghaGVhZGVyc1t1c2VyQWdlbnRIZWFkZXJdKSB7XG4gICAgICBoZWFkZXJzW3VzZXJBZ2VudEhlYWRlcl0gPSBgJHtvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyc1t1c2VyQWdlbnRIZWFkZXJdICs9IGAgJHtvcHRpb25zLmRlZmF1bHRVc2VyQWdlbnR9YDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuY3VzdG9tVXNlckFnZW50KSB7XG4gICAgICBoZWFkZXJzW3VzZXJBZ2VudEhlYWRlcl0gKz0gYCAke29wdGlvbnMuY3VzdG9tVXNlckFnZW50fWA7XG4gICAgfVxuICAgIHJldHVybiBuZXh0KHtcbiAgICAgIC4uLmFyZ3MsXG4gICAgICByZXF1ZXN0LFxuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgZ2V0VXNlckFnZW50TWlkZGxld2FyZU9wdGlvbnM6IEJ1aWxkSGFuZGxlck9wdGlvbnMgPSB7XG4gIG5hbWU6IFwiZ2V0VXNlckFnZW50TWlkZGxld2FyZVwiLFxuICBzdGVwOiBcImJ1aWxkXCIsXG4gIHRhZ3M6IFtcIlNFVF9VU0VSX0FHRU5UXCIsIFwiVVNFUl9BR0VOVFwiXSxcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyQWdlbnRQbHVnaW4gPSAoY29uZmlnOiBVc2VyQWdlbnRSZXNvbHZlZENvbmZpZyk6IFBsdWdnYWJsZTxhbnksIGFueT4gPT4gKHtcbiAgYXBwbHlUb1N0YWNrOiAoY2xpZW50U3RhY2spID0+IHtcbiAgICBjbGllbnRTdGFjay5hZGQodXNlckFnZW50TWlkZGxld2FyZShjb25maWcpLCBnZXRVc2VyQWdlbnRNaWRkbGV3YXJlT3B0aW9ucyk7XG4gIH0sXG59KTtcbiJdfQ== 43151 43152/***/ }), 43153
vendor: 2,873 bytes, lines 43154-43189
43154/***/ "./node_modules/@aws-sdk/property-provider/dist/cjs/ProviderError.js": 43155/*!***************************************************************************!*\ 43156 !*** ./node_modules/@aws-sdk/property-provider/dist/cjs/ProviderError.js ***! 43157 \***************************************************************************/ 43158/*! no static exports found */ 43159/***/ (function(module, exports, __webpack_require__) { 43160 43161"use strict"; 43162 43163Object.defineProperty(exports, "__esModule", { value: true }); 43164exports.ProviderError = void 0; 43165var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43166/** 43167 * An error representing a failure of an individual credential provider. 43168 * 43169 * This error class has special meaning to the {@link chain} method. If a 43170 * provider in the chain is rejected with an error, the chain will only proceed 43171 * to the next provider if the value of the `tryNextLink` property on the error 43172 * is truthy. This allows individual providers to halt the chain and also 43173 * ensures the chain will stop if an entirely unexpected error is encountered. 43174 */ 43175var ProviderError = /** @class */ (function (_super) { 43176 tslib_1.__extends(ProviderError, _super); 43177 function ProviderError(message, tryNextLink) { 43178 if (tryNextLink === void 0) { tryNextLink = true; } 43179 var _this = _super.call(this, message) || this; 43180 _this.tryNextLink = tryNextLink; 43181 return _this; 43182 } 43183 return ProviderError; 43184}(Error)); 43185exports.ProviderError = ProviderError; 43186//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvdmlkZXJFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Qcm92aWRlckVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7R0FRRztBQUNIO0lBQW1DLHlDQUFLO0lBQ3RDLHVCQUFZLE9BQWUsRUFBa0IsV0FBMkI7UUFBM0IsNEJBQUEsRUFBQSxrQkFBMkI7UUFBeEUsWUFDRSxrQkFBTSxPQUFPLENBQUMsU0FDZjtRQUY0QyxpQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7O0lBRXhFLENBQUM7SUFDSCxvQkFBQztBQUFELENBQUMsQUFKRCxDQUFtQyxLQUFLLEdBSXZDO0FBSlksc0NBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFuIGVycm9yIHJlcHJlc2VudGluZyBhIGZhaWx1cmUgb2YgYW4gaW5kaXZpZHVhbCBjcmVkZW50aWFsIHByb3ZpZGVyLlxuICpcbiAqIFRoaXMgZXJyb3IgY2xhc3MgaGFzIHNwZWNpYWwgbWVhbmluZyB0byB0aGUge0BsaW5rIGNoYWlufSBtZXRob2QuIElmIGFcbiAqIHByb3ZpZGVyIGluIHRoZSBjaGFpbiBpcyByZWplY3RlZCB3aXRoIGFuIGVycm9yLCB0aGUgY2hhaW4gd2lsbCBvbmx5IHByb2NlZWRcbiAqIHRvIHRoZSBuZXh0IHByb3ZpZGVyIGlmIHRoZSB2YWx1ZSBvZiB0aGUgYHRyeU5leHRMaW5rYCBwcm9wZXJ0eSBvbiB0aGUgZXJyb3JcbiAqIGlzIHRydXRoeS4gVGhpcyBhbGxvd3MgaW5kaXZpZHVhbCBwcm92aWRlcnMgdG8gaGFsdCB0aGUgY2hhaW4gYW5kIGFsc29cbiAqIGVuc3VyZXMgdGhlIGNoYWluIHdpbGwgc3RvcCBpZiBhbiBlbnRpcmVseSB1bmV4cGVjdGVkIGVycm9yIGlzIGVuY291bnRlcmVkLlxuICovXG5leHBvcnQgY2xhc3MgUHJvdmlkZXJFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgdHJ5TmV4dExpbms6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ== 43187 43188/***/ }), 43189
vendor: 4,535 bytes, lines 43190-43248
43190/***/ "./node_modules/@aws-sdk/property-provider/dist/cjs/chain.js": 43191/*!*******************************************************************!*\ 43192 !*** ./node_modules/@aws-sdk/property-provider/dist/cjs/chain.js ***! 43193 \*******************************************************************/ 43194/*! no static exports found */ 43195/***/ (function(module, exports, __webpack_require__) { 43196 43197"use strict"; 43198 43199Object.defineProperty(exports, "__esModule", { value: true }); 43200exports.chain = void 0; 43201var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43202var ProviderError_1 = __webpack_require__(/*! ./ProviderError */ "./node_modules/@aws-sdk/property-provider/dist/cjs/ProviderError.js"); 43203/** 43204 * Compose a single credential provider function from multiple credential 43205 * providers. The first provider in the argument list will always be invoked; 43206 * subsequent providers in the list will be invoked in the order in which the 43207 * were received if the preceding provider did not successfully resolve. 43208 * 43209 * If no providers were received or no provider resolves successfully, the 43210 * returned promise will be rejected. 43211 */ 43212function chain() { 43213 var providers = []; 43214 for (var _i = 0; _i < arguments.length; _i++) { 43215 providers[_i] = arguments[_i]; 43216 } 43217 return function () { 43218 var e_1, _a; 43219 var promise = Promise.reject(new ProviderError_1.ProviderError("No providers in chain")); 43220 var _loop_1 = function (provider) { 43221 promise = promise.catch(function (err) { 43222 if (err === null || err === void 0 ? void 0 : err.tryNextLink) { 43223 return provider(); 43224 } 43225 throw err; 43226 }); 43227 }; 43228 try { 43229 for (var providers_1 = tslib_1.__values(providers), providers_1_1 = providers_1.next(); !providers_1_1.done; providers_1_1 = providers_1.next()) { 43230 var provider = providers_1_1.value; 43231 _loop_1(provider); 43232 } 43233 } 43234 catch (e_1_1) { e_1 = { error: e_1_1 }; } 43235 finally { 43236 try { 43237 if (providers_1_1 && !providers_1_1.done && (_a = providers_1.return)) _a.call(providers_1); 43238 } 43239 finally { if (e_1) throw e_1.error; } 43240 } 43241 return promise; 43242 }; 43243} 43244exports.chain = chain; 43245//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2hhaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLGlEQUFnRDtBQUVoRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLEtBQUs7SUFBSSxtQkFBZ0M7U0FBaEMsVUFBZ0MsRUFBaEMscUJBQWdDLEVBQWhDLElBQWdDO1FBQWhDLDhCQUFnQzs7SUFDdkQsT0FBTzs7UUFDTCxJQUFJLE9BQU8sR0FBZSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksNkJBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7Z0NBQzFFLFFBQVE7WUFDakIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBQyxHQUFRO2dCQUMvQixJQUFJLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxXQUFXLEVBQUU7b0JBQ3BCLE9BQU8sUUFBUSxFQUFFLENBQUM7aUJBQ25CO2dCQUVELE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQyxDQUFDLENBQUM7OztZQVBMLEtBQXVCLElBQUEsY0FBQSxpQkFBQSxTQUFTLENBQUEsb0NBQUE7Z0JBQTNCLElBQU0sUUFBUSxzQkFBQTt3QkFBUixRQUFRO2FBUWxCOzs7Ozs7Ozs7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7QUFDSixDQUFDO0FBZkQsc0JBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5pbXBvcnQgeyBQcm92aWRlckVycm9yIH0gZnJvbSBcIi4vUHJvdmlkZXJFcnJvclwiO1xuXG4vKipcbiAqIENvbXBvc2UgYSBzaW5nbGUgY3JlZGVudGlhbCBwcm92aWRlciBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIGNyZWRlbnRpYWxcbiAqIHByb3ZpZGVycy4gVGhlIGZpcnN0IHByb3ZpZGVyIGluIHRoZSBhcmd1bWVudCBsaXN0IHdpbGwgYWx3YXlzIGJlIGludm9rZWQ7XG4gKiBzdWJzZXF1ZW50IHByb3ZpZGVycyBpbiB0aGUgbGlzdCB3aWxsIGJlIGludm9rZWQgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZVxuICogd2VyZSByZWNlaXZlZCBpZiB0aGUgcHJlY2VkaW5nIHByb3ZpZGVyIGRpZCBub3Qgc3VjY2Vzc2Z1bGx5IHJlc29sdmUuXG4gKlxuICogSWYgbm8gcHJvdmlkZXJzIHdlcmUgcmVjZWl2ZWQgb3Igbm8gcHJvdmlkZXIgcmVzb2x2ZXMgc3VjY2Vzc2Z1bGx5LCB0aGVcbiAqIHJldHVybmVkIHByb21pc2Ugd2lsbCBiZSByZWplY3RlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoYWluPFQ+KC4uLnByb3ZpZGVyczogQXJyYXk8UHJvdmlkZXI8VD4+KTogUHJvdmlkZXI8VD4ge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGxldCBwcm9taXNlOiBQcm9taXNlPFQ+ID0gUHJvbWlzZS5yZWplY3QobmV3IFByb3ZpZGVyRXJyb3IoXCJObyBwcm92aWRlcnMgaW4gY2hhaW5cIikpO1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcHJvdmlkZXJzKSB7XG4gICAgICBwcm9taXNlID0gcHJvbWlzZS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGVycj8udHJ5TmV4dExpbmspIHtcbiAgICAgICAgICByZXR1cm4gcHJvdmlkZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9taXNlO1xuICB9O1xufVxuIl19 43246 43247/***/ }), 43248
vendor: 1,203 bytes, lines 43249-43264
43249/***/ "./node_modules/@aws-sdk/property-provider/dist/cjs/fromStatic.js": 43250/*!************************************************************************!*\ 43251 !*** ./node_modules/@aws-sdk/property-provider/dist/cjs/fromStatic.js ***! 43252 \************************************************************************/ 43253/*! no static exports found */ 43254/***/ (function(module, exports, __webpack_require__) { 43255 43256"use strict"; 43257 43258Object.defineProperty(exports, "__esModule", { value: true }); 43259exports.fromStatic = void 0; 43260exports.fromStatic = function (staticValue) { return function () { return Promise.resolve(staticValue); }; }; 43261//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbVN0YXRpYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mcm9tU3RhdGljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsVUFBVSxHQUFHLFVBQUksV0FBYyxJQUFrQixPQUFBLGNBQU0sT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUE1QixDQUE0QixFQUFsQyxDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IGZyb21TdGF0aWMgPSA8VD4oc3RhdGljVmFsdWU6IFQpOiBQcm92aWRlcjxUPiA9PiAoKSA9PiBQcm9taXNlLnJlc29sdmUoc3RhdGljVmFsdWUpO1xuIl19 43262 43263/***/ }), 43264
vendor: 1,563 bytes, lines 43265-43283
43265/***/ "./node_modules/@aws-sdk/property-provider/dist/cjs/index.js": 43266/*!*******************************************************************!*\ 43267 !*** ./node_modules/@aws-sdk/property-provider/dist/cjs/index.js ***! 43268 \*******************************************************************/ 43269/*! no static exports found */ 43270/***/ (function(module, exports, __webpack_require__) { 43271 43272"use strict"; 43273 43274Object.defineProperty(exports, "__esModule", { value: true }); 43275var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43276tslib_1.__exportStar(__webpack_require__(/*! ./chain */ "./node_modules/@aws-sdk/property-provider/dist/cjs/chain.js"), exports); 43277tslib_1.__exportStar(__webpack_require__(/*! ./fromStatic */ "./node_modules/@aws-sdk/property-provider/dist/cjs/fromStatic.js"), exports); 43278tslib_1.__exportStar(__webpack_require__(/*! ./memoize */ "./node_modules/@aws-sdk/property-provider/dist/cjs/memoize.js"), exports); 43279tslib_1.__exportStar(__webpack_require__(/*! ./ProviderError */ "./node_modules/@aws-sdk/property-provider/dist/cjs/ProviderError.js"), exports); 43280//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXdCO0FBQ3hCLHVEQUE2QjtBQUM3QixvREFBMEI7QUFDMUIsMERBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY2hhaW5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zyb21TdGF0aWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21lbW9pemVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1Byb3ZpZGVyRXJyb3JcIjtcbiJdfQ== 43281 43282/***/ }), 43283
vendor: 6,393 bytes, lines 43284-43330
43284/***/ "./node_modules/@aws-sdk/property-provider/dist/cjs/memoize.js": 43285/*!*********************************************************************!*\ 43286 !*** ./node_modules/@aws-sdk/property-provider/dist/cjs/memoize.js ***! 43287 \*********************************************************************/ 43288/*! no static exports found */ 43289/***/ (function(module, exports, __webpack_require__) { 43290 43291"use strict"; 43292 43293Object.defineProperty(exports, "__esModule", { value: true }); 43294exports.memoize = void 0; 43295var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43296exports.memoize = function (provider, isExpired, requiresRefresh) { 43297 if (isExpired === undefined) { 43298 // This is a static memoization; no need to incorporate refreshing 43299 var result_1 = provider(); 43300 return function () { return result_1; }; 43301 } 43302 var result = provider(); 43303 var isConstant = false; 43304 return function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { 43305 var resolved; 43306 return tslib_1.__generator(this, function (_a) { 43307 switch (_a.label) { 43308 case 0: 43309 if (isConstant) { 43310 return [2 /*return*/, result]; 43311 } 43312 return [4 /*yield*/, result]; 43313 case 1: 43314 resolved = _a.sent(); 43315 if (requiresRefresh && !requiresRefresh(resolved)) { 43316 isConstant = true; 43317 return [2 /*return*/, resolved]; 43318 } 43319 if (isExpired(resolved)) { 43320 return [2 /*return*/, (result = provider())]; 43321 } 43322 return [2 /*return*/, resolved]; 43323 } 43324 }); 43325 }); }; 43326}; 43327//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tZW1vaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUF3Q2EsUUFBQSxPQUFPLEdBQW9CLFVBQ3RDLFFBQXFCLEVBQ3JCLFNBQW9DLEVBQ3BDLGVBQTBDO0lBRTFDLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRTtRQUMzQixrRUFBa0U7UUFDbEUsSUFBTSxRQUFNLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxjQUFNLE9BQUEsUUFBTSxFQUFOLENBQU0sQ0FBQztLQUNyQjtJQUVELElBQUksTUFBTSxHQUFHLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUV2QixPQUFPOzs7OztvQkFDTCxJQUFJLFVBQVUsRUFBRTt3QkFDZCxzQkFBTyxNQUFNLEVBQUM7cUJBQ2Y7b0JBRWdCLHFCQUFNLE1BQU0sRUFBQTs7b0JBQXZCLFFBQVEsR0FBRyxTQUFZO29CQUM3QixJQUFJLGVBQWUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDakQsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDbEIsc0JBQU8sUUFBUSxFQUFDO3FCQUNqQjtvQkFDRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDdkIsc0JBQU8sQ0FBQyxNQUFNLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBQztxQkFDOUI7b0JBQ0Qsc0JBQU8sUUFBUSxFQUFDOzs7U0FDakIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmludGVyZmFjZSBNZW1vaXplT3ZlcmxvYWQge1xuICAvKipcbiAgICpcbiAgICogRGVjb3JhdGVzIGEgcHJvdmlkZXIgZnVuY3Rpb24gd2l0aCBlaXRoZXIgc3RhdGljIG1lbW9pemF0aW9uLlxuICAgKlxuICAgKiBUbyBjcmVhdGUgYSBzdGF0aWNhbGx5IG1lbW9pemVkIHByb3ZpZGVyLCBzdXBwbHkgYSBwcm92aWRlciBhcyB0aGUgb25seVxuICAgKiBhcmd1bWVudCB0byB0aGlzIGZ1bmN0aW9uLiBUaGUgcHJvdmlkZXIgd2lsbCBiZSBpbnZva2VkIG9uY2UsIGFuZCBhbGxcbiAgICogaW52b2NhdGlvbnMgb2YgdGhlIHByb3ZpZGVyIHJldHVybmVkIGJ5IGBtZW1vaXplYCB3aWxsIHJldHVybiB0aGUgc2FtZVxuICAgKiBwcm9taXNlIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVyIFRoZSBwcm92aWRlciB3aG9zZSByZXN1bHQgc2hvdWxkIGJlIGNhY2hlZCBpbmRlZmluaXRlbHkuXG4gICAqL1xuICA8VD4ocHJvdmlkZXI6IFByb3ZpZGVyPFQ+KTogUHJvdmlkZXI8VD47XG5cbiAgLyoqXG4gICAqIERlY29yYXRlcyBhIHByb3ZpZGVyIGZ1bmN0aW9uIHdpdGggcmVmcmVzaGluZyBtZW1vaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVyICAgICAgICAgIFRoZSBwcm92aWRlciB3aG9zZSByZXN1bHQgc2hvdWxkIGJlIGNhY2hlZC5cbiAgICogQHBhcmFtIGlzRXhwaXJlZCAgICAgICAgIEEgZnVuY3Rpb24gdGhhdCB3aWxsIGV2YWx1YXRlIHRoZSByZXNvbHZlZCB2YWx1ZSBhbmRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVybWluZSBpZiBpdCBpcyBleHBpcmVkLiBGb3IgZXhhbXBsZSwgd2hlblxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb2l6aW5nIEFXUyBjcmVkZW50aWFsIHByb3ZpZGVycywgdGhpcyBmdW5jdGlvblxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIHJldHVybiBgdHJ1ZWAgd2hlbiB0aGUgY3JlZGVudGlhbCdzXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmF0aW9uIGlzIGluIHRoZSBwYXN0IChvciB2ZXJ5IG5lYXIgZnV0dXJlKSBhbmRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKiBAcGFyYW0gcmVxdWlyZXNSZWZyZXNoICAgQSBmdW5jdGlvbiB0aGF0IHdpbGwgZXZhbHVhdGUgdGhlIHJlc29sdmVkIHZhbHVlIGFuZFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0ZXJtaW5lIGlmIGl0IHJlcHJlc2VudHMgc3RhdGljIHZhbHVlIG9yIG9uZSB0aGF0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGV2ZW50dWFsbHkgbmVlZCB0byBiZSByZWZyZXNoZWQuIEZvciBleGFtcGxlLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQVdTIGNyZWRlbnRpYWxzIHRoYXQgaGF2ZSBubyBkZWZpbmVkIGV4cGlyYXRpb24gd2lsbFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV2ZXIgbmVlZCB0byBiZSByZWZyZXNoZWQsIHNvIHRoaXMgZnVuY3Rpb24gd291bGRcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgdHJ1ZWAgaWYgdGhlIGNyZWRlbnRpYWxzIHJlc29sdmVkIGJ5IHRoZVxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJseWluZyBwcm92aWRlciBoYWQgYW4gZXhwaXJhdGlvbiBhbmQgYGZhbHNlYFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgPFQ+KHByb3ZpZGVyOiBQcm92aWRlcjxUPiwgaXNFeHBpcmVkOiAocmVzb2x2ZWQ6IFQpID0+IGJvb2xlYW4sIHJlcXVpcmVzUmVmcmVzaD86IChyZXNvbHZlZDogVCkgPT4gYm9vbGVhbik6IFByb3ZpZGVyPFxuICAgIFRcbiAgPjtcbn1cblxuZXhwb3J0IGNvbnN0IG1lbW9pemU6IE1lbW9pemVPdmVybG9hZCA9IDxUPihcbiAgcHJvdmlkZXI6IFByb3ZpZGVyPFQ+LFxuICBpc0V4cGlyZWQ/OiAocmVzb2x2ZWQ6IFQpID0+IGJvb2xlYW4sXG4gIHJlcXVpcmVzUmVmcmVzaD86IChyZXNvbHZlZDogVCkgPT4gYm9vbGVhblxuKTogUHJvdmlkZXI8VD4gPT4ge1xuICBpZiAoaXNFeHBpcmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBUaGlzIGlzIGEgc3RhdGljIG1lbW9pemF0aW9uOyBubyBuZWVkIHRvIGluY29ycG9yYXRlIHJlZnJlc2hpbmdcbiAgICBjb25zdCByZXN1bHQgPSBwcm92aWRlcigpO1xuICAgIHJldHVybiAoKSA9PiByZXN1bHQ7XG4gIH1cblxuICBsZXQgcmVzdWx0ID0gcHJvdmlkZXIoKTtcbiAgbGV0IGlzQ29uc3RhbnQgPSBmYWxzZTtcblxuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc0NvbnN0YW50KSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgcmVzdWx0O1xuICAgIGlmIChyZXF1aXJlc1JlZnJlc2ggJiYgIXJlcXVpcmVzUmVmcmVzaChyZXNvbHZlZCkpIHtcbiAgICAgIGlzQ29uc3RhbnQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgIH1cbiAgICBpZiAoaXNFeHBpcmVkKHJlc29sdmVkKSkge1xuICAgICAgcmV0dXJuIChyZXN1bHQgPSBwcm92aWRlcigpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkO1xuICB9O1xufTtcbiJdfQ== 43328 43329/***/ }), 43330
vendor: 1,064 bytes, lines 43331-43344
43331/***/ "./node_modules/@aws-sdk/protocol-http/dist/cjs/httpHandler.js": 43332/*!*********************************************************************!*\ 43333 !*** ./node_modules/@aws-sdk/protocol-http/dist/cjs/httpHandler.js ***! 43334 \*********************************************************************/ 43335/*! no static exports found */ 43336/***/ (function(module, exports, __webpack_require__) { 43337 43338"use strict"; 43339 43340Object.defineProperty(exports, "__esModule", { value: true }); 43341//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cEhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIYW5kbGVyT3B0aW9ucywgUmVxdWVzdEhhbmRsZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tIFwiLi9odHRwUmVxdWVzdFwiO1xuaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIi4vaHR0cFJlc3BvbnNlXCI7XG5cbmV4cG9ydCB0eXBlIEh0dHBIYW5kbGVyID0gUmVxdWVzdEhhbmRsZXI8SHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSwgSHR0cEhhbmRsZXJPcHRpb25zPjtcbiJdfQ== 43342 43343/***/ }), 43344
vendor: 7,507 bytes, lines 43345-43403
43345/***/ "./node_modules/@aws-sdk/protocol-http/dist/cjs/httpRequest.js": 43346/*!*********************************************************************!*\ 43347 !*** ./node_modules/@aws-sdk/protocol-http/dist/cjs/httpRequest.js ***! 43348 \*********************************************************************/ 43349/*! no static exports found */ 43350/***/ (function(module, exports, __webpack_require__) { 43351 43352"use strict"; 43353 43354Object.defineProperty(exports, "__esModule", { value: true }); 43355exports.HttpRequest = void 0; 43356var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43357var HttpRequest = /** @class */ (function () { 43358 function HttpRequest(options) { 43359 this.method = options.method || "GET"; 43360 this.hostname = options.hostname || "localhost"; 43361 this.port = options.port; 43362 this.query = options.query || {}; 43363 this.headers = options.headers || {}; 43364 this.body = options.body; 43365 this.protocol = options.protocol 43366 ? options.protocol.substr(-1) !== ":" 43367 ? options.protocol + ":" 43368 : options.protocol 43369 : "https:"; 43370 this.path = options.path ? (options.path.charAt(0) !== "/" ? "/" + options.path : options.path) : "/"; 43371 } 43372 HttpRequest.isInstance = function (request) { 43373 //determine if request is a valid httpRequest 43374 if (!request) 43375 return false; 43376 var req = request; 43377 return ("method" in req && 43378 "protocol" in req && 43379 "hostname" in req && 43380 "path" in req && 43381 typeof req["query"] === "object" && 43382 typeof req["headers"] === "object"); 43383 }; 43384 HttpRequest.prototype.clone = function () { 43385 var cloned = new HttpRequest(tslib_1.__assign(tslib_1.__assign({}, this), { headers: tslib_1.__assign({}, this.headers) })); 43386 if (cloned.query) 43387 cloned.query = cloneQuery(cloned.query); 43388 return cloned; 43389 }; 43390 return HttpRequest; 43391}()); 43392exports.HttpRequest = HttpRequest; 43393function cloneQuery(query) { 43394 return Object.keys(query).reduce(function (carry, paramName) { 43395 var _a; 43396 var param = query[paramName]; 43397 return tslib_1.__assign(tslib_1.__assign({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? tslib_1.__spread(param) : param, _a)); 43398 }, {}); 43399} 43400//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaHR0cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQU1BO0lBVUUscUJBQVksT0FBMkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRztnQkFDbkMsQ0FBQyxDQUFJLE9BQU8sQ0FBQyxRQUFRLE1BQUc7Z0JBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBSSxPQUFPLENBQUMsSUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN4RyxDQUFDO0lBRU0sc0JBQVUsR0FBakIsVUFBa0IsT0FBZ0I7UUFDaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDM0IsSUFBTSxHQUFHLEdBQVEsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sQ0FDTCxRQUFRLElBQUksR0FBRztZQUNmLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLFVBQVUsSUFBSSxHQUFHO1lBQ2pCLE1BQU0sSUFBSSxHQUFHO1lBQ2IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUTtZQUNoQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNFLElBQU0sTUFBTSxHQUFHLElBQUksV0FBVyx1Q0FDekIsSUFBSSxLQUNQLE9BQU8sdUJBQU8sSUFBSSxDQUFDLE9BQU8sS0FDMUIsQ0FBQztRQUNILElBQUksTUFBTSxDQUFDLEtBQUs7WUFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNILGtCQUFDO0FBQUQsQ0FBQyxBQS9DRCxJQStDQztBQS9DWSxrQ0FBVztBQWlEeEIsU0FBUyxVQUFVLENBQUMsS0FBd0I7SUFDMUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFDLEtBQXdCLEVBQUUsU0FBaUI7O1FBQzNFLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQiw2Q0FDSyxLQUFLLGdCQUNQLFNBQVMsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsa0JBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQ3REO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVuZHBvaW50LCBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVxdWVzdCBhcyBJSHR0cFJlcXVlc3QsUXVlcnlQYXJhbWV0ZXJCYWcgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxudHlwZSBIdHRwUmVxdWVzdE9wdGlvbnMgPSBQYXJ0aWFsPEh0dHBNZXNzYWdlPiAmIFBhcnRpYWw8RW5kcG9pbnQ+ICYgeyBtZXRob2Q/OiBzdHJpbmcgfTtcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVxdWVzdCBleHRlbmRzIElIdHRwUmVxdWVzdCB7fVxuXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3QgaW1wbGVtZW50cyBIdHRwTWVzc2FnZSwgRW5kcG9pbnQge1xuICBwdWJsaWMgbWV0aG9kOiBzdHJpbmc7XG4gIHB1YmxpYyBwcm90b2NvbDogc3RyaW5nO1xuICBwdWJsaWMgaG9zdG5hbWU6IHN0cmluZztcbiAgcHVibGljIHBvcnQ/OiBudW1iZXI7XG4gIHB1YmxpYyBwYXRoOiBzdHJpbmc7XG4gIHB1YmxpYyBxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWc7XG4gIHB1YmxpYyBoZWFkZXJzOiBIZWFkZXJCYWc7XG4gIHB1YmxpYyBib2R5PzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEh0dHBSZXF1ZXN0T3B0aW9ucykge1xuICAgIHRoaXMubWV0aG9kID0gb3B0aW9ucy5tZXRob2QgfHwgXCJHRVRcIjtcbiAgICB0aGlzLmhvc3RuYW1lID0gb3B0aW9ucy5ob3N0bmFtZSB8fCBcImxvY2FsaG9zdFwiO1xuICAgIHRoaXMucG9ydCA9IG9wdGlvbnMucG9ydDtcbiAgICB0aGlzLnF1ZXJ5ID0gb3B0aW9ucy5xdWVyeSB8fCB7fTtcbiAgICB0aGlzLmhlYWRlcnMgPSBvcHRpb25zLmhlYWRlcnMgfHwge307XG4gICAgdGhpcy5ib2R5ID0gb3B0aW9ucy5ib2R5O1xuICAgIHRoaXMucHJvdG9jb2wgPSBvcHRpb25zLnByb3RvY29sXG4gICAgICA/IG9wdGlvbnMucHJvdG9jb2wuc3Vic3RyKC0xKSAhPT0gXCI6XCJcbiAgICAgICAgPyBgJHtvcHRpb25zLnByb3RvY29sfTpgXG4gICAgICAgIDogb3B0aW9ucy5wcm90b2NvbFxuICAgICAgOiBcImh0dHBzOlwiO1xuICAgIHRoaXMucGF0aCA9IG9wdGlvbnMucGF0aCA/IChvcHRpb25zLnBhdGguY2hhckF0KDApICE9PSBcIi9cIiA/IGAvJHtvcHRpb25zLnBhdGh9YCA6IG9wdGlvbnMucGF0aCkgOiBcIi9cIjtcbiAgfVxuXG4gIHN0YXRpYyBpc0luc3RhbmNlKHJlcXVlc3Q6IHVua25vd24pOiByZXF1ZXN0IGlzIEh0dHBSZXF1ZXN0IHtcbiAgICAvL2RldGVybWluZSBpZiByZXF1ZXN0IGlzIGEgdmFsaWQgaHR0cFJlcXVlc3RcbiAgICBpZiAoIXJlcXVlc3QpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCByZXE6IGFueSA9IHJlcXVlc3Q7XG4gICAgcmV0dXJuIChcbiAgICAgIFwibWV0aG9kXCIgaW4gcmVxICYmXG4gICAgICBcInByb3RvY29sXCIgaW4gcmVxICYmXG4gICAgICBcImhvc3RuYW1lXCIgaW4gcmVxICYmXG4gICAgICBcInBhdGhcIiBpbiByZXEgJiZcbiAgICAgIHR5cGVvZiByZXFbXCJxdWVyeVwiXSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgdHlwZW9mIHJlcVtcImhlYWRlcnNcIl0gPT09IFwib2JqZWN0XCJcbiAgICApO1xuICB9XG5cbiAgY2xvbmUoKTogSHR0cFJlcXVlc3Qge1xuICAgIGNvbnN0IGNsb25lZCA9IG5ldyBIdHRwUmVxdWVzdCh7XG4gICAgICAuLi50aGlzLFxuICAgICAgaGVhZGVyczogeyAuLi50aGlzLmhlYWRlcnMgfSxcbiAgICB9KTtcbiAgICBpZiAoY2xvbmVkLnF1ZXJ5KSBjbG9uZWQucXVlcnkgPSBjbG9uZVF1ZXJ5KGNsb25lZC5xdWVyeSk7XG4gICAgcmV0dXJuIGNsb25lZDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZVF1ZXJ5KHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyk6IFF1ZXJ5UGFyYW1ldGVyQmFnIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHF1ZXJ5KS5yZWR1Y2UoKGNhcnJ5OiBRdWVyeVBhcmFtZXRlckJhZywgcGFyYW1OYW1lOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IHF1ZXJ5W3BhcmFtTmFtZV07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNhcnJ5LFxuICAgICAgW3BhcmFtTmFtZV06IEFycmF5LmlzQXJyYXkocGFyYW0pID8gWy4uLnBhcmFtXSA6IHBhcmFtLFxuICAgIH07XG4gIH0sIHt9KTtcbn1cbiJdfQ== 43401 43402/***/ }), 43403
vendor: 2,965 bytes, lines 43404-43434
43404/***/ "./node_modules/@aws-sdk/protocol-http/dist/cjs/httpResponse.js": 43405/*!**********************************************************************!*\ 43406 !*** ./node_modules/@aws-sdk/protocol-http/dist/cjs/httpResponse.js ***! 43407 \**********************************************************************/ 43408/*! no static exports found */ 43409/***/ (function(module, exports, __webpack_require__) { 43410 43411"use strict"; 43412 43413Object.defineProperty(exports, "__esModule", { value: true }); 43414exports.HttpResponse = void 0; 43415var HttpResponse = /** @class */ (function () { 43416 function HttpResponse(options) { 43417 this.statusCode = options.statusCode; 43418 this.headers = options.headers || {}; 43419 this.body = options.body; 43420 } 43421 HttpResponse.isInstance = function (response) { 43422 //determine if response is a valid HttpResponse 43423 if (!response) 43424 return false; 43425 var resp = response; 43426 return typeof resp.statusCode === "number" && typeof resp.headers === "object"; 43427 }; 43428 return HttpResponse; 43429}()); 43430exports.HttpResponse = HttpResponse; 43431//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cFJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2h0dHBSZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQTtJQUtFLHNCQUFZLE9BQTRCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sdUJBQVUsR0FBakIsVUFBa0IsUUFBaUI7UUFDakMsK0NBQStDO1FBQy9DLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUIsSUFBTSxJQUFJLEdBQUcsUUFBZSxDQUFDO1FBQzdCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDO0lBQ2pGLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFqQkQsSUFpQkM7QUFqQlksb0NBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIZWFkZXJCYWcsIEh0dHBNZXNzYWdlLCBIdHRwUmVzcG9uc2UgYXMgSUh0dHBSZXNwb25zZSB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG50eXBlIEh0dHBSZXNwb25zZU9wdGlvbnMgPSBQYXJ0aWFsPEh0dHBNZXNzYWdlPiAmIHtcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVzcG9uc2UgZXh0ZW5kcyBJSHR0cFJlc3BvbnNlIHt9XG5cbmV4cG9ydCBjbGFzcyBIdHRwUmVzcG9uc2Uge1xuICBwdWJsaWMgc3RhdHVzQ29kZTogbnVtYmVyO1xuICBwdWJsaWMgaGVhZGVyczogSGVhZGVyQmFnO1xuICBwdWJsaWMgYm9keT86IGFueTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIdHRwUmVzcG9uc2VPcHRpb25zKSB7XG4gICAgdGhpcy5zdGF0dXNDb2RlID0gb3B0aW9ucy5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IG9wdGlvbnMuaGVhZGVycyB8fCB7fTtcbiAgICB0aGlzLmJvZHkgPSBvcHRpb25zLmJvZHk7XG4gIH1cblxuICBzdGF0aWMgaXNJbnN0YW5jZShyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIEh0dHBSZXNwb25zZSB7XG4gICAgLy9kZXRlcm1pbmUgaWYgcmVzcG9uc2UgaXMgYSB2YWxpZCBIdHRwUmVzcG9uc2VcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcmVzcCA9IHJlc3BvbnNlIGFzIGFueTtcbiAgICByZXR1cm4gdHlwZW9mIHJlc3Auc3RhdHVzQ29kZSA9PT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgcmVzcC5oZWFkZXJzID09PSBcIm9iamVjdFwiO1xuICB9XG59XG4iXX0= 43432 43433/***/ }), 43434
vendor: 1,575 bytes, lines 43435-43453
43435/***/ "./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js": 43436/*!***************************************************************!*\ 43437 !*** ./node_modules/@aws-sdk/protocol-http/dist/cjs/index.js ***! 43438 \***************************************************************/ 43439/*! no static exports found */ 43440/***/ (function(module, exports, __webpack_require__) { 43441 43442"use strict"; 43443 43444Object.defineProperty(exports, "__esModule", { value: true }); 43445var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43446tslib_1.__exportStar(__webpack_require__(/*! ./httpResponse */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/httpResponse.js"), exports); 43447tslib_1.__exportStar(__webpack_require__(/*! ./httpRequest */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/httpRequest.js"), exports); 43448tslib_1.__exportStar(__webpack_require__(/*! ./httpHandler */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/httpHandler.js"), exports); 43449tslib_1.__exportStar(__webpack_require__(/*! ./isValidHostname */ "./node_modules/@aws-sdk/protocol-http/dist/cjs/isValidHostname.js"), exports); 43450//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQStCO0FBQy9CLHdEQUE4QjtBQUM5Qix3REFBOEI7QUFDOUIsNERBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vaHR0cFJlc3BvbnNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9odHRwUmVxdWVzdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaHR0cEhhbmRsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzVmFsaWRIb3N0bmFtZVwiO1xuIl19 43451 43452/***/ }), 43453
vendor: 1,396 bytes, lines 43454-43473
43454/***/ "./node_modules/@aws-sdk/protocol-http/dist/cjs/isValidHostname.js": 43455/*!*************************************************************************!*\ 43456 !*** ./node_modules/@aws-sdk/protocol-http/dist/cjs/isValidHostname.js ***! 43457 \*************************************************************************/ 43458/*! no static exports found */ 43459/***/ (function(module, exports, __webpack_require__) { 43460 43461"use strict"; 43462 43463Object.defineProperty(exports, "__esModule", { value: true }); 43464exports.isValidHostname = void 0; 43465function isValidHostname(hostname) { 43466 var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$/; 43467 return hostPattern.test(hostname); 43468} 43469exports.isValidHostname = isValidHostname; 43470//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNWYWxpZEhvc3RuYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lzVmFsaWRIb3N0bmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixlQUFlLENBQUMsUUFBZ0I7SUFDOUMsSUFBTSxXQUFXLEdBQUcseURBQXlELENBQUM7SUFDOUUsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFIRCwwQ0FHQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkSG9zdG5hbWUoaG9zdG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBob3N0UGF0dGVybiA9IC9eW2EtekEtWjAtOV17MX0kfF5bYS16QS1aMC05XVthLXpBLVowLTlcXC1dKlthLXpBLVowLTldJC87XG4gIHJldHVybiBob3N0UGF0dGVybi50ZXN0KGhvc3RuYW1lKTtcbn1cbiJdfQ== 43471 43472/***/ }), 43473
vendor: 4,014 bytes, lines 43474-43522
43474/***/ "./node_modules/@aws-sdk/querystring-builder/dist/cjs/index.js": 43475/*!*********************************************************************!*\ 43476 !*** ./node_modules/@aws-sdk/querystring-builder/dist/cjs/index.js ***! 43477 \*********************************************************************/ 43478/*! no static exports found */ 43479/***/ (function(module, exports, __webpack_require__) { 43480 43481"use strict"; 43482 43483Object.defineProperty(exports, "__esModule", { value: true }); 43484exports.buildQueryString = void 0; 43485var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43486var util_uri_escape_1 = __webpack_require__(/*! @aws-sdk/util-uri-escape */ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/index.js"); 43487function buildQueryString(query) { 43488 var e_1, _a; 43489 var parts = []; 43490 try { 43491 for (var _b = tslib_1.__values(Object.keys(query).sort()), _c = _b.next(); !_c.done; _c = _b.next()) { 43492 var key = _c.value; 43493 var value = query[key]; 43494 key = util_uri_escape_1.escapeUri(key); 43495 if (Array.isArray(value)) { 43496 for (var i = 0, iLen = value.length; i < iLen; i++) { 43497 parts.push(key + "=" + util_uri_escape_1.escapeUri(value[i])); 43498 } 43499 } 43500 else { 43501 var qsEntry = key; 43502 if (value || typeof value === "string") { 43503 qsEntry += "=" + util_uri_escape_1.escapeUri(value); 43504 } 43505 parts.push(qsEntry); 43506 } 43507 } 43508 } 43509 catch (e_1_1) { e_1 = { error: e_1_1 }; } 43510 finally { 43511 try { 43512 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 43513 } 43514 finally { if (e_1) throw e_1.error; } 43515 } 43516 return parts.join("&"); 43517} 43518exports.buildQueryString = buildQueryString; 43519//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLDREQUFxRDtBQUVyRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUF3Qjs7SUFDdkQsSUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDOztRQUMzQixLQUFnQixJQUFBLEtBQUEsaUJBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxnQkFBQSw0QkFBRTtZQUF0QyxJQUFJLEdBQUcsV0FBQTtZQUNWLElBQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixHQUFHLEdBQUcsMkJBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQ2xELEtBQUssQ0FBQyxJQUFJLENBQUksR0FBRyxTQUFJLDJCQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFHLENBQUMsQ0FBQztpQkFDN0M7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ2xCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtvQkFDdEMsT0FBTyxJQUFJLE1BQUksMkJBQVMsQ0FBQyxLQUFLLENBQUcsQ0FBQztpQkFDbkM7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNyQjtTQUNGOzs7Ozs7Ozs7SUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQW5CRCw0Q0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeVBhcmFtZXRlckJhZyB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuaW1wb3J0IHsgZXNjYXBlVXJpIH0gZnJvbSBcIkBhd3Mtc2RrL3V0aWwtdXJpLWVzY2FwZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRdWVyeVN0cmluZyhxdWVyeTogUXVlcnlQYXJhbWV0ZXJCYWcpOiBzdHJpbmcge1xuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKHF1ZXJ5KS5zb3J0KCkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHF1ZXJ5W2tleV07XG4gICAga2V5ID0gZXNjYXBlVXJpKGtleSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICBmb3IgKGxldCBpID0gMCwgaUxlbiA9IHZhbHVlLmxlbmd0aDsgaSA8IGlMZW47IGkrKykge1xuICAgICAgICBwYXJ0cy5wdXNoKGAke2tleX09JHtlc2NhcGVVcmkodmFsdWVbaV0pfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcXNFbnRyeSA9IGtleTtcbiAgICAgIGlmICh2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcXNFbnRyeSArPSBgPSR7ZXNjYXBlVXJpKHZhbHVlKX1gO1xuICAgICAgfVxuICAgICAgcGFydHMucHVzaChxc0VudHJ5KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbihcIiZcIik7XG59XG4iXX0= 43520 43521/***/ }), 43522
vendor: 4,160 bytes, lines 43523-43573
43523/***/ "./node_modules/@aws-sdk/querystring-parser/dist/cjs/index.js": 43524/*!********************************************************************!*\ 43525 !*** ./node_modules/@aws-sdk/querystring-parser/dist/cjs/index.js ***! 43526 \********************************************************************/ 43527/*! no static exports found */ 43528/***/ (function(module, exports, __webpack_require__) { 43529 43530"use strict"; 43531 43532Object.defineProperty(exports, "__esModule", { value: true }); 43533exports.parseQueryString = void 0; 43534var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43535function parseQueryString(querystring) { 43536 var e_1, _a; 43537 var query = {}; 43538 querystring = querystring.replace(/^\?/, ""); 43539 if (querystring) { 43540 try { 43541 for (var _b = tslib_1.__values(querystring.split("&")), _c = _b.next(); !_c.done; _c = _b.next()) { 43542 var pair = _c.value; 43543 var _d = tslib_1.__read(pair.split("="), 2), key = _d[0], _e = _d[1], value = _e === void 0 ? null : _e; 43544 key = decodeURIComponent(key); 43545 if (value) { 43546 value = decodeURIComponent(value); 43547 } 43548 if (!(key in query)) { 43549 query[key] = value; 43550 } 43551 else if (Array.isArray(query[key])) { 43552 query[key].push(value); 43553 } 43554 else { 43555 query[key] = [query[key], value]; 43556 } 43557 } 43558 } 43559 catch (e_1_1) { e_1 = { error: e_1_1 }; } 43560 finally { 43561 try { 43562 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 43563 } 43564 finally { if (e_1) throw e_1.error; } 43565 } 43566 } 43567 return query; 43568} 43569exports.parseQueryString = parseQueryString; 43570//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLFNBQWdCLGdCQUFnQixDQUFDLFdBQW1COztJQUNsRCxJQUFNLEtBQUssR0FBc0IsRUFBRSxDQUFDO0lBQ3BDLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU3QyxJQUFJLFdBQVcsRUFBRTs7WUFDZixLQUFtQixJQUFBLEtBQUEsaUJBQUEsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBdEMsSUFBTSxJQUFJLFdBQUE7Z0JBQ1QsSUFBQSxLQUFBLGVBQXNCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUEsRUFBcEMsR0FBRyxRQUFBLEVBQUUsVUFBWSxFQUFaLEtBQUssbUJBQUcsSUFBSSxLQUFtQixDQUFDO2dCQUMxQyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksS0FBSyxFQUFFO29CQUNULEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFO29CQUNuQixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxHQUFHLENBQW1CLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO2lCQUNyRDtxQkFBTTtvQkFDTCxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFXLEVBQUUsS0FBZSxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7Ozs7Ozs7OztLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBdEJELDRDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5UGFyYW1ldGVyQmFnIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVF1ZXJ5U3RyaW5nKHF1ZXJ5c3RyaW5nOiBzdHJpbmcpOiBRdWVyeVBhcmFtZXRlckJhZyB7XG4gIGNvbnN0IHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyA9IHt9O1xuICBxdWVyeXN0cmluZyA9IHF1ZXJ5c3RyaW5nLnJlcGxhY2UoL15cXD8vLCBcIlwiKTtcblxuICBpZiAocXVlcnlzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IHBhaXIgb2YgcXVlcnlzdHJpbmcuc3BsaXQoXCImXCIpKSB7XG4gICAgICBsZXQgW2tleSwgdmFsdWUgPSBudWxsXSA9IHBhaXIuc3BsaXQoXCI9XCIpO1xuICAgICAga2V5ID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgfVxuICAgICAgaWYgKCEoa2V5IGluIHF1ZXJ5KSkge1xuICAgICAgICBxdWVyeVtrZXldID0gdmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocXVlcnlba2V5XSkpIHtcbiAgICAgICAgKHF1ZXJ5W2tleV0gYXMgQXJyYXk8c3RyaW5nPikucHVzaCh2YWx1ZSBhcyBzdHJpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVlcnlba2V5XSA9IFtxdWVyeVtrZXldIGFzIHN0cmluZywgdmFsdWUgYXMgc3RyaW5nXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcXVlcnk7XG59XG4iXX0= 43571 43572/***/ }), 43573
vendor: 4,532 bytes, lines 43574-43632
43574/***/ "./node_modules/@aws-sdk/service-error-classification/dist/cjs/constants.js": 43575/*!**********************************************************************************!*\ 43576 !*** ./node_modules/@aws-sdk/service-error-classification/dist/cjs/constants.js ***! 43577 \**********************************************************************************/ 43578/*! no static exports found */ 43579/***/ (function(module, exports, __webpack_require__) { 43580 43581"use strict"; 43582 43583Object.defineProperty(exports, "__esModule", { value: true }); 43584exports.TRANSIENT_ERROR_STATUS_CODES = exports.TRANSIENT_ERROR_CODES = exports.THROTTLING_ERROR_CODES = exports.CLOCK_SKEW_ERROR_CODES = void 0; 43585/** 43586 * Errors encountered when the client clock and server clock cannot agree on the 43587 * current time. 43588 * 43589 * These errors are retryable, assuming the SDK has enabled clock skew 43590 * correction. 43591 */ 43592exports.CLOCK_SKEW_ERROR_CODES = [ 43593 "AuthFailure", 43594 "InvalidSignatureException", 43595 "RequestExpired", 43596 "RequestInTheFuture", 43597 "RequestTimeTooSkewed", 43598 "SignatureDoesNotMatch", 43599]; 43600/** 43601 * Errors that indicate the SDK is being throttled. 43602 * 43603 * These errors are always retryable. 43604 */ 43605exports.THROTTLING_ERROR_CODES = [ 43606 "Throttling", 43607 "ThrottlingException", 43608 "ThrottledException", 43609 "RequestThrottledException", 43610 "TooManyRequestsException", 43611 "ProvisionedThroughputExceededException", 43612 "TransactionInProgressException", 43613 "RequestLimitExceeded", 43614 "BandwidthLimitExceeded", 43615 "LimitExceededException", 43616 "RequestThrottled", 43617 "SlowDown", 43618 "PriorRequestNotComplete", 43619 "EC2ThrottledException", 43620]; 43621/** 43622 * Error codes that indicate transient issues 43623 */ 43624exports.TRANSIENT_ERROR_CODES = ["AbortError", "TimeoutError", "RequestTimeout", "RequestTimeoutException"]; 43625/** 43626 * Error codes that indicate transient issues 43627 */ 43628exports.TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504]; 43629//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7O0dBTUc7QUFDVSxRQUFBLHNCQUFzQixHQUFHO0lBQ3BDLGFBQWE7SUFDYiwyQkFBMkI7SUFDM0IsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRjs7OztHQUlHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRztJQUNwQyxZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0IsMEJBQTBCO0lBQzFCLHdDQUF3QztJQUN4QyxnQ0FBZ0M7SUFDaEMsc0JBQXNCO0lBQ3RCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVix5QkFBeUI7SUFDekIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFFakg7O0dBRUc7QUFDVSxRQUFBLDRCQUE0QixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVycm9ycyBlbmNvdW50ZXJlZCB3aGVuIHRoZSBjbGllbnQgY2xvY2sgYW5kIHNlcnZlciBjbG9jayBjYW5ub3QgYWdyZWUgb24gdGhlXG4gKiBjdXJyZW50IHRpbWUuXG4gKlxuICogVGhlc2UgZXJyb3JzIGFyZSByZXRyeWFibGUsIGFzc3VtaW5nIHRoZSBTREsgaGFzIGVuYWJsZWQgY2xvY2sgc2tld1xuICogY29ycmVjdGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IENMT0NLX1NLRVdfRVJST1JfQ09ERVMgPSBbXG4gIFwiQXV0aEZhaWx1cmVcIixcbiAgXCJJbnZhbGlkU2lnbmF0dXJlRXhjZXB0aW9uXCIsXG4gIFwiUmVxdWVzdEV4cGlyZWRcIixcbiAgXCJSZXF1ZXN0SW5UaGVGdXR1cmVcIixcbiAgXCJSZXF1ZXN0VGltZVRvb1NrZXdlZFwiLFxuICBcIlNpZ25hdHVyZURvZXNOb3RNYXRjaFwiLFxuXTtcblxuLyoqXG4gKiBFcnJvcnMgdGhhdCBpbmRpY2F0ZSB0aGUgU0RLIGlzIGJlaW5nIHRocm90dGxlZC5cbiAqXG4gKiBUaGVzZSBlcnJvcnMgYXJlIGFsd2F5cyByZXRyeWFibGUuXG4gKi9cbmV4cG9ydCBjb25zdCBUSFJPVFRMSU5HX0VSUk9SX0NPREVTID0gW1xuICBcIlRocm90dGxpbmdcIixcbiAgXCJUaHJvdHRsaW5nRXhjZXB0aW9uXCIsXG4gIFwiVGhyb3R0bGVkRXhjZXB0aW9uXCIsXG4gIFwiUmVxdWVzdFRocm90dGxlZEV4Y2VwdGlvblwiLFxuICBcIlRvb01hbnlSZXF1ZXN0c0V4Y2VwdGlvblwiLFxuICBcIlByb3Zpc2lvbmVkVGhyb3VnaHB1dEV4Y2VlZGVkRXhjZXB0aW9uXCIsXG4gIFwiVHJhbnNhY3Rpb25JblByb2dyZXNzRXhjZXB0aW9uXCIsXG4gIFwiUmVxdWVzdExpbWl0RXhjZWVkZWRcIixcbiAgXCJCYW5kd2lkdGhMaW1pdEV4Y2VlZGVkXCIsXG4gIFwiTGltaXRFeGNlZWRlZEV4Y2VwdGlvblwiLFxuICBcIlJlcXVlc3RUaHJvdHRsZWRcIixcbiAgXCJTbG93RG93blwiLFxuICBcIlByaW9yUmVxdWVzdE5vdENvbXBsZXRlXCIsXG4gIFwiRUMyVGhyb3R0bGVkRXhjZXB0aW9uXCIsXG5dO1xuXG4vKipcbiAqIEVycm9yIGNvZGVzIHRoYXQgaW5kaWNhdGUgdHJhbnNpZW50IGlzc3Vlc1xuICovXG5leHBvcnQgY29uc3QgVFJBTlNJRU5UX0VSUk9SX0NPREVTID0gW1wiQWJvcnRFcnJvclwiLCBcIlRpbWVvdXRFcnJvclwiLCBcIlJlcXVlc3RUaW1lb3V0XCIsIFwiUmVxdWVzdFRpbWVvdXRFeGNlcHRpb25cIl07XG5cbi8qKlxuICogRXJyb3IgY29kZXMgdGhhdCBpbmRpY2F0ZSB0cmFuc2llbnQgaXNzdWVzXG4gKi9cbmV4cG9ydCBjb25zdCBUUkFOU0lFTlRfRVJST1JfU1RBVFVTX0NPREVTID0gWzUwMCwgNTAyLCA1MDMsIDUwNF07XG4iXX0= 43630 43631/***/ }), 43632
vendor: 3,339 bytes, lines 43633-43656
43633/***/ "./node_modules/@aws-sdk/service-error-classification/dist/cjs/index.js": 43634/*!******************************************************************************!*\ 43635 !*** ./node_modules/@aws-sdk/service-error-classification/dist/cjs/index.js ***! 43636 \******************************************************************************/ 43637/*! no static exports found */ 43638/***/ (function(module, exports, __webpack_require__) { 43639 43640"use strict"; 43641 43642Object.defineProperty(exports, "__esModule", { value: true }); 43643exports.isTransientError = exports.isThrottlingError = exports.isClockSkewError = exports.isRetryableByTrait = void 0; 43644var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/service-error-classification/dist/cjs/constants.js"); 43645exports.isRetryableByTrait = function (error) { return error.$retryable !== undefined; }; 43646exports.isClockSkewError = function (error) { return constants_1.CLOCK_SKEW_ERROR_CODES.includes(error.name); }; 43647exports.isThrottlingError = function (error) { var _a; return constants_1.THROTTLING_ERROR_CODES.includes(error.name) || ((_a = error.$retryable) === null || _a === void 0 ? void 0 : _a.throttling) == true; }; 43648exports.isTransientError = function (error) { 43649 var _a; 43650 return constants_1.TRANSIENT_ERROR_CODES.includes(error.name) || 43651 constants_1.TRANSIENT_ERROR_STATUS_CODES.includes(((_a = error.$metadata) === null || _a === void 0 ? void 0 : _a.httpStatusCode) || 0); 43652}; 43653//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEseUNBS3FCO0FBRVIsUUFBQSxrQkFBa0IsR0FBRyxVQUFDLEtBQWUsSUFBSyxPQUFBLEtBQUssQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUE5QixDQUE4QixDQUFDO0FBRXpFLFFBQUEsZ0JBQWdCLEdBQUcsVUFBQyxLQUFlLElBQUssT0FBQSxrQ0FBc0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUEzQyxDQUEyQyxDQUFDO0FBRXBGLFFBQUEsaUJBQWlCLEdBQUcsVUFBQyxLQUFlLFlBQy9DLE9BQUEsa0NBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFBLEtBQUssQ0FBQyxVQUFVLDBDQUFFLFVBQVUsS0FBSSxJQUFJLENBQUEsRUFBQSxDQUFDO0FBRXpFLFFBQUEsZ0JBQWdCLEdBQUcsVUFBQyxLQUFlOztJQUM5QyxPQUFBLGlDQUFxQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzFDLHdDQUE0QixDQUFDLFFBQVEsQ0FBQyxPQUFBLEtBQUssQ0FBQyxTQUFTLDBDQUFFLGNBQWMsS0FBSSxDQUFDLENBQUMsQ0FBQTtDQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZGtFcnJvciB9IGZyb20gXCJAYXdzLXNkay9zbWl0aHktY2xpZW50XCI7XG5cbmltcG9ydCB7XG4gIENMT0NLX1NLRVdfRVJST1JfQ09ERVMsXG4gIFRIUk9UVExJTkdfRVJST1JfQ09ERVMsXG4gIFRSQU5TSUVOVF9FUlJPUl9DT0RFUyxcbiAgVFJBTlNJRU5UX0VSUk9SX1NUQVRVU19DT0RFUyxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBjb25zdCBpc1JldHJ5YWJsZUJ5VHJhaXQgPSAoZXJyb3I6IFNka0Vycm9yKSA9PiBlcnJvci4kcmV0cnlhYmxlICE9PSB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjb25zdCBpc0Nsb2NrU2tld0Vycm9yID0gKGVycm9yOiBTZGtFcnJvcikgPT4gQ0xPQ0tfU0tFV19FUlJPUl9DT0RFUy5pbmNsdWRlcyhlcnJvci5uYW1lKTtcblxuZXhwb3J0IGNvbnN0IGlzVGhyb3R0bGluZ0Vycm9yID0gKGVycm9yOiBTZGtFcnJvcikgPT5cbiAgVEhST1RUTElOR19FUlJPUl9DT0RFUy5pbmNsdWRlcyhlcnJvci5uYW1lKSB8fCBlcnJvci4kcmV0cnlhYmxlPy50aHJvdHRsaW5nID09IHRydWU7XG5cbmV4cG9ydCBjb25zdCBpc1RyYW5zaWVudEVycm9yID0gKGVycm9yOiBTZGtFcnJvcikgPT5cbiAgVFJBTlNJRU5UX0VSUk9SX0NPREVTLmluY2x1ZGVzKGVycm9yLm5hbWUpIHx8XG4gIFRSQU5TSUVOVF9FUlJPUl9TVEFUVVNfQ09ERVMuaW5jbHVkZXMoZXJyb3IuJG1ldGFkYXRhPy5odHRwU3RhdHVzQ29kZSB8fCAwKTtcbiJdfQ== 43654 43655/***/ }), 43656
vendor: 18,821 bytes, lines 43657-43930
43657/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js": 43658/*!*******************************************************************!*\ 43659 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js ***! 43660 \*******************************************************************/ 43661/*! exports provided: SignatureV4 */ 43662/***/ (function(module, __webpack_exports__, __webpack_require__) { 43663 43664"use strict"; 43665__webpack_require__.r(__webpack_exports__); 43666/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SignatureV4", function() { return SignatureV4; }); 43667/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43668/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ "./node_modules/@aws-sdk/util-hex-encoding/dist/cjs/index.js"); 43669/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__); 43670/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js"); 43671/* harmony import */ var _credentialDerivation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./credentialDerivation */ "./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js"); 43672/* harmony import */ var _getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getCanonicalHeaders */ "./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js"); 43673/* harmony import */ var _getCanonicalQuery__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getCanonicalQuery */ "./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js"); 43674/* harmony import */ var _getPayloadHash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getPayloadHash */ "./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js"); 43675/* harmony import */ var _hasHeader__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./hasHeader */ "./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js"); 43676/* harmony import */ var _moveHeadersToQuery__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./moveHeadersToQuery */ "./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js"); 43677/* harmony import */ var _prepareRequest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./prepareRequest */ "./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js"); 43678/* harmony import */ var _utilDate__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utilDate */ "./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js"); 43679 43680 43681 43682 43683 43684 43685 43686 43687 43688 43689 43690var SignatureV4 = /** @class */ (function () { 43691 function SignatureV4(_a) { 43692 var applyChecksum = _a.applyChecksum, credentials = _a.credentials, region = _a.region, service = _a.service, sha256 = _a.sha256, _b = _a.uriEscapePath, uriEscapePath = _b === void 0 ? true : _b; 43693 this.service = service; 43694 this.sha256 = sha256; 43695 this.uriEscapePath = uriEscapePath; 43696 // default to true if applyChecksum isn't set 43697 this.applyChecksum = typeof applyChecksum === "boolean" ? applyChecksum : true; 43698 if (typeof region === "string") { 43699 var promisified_1 = Promise.resolve(region); 43700 this.regionProvider = function () { return promisified_1; }; 43701 } 43702 else { 43703 this.regionProvider = region; 43704 } 43705 if (typeof credentials === "object") { 43706 var promisified_2 = Promise.resolve(credentials); 43707 this.credentialProvider = function () { return promisified_2; }; 43708 } 43709 else { 43710 this.credentialProvider = credentials; 43711 } 43712 } 43713 SignatureV4.prototype.presign = function (originalRequest, options) { 43714 if (options === void 0) { options = {}; } 43715 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43716 var _a, region, credentials, _b, signingDate, _c, expiresIn, unsignableHeaders, signableHeaders, _d, longDate, shortDate, scope, request, canonicalHeaders, _e, _f, _g, _h, _j, _k; 43717 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_l) { 43718 switch (_l.label) { 43719 case 0: return [4 /*yield*/, Promise.all([this.regionProvider(), this.credentialProvider()])]; 43720 case 1: 43721 _a = tslib__WEBPACK_IMPORTED_MODULE_0__["__read"].apply(void 0, [_l.sent(), 2]), region = _a[0], credentials = _a[1]; 43722 _b = options.signingDate, signingDate = _b === void 0 ? new Date() : _b, _c = options.expiresIn, expiresIn = _c === void 0 ? 3600 : _c, unsignableHeaders = options.unsignableHeaders, signableHeaders = options.signableHeaders; 43723 _d = formatDate(signingDate), longDate = _d.longDate, shortDate = _d.shortDate; 43724 if (expiresIn > _constants__WEBPACK_IMPORTED_MODULE_2__["MAX_PRESIGNED_TTL"]) { 43725 return [2 /*return*/, Promise.reject("Signature version 4 presigned URLs" + " must have an expiration date less than one week in" + " the future")]; 43726 } 43727 scope = Object(_credentialDerivation__WEBPACK_IMPORTED_MODULE_3__["createScope"])(shortDate, region, this.service); 43728 request = Object(_moveHeadersToQuery__WEBPACK_IMPORTED_MODULE_8__["moveHeadersToQuery"])(Object(_prepareRequest__WEBPACK_IMPORTED_MODULE_9__["prepareRequest"])(originalRequest)); 43729 if (credentials.sessionToken) { 43730 request.query[_constants__WEBPACK_IMPORTED_MODULE_2__["TOKEN_QUERY_PARAM"]] = credentials.sessionToken; 43731 } 43732 request.query[_constants__WEBPACK_IMPORTED_MODULE_2__["ALGORITHM_QUERY_PARAM"]] = _constants__WEBPACK_IMPORTED_MODULE_2__["ALGORITHM_IDENTIFIER"]; 43733 request.query[_constants__WEBPACK_IMPORTED_MODULE_2__["CREDENTIAL_QUERY_PARAM"]] = credentials.accessKeyId + "/" + scope; 43734 request.query[_constants__WEBPACK_IMPORTED_MODULE_2__["AMZ_DATE_QUERY_PARAM"]] = longDate; 43735 request.query[_constants__WEBPACK_IMPORTED_MODULE_2__["EXPIRES_QUERY_PARAM"]] = expiresIn.toString(10); 43736 canonicalHeaders = Object(_getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_4__["getCanonicalHeaders"])(request, unsignableHeaders, signableHeaders); 43737 request.query[_constants__WEBPACK_IMPORTED_MODULE_2__["SIGNED_HEADERS_QUERY_PARAM"]] = getCanonicalHeaderList(canonicalHeaders); 43738 _e = request.query; 43739 _f = _constants__WEBPACK_IMPORTED_MODULE_2__["SIGNATURE_QUERY_PARAM"]; 43740 _g = this.getSignature; 43741 _h = [longDate, 43742 scope, 43743 this.getSigningKey(credentials, region, shortDate)]; 43744 _j = this.createCanonicalRequest; 43745 _k = [request, canonicalHeaders]; 43746 return [4 /*yield*/, Object(_getPayloadHash__WEBPACK_IMPORTED_MODULE_6__["getPayloadHash"])(originalRequest, this.sha256)]; 43747 case 2: return [4 /*yield*/, _g.apply(this, _h.concat([_j.apply(this, _k.concat([_l.sent()]))]))]; 43748 case 3: 43749 _e[_f] = _l.sent(); 43750 return [2 /*return*/, request]; 43751 } 43752 }); 43753 }); 43754 }; 43755 SignatureV4.prototype.sign = function (toSign, options) { 43756 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43757 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 43758 if (typeof toSign === "string") { 43759 return [2 /*return*/, this.signString(toSign, options)]; 43760 } 43761 else if (toSign.headers && toSign.payload) { 43762 return [2 /*return*/, this.signEvent(toSign, options)]; 43763 } 43764 else { 43765 return [2 /*return*/, this.signRequest(toSign, options)]; 43766 } 43767 return [2 /*return*/]; 43768 }); 43769 }); 43770 }; 43771 SignatureV4.prototype.signEvent = function (_a, _b) { 43772 var headers = _a.headers, payload = _a.payload; 43773 var _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, priorSignature = _b.priorSignature; 43774 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43775 var _d, region, _e, shortDate, longDate, scope, hashedPayload, hash, hashedHeaders, _f, stringToSign; 43776 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_g) { 43777 switch (_g.label) { 43778 case 0: return [4 /*yield*/, Promise.all([this.regionProvider(), this.credentialProvider()])]; 43779 case 1: 43780 _d = tslib__WEBPACK_IMPORTED_MODULE_0__["__read"].apply(void 0, [_g.sent(), 1]), region = _d[0]; 43781 _e = formatDate(signingDate), shortDate = _e.shortDate, longDate = _e.longDate; 43782 scope = Object(_credentialDerivation__WEBPACK_IMPORTED_MODULE_3__["createScope"])(shortDate, region, this.service); 43783 return [4 /*yield*/, Object(_getPayloadHash__WEBPACK_IMPORTED_MODULE_6__["getPayloadHash"])({ headers: {}, body: payload }, this.sha256)]; 43784 case 2: 43785 hashedPayload = _g.sent(); 43786 hash = new this.sha256(); 43787 hash.update(headers); 43788 _f = _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__["toHex"]; 43789 return [4 /*yield*/, hash.digest()]; 43790 case 3: 43791 hashedHeaders = _f.apply(void 0, [_g.sent()]); 43792 stringToSign = [ 43793 _constants__WEBPACK_IMPORTED_MODULE_2__["EVENT_ALGORITHM_IDENTIFIER"], 43794 longDate, 43795 scope, 43796 priorSignature, 43797 hashedHeaders, 43798 hashedPayload, 43799 ].join("\n"); 43800 return [2 /*return*/, this.signString(stringToSign, { signingDate: signingDate })]; 43801 } 43802 }); 43803 }); 43804 }; 43805 SignatureV4.prototype.signString = function (stringToSign, _a) { 43806 var _b = (_a === void 0 ? {} : _a).signingDate, signingDate = _b === void 0 ? new Date() : _b; 43807 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43808 var _c, region, credentials, shortDate, hash, _d, _e, _f; 43809 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_g) { 43810 switch (_g.label) { 43811 case 0: return [4 /*yield*/, Promise.all([this.regionProvider(), this.credentialProvider()])]; 43812 case 1: 43813 _c = tslib__WEBPACK_IMPORTED_MODULE_0__["__read"].apply(void 0, [_g.sent(), 2]), region = _c[0], credentials = _c[1]; 43814 shortDate = formatDate(signingDate).shortDate; 43815 _e = (_d = this.sha256).bind; 43816 return [4 /*yield*/, this.getSigningKey(credentials, region, shortDate)]; 43817 case 2: 43818 hash = new (_e.apply(_d, [void 0, _g.sent()]))(); 43819 hash.update(stringToSign); 43820 _f = _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__["toHex"]; 43821 return [4 /*yield*/, hash.digest()]; 43822 case 3: return [2 /*return*/, _f.apply(void 0, [_g.sent()])]; 43823 } 43824 }); 43825 }); 43826 }; 43827 SignatureV4.prototype.signRequest = function (requestToSign, _a) { 43828 var _b = _a === void 0 ? {} : _a, _c = _b.signingDate, signingDate = _c === void 0 ? new Date() : _c, signableHeaders = _b.signableHeaders, unsignableHeaders = _b.unsignableHeaders; 43829 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43830 var _d, region, credentials, request, _e, longDate, shortDate, scope, payloadHash, canonicalHeaders, signature; 43831 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_f) { 43832 switch (_f.label) { 43833 case 0: return [4 /*yield*/, Promise.all([this.regionProvider(), this.credentialProvider()])]; 43834 case 1: 43835 _d = tslib__WEBPACK_IMPORTED_MODULE_0__["__read"].apply(void 0, [_f.sent(), 2]), region = _d[0], credentials = _d[1]; 43836 request = Object(_prepareRequest__WEBPACK_IMPORTED_MODULE_9__["prepareRequest"])(requestToSign); 43837 _e = formatDate(signingDate), longDate = _e.longDate, shortDate = _e.shortDate; 43838 scope = Object(_credentialDerivation__WEBPACK_IMPORTED_MODULE_3__["createScope"])(shortDate, region, this.service); 43839 request.headers[_constants__WEBPACK_IMPORTED_MODULE_2__["AMZ_DATE_HEADER"]] = longDate; 43840 if (credentials.sessionToken) { 43841 request.headers[_constants__WEBPACK_IMPORTED_MODULE_2__["TOKEN_HEADER"]] = credentials.sessionToken; 43842 } 43843 return [4 /*yield*/, Object(_getPayloadHash__WEBPACK_IMPORTED_MODULE_6__["getPayloadHash"])(request, this.sha256)]; 43844 case 2: 43845 payloadHash = _f.sent(); 43846 if (!Object(_hasHeader__WEBPACK_IMPORTED_MODULE_7__["hasHeader"])(_constants__WEBPACK_IMPORTED_MODULE_2__["SHA256_HEADER"], request.headers) && this.applyChecksum) { 43847 request.headers[_constants__WEBPACK_IMPORTED_MODULE_2__["SHA256_HEADER"]] = payloadHash; 43848 } 43849 canonicalHeaders = Object(_getCanonicalHeaders__WEBPACK_IMPORTED_MODULE_4__["getCanonicalHeaders"])(request, unsignableHeaders, signableHeaders); 43850 return [4 /*yield*/, this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate), this.createCanonicalRequest(request, canonicalHeaders, payloadHash))]; 43851 case 3: 43852 signature = _f.sent(); 43853 request.headers[_constants__WEBPACK_IMPORTED_MODULE_2__["AUTH_HEADER"]] = 43854 _constants__WEBPACK_IMPORTED_MODULE_2__["ALGORITHM_IDENTIFIER"] + " " + 43855 ("Credential=" + credentials.accessKeyId + "/" + scope + ", ") + 43856 ("SignedHeaders=" + getCanonicalHeaderList(canonicalHeaders) + ", ") + 43857 ("Signature=" + signature); 43858 return [2 /*return*/, request]; 43859 } 43860 }); 43861 }); 43862 }; 43863 SignatureV4.prototype.createCanonicalRequest = function (request, canonicalHeaders, payloadHash) { 43864 var sortedHeaders = Object.keys(canonicalHeaders).sort(); 43865 return request.method + "\n" + this.getCanonicalPath(request) + "\n" + Object(_getCanonicalQuery__WEBPACK_IMPORTED_MODULE_5__["getCanonicalQuery"])(request) + "\n" + sortedHeaders.map(function (name) { return name + ":" + canonicalHeaders[name]; }).join("\n") + "\n\n" + sortedHeaders.join(";") + "\n" + payloadHash; 43866 }; 43867 SignatureV4.prototype.createStringToSign = function (longDate, credentialScope, canonicalRequest) { 43868 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43869 var hash, hashedRequest; 43870 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_a) { 43871 switch (_a.label) { 43872 case 0: 43873 hash = new this.sha256(); 43874 hash.update(canonicalRequest); 43875 return [4 /*yield*/, hash.digest()]; 43876 case 1: 43877 hashedRequest = _a.sent(); 43878 return [2 /*return*/, _constants__WEBPACK_IMPORTED_MODULE_2__["ALGORITHM_IDENTIFIER"] + "\n" + longDate + "\n" + credentialScope + "\n" + Object(_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__["toHex"])(hashedRequest)]; 43879 } 43880 }); 43881 }); 43882 }; 43883 SignatureV4.prototype.getCanonicalPath = function (_a) { 43884 var path = _a.path; 43885 if (this.uriEscapePath) { 43886 var doubleEncoded = encodeURIComponent(path.replace(/^\//, "")); 43887 return "/" + doubleEncoded.replace(/%2F/g, "/"); 43888 } 43889 return path; 43890 }; 43891 SignatureV4.prototype.getSignature = function (longDate, credentialScope, keyPromise, canonicalRequest) { 43892 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 43893 var stringToSign, hash, _a, _b, _c; 43894 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_d) { 43895 switch (_d.label) { 43896 case 0: return [4 /*yield*/, this.createStringToSign(longDate, credentialScope, canonicalRequest)]; 43897 case 1: 43898 stringToSign = _d.sent(); 43899 _b = (_a = this.sha256).bind; 43900 return [4 /*yield*/, keyPromise]; 43901 case 2: 43902 hash = new (_b.apply(_a, [void 0, _d.sent()]))(); 43903 hash.update(stringToSign); 43904 _c = _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_1__["toHex"]; 43905 return [4 /*yield*/, hash.digest()]; 43906 case 3: return [2 /*return*/, _c.apply(void 0, [_d.sent()])]; 43907 } 43908 }); 43909 }); 43910 }; 43911 SignatureV4.prototype.getSigningKey = function (credentials, region, shortDate) { 43912 return Object(_credentialDerivation__WEBPACK_IMPORTED_MODULE_3__["getSigningKey"])(this.sha256, credentials, shortDate, region, this.service); 43913 }; 43914 return SignatureV4; 43915}()); 43916 43917function formatDate(now) { 43918 var longDate = Object(_utilDate__WEBPACK_IMPORTED_MODULE_10__["iso8601"])(now).replace(/[\-:]/g, ""); 43919 return { 43920 longDate: longDate, 43921 shortDate: longDate.substr(0, 8), 43922 }; 43923} 43924function getCanonicalHeaderList(headers) { 43925 return Object.keys(headers).sort().join(";"); 43926} 43927//# sourceMappingURL=SignatureV4.js.map 43928 43929/***/ }), 43930
vendor: 1,645 bytes, lines 43931-43960
43931/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js": 43932/*!********************************************************************!*\ 43933 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js ***! 43934 \********************************************************************/ 43935/*! exports provided: cloneRequest */ 43936/***/ (function(module, __webpack_exports__, __webpack_require__) { 43937 43938"use strict"; 43939__webpack_require__.r(__webpack_exports__); 43940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneRequest", function() { return cloneRequest; }); 43941/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 43942 43943/** 43944 * @internal 43945 */ 43946function cloneRequest(_a) { 43947 var headers = _a.headers, query = _a.query, rest = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__rest"])(_a, ["headers", "query"]); 43948 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, rest), { headers: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, headers), query: query ? cloneQuery(query) : undefined }); 43949} 43950function cloneQuery(query) { 43951 return Object.keys(query).reduce(function (carry, paramName) { 43952 var _a; 43953 var param = query[paramName]; 43954 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, carry), (_a = {}, _a[paramName] = Array.isArray(param) ? Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spread"])(param) : param, _a)); 43955 }, {}); 43956} 43957//# sourceMappingURL=cloneRequest.js.map 43958 43959/***/ }), 43960
vendor: 5,919 bytes, lines 43961-44039
43961/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js": 43962/*!*****************************************************************!*\ 43963 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/constants.js ***! 43964 \*****************************************************************/ 43965/*! exports provided: ALGORITHM_QUERY_PARAM, CREDENTIAL_QUERY_PARAM, AMZ_DATE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, EXPIRES_QUERY_PARAM, SIGNATURE_QUERY_PARAM, TOKEN_QUERY_PARAM, AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER, GENERATED_HEADERS, SIGNATURE_HEADER, SHA256_HEADER, TOKEN_HEADER, HOST_HEADER, ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN, UNSIGNABLE_PATTERNS, ALGORITHM_IDENTIFIER, EVENT_ALGORITHM_IDENTIFIER, UNSIGNED_PAYLOAD, MAX_CACHE_SIZE, KEY_TYPE_IDENTIFIER, MAX_PRESIGNED_TTL */ 43966/***/ (function(module, __webpack_exports__, __webpack_require__) { 43967 43968"use strict"; 43969__webpack_require__.r(__webpack_exports__); 43970/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ALGORITHM_QUERY_PARAM", function() { return ALGORITHM_QUERY_PARAM; }); 43971/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CREDENTIAL_QUERY_PARAM", function() { return CREDENTIAL_QUERY_PARAM; }); 43972/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AMZ_DATE_QUERY_PARAM", function() { return AMZ_DATE_QUERY_PARAM; }); 43973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SIGNED_HEADERS_QUERY_PARAM", function() { return SIGNED_HEADERS_QUERY_PARAM; }); 43974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EXPIRES_QUERY_PARAM", function() { return EXPIRES_QUERY_PARAM; }); 43975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SIGNATURE_QUERY_PARAM", function() { return SIGNATURE_QUERY_PARAM; }); 43976/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TOKEN_QUERY_PARAM", function() { return TOKEN_QUERY_PARAM; }); 43977/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AUTH_HEADER", function() { return AUTH_HEADER; }); 43978/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AMZ_DATE_HEADER", function() { return AMZ_DATE_HEADER; }); 43979/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DATE_HEADER", function() { return DATE_HEADER; }); 43980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GENERATED_HEADERS", function() { return GENERATED_HEADERS; }); 43981/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SIGNATURE_HEADER", function() { return SIGNATURE_HEADER; }); 43982/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SHA256_HEADER", function() { return SHA256_HEADER; }); 43983/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TOKEN_HEADER", function() { return TOKEN_HEADER; }); 43984/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HOST_HEADER", function() { return HOST_HEADER; }); 43985/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ALWAYS_UNSIGNABLE_HEADERS", function() { return ALWAYS_UNSIGNABLE_HEADERS; }); 43986/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PROXY_HEADER_PATTERN", function() { return PROXY_HEADER_PATTERN; }); 43987/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SEC_HEADER_PATTERN", function() { return SEC_HEADER_PATTERN; }); 43988/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UNSIGNABLE_PATTERNS", function() { return UNSIGNABLE_PATTERNS; }); 43989/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ALGORITHM_IDENTIFIER", function() { return ALGORITHM_IDENTIFIER; }); 43990/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EVENT_ALGORITHM_IDENTIFIER", function() { return EVENT_ALGORITHM_IDENTIFIER; }); 43991/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UNSIGNED_PAYLOAD", function() { return UNSIGNED_PAYLOAD; }); 43992/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_CACHE_SIZE", function() { return MAX_CACHE_SIZE; }); 43993/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KEY_TYPE_IDENTIFIER", function() { return KEY_TYPE_IDENTIFIER; }); 43994/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MAX_PRESIGNED_TTL", function() { return MAX_PRESIGNED_TTL; }); 43995var ALGORITHM_QUERY_PARAM = "X-Amz-Algorithm"; 43996var CREDENTIAL_QUERY_PARAM = "X-Amz-Credential"; 43997var AMZ_DATE_QUERY_PARAM = "X-Amz-Date"; 43998var SIGNED_HEADERS_QUERY_PARAM = "X-Amz-SignedHeaders"; 43999var EXPIRES_QUERY_PARAM = "X-Amz-Expires"; 44000var SIGNATURE_QUERY_PARAM = "X-Amz-Signature"; 44001var TOKEN_QUERY_PARAM = "X-Amz-Security-Token"; 44002var AUTH_HEADER = "authorization"; 44003var AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase(); 44004var DATE_HEADER = "date"; 44005var GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER]; 44006var SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase(); 44007var SHA256_HEADER = "x-amz-content-sha256"; 44008var TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase(); 44009var HOST_HEADER = "host"; 44010var ALWAYS_UNSIGNABLE_HEADERS = { 44011 authorization: true, 44012 "cache-control": true, 44013 connection: true, 44014 expect: true, 44015 from: true, 44016 "keep-alive": true, 44017 "max-forwards": true, 44018 pragma: true, 44019 referer: true, 44020 te: true, 44021 trailer: true, 44022 "transfer-encoding": true, 44023 upgrade: true, 44024 "user-agent": true, 44025 "x-amzn-trace-id": true, 44026}; 44027var PROXY_HEADER_PATTERN = /^proxy-/; 44028var SEC_HEADER_PATTERN = /^sec-/; 44029var UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i]; 44030var ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256"; 44031var EVENT_ALGORITHM_IDENTIFIER = "AWS4-HMAC-SHA256-PAYLOAD"; 44032var UNSIGNED_PAYLOAD = "UNSIGNED-PAYLOAD"; 44033var MAX_CACHE_SIZE = 50; 44034var KEY_TYPE_IDENTIFIER = "aws4_request"; 44035var MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7; 44036//# sourceMappingURL=constants.js.map 44037 44038/***/ }), 44039
vendor: 4,291 bytes, lines 44040-44132
44040/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js": 44041/*!****************************************************************************!*\ 44042 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js ***! 44043 \****************************************************************************/ 44044/*! exports provided: createScope, getSigningKey, clearCredentialCache */ 44045/***/ (function(module, __webpack_exports__, __webpack_require__) { 44046 44047"use strict"; 44048__webpack_require__.r(__webpack_exports__); 44049/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createScope", function() { return createScope; }); 44050/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSigningKey", function() { return getSigningKey; }); 44051/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearCredentialCache", function() { return clearCredentialCache; }); 44052/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44053/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js"); 44054 44055 44056var signingKeyCache = {}; 44057var cacheQueue = []; 44058/** 44059 * Create a string describing the scope of credentials used to sign a request. 44060 * 44061 * @param shortDate The current calendar date in the form YYYYMMDD. 44062 * @param region The AWS region in which the service resides. 44063 * @param service The service to which the signed request is being sent. 44064 */ 44065function createScope(shortDate, region, service) { 44066 return shortDate + "/" + region + "/" + service + "/" + _constants__WEBPACK_IMPORTED_MODULE_1__["KEY_TYPE_IDENTIFIER"]; 44067} 44068/** 44069 * Derive a signing key from its composite parts 44070 * 44071 * @param sha256Constructor A constructor function that can instantiate SHA-256 44072 * hash objects. 44073 * @param credentials The credentials with which the request will be 44074 * signed. 44075 * @param shortDate The current calendar date in the form YYYYMMDD. 44076 * @param region The AWS region in which the service resides. 44077 * @param service The service to which the signed request is being 44078 * sent. 44079 */ 44080function getSigningKey(sha256Constructor, credentials, shortDate, region, service) { 44081 var cacheKey = shortDate + ":" + region + ":" + service + ":" + (credentials.accessKeyId + ":" + credentials.sessionToken); 44082 if (cacheKey in signingKeyCache) { 44083 return signingKeyCache[cacheKey]; 44084 } 44085 cacheQueue.push(cacheKey); 44086 while (cacheQueue.length > _constants__WEBPACK_IMPORTED_MODULE_1__["MAX_CACHE_SIZE"]) { 44087 delete signingKeyCache[cacheQueue.shift()]; 44088 } 44089 return (signingKeyCache[cacheKey] = new Promise(function (resolve, reject) { 44090 var e_1, _a; 44091 var keyPromise = Promise.resolve("AWS4" + credentials.secretAccessKey); 44092 var _loop_1 = function (signable) { 44093 keyPromise = keyPromise.then(function (intermediateKey) { return hmac(sha256Constructor, intermediateKey, signable); }); 44094 keyPromise.catch(function () { }); 44095 }; 44096 try { 44097 for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])([shortDate, region, service, _constants__WEBPACK_IMPORTED_MODULE_1__["KEY_TYPE_IDENTIFIER"]]), _c = _b.next(); !_c.done; _c = _b.next()) { 44098 var signable = _c.value; 44099 _loop_1(signable); 44100 } 44101 } 44102 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44103 finally { 44104 try { 44105 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 44106 } 44107 finally { if (e_1) throw e_1.error; } 44108 } 44109 keyPromise.then(resolve, function (reason) { 44110 delete signingKeyCache[cacheKey]; 44111 reject(reason); 44112 }); 44113 })); 44114} 44115/** 44116 * @internal 44117 */ 44118function clearCredentialCache() { 44119 cacheQueue.length = 0; 44120 Object.keys(signingKeyCache).forEach(function (cacheKey) { 44121 delete signingKeyCache[cacheKey]; 44122 }); 44123} 44124function hmac(ctor, secret, data) { 44125 var hash = new ctor(secret); 44126 hash.update(data); 44127 return hash.digest(); 44128} 44129//# sourceMappingURL=credentialDerivation.js.map 44130 44131/***/ }), 44132
vendor: 2,371 bytes, lines 44133-44180
44133/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js": 44134/*!***************************************************************************!*\ 44135 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalHeaders.js ***! 44136 \***************************************************************************/ 44137/*! exports provided: getCanonicalHeaders */ 44138/***/ (function(module, __webpack_exports__, __webpack_require__) { 44139 44140"use strict"; 44141__webpack_require__.r(__webpack_exports__); 44142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCanonicalHeaders", function() { return getCanonicalHeaders; }); 44143/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44144/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js"); 44145 44146 44147/** 44148 * @internal 44149 */ 44150function getCanonicalHeaders(_a, unsignableHeaders, signableHeaders) { 44151 var e_1, _b; 44152 var headers = _a.headers; 44153 var canonical = {}; 44154 try { 44155 for (var _c = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(Object.keys(headers).sort()), _d = _c.next(); !_d.done; _d = _c.next()) { 44156 var headerName = _d.value; 44157 var canonicalHeaderName = headerName.toLowerCase(); 44158 if (canonicalHeaderName in _constants__WEBPACK_IMPORTED_MODULE_1__["ALWAYS_UNSIGNABLE_HEADERS"] || (unsignableHeaders === null || unsignableHeaders === void 0 ? void 0 : unsignableHeaders.has(canonicalHeaderName)) || 44159 _constants__WEBPACK_IMPORTED_MODULE_1__["PROXY_HEADER_PATTERN"].test(canonicalHeaderName) || 44160 _constants__WEBPACK_IMPORTED_MODULE_1__["SEC_HEADER_PATTERN"].test(canonicalHeaderName)) { 44161 if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) { 44162 continue; 44163 } 44164 } 44165 canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\s+/g, " "); 44166 } 44167 } 44168 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44169 finally { 44170 try { 44171 if (_d && !_d.done && (_b = _c.return)) _b.call(_c); 44172 } 44173 finally { if (e_1) throw e_1.error; } 44174 } 44175 return canonical; 44176} 44177//# sourceMappingURL=getCanonicalHeaders.js.map 44178 44179/***/ }), 44180
vendor: 3,051 bytes, lines 44181-44244
44181/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js": 44182/*!*************************************************************************!*\ 44183 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/getCanonicalQuery.js ***! 44184 \*************************************************************************/ 44185/*! exports provided: getCanonicalQuery */ 44186/***/ (function(module, __webpack_exports__, __webpack_require__) { 44187 44188"use strict"; 44189__webpack_require__.r(__webpack_exports__); 44190/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCanonicalQuery", function() { return getCanonicalQuery; }); 44191/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44192/* harmony import */ var _aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/util-uri-escape */ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/index.js"); 44193/* harmony import */ var _aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1__); 44194/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js"); 44195 44196 44197 44198/** 44199 * @internal 44200 */ 44201function getCanonicalQuery(_a) { 44202 var e_1, _b; 44203 var _c = _a.query, query = _c === void 0 ? {} : _c; 44204 var keys = []; 44205 var serialized = {}; 44206 var _loop_1 = function (key) { 44207 if (key.toLowerCase() === _constants__WEBPACK_IMPORTED_MODULE_2__["SIGNATURE_HEADER"]) { 44208 return "continue"; 44209 } 44210 keys.push(key); 44211 var value = query[key]; 44212 if (typeof value === "string") { 44213 serialized[key] = Object(_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1__["escapeUri"])(key) + "=" + Object(_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1__["escapeUri"])(value); 44214 } 44215 else if (Array.isArray(value)) { 44216 serialized[key] = value 44217 .slice(0) 44218 .sort() 44219 .reduce(function (encoded, value) { return encoded.concat([Object(_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1__["escapeUri"])(key) + "=" + Object(_aws_sdk_util_uri_escape__WEBPACK_IMPORTED_MODULE_1__["escapeUri"])(value)]); }, []) 44220 .join("&"); 44221 } 44222 }; 44223 try { 44224 for (var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(Object.keys(query).sort()), _e = _d.next(); !_e.done; _e = _d.next()) { 44225 var key = _e.value; 44226 _loop_1(key); 44227 } 44228 } 44229 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44230 finally { 44231 try { 44232 if (_e && !_e.done && (_b = _d.return)) _b.call(_d); 44233 } 44234 finally { if (e_1) throw e_1.error; } 44235 } 44236 return keys 44237 .map(function (key) { return serialized[key]; }) 44238 .filter(function (serialized) { return serialized; }) // omit any falsy values 44239 .join("&"); 44240} 44241//# sourceMappingURL=getCanonicalQuery.js.map 44242 44243/***/ }), 44244
vendor: 4,116 bytes, lines 44245-44312
44245/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js": 44246/*!**********************************************************************!*\ 44247 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/getPayloadHash.js ***! 44248 \**********************************************************************/ 44249/*! exports provided: getPayloadHash */ 44250/***/ (function(module, __webpack_exports__, __webpack_require__) { 44251 44252"use strict"; 44253__webpack_require__.r(__webpack_exports__); 44254/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPayloadHash", function() { return getPayloadHash; }); 44255/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44256/* harmony import */ var _aws_sdk_is_array_buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @aws-sdk/is-array-buffer */ "./node_modules/@aws-sdk/is-array-buffer/dist/cjs/index.js"); 44257/* harmony import */ var _aws_sdk_is_array_buffer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_is_array_buffer__WEBPACK_IMPORTED_MODULE_1__); 44258/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @aws-sdk/util-hex-encoding */ "./node_modules/@aws-sdk/util-hex-encoding/dist/cjs/index.js"); 44259/* harmony import */ var _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__); 44260/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js"); 44261 44262 44263 44264 44265/** 44266 * @internal 44267 */ 44268function getPayloadHash(_a, hashConstructor) { 44269 var headers = _a.headers, body = _a.body; 44270 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function () { 44271 var _b, _c, headerName, hashCtor, _d; 44272 var e_1, _e; 44273 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_f) { 44274 switch (_f.label) { 44275 case 0: 44276 try { 44277 for (_b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) { 44278 headerName = _c.value; 44279 if (headerName.toLowerCase() === _constants__WEBPACK_IMPORTED_MODULE_3__["SHA256_HEADER"]) { 44280 return [2 /*return*/, headers[headerName]]; 44281 } 44282 } 44283 } 44284 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44285 finally { 44286 try { 44287 if (_c && !_c.done && (_e = _b.return)) _e.call(_b); 44288 } 44289 finally { if (e_1) throw e_1.error; } 44290 } 44291 if (!(body == undefined)) return [3 /*break*/, 1]; 44292 return [2 /*return*/, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"]; 44293 case 1: 44294 if (!(typeof body === "string" || ArrayBuffer.isView(body) || Object(_aws_sdk_is_array_buffer__WEBPACK_IMPORTED_MODULE_1__["isArrayBuffer"])(body))) return [3 /*break*/, 3]; 44295 hashCtor = new hashConstructor(); 44296 hashCtor.update(body); 44297 _d = _aws_sdk_util_hex_encoding__WEBPACK_IMPORTED_MODULE_2__["toHex"]; 44298 return [4 /*yield*/, hashCtor.digest()]; 44299 case 2: return [2 /*return*/, _d.apply(void 0, [_f.sent()])]; 44300 case 3: 44301 // As any defined body that is not a string or binary data is a stream, this 44302 // body is unsignable. Attempt to send the request with an unsigned payload, 44303 // which may or may not be accepted by the service. 44304 return [2 /*return*/, _constants__WEBPACK_IMPORTED_MODULE_3__["UNSIGNED_PAYLOAD"]]; 44305 } 44306 }); 44307 }); 44308} 44309//# sourceMappingURL=getPayloadHash.js.map 44310 44311/***/ }), 44312
vendor: 1,389 bytes, lines 44313-44348
44313/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js": 44314/*!*****************************************************************!*\ 44315 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/hasHeader.js ***! 44316 \*****************************************************************/ 44317/*! exports provided: hasHeader */ 44318/***/ (function(module, __webpack_exports__, __webpack_require__) { 44319 44320"use strict"; 44321__webpack_require__.r(__webpack_exports__); 44322/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasHeader", function() { return hasHeader; }); 44323/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44324 44325function hasHeader(soughtHeader, headers) { 44326 var e_1, _a; 44327 soughtHeader = soughtHeader.toLowerCase(); 44328 try { 44329 for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(Object.keys(headers)), _c = _b.next(); !_c.done; _c = _b.next()) { 44330 var headerName = _c.value; 44331 if (soughtHeader === headerName.toLowerCase()) { 44332 return true; 44333 } 44334 } 44335 } 44336 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44337 finally { 44338 try { 44339 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 44340 } 44341 finally { if (e_1) throw e_1.error; } 44342 } 44343 return false; 44344} 44345//# sourceMappingURL=hasHeader.js.map 44346 44347/***/ }), 44348
vendor: 1,633 bytes, lines 44349-44373
44349/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/index.js": 44350/*!*************************************************************!*\ 44351 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/index.js ***! 44352 \*************************************************************/ 44353/*! exports provided: createScope, getSigningKey, clearCredentialCache, SignatureV4 */ 44354/***/ (function(module, __webpack_exports__, __webpack_require__) { 44355 44356"use strict"; 44357__webpack_require__.r(__webpack_exports__); 44358/* harmony import */ var _credentialDerivation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./credentialDerivation */ "./node_modules/@aws-sdk/signature-v4/dist/es/credentialDerivation.js"); 44359/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createScope", function() { return _credentialDerivation__WEBPACK_IMPORTED_MODULE_0__["createScope"]; }); 44360 44361/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getSigningKey", function() { return _credentialDerivation__WEBPACK_IMPORTED_MODULE_0__["getSigningKey"]; }); 44362 44363/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clearCredentialCache", function() { return _credentialDerivation__WEBPACK_IMPORTED_MODULE_0__["clearCredentialCache"]; }); 44364 44365/* harmony import */ var _SignatureV4__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SignatureV4 */ "./node_modules/@aws-sdk/signature-v4/dist/es/SignatureV4.js"); 44366/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SignatureV4", function() { return _SignatureV4__WEBPACK_IMPORTED_MODULE_1__["SignatureV4"]; }); 44367 44368 44369 44370//# sourceMappingURL=index.js.map 44371 44372/***/ }), 44373
vendor: 2,068 bytes, lines 44374-44417
44374/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js": 44375/*!**************************************************************************!*\ 44376 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/moveHeadersToQuery.js ***! 44377 \**************************************************************************/ 44378/*! exports provided: moveHeadersToQuery */ 44379/***/ (function(module, __webpack_exports__, __webpack_require__) { 44380 44381"use strict"; 44382__webpack_require__.r(__webpack_exports__); 44383/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveHeadersToQuery", function() { return moveHeadersToQuery; }); 44384/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44385/* harmony import */ var _cloneRequest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cloneRequest */ "./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js"); 44386 44387 44388/** 44389 * @internal 44390 */ 44391function moveHeadersToQuery(request) { 44392 var e_1, _a; 44393 var _b = typeof request.clone === "function" ? request.clone() : Object(_cloneRequest__WEBPACK_IMPORTED_MODULE_1__["cloneRequest"])(request), headers = _b.headers, _c = _b.query, query = _c === void 0 ? {} : _c; 44394 try { 44395 for (var _d = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(Object.keys(headers)), _e = _d.next(); !_e.done; _e = _d.next()) { 44396 var name = _e.value; 44397 var lname = name.toLowerCase(); 44398 if (lname.substr(0, 6) === "x-amz-") { 44399 query[name] = headers[name]; 44400 delete headers[name]; 44401 } 44402 } 44403 } 44404 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44405 finally { 44406 try { 44407 if (_e && !_e.done && (_a = _d.return)) _a.call(_d); 44408 } 44409 finally { if (e_1) throw e_1.error; } 44410 } 44411 return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__assign"])({}, request), { headers: headers, 44412 query: query }); 44413} 44414//# sourceMappingURL=moveHeadersToQuery.js.map 44415 44416/***/ }), 44417
vendor: 2,052 bytes, lines 44418-44461
44418/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js": 44419/*!**********************************************************************!*\ 44420 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/prepareRequest.js ***! 44421 \**********************************************************************/ 44422/*! exports provided: prepareRequest */ 44423/***/ (function(module, __webpack_exports__, __webpack_require__) { 44424 44425"use strict"; 44426__webpack_require__.r(__webpack_exports__); 44427/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prepareRequest", function() { return prepareRequest; }); 44428/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44429/* harmony import */ var _cloneRequest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cloneRequest */ "./node_modules/@aws-sdk/signature-v4/dist/es/cloneRequest.js"); 44430/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/signature-v4/dist/es/constants.js"); 44431 44432 44433 44434/** 44435 * @internal 44436 */ 44437function prepareRequest(request) { 44438 var e_1, _a; 44439 // Create a clone of the request object that does not clone the body 44440 request = typeof request.clone === "function" ? request.clone() : Object(_cloneRequest__WEBPACK_IMPORTED_MODULE_1__["cloneRequest"])(request); 44441 try { 44442 for (var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__values"])(Object.keys(request.headers)), _c = _b.next(); !_c.done; _c = _b.next()) { 44443 var headerName = _c.value; 44444 if (_constants__WEBPACK_IMPORTED_MODULE_2__["GENERATED_HEADERS"].indexOf(headerName.toLowerCase()) > -1) { 44445 delete request.headers[headerName]; 44446 } 44447 } 44448 } 44449 catch (e_1_1) { e_1 = { error: e_1_1 }; } 44450 finally { 44451 try { 44452 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 44453 } 44454 finally { if (e_1) throw e_1.error; } 44455 } 44456 return request; 44457} 44458//# sourceMappingURL=prepareRequest.js.map 44459 44460/***/ }), 44461
vendor: 1,120 bytes, lines 44462-44493
44462/***/ "./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js": 44463/*!****************************************************************!*\ 44464 !*** ./node_modules/@aws-sdk/signature-v4/dist/es/utilDate.js ***! 44465 \****************************************************************/ 44466/*! exports provided: iso8601, toDate */ 44467/***/ (function(module, __webpack_exports__, __webpack_require__) { 44468 44469"use strict"; 44470__webpack_require__.r(__webpack_exports__); 44471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iso8601", function() { return iso8601; }); 44472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toDate", function() { return toDate; }); 44473function iso8601(time) { 44474 return toDate(time) 44475 .toISOString() 44476 .replace(/\.\d{3}Z$/, "Z"); 44477} 44478function toDate(time) { 44479 if (typeof time === "number") { 44480 return new Date(time * 1000); 44481 } 44482 if (typeof time === "string") { 44483 if (Number(time)) { 44484 return new Date(Number(time) * 1000); 44485 } 44486 return new Date(time); 44487 } 44488 return time; 44489} 44490//# sourceMappingURL=utilDate.js.map 44491 44492/***/ }), 44493
vendor: 7,170 bytes, lines 44494-44537
44494/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/client.js": 44495/*!****************************************************************!*\ 44496 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/client.js ***! 44497 \****************************************************************/ 44498/*! no static exports found */ 44499/***/ (function(module, exports, __webpack_require__) { 44500 44501"use strict"; 44502 44503Object.defineProperty(exports, "__esModule", { value: true }); 44504exports.Client = void 0; 44505var middleware_stack_1 = __webpack_require__(/*! @aws-sdk/middleware-stack */ "./node_modules/@aws-sdk/middleware-stack/dist/cjs/index.js"); 44506var Client = /** @class */ (function () { 44507 function Client(config) { 44508 this.middlewareStack = new middleware_stack_1.MiddlewareStack(); 44509 this.config = config; 44510 } 44511 Client.prototype.send = function (command, optionsOrCb, cb) { 44512 var options = typeof optionsOrCb !== "function" ? optionsOrCb : undefined; 44513 var callback = typeof optionsOrCb === "function" ? optionsOrCb : cb; 44514 var handler = command.resolveMiddleware(this.middlewareStack, this.config, options); 44515 if (callback) { 44516 handler(command) 44517 .then(function (result) { return callback(null, result.output); }, function (err) { return callback(err); }) 44518 .catch( 44519 // prevent any errors thrown in the callback from triggering an 44520 // unhandled promise rejection 44521 function () { }); 44522 } 44523 else { 44524 return handler(command).then(function (result) { return result.output; }); 44525 } 44526 }; 44527 Client.prototype.destroy = function () { 44528 if (this.config.requestHandler.destroy) 44529 this.config.requestHandler.destroy(); 44530 }; 44531 return Client; 44532}()); 44533exports.Client = Client; 44534//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4REFBNEQ7QUFVNUQ7SUFRRSxnQkFBWSxNQUFtQztRQUZ4QyxvQkFBZSxHQUFHLElBQUksa0NBQWUsRUFBNkIsQ0FBQztRQUd4RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBY0QscUJBQUksR0FBSixVQUNFLE9BQStHLEVBQy9HLFdBQXNFLEVBQ3RFLEVBQTBDO1FBRTFDLElBQU0sT0FBTyxHQUFHLE9BQU8sV0FBVyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxXQUFxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakgsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNiLElBQUksQ0FDSCxVQUFDLE1BQU0sSUFBSyxPQUFBLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUE3QixDQUE2QixFQUN6QyxVQUFDLEdBQVEsSUFBSyxPQUFBLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBYixDQUFhLENBQzVCO2lCQUNBLEtBQUs7WUFDSiwrREFBK0Q7WUFDL0QsOEJBQThCO1lBQzlCLGNBQU8sQ0FBQyxDQUNULENBQUM7U0FDTDthQUFNO1lBQ0wsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsTUFBTSxJQUFLLE9BQUEsTUFBTSxDQUFDLE1BQU0sRUFBYixDQUFhLENBQUMsQ0FBQztTQUN6RDtJQUNILENBQUM7SUFFRCx3QkFBTyxHQUFQO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUNILGFBQUM7QUFBRCxDQUFDLEFBbkRELElBbURDO0FBbkRZLHdCQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWlkZGxld2FyZVN0YWNrIH0gZnJvbSBcIkBhd3Mtc2RrL21pZGRsZXdhcmUtc3RhY2tcIjtcbmltcG9ydCB7IENsaWVudCBhcyBJQ2xpZW50LENvbW1hbmQsIE1ldGFkYXRhQmVhcmVyLCBSZXF1ZXN0SGFuZGxlciB9IGZyb20gXCJAYXdzLXNkay90eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNtaXRoeUNvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+IHtcbiAgcmVxdWVzdEhhbmRsZXI6IFJlcXVlc3RIYW5kbGVyPGFueSwgYW55LCBIYW5kbGVyT3B0aW9ucz47XG4gIHJlYWRvbmx5IGFwaVZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPiA9IFNtaXRoeUNvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+O1xuXG5leHBvcnQgY2xhc3MgQ2xpZW50PFxuICBIYW5kbGVyT3B0aW9ucyxcbiAgQ2xpZW50SW5wdXQgZXh0ZW5kcyBvYmplY3QsXG4gIENsaWVudE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyLFxuICBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24gZXh0ZW5kcyBTbWl0aHlSZXNvbHZlZENvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+XG4+IGltcGxlbWVudHMgSUNsaWVudDxDbGllbnRJbnB1dCwgQ2xpZW50T3V0cHV0LCBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb24+IHtcbiAgcHVibGljIG1pZGRsZXdhcmVTdGFjayA9IG5ldyBNaWRkbGV3YXJlU3RhY2s8Q2xpZW50SW5wdXQsIENsaWVudE91dHB1dD4oKTtcbiAgcmVhZG9ubHkgY29uZmlnOiBSZXNvbHZlZENsaWVudENvbmZpZ3VyYXRpb247XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gIH1cbiAgc2VuZDxJbnB1dFR5cGUgZXh0ZW5kcyBDbGllbnRJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oXG4gICAgY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4+LFxuICAgIG9wdGlvbnM/OiBIYW5kbGVyT3B0aW9uc1xuICApOiBQcm9taXNlPE91dHB1dFR5cGU+O1xuICBzZW5kPElucHV0VHlwZSBleHRlbmRzIENsaWVudElucHV0LCBPdXRwdXRUeXBlIGV4dGVuZHMgQ2xpZW50T3V0cHV0PihcbiAgICBjb21tYW5kOiBDb21tYW5kPENsaWVudElucHV0LCBJbnB1dFR5cGUsIENsaWVudE91dHB1dCwgT3V0cHV0VHlwZSwgU21pdGh5UmVzb2x2ZWRDb25maWd1cmF0aW9uPEhhbmRsZXJPcHRpb25zPj4sXG4gICAgY2I6IChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWRcbiAgKTogdm9pZDtcbiAgc2VuZDxJbnB1dFR5cGUgZXh0ZW5kcyBDbGllbnRJbnB1dCwgT3V0cHV0VHlwZSBleHRlbmRzIENsaWVudE91dHB1dD4oXG4gICAgY29tbWFuZDogQ29tbWFuZDxDbGllbnRJbnB1dCwgSW5wdXRUeXBlLCBDbGllbnRPdXRwdXQsIE91dHB1dFR5cGUsIFNtaXRoeVJlc29sdmVkQ29uZmlndXJhdGlvbjxIYW5kbGVyT3B0aW9ucz4+LFxuICAgIG9wdGlvbnM6IEhhbmRsZXJPcHRpb25zLFxuICAgIGNiOiAoZXJyOiBhbnksIGRhdGE/OiBPdXRwdXRUeXBlKSA9PiB2b2lkXG4gICk6IHZvaWQ7XG4gIHNlbmQ8SW5wdXRUeXBlIGV4dGVuZHMgQ2xpZW50SW5wdXQsIE91dHB1dFR5cGUgZXh0ZW5kcyBDbGllbnRPdXRwdXQ+KFxuICAgIGNvbW1hbmQ6IENvbW1hbmQ8Q2xpZW50SW5wdXQsIElucHV0VHlwZSwgQ2xpZW50T3V0cHV0LCBPdXRwdXRUeXBlLCBTbWl0aHlSZXNvbHZlZENvbmZpZ3VyYXRpb248SGFuZGxlck9wdGlvbnM+PixcbiAgICBvcHRpb25zT3JDYj86IEhhbmRsZXJPcHRpb25zIHwgKChlcnI6IGFueSwgZGF0YT86IE91dHB1dFR5cGUpID0+IHZvaWQpLFxuICAgIGNiPzogKGVycjogYW55LCBkYXRhPzogT3V0cHV0VHlwZSkgPT4gdm9pZFxuICApOiBQcm9taXNlPE91dHB1dFR5cGU+IHwgdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zT3JDYiAhPT0gXCJmdW5jdGlvblwiID8gb3B0aW9uc09yQ2IgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgY2FsbGJhY2sgPSB0eXBlb2Ygb3B0aW9uc09yQ2IgPT09IFwiZnVuY3Rpb25cIiA/IChvcHRpb25zT3JDYiBhcyAoZXJyOiBhbnksIGRhdGE/OiBPdXRwdXRUeXBlKSA9PiB2b2lkKSA6IGNiO1xuICAgIGNvbnN0IGhhbmRsZXIgPSBjb21tYW5kLnJlc29sdmVNaWRkbGV3YXJlKHRoaXMubWlkZGxld2FyZVN0YWNrIGFzIGFueSwgdGhpcy5jb25maWcsIG9wdGlvbnMpO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgaGFuZGxlcihjb21tYW5kKVxuICAgICAgICAudGhlbihcbiAgICAgICAgICAocmVzdWx0KSA9PiBjYWxsYmFjayhudWxsLCByZXN1bHQub3V0cHV0KSxcbiAgICAgICAgICAoZXJyOiBhbnkpID0+IGNhbGxiYWNrKGVycilcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2goXG4gICAgICAgICAgLy8gcHJldmVudCBhbnkgZXJyb3JzIHRocm93biBpbiB0aGUgY2FsbGJhY2sgZnJvbSB0cmlnZ2VyaW5nIGFuXG4gICAgICAgICAgLy8gdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uXG4gICAgICAgICAgKCkgPT4ge31cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGhhbmRsZXIoY29tbWFuZCkudGhlbigocmVzdWx0KSA9PiByZXN1bHQub3V0cHV0KTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvbmZpZy5yZXF1ZXN0SGFuZGxlci5kZXN0cm95KSB0aGlzLmNvbmZpZy5yZXF1ZXN0SGFuZGxlci5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ== 44535 44536/***/ }), 44537
vendor: 2,279 bytes, lines 44538-44560
44538/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/command.js": 44539/*!*****************************************************************!*\ 44540 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/command.js ***! 44541 \*****************************************************************/ 44542/*! no static exports found */ 44543/***/ (function(module, exports, __webpack_require__) { 44544 44545"use strict"; 44546 44547Object.defineProperty(exports, "__esModule", { value: true }); 44548exports.Command = void 0; 44549var middleware_stack_1 = __webpack_require__(/*! @aws-sdk/middleware-stack */ "./node_modules/@aws-sdk/middleware-stack/dist/cjs/index.js"); 44550var Command = /** @class */ (function () { 44551 function Command() { 44552 this.middlewareStack = new middleware_stack_1.MiddlewareStack(); 44553 } 44554 return Command; 44555}()); 44556exports.Command = Command; 44557//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUE0RDtBQUc1RDtJQUFBO1FBUVcsb0JBQWUsR0FBb0MsSUFBSSxrQ0FBZSxFQUFpQixDQUFDO0lBTW5HLENBQUM7SUFBRCxjQUFDO0FBQUQsQ0FBQyxBQWRELElBY0M7QUFkcUIsMEJBQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNaWRkbGV3YXJlU3RhY2sgfSBmcm9tIFwiQGF3cy1zZGsvbWlkZGxld2FyZS1zdGFja1wiO1xuaW1wb3J0IHsgQ29tbWFuZCBhcyBJQ29tbWFuZCwgSGFuZGxlciwgTWV0YWRhdGFCZWFyZXIsIE1pZGRsZXdhcmVTdGFjayBhcyBJTWlkZGxld2FyZVN0YWNrIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21tYW5kPFxuICBJbnB1dCBleHRlbmRzIENsaWVudElucHV0LFxuICBPdXRwdXQgZXh0ZW5kcyBDbGllbnRPdXRwdXQsXG4gIFJlc29sdmVkQ2xpZW50Q29uZmlndXJhdGlvbixcbiAgQ2xpZW50SW5wdXQgZXh0ZW5kcyBvYmplY3QgPSBhbnksXG4gIENsaWVudE91dHB1dCBleHRlbmRzIE1ldGFkYXRhQmVhcmVyID0gYW55XG4+IGltcGxlbWVudHMgSUNvbW1hbmQ8Q2xpZW50SW5wdXQsIElucHV0LCBDbGllbnRPdXRwdXQsIE91dHB1dCwgUmVzb2x2ZWRDbGllbnRDb25maWd1cmF0aW9uPiB7XG4gIGFic3RyYWN0IGlucHV0OiBJbnB1dDtcbiAgcmVhZG9ubHkgbWlkZGxld2FyZVN0YWNrOiBJTWlkZGxld2FyZVN0YWNrPElucHV0LCBPdXRwdXQ+ID0gbmV3IE1pZGRsZXdhcmVTdGFjazxJbnB1dCwgT3V0cHV0PigpO1xuICBhYnN0cmFjdCByZXNvbHZlTWlkZGxld2FyZShcbiAgICBzdGFjazogTWlkZGxld2FyZVN0YWNrPENsaWVudElucHV0LCBDbGllbnRPdXRwdXQ+LFxuICAgIGNvbmZpZ3VyYXRpb246IFJlc29sdmVkQ2xpZW50Q29uZmlndXJhdGlvbixcbiAgICBvcHRpb25zOiBhbnlcbiAgKTogSGFuZGxlcjxJbnB1dCwgT3V0cHV0Pjtcbn1cbiJdfQ== 44558 44559/***/ }), 44560
vendor: 924 bytes, lines 44561-44576
44561/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/constants.js": 44562/*!*******************************************************************!*\ 44563 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/constants.js ***! 44564 \*******************************************************************/ 44565/*! no static exports found */ 44566/***/ (function(module, exports, __webpack_require__) { 44567 44568"use strict"; 44569 44570Object.defineProperty(exports, "__esModule", { value: true }); 44571exports.SENSITIVE_STRING = void 0; 44572exports.SENSITIVE_STRING = "***SensitiveInformation***"; 44573//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGdCQUFnQixHQUFHLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFNFTlNJVElWRV9TVFJJTkcgPSBcIioqKlNlbnNpdGl2ZUluZm9ybWF0aW9uKioqXCI7XG4iXX0= 44574 44575/***/ }), 44576
vendor: 6,278 bytes, lines 44577-44623
44577/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/date-utils.js": 44578/*!********************************************************************!*\ 44579 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/date-utils.js ***! 44580 \********************************************************************/ 44581/*! no static exports found */ 44582/***/ (function(module, exports, __webpack_require__) { 44583 44584"use strict"; 44585 44586/** 44587 * Builds a proper UTC HttpDate timestamp from a Date object 44588 * since not all environments will have this as the expected 44589 * format. 44590 * 44591 * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toUTCString 44592 * > Prior to ECMAScript 2018, the format of the return value 44593 * > varied according to the platform. The most common return 44594 * > value was an RFC-1123 formatted date stamp, which is a 44595 * > slightly updated version of RFC-822 date stamps. 44596 */ 44597Object.defineProperty(exports, "__esModule", { value: true }); 44598exports.dateToUtcString = void 0; 44599// Build indexes outside so we allocate them once. 44600var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; 44601// prettier-ignore 44602var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; 44603function dateToUtcString(date) { 44604 var year = date.getUTCFullYear(); 44605 var month = date.getUTCMonth(); 44606 var dayOfWeek = date.getUTCDay(); 44607 var dayOfMonthInt = date.getUTCDate(); 44608 var hoursInt = date.getUTCHours(); 44609 var minutesInt = date.getUTCMinutes(); 44610 var secondsInt = date.getUTCSeconds(); 44611 // Build 0 prefixed strings for contents that need to be 44612 // two digits and where we get an integer back. 44613 var dayOfMonthString = dayOfMonthInt < 10 ? "0" + dayOfMonthInt : "" + dayOfMonthInt; 44614 var hoursString = hoursInt < 10 ? "0" + hoursInt : "" + hoursInt; 44615 var minutesString = minutesInt < 10 ? "0" + minutesInt : "" + minutesInt; 44616 var secondsString = secondsInt < 10 ? "0" + secondsInt : "" + secondsInt; 44617 return days[dayOfWeek] + ", " + dayOfMonthString + " " + months[month] + " " + year + " " + hoursString + ":" + minutesString + ":" + secondsString + " GMT"; 44618} 44619exports.dateToUtcString = dateToUtcString; 44620//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7OztHQVVHOzs7QUFFSCxrREFBa0Q7QUFDbEQsSUFBTSxJQUFJLEdBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUUsa0JBQWtCO0FBQ2xCLElBQU0sTUFBTSxHQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbkgsU0FBZ0IsZUFBZSxDQUFDLElBQVU7SUFDeEMsSUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ25DLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3hDLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxJQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRXhDLHdEQUF3RDtJQUN4RCwrQ0FBK0M7SUFDL0MsSUFBTSxnQkFBZ0IsR0FBRyxhQUFhLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFJLGFBQWUsQ0FBQyxDQUFDLENBQUMsS0FBRyxhQUFlLENBQUM7SUFDdkYsSUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBSSxRQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUcsUUFBVSxDQUFDO0lBQ25FLElBQU0sYUFBYSxHQUFHLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQUksVUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFHLFVBQVksQ0FBQztJQUMzRSxJQUFNLGFBQWEsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFJLFVBQVksQ0FBQyxDQUFDLENBQUMsS0FBRyxVQUFZLENBQUM7SUFFM0UsT0FBVSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQUssZ0JBQWdCLFNBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFJLElBQUksU0FBSSxXQUFXLFNBQUksYUFBYSxTQUFJLGFBQWEsU0FBTSxDQUFDO0FBQ2pJLENBQUM7QUFqQkQsMENBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCdWlsZHMgYSBwcm9wZXIgVVRDIEh0dHBEYXRlIHRpbWVzdGFtcCBmcm9tIGEgRGF0ZSBvYmplY3RcbiAqIHNpbmNlIG5vdCBhbGwgZW52aXJvbm1lbnRzIHdpbGwgaGF2ZSB0aGlzIGFzIHRoZSBleHBlY3RlZFxuICogZm9ybWF0LlxuICpcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b1VUQ1N0cmluZ1xuICogPiBQcmlvciB0byBFQ01BU2NyaXB0IDIwMTgsIHRoZSBmb3JtYXQgb2YgdGhlIHJldHVybiB2YWx1ZVxuICogPiB2YXJpZWQgYWNjb3JkaW5nIHRvIHRoZSBwbGF0Zm9ybS4gVGhlIG1vc3QgY29tbW9uIHJldHVyblxuICogPiB2YWx1ZSB3YXMgYW4gUkZDLTExMjMgZm9ybWF0dGVkIGRhdGUgc3RhbXAsIHdoaWNoIGlzIGFcbiAqID4gc2xpZ2h0bHkgdXBkYXRlZCB2ZXJzaW9uIG9mIFJGQy04MjIgZGF0ZSBzdGFtcHMuXG4gKi9cblxuLy8gQnVpbGQgaW5kZXhlcyBvdXRzaWRlIHNvIHdlIGFsbG9jYXRlIHRoZW0gb25jZS5cbmNvbnN0IGRheXM6IEFycmF5PFN0cmluZz4gPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl07XG4vLyBwcmV0dGllci1pZ25vcmVcbmNvbnN0IG1vbnRoczogQXJyYXk8U3RyaW5nPiA9IFtcIkphblwiLCBcIkZlYlwiLCBcIk1hclwiLCBcIkFwclwiLCBcIk1heVwiLCBcIkp1blwiLCBcIkp1bFwiLCBcIkF1Z1wiLCBcIlNlcFwiLCBcIk9jdFwiLCBcIk5vdlwiLCBcIkRlY1wiXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1V0Y1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IGRhdGUuZ2V0VVRDRGF5KCk7XG4gIGNvbnN0IGRheU9mTW9udGhJbnQgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgY29uc3QgaG91cnNJbnQgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XG4gIGNvbnN0IG1pbnV0ZXNJbnQgPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgY29uc3Qgc2Vjb25kc0ludCA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuXG4gIC8vIEJ1aWxkIDAgcHJlZml4ZWQgc3RyaW5ncyBmb3IgY29udGVudHMgdGhhdCBuZWVkIHRvIGJlXG4gIC8vIHR3byBkaWdpdHMgYW5kIHdoZXJlIHdlIGdldCBhbiBpbnRlZ2VyIGJhY2suXG4gIGNvbnN0IGRheU9mTW9udGhTdHJpbmcgPSBkYXlPZk1vbnRoSW50IDwgMTAgPyBgMCR7ZGF5T2ZNb250aEludH1gIDogYCR7ZGF5T2ZNb250aEludH1gO1xuICBjb25zdCBob3Vyc1N0cmluZyA9IGhvdXJzSW50IDwgMTAgPyBgMCR7aG91cnNJbnR9YCA6IGAke2hvdXJzSW50fWA7XG4gIGNvbnN0IG1pbnV0ZXNTdHJpbmcgPSBtaW51dGVzSW50IDwgMTAgPyBgMCR7bWludXRlc0ludH1gIDogYCR7bWludXRlc0ludH1gO1xuICBjb25zdCBzZWNvbmRzU3RyaW5nID0gc2Vjb25kc0ludCA8IDEwID8gYDAke3NlY29uZHNJbnR9YCA6IGAke3NlY29uZHNJbnR9YDtcblxuICByZXR1cm4gYCR7ZGF5c1tkYXlPZldlZWtdfSwgJHtkYXlPZk1vbnRoU3RyaW5nfSAke21vbnRoc1ttb250aF19ICR7eWVhcn0gJHtob3Vyc1N0cmluZ306JHttaW51dGVzU3RyaW5nfToke3NlY29uZHNTdHJpbmd9IEdNVGA7XG59XG4iXX0= 44621 44622/***/ }), 44623
vendor: 1,196 bytes, lines 44624-44637
44624/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/document-type.js": 44625/*!***********************************************************************!*\ 44626 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/document-type.js ***! 44627 \***********************************************************************/ 44628/*! no static exports found */ 44629/***/ (function(module, exports, __webpack_require__) { 44630 44631"use strict"; 44632 44633Object.defineProperty(exports, "__esModule", { value: true }); 44634//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb2N1bWVudC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNtaXRoeSBkb2N1bWVudCB0eXBlIHZhbHVlcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbmV4cG9ydCBuYW1lc3BhY2UgRG9jdW1lbnRUeXBlIHtcbiAgZXhwb3J0IHR5cGUgVmFsdWUgPSBTY2FsYXIgfCBTdHJ1Y3R1cmUgfCBMaXN0O1xuICBleHBvcnQgdHlwZSBTY2FsYXIgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbDtcbiAgZXhwb3J0IHR5cGUgU3RydWN0dXJlID0geyBbbWVtYmVyOiBzdHJpbmddOiBWYWx1ZSB9O1xuICBleHBvcnQgaW50ZXJmYWNlIExpc3QgZXh0ZW5kcyBBcnJheTxWYWx1ZT4ge31cbn1cbiJdfQ== 44635 44636/***/ }), 44637
vendor: 1,492 bytes, lines 44638-44651
44638/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/exception.js": 44639/*!*******************************************************************!*\ 44640 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/exception.js ***! 44641 \*******************************************************************/ 44642/*! no static exports found */ 44643/***/ (function(module, exports, __webpack_require__) { 44644 44645"use strict"; 44646 44647Object.defineProperty(exports, "__esModule", { value: true }); 44648//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4Y2VwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmV0cnlhYmxlVHJhaXQgfSBmcm9tIFwiLi9yZXRyeWFibGUtdHJhaXRcIjtcblxuLyoqXG4gKiBUeXBlIHRoYXQgaXMgaW1wbGVtZW50ZWQgYnkgYWxsIFNtaXRoeSBzaGFwZXMgbWFya2VkIHdpdGggdGhlXG4gKiBlcnJvciB0cmFpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbWl0aHlFeGNlcHRpb24ge1xuICAvKipcbiAgICogVGhlIHNoYXBlIElEIG5hbWUgb2YgdGhlIGV4Y2VwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY2xpZW50IG9yIHNlcnZlciBhcmUgYXQgZmF1bHQuXG4gICAqL1xuICByZWFkb25seSAkZmF1bHQ6IFwiY2xpZW50XCIgfCBcInNlcnZlclwiO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VydmljZSB0aGF0IGVuY291bnRlcmVkIHRoZSBleGNlcHRpb24uXG4gICAqL1xuICByZWFkb25seSAkc2VydmljZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgYW4gZXJyb3IgTUFZIGJlIHJldHJpZWQgYnkgdGhlIGNsaWVudC5cbiAgICovXG4gIHJlYWRvbmx5ICRyZXRyeWFibGU/OiBSZXRyeWFibGVUcmFpdDtcbn1cbiJdfQ== 44649 44650/***/ }), 44651
vendor: 1,958 bytes, lines 44652-44676
44652/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/extended-encode-uri-component.js": 44653/*!***************************************************************************************!*\ 44654 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/extended-encode-uri-component.js ***! 44655 \***************************************************************************************/ 44656/*! no static exports found */ 44657/***/ (function(module, exports, __webpack_require__) { 44658 44659"use strict"; 44660 44661Object.defineProperty(exports, "__esModule", { value: true }); 44662exports.extendedEncodeURIComponent = void 0; 44663/** 44664 * Function that wraps encodeURIComponent to encode additional characters 44665 * to fully adhere to RFC 3986. 44666 */ 44667function extendedEncodeURIComponent(str) { 44668 return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { 44669 return "%" + c.charCodeAt(0).toString(16); 44670 }); 44671} 44672exports.extendedEncodeURIComponent = extendedEncodeURIComponent; 44673//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5kZWQtZW5jb2RlLXVyaS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7OztHQUdHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsR0FBVztJQUNwRCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO1FBQzVELE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUpELGdFQUlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGdW5jdGlvbiB0aGF0IHdyYXBzIGVuY29kZVVSSUNvbXBvbmVudCB0byBlbmNvZGUgYWRkaXRpb25hbCBjaGFyYWN0ZXJzXG4gKiB0byBmdWxseSBhZGhlcmUgdG8gUkZDIDM5ODYuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmRlZEVuY29kZVVSSUNvbXBvbmVudChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC9bIScoKSpdL2csIGZ1bmN0aW9uIChjKSB7XG4gICAgcmV0dXJuIFwiJVwiICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KTtcbiAgfSk7XG59XG4iXX0= 44674 44675/***/ }), 44676
vendor: 1,599 bytes, lines 44677-44698
44677/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/get-array-if-single-item.js": 44678/*!**********************************************************************************!*\ 44679 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/get-array-if-single-item.js ***! 44680 \**********************************************************************************/ 44681/*! no static exports found */ 44682/***/ (function(module, exports, __webpack_require__) { 44683 44684"use strict"; 44685 44686Object.defineProperty(exports, "__esModule", { value: true }); 44687exports.getArrayIfSingleItem = void 0; 44688/** 44689 * The XML parser will set one K:V for a member that could 44690 * return multiple entries but only has one. 44691 */ 44692exports.getArrayIfSingleItem = function (mayBeArray) { 44693 return Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray]; 44694}; 44695//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFycmF5LWlmLXNpbmdsZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC1hcnJheS1pZi1zaW5nbGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHLFVBQUksVUFBYTtJQUNuRCxPQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFBckQsQ0FBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIFhNTCBwYXJzZXIgd2lsbCBzZXQgb25lIEs6ViBmb3IgYSBtZW1iZXIgdGhhdCBjb3VsZFxuICogcmV0dXJuIG11bHRpcGxlIGVudHJpZXMgYnV0IG9ubHkgaGFzIG9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldEFycmF5SWZTaW5nbGVJdGVtID0gPFQ+KG1heUJlQXJyYXk6IFQpOiBUIHwgVFtdID0+XG4gIEFycmF5LmlzQXJyYXkobWF5QmVBcnJheSkgPyBtYXlCZUFycmF5IDogW21heUJlQXJyYXldO1xuIl19 44696 44697/***/ }), 44698
vendor: 2,665 bytes, lines 44699-44729
44699/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/get-value-from-text-node.js": 44700/*!**********************************************************************************!*\ 44701 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/get-value-from-text-node.js ***! 44702 \**********************************************************************************/ 44703/*! no static exports found */ 44704/***/ (function(module, exports, __webpack_require__) { 44705 44706"use strict"; 44707 44708Object.defineProperty(exports, "__esModule", { value: true }); 44709exports.getValueFromTextNode = void 0; 44710/** 44711 * Recursively parses object and populates value is node from 44712 * "#text" key if it's available 44713 */ 44714exports.getValueFromTextNode = function (obj) { 44715 var textNodeName = "#text"; 44716 for (var key in obj) { 44717 if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) { 44718 obj[key] = obj[key][textNodeName]; 44719 } 44720 else if (typeof obj[key] === "object" && obj[key] !== null) { 44721 obj[key] = exports.getValueFromTextNode(obj[key]); 44722 } 44723 } 44724 return obj; 44725}; 44726//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLWZyb20tdGV4dC1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2dldC12YWx1ZS1mcm9tLXRleHQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHLFVBQUMsR0FBUTtJQUMzQyxJQUFNLFlBQVksR0FBRyxPQUFPLENBQUM7SUFDN0IsS0FBSyxJQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDckIsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDbkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNuQzthQUFNLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDNUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLDRCQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNDO0tBQ0Y7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVjdXJzaXZlbHkgcGFyc2VzIG9iamVjdCBhbmQgcG9wdWxhdGVzIHZhbHVlIGlzIG5vZGUgZnJvbVxuICogXCIjdGV4dFwiIGtleSBpZiBpdCdzIGF2YWlsYWJsZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWVGcm9tVGV4dE5vZGUgPSAob2JqOiBhbnkpID0+IHtcbiAgY29uc3QgdGV4dE5vZGVOYW1lID0gXCIjdGV4dFwiO1xuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkgJiYgb2JqW2tleV1bdGV4dE5vZGVOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvYmpba2V5XSA9IG9ialtrZXldW3RleHROb2RlTmFtZV07XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09IFwib2JqZWN0XCIgJiYgb2JqW2tleV0gIT09IG51bGwpIHtcbiAgICAgIG9ialtrZXldID0gZ2V0VmFsdWVGcm9tVGV4dE5vZGUob2JqW2tleV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2JqO1xufTtcbiJdfQ== 44727 44728/***/ }), 44729
vendor: 3,645 bytes, lines 44730-44758
44730/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js": 44731/*!***************************************************************!*\ 44732 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/index.js ***! 44733 \***************************************************************/ 44734/*! no static exports found */ 44735/***/ (function(module, exports, __webpack_require__) { 44736 44737"use strict"; 44738 44739Object.defineProperty(exports, "__esModule", { value: true }); 44740var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44741tslib_1.__exportStar(__webpack_require__(/*! ./client */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/client.js"), exports); 44742tslib_1.__exportStar(__webpack_require__(/*! ./command */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/command.js"), exports); 44743tslib_1.__exportStar(__webpack_require__(/*! ./document-type */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/document-type.js"), exports); 44744tslib_1.__exportStar(__webpack_require__(/*! ./exception */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/exception.js"), exports); 44745tslib_1.__exportStar(__webpack_require__(/*! ./extended-encode-uri-component */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/extended-encode-uri-component.js"), exports); 44746tslib_1.__exportStar(__webpack_require__(/*! ./get-array-if-single-item */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/get-array-if-single-item.js"), exports); 44747tslib_1.__exportStar(__webpack_require__(/*! ./get-value-from-text-node */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/get-value-from-text-node.js"), exports); 44748tslib_1.__exportStar(__webpack_require__(/*! ./isa */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/isa.js"), exports); 44749tslib_1.__exportStar(__webpack_require__(/*! ./lazy-json */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/lazy-json.js"), exports); 44750tslib_1.__exportStar(__webpack_require__(/*! ./date-utils */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/date-utils.js"), exports); 44751tslib_1.__exportStar(__webpack_require__(/*! ./split-every */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/split-every.js"), exports); 44752tslib_1.__exportStar(__webpack_require__(/*! ./constants */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/constants.js"), exports); 44753tslib_1.__exportStar(__webpack_require__(/*! ./retryable-trait */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/retryable-trait.js"), exports); 44754tslib_1.__exportStar(__webpack_require__(/*! ./sdk-error */ "./node_modules/@aws-sdk/smithy-client/dist/cjs/sdk-error.js"), exports); 44755//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXlCO0FBQ3pCLG9EQUEwQjtBQUMxQiwwREFBZ0M7QUFDaEMsc0RBQTRCO0FBQzVCLDBFQUFnRDtBQUNoRCxxRUFBMkM7QUFDM0MscUVBQTJDO0FBQzNDLGdEQUFzQjtBQUN0QixzREFBNEI7QUFDNUIsdURBQTZCO0FBQzdCLHdEQUE4QjtBQUM5QixzREFBNEI7QUFDNUIsNERBQWtDO0FBQ2xDLHNEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NsaWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZG9jdW1lbnQtdHlwZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXhjZXB0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leHRlbmRlZC1lbmNvZGUtdXJpLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0LWFycmF5LWlmLXNpbmdsZS1pdGVtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXQtdmFsdWUtZnJvbS10ZXh0LW5vZGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lzYVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGF6eS1qc29uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kYXRlLXV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zcGxpdC1ldmVyeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXRyeWFibGUtdHJhaXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Nkay1lcnJvclwiO1xuIl19 44756 44757/***/ }), 44758
vendor: 2,151 bytes, lines 44759-44786
44759/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/isa.js": 44760/*!*************************************************************!*\ 44761 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/isa.js ***! 44762 \*************************************************************/ 44763/*! no static exports found */ 44764/***/ (function(module, exports, __webpack_require__) { 44765 44766"use strict"; 44767 44768Object.defineProperty(exports, "__esModule", { value: true }); 44769exports.isa = void 0; 44770/** 44771 * Checks if the given value is a Smithy structure of the given type. 44772 */ 44773function isa(o) { 44774 var ids = []; 44775 for (var _i = 1; _i < arguments.length; _i++) { 44776 ids[_i - 1] = arguments[_i]; 44777 } 44778 return (typeof o === "object" && 44779 // Checks for name after __type, as name is used instead for errors. 44780 (("__type" in o && ids.indexOf(o["__type"]) > -1) || ("name" in o && ids.indexOf(o["name"]) > -1))); 44781} 44782exports.isa = isa; 44783//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILFNBQWdCLEdBQUcsQ0FBSSxDQUFNO0lBQUUsYUFBZ0I7U0FBaEIsVUFBZ0IsRUFBaEIscUJBQWdCLEVBQWhCLElBQWdCO1FBQWhCLDRCQUFnQjs7SUFDN0MsT0FBTyxDQUNMLE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsb0VBQW9FO1FBQ3BFLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25HLENBQUM7QUFDSixDQUFDO0FBTkQsa0JBTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSBTbWl0aHkgc3RydWN0dXJlIG9mIHRoZSBnaXZlbiB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNhPFQ+KG86IGFueSwgLi4uaWRzOiBzdHJpbmdbXSk6IG8gaXMgVCB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIG8gPT09IFwib2JqZWN0XCIgJiZcbiAgICAvLyBDaGVja3MgZm9yIG5hbWUgYWZ0ZXIgX190eXBlLCBhcyBuYW1lIGlzIHVzZWQgaW5zdGVhZCBmb3IgZXJyb3JzLlxuICAgICgoXCJfX3R5cGVcIiBpbiBvICYmIGlkcy5pbmRleE9mKG9bXCJfX3R5cGVcIl0pID4gLTEpIHx8IChcIm5hbWVcIiBpbiBvICYmIGlkcy5pbmRleE9mKG9bXCJuYW1lXCJdKSA+IC0xKSlcbiAgKTtcbn1cbiJdfQ== 44784 44785/***/ }), 44786
vendor: 6,639 bytes, lines 44787-44853
44787/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/lazy-json.js": 44788/*!*******************************************************************!*\ 44789 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/lazy-json.js ***! 44790 \*******************************************************************/ 44791/*! no static exports found */ 44792/***/ (function(module, exports, __webpack_require__) { 44793 44794"use strict"; 44795 44796/** 44797 * Lazy String holder for JSON typed contents. 44798 */ 44799Object.defineProperty(exports, "__esModule", { value: true }); 44800exports.LazyJsonString = exports.StringWrapper = void 0; 44801var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 44802/** 44803 * Because of https://github.com/microsoft/tslib/issues/95, 44804 * TS 'extends' shim doesn't support extending native types like String. 44805 * So here we create StringWrapper that duplicate everything from String 44806 * class including its prototype chain. So we can extend from here. 44807 */ 44808// @ts-ignore StringWrapper implementation is not a simple constructor 44809exports.StringWrapper = function () { 44810 //@ts-ignore 'this' cannot be assigned to any, but Object.getPrototypeOf accepts any 44811 var Class = Object.getPrototypeOf(this).constructor; 44812 var Constructor = Function.bind.apply(String, tslib_1.__spread([null], arguments)); 44813 //@ts-ignore Call wrapped String constructor directly, don't bother typing it. 44814 var instance = new Constructor(); 44815 Object.setPrototypeOf(instance, Class.prototype); 44816 return instance; 44817}; 44818exports.StringWrapper.prototype = Object.create(String.prototype, { 44819 constructor: { 44820 value: exports.StringWrapper, 44821 enumerable: false, 44822 writable: true, 44823 configurable: true, 44824 }, 44825}); 44826Object.setPrototypeOf(exports.StringWrapper, String); 44827var LazyJsonString = /** @class */ (function (_super) { 44828 tslib_1.__extends(LazyJsonString, _super); 44829 function LazyJsonString() { 44830 return _super !== null && _super.apply(this, arguments) || this; 44831 } 44832 LazyJsonString.prototype.deserializeJSON = function () { 44833 return JSON.parse(_super.prototype.toString.call(this)); 44834 }; 44835 LazyJsonString.prototype.toJSON = function () { 44836 return _super.prototype.toString.call(this); 44837 }; 44838 LazyJsonString.fromObject = function (object) { 44839 if (object instanceof LazyJsonString) { 44840 return object; 44841 } 44842 else if (object instanceof String || typeof object === "string") { 44843 return new LazyJsonString(object); 44844 } 44845 return new LazyJsonString(JSON.stringify(object)); 44846 }; 44847 return LazyJsonString; 44848}(exports.StringWrapper)); 44849exports.LazyJsonString = LazyJsonString; 44850//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xhenktanNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7QUFNSDs7Ozs7R0FLRztBQUNILHNFQUFzRTtBQUN6RCxRQUFBLGFBQWEsR0FBa0I7SUFDMUMsb0ZBQW9GO0lBQ3BGLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ3RELElBQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sb0JBQUcsSUFBVyxHQUFLLFNBQVMsRUFBRSxDQUFDO0lBQzdFLDhFQUE4RTtJQUM5RSxJQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRCxPQUFPLFFBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBQ0YscUJBQWEsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO0lBQ3hELFdBQVcsRUFBRTtRQUNYLEtBQUssRUFBRSxxQkFBYTtRQUNwQixVQUFVLEVBQUUsS0FBSztRQUNqQixRQUFRLEVBQUUsSUFBSTtRQUNkLFlBQVksRUFBRSxJQUFJO0tBQ25CO0NBQ0YsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxxQkFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRTdDO0lBQW9DLDBDQUFhO0lBQWpEOztJQWlCQSxDQUFDO0lBaEJDLHdDQUFlLEdBQWY7UUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQU0sUUFBUSxXQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsK0JBQU0sR0FBTjtRQUNFLE9BQU8saUJBQU0sUUFBUSxXQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHlCQUFVLEdBQWpCLFVBQWtCLE1BQVc7UUFDM0IsSUFBSSxNQUFNLFlBQVksY0FBYyxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTSxJQUFJLE1BQU0sWUFBWSxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbkM7UUFDRCxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0gscUJBQUM7QUFBRCxDQUFDLEFBakJELENBQW9DLHFCQUFhLEdBaUJoRDtBQWpCWSx3Q0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGF6eSBTdHJpbmcgaG9sZGVyIGZvciBKU09OIHR5cGVkIGNvbnRlbnRzLlxuICovXG5cbmludGVyZmFjZSBTdHJpbmdXcmFwcGVyIHtcbiAgbmV3IChhcmc6IGFueSk6IFN0cmluZztcbn1cblxuLyoqXG4gKiBCZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvdHNsaWIvaXNzdWVzLzk1LFxuICogVFMgJ2V4dGVuZHMnIHNoaW0gZG9lc24ndCBzdXBwb3J0IGV4dGVuZGluZyBuYXRpdmUgdHlwZXMgbGlrZSBTdHJpbmcuXG4gKiBTbyBoZXJlIHdlIGNyZWF0ZSBTdHJpbmdXcmFwcGVyIHRoYXQgZHVwbGljYXRlIGV2ZXJ5dGhpbmcgZnJvbSBTdHJpbmdcbiAqIGNsYXNzIGluY2x1ZGluZyBpdHMgcHJvdG90eXBlIGNoYWluLiBTbyB3ZSBjYW4gZXh0ZW5kIGZyb20gaGVyZS5cbiAqL1xuLy8gQHRzLWlnbm9yZSBTdHJpbmdXcmFwcGVyIGltcGxlbWVudGF0aW9uIGlzIG5vdCBhIHNpbXBsZSBjb25zdHJ1Y3RvclxuZXhwb3J0IGNvbnN0IFN0cmluZ1dyYXBwZXI6IFN0cmluZ1dyYXBwZXIgPSBmdW5jdGlvbiAoKSB7XG4gIC8vQHRzLWlnbm9yZSAndGhpcycgY2Fubm90IGJlIGFzc2lnbmVkIHRvIGFueSwgYnV0IE9iamVjdC5nZXRQcm90b3R5cGVPZiBhY2NlcHRzIGFueVxuICBjb25zdCBDbGFzcyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3RvcjtcbiAgY29uc3QgQ29uc3RydWN0b3IgPSBGdW5jdGlvbi5iaW5kLmFwcGx5KFN0cmluZywgW251bGwgYXMgYW55LCAuLi5hcmd1bWVudHNdKTtcbiAgLy9AdHMtaWdub3JlIENhbGwgd3JhcHBlZCBTdHJpbmcgY29uc3RydWN0b3IgZGlyZWN0bHksIGRvbid0IGJvdGhlciB0eXBpbmcgaXQuXG4gIGNvbnN0IGluc3RhbmNlID0gbmV3IENvbnN0cnVjdG9yKCk7XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihpbnN0YW5jZSwgQ2xhc3MucHJvdG90eXBlKTtcbiAgcmV0dXJuIGluc3RhbmNlIGFzIFN0cmluZztcbn07XG5TdHJpbmdXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU3RyaW5nLnByb3RvdHlwZSwge1xuICBjb25zdHJ1Y3Rvcjoge1xuICAgIHZhbHVlOiBTdHJpbmdXcmFwcGVyLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgfSxcbn0pO1xuT2JqZWN0LnNldFByb3RvdHlwZU9mKFN0cmluZ1dyYXBwZXIsIFN0cmluZyk7XG5cbmV4cG9ydCBjbGFzcyBMYXp5SnNvblN0cmluZyBleHRlbmRzIFN0cmluZ1dyYXBwZXIge1xuICBkZXNlcmlhbGl6ZUpTT04oKTogYW55IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdXBlci50b1N0cmluZygpKTtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci50b1N0cmluZygpO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqZWN0OiBhbnkpOiBMYXp5SnNvblN0cmluZyB7XG4gICAgaWYgKG9iamVjdCBpbnN0YW5jZW9mIExhenlKc29uU3RyaW5nKSB7XG4gICAgICByZXR1cm4gb2JqZWN0O1xuICAgIH0gZWxzZSBpZiAob2JqZWN0IGluc3RhbmNlb2YgU3RyaW5nIHx8IHR5cGVvZiBvYmplY3QgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIHJldHVybiBuZXcgTGF6eUpzb25TdHJpbmcob2JqZWN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBMYXp5SnNvblN0cmluZyhKU09OLnN0cmluZ2lmeShvYmplY3QpKTtcbiAgfVxufVxuIl19 44851 44852/***/ }), 44853
vendor: 1,100 bytes, lines 44854-44867
44854/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/retryable-trait.js": 44855/*!*************************************************************************!*\ 44856 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/retryable-trait.js ***! 44857 \*************************************************************************/ 44858/*! no static exports found */ 44859/***/ (function(module, exports, __webpack_require__) { 44860 44861"use strict"; 44862 44863Object.defineProperty(exports, "__esModule", { value: true }); 44864//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnlhYmxlLXRyYWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JldHJ5YWJsZS10cmFpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIHN0cnVjdHVyZSBzaGFwZSB3aXRoIHRoZSBlcnJvciB0cmFpdC5cbiAqIGh0dHBzOi8vYXdzbGFicy5naXRodWIuaW8vc21pdGh5L3NwZWMvY29yZS5odG1sI3JldHJ5YWJsZS10cmFpdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5YWJsZVRyYWl0IHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBlcnJvciBpcyBhIHJldHJ5YWJsZSB0aHJvdHRsaW5nIGVycm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgdGhyb3R0bGluZz86IGJvb2xlYW47XG59XG4iXX0= 44865 44866/***/ }), 44867
vendor: 928 bytes, lines 44868-44881
44868/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/sdk-error.js": 44869/*!*******************************************************************!*\ 44870 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/sdk-error.js ***! 44871 \*******************************************************************/ 44872/*! no static exports found */ 44873/***/ (function(module, exports, __webpack_require__) { 44874 44875"use strict"; 44876 44877Object.defineProperty(exports, "__esModule", { value: true }); 44878//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nkay1lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWV0YWRhdGFCZWFyZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuaW1wb3J0IHsgU21pdGh5RXhjZXB0aW9uIH0gZnJvbSBcIi4vZXhjZXB0aW9uXCI7XG5cbmV4cG9ydCB0eXBlIFNka0Vycm9yID0gRXJyb3IgJiBTbWl0aHlFeGNlcHRpb24gJiBNZXRhZGF0YUJlYXJlcjtcbiJdfQ== 44879 44880/***/ }), 44881
vendor: 5,671 bytes, lines 44882-44939
44882/***/ "./node_modules/@aws-sdk/smithy-client/dist/cjs/split-every.js": 44883/*!*********************************************************************!*\ 44884 !*** ./node_modules/@aws-sdk/smithy-client/dist/cjs/split-every.js ***! 44885 \*********************************************************************/ 44886/*! no static exports found */ 44887/***/ (function(module, exports, __webpack_require__) { 44888 44889"use strict"; 44890 44891Object.defineProperty(exports, "__esModule", { value: true }); 44892exports.splitEvery = void 0; 44893/** 44894 * Given an input string, splits based on the delimiter after a given 44895 * number of delimiters has been encountered. 44896 * 44897 * @param value The input string to split. 44898 * @param delimiter The delimiter to split on. 44899 * @param numDelimiters The number of delimiters to have encountered to split. 44900 */ 44901function splitEvery(value, delimiter, numDelimiters) { 44902 // Fail if we don't have a clear number to split on. 44903 if (numDelimiters <= 0 || !Number.isInteger(numDelimiters)) { 44904 throw new Error("Invalid number of delimiters (" + numDelimiters + ") for splitEvery."); 44905 } 44906 var segments = value.split(delimiter); 44907 // Short circuit extra logic for the simple case. 44908 if (numDelimiters === 1) { 44909 return segments; 44910 } 44911 var compoundSegments = []; 44912 var currentSegment = ""; 44913 for (var i = 0; i < segments.length; i++) { 44914 if (currentSegment === "") { 44915 // Start a new segment. 44916 currentSegment = segments[i]; 44917 } 44918 else { 44919 // Compound the current segment with the delimiter. 44920 currentSegment += delimiter + segments[i]; 44921 } 44922 if ((i + 1) % numDelimiters === 0) { 44923 // We encountered the right number of delimiters, so add the entry. 44924 compoundSegments.push(currentSegment); 44925 // And reset the current segment. 44926 currentSegment = ""; 44927 } 44928 } 44929 // Handle any leftover segment portion. 44930 if (currentSegment !== "") { 44931 compoundSegments.push(currentSegment); 44932 } 44933 return compoundSegments; 44934} 44935exports.splitEvery = splitEvery; 44936//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtZXZlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BsaXQtZXZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxhQUFxQjtJQUNoRixvREFBb0Q7SUFDcEQsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxHQUFHLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO0tBQ3pGO0lBRUQsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxpREFBaUQ7SUFDakQsSUFBSSxhQUFhLEtBQUssQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sUUFBUSxDQUFDO0tBQ2pCO0lBRUQsSUFBTSxnQkFBZ0IsR0FBa0IsRUFBRSxDQUFDO0lBQzNDLElBQUksY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN4QyxJQUFJLGNBQWMsS0FBSyxFQUFFLEVBQUU7WUFDekIsdUJBQXVCO1lBQ3ZCLGNBQWMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLG1EQUFtRDtZQUNuRCxjQUFjLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUVELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUNqQyxtRUFBbUU7WUFDbkUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3RDLGlDQUFpQztZQUNqQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1NBQ3JCO0tBQ0Y7SUFFRCx1Q0FBdUM7SUFDdkMsSUFBSSxjQUFjLEtBQUssRUFBRSxFQUFFO1FBQ3pCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUN2QztJQUVELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQXJDRCxnQ0FxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdpdmVuIGFuIGlucHV0IHN0cmluZywgc3BsaXRzIGJhc2VkIG9uIHRoZSBkZWxpbWl0ZXIgYWZ0ZXIgYSBnaXZlblxuICogbnVtYmVyIG9mIGRlbGltaXRlcnMgaGFzIGJlZW4gZW5jb3VudGVyZWQuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBpbnB1dCBzdHJpbmcgdG8gc3BsaXQuXG4gKiBAcGFyYW0gZGVsaW1pdGVyIFRoZSBkZWxpbWl0ZXIgdG8gc3BsaXQgb24uXG4gKiBAcGFyYW0gbnVtRGVsaW1pdGVycyBUaGUgbnVtYmVyIG9mIGRlbGltaXRlcnMgdG8gaGF2ZSBlbmNvdW50ZXJlZCB0byBzcGxpdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0RXZlcnkodmFsdWU6IHN0cmluZywgZGVsaW1pdGVyOiBzdHJpbmcsIG51bURlbGltaXRlcnM6IG51bWJlcik6IEFycmF5PHN0cmluZz4ge1xuICAvLyBGYWlsIGlmIHdlIGRvbid0IGhhdmUgYSBjbGVhciBudW1iZXIgdG8gc3BsaXQgb24uXG4gIGlmIChudW1EZWxpbWl0ZXJzIDw9IDAgfHwgIU51bWJlci5pc0ludGVnZXIobnVtRGVsaW1pdGVycykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIG51bWJlciBvZiBkZWxpbWl0ZXJzIChcIiArIG51bURlbGltaXRlcnMgKyBcIikgZm9yIHNwbGl0RXZlcnkuXCIpO1xuICB9XG5cbiAgY29uc3Qgc2VnbWVudHMgPSB2YWx1ZS5zcGxpdChkZWxpbWl0ZXIpO1xuICAvLyBTaG9ydCBjaXJjdWl0IGV4dHJhIGxvZ2ljIGZvciB0aGUgc2ltcGxlIGNhc2UuXG4gIGlmIChudW1EZWxpbWl0ZXJzID09PSAxKSB7XG4gICAgcmV0dXJuIHNlZ21lbnRzO1xuICB9XG5cbiAgY29uc3QgY29tcG91bmRTZWdtZW50czogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBsZXQgY3VycmVudFNlZ21lbnQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGN1cnJlbnRTZWdtZW50ID09PSBcIlwiKSB7XG4gICAgICAvLyBTdGFydCBhIG5ldyBzZWdtZW50LlxuICAgICAgY3VycmVudFNlZ21lbnQgPSBzZWdtZW50c1tpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29tcG91bmQgdGhlIGN1cnJlbnQgc2VnbWVudCB3aXRoIHRoZSBkZWxpbWl0ZXIuXG4gICAgICBjdXJyZW50U2VnbWVudCArPSBkZWxpbWl0ZXIgKyBzZWdtZW50c1tpXTtcbiAgICB9XG5cbiAgICBpZiAoKGkgKyAxKSAlIG51bURlbGltaXRlcnMgPT09IDApIHtcbiAgICAgIC8vIFdlIGVuY291bnRlcmVkIHRoZSByaWdodCBudW1iZXIgb2YgZGVsaW1pdGVycywgc28gYWRkIHRoZSBlbnRyeS5cbiAgICAgIGNvbXBvdW5kU2VnbWVudHMucHVzaChjdXJyZW50U2VnbWVudCk7XG4gICAgICAvLyBBbmQgcmVzZXQgdGhlIGN1cnJlbnQgc2VnbWVudC5cbiAgICAgIGN1cnJlbnRTZWdtZW50ID0gXCJcIjtcbiAgICB9XG4gIH1cblxuICAvLyBIYW5kbGUgYW55IGxlZnRvdmVyIHNlZ21lbnQgcG9ydGlvbi5cbiAgaWYgKGN1cnJlbnRTZWdtZW50ICE9PSBcIlwiKSB7XG4gICAgY29tcG91bmRTZWdtZW50cy5wdXNoKGN1cnJlbnRTZWdtZW50KTtcbiAgfVxuXG4gIHJldHVybiBjb21wb3VuZFNlZ21lbnRzO1xufVxuIl19 44937 44938/***/ }), 44939
vendor: 2,589 bytes, lines 44940-44969
44940/***/ "./node_modules/@aws-sdk/url-parser-browser/dist/cjs/index.js": 44941/*!********************************************************************!*\ 44942 !*** ./node_modules/@aws-sdk/url-parser-browser/dist/cjs/index.js ***! 44943 \********************************************************************/ 44944/*! no static exports found */ 44945/***/ (function(module, exports, __webpack_require__) { 44946 44947"use strict"; 44948 44949Object.defineProperty(exports, "__esModule", { value: true }); 44950exports.parseUrl = void 0; 44951var querystring_parser_1 = __webpack_require__(/*! @aws-sdk/querystring-parser */ "./node_modules/@aws-sdk/querystring-parser/dist/cjs/index.js"); 44952exports.parseUrl = function (url) { 44953 var _a = new URL(url), hostname = _a.hostname, pathname = _a.pathname, port = _a.port, protocol = _a.protocol, search = _a.search; 44954 var query; 44955 if (search) { 44956 query = querystring_parser_1.parseQueryString(search); 44957 } 44958 return { 44959 hostname: hostname, 44960 port: port ? parseInt(port) : undefined, 44961 protocol: protocol, 44962 path: pathname, 44963 query: query, 44964 }; 44965}; 44966//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0VBQStEO0FBR2xELFFBQUEsUUFBUSxHQUFjLFVBQUMsR0FBVztJQUN2QyxJQUFBLEtBQWlELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUEzRCxRQUFRLGNBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxJQUFJLFVBQUEsRUFBRSxRQUFRLGNBQUEsRUFBRSxNQUFNLFlBQWlCLENBQUM7SUFFcEUsSUFBSSxLQUFvQyxDQUFDO0lBQ3pDLElBQUksTUFBTSxFQUFFO1FBQ1YsS0FBSyxHQUFHLHFDQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2xDO0lBRUQsT0FBTztRQUNMLFFBQVEsVUFBQTtRQUNSLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN2QyxRQUFRLFVBQUE7UUFDUixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssT0FBQTtLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVF1ZXJ5U3RyaW5nIH0gZnJvbSBcIkBhd3Mtc2RrL3F1ZXJ5c3RyaW5nLXBhcnNlclwiO1xuaW1wb3J0IHsgRW5kcG9pbnQsIFF1ZXJ5UGFyYW1ldGVyQmFnLCBVcmxQYXJzZXIgfSBmcm9tIFwiQGF3cy1zZGsvdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHBhcnNlVXJsOiBVcmxQYXJzZXIgPSAodXJsOiBzdHJpbmcpOiBFbmRwb2ludCA9PiB7XG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBhdGhuYW1lLCBwb3J0LCBwcm90b2NvbCwgc2VhcmNoIH0gPSBuZXcgVVJMKHVybCk7XG5cbiAgbGV0IHF1ZXJ5OiBRdWVyeVBhcmFtZXRlckJhZyB8IHVuZGVmaW5lZDtcbiAgaWYgKHNlYXJjaCkge1xuICAgIHF1ZXJ5ID0gcGFyc2VRdWVyeVN0cmluZyhzZWFyY2gpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBob3N0bmFtZSxcbiAgICBwb3J0OiBwb3J0ID8gcGFyc2VJbnQocG9ydCkgOiB1bmRlZmluZWQsXG4gICAgcHJvdG9jb2wsXG4gICAgcGF0aDogcGF0aG5hbWUsXG4gICAgcXVlcnksXG4gIH07XG59O1xuIl19 44967 44968/***/ }), 44969
vendor: 13,111 bytes, lines 44970-45078
44970/***/ "./node_modules/@aws-sdk/util-base64-browser/dist/cjs/index.js": 44971/*!*********************************************************************!*\ 44972 !*** ./node_modules/@aws-sdk/util-base64-browser/dist/cjs/index.js ***! 44973 \*********************************************************************/ 44974/*! no static exports found */ 44975/***/ (function(module, exports, __webpack_require__) { 44976 44977"use strict"; 44978 44979Object.defineProperty(exports, "__esModule", { value: true }); 44980exports.toBase64 = exports.fromBase64 = void 0; 44981var alphabetByEncoding = {}; 44982var alphabetByValue = new Array(64); 44983for (var i = 0, start = "A".charCodeAt(0), limit = "Z".charCodeAt(0); i + start <= limit; i++) { 44984 var char = String.fromCharCode(i + start); 44985 alphabetByEncoding[char] = i; 44986 alphabetByValue[i] = char; 44987} 44988for (var i = 0, start = "a".charCodeAt(0), limit = "z".charCodeAt(0); i + start <= limit; i++) { 44989 var char = String.fromCharCode(i + start); 44990 var index = i + 26; 44991 alphabetByEncoding[char] = index; 44992 alphabetByValue[index] = char; 44993} 44994for (var i = 0; i < 10; i++) { 44995 alphabetByEncoding[i.toString(10)] = i + 52; 44996 var char = i.toString(10); 44997 var index = i + 52; 44998 alphabetByEncoding[char] = index; 44999 alphabetByValue[index] = char; 45000} 45001alphabetByEncoding["+"] = 62; 45002alphabetByValue[62] = "+"; 45003alphabetByEncoding["/"] = 63; 45004alphabetByValue[63] = "/"; 45005var bitsPerLetter = 6; 45006var bitsPerByte = 8; 45007var maxLetterValue = 63; 45008/** 45009 * Converts a base-64 encoded string to a Uint8Array of bytes. 45010 * 45011 * @param input The base-64 encoded string 45012 * 45013 * @see https://tools.ietf.org/html/rfc4648#section-4 45014 */ 45015function fromBase64(input) { 45016 var totalByteLength = (input.length / 4) * 3; 45017 if (input.substr(-2) === "==") { 45018 totalByteLength -= 2; 45019 } 45020 else if (input.substr(-1) === "=") { 45021 totalByteLength--; 45022 } 45023 var out = new ArrayBuffer(totalByteLength); 45024 var dataView = new DataView(out); 45025 for (var i = 0; i < input.length; i += 4) { 45026 var bits = 0; 45027 var bitLength = 0; 45028 for (var j = i, limit = i + 3; j <= limit; j++) { 45029 if (input[j] !== "=") { 45030 bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter); 45031 bitLength += bitsPerLetter; 45032 } 45033 else { 45034 bits >>= bitsPerLetter; 45035 } 45036 } 45037 var chunkOffset = (i / 4) * 3; 45038 bits >>= bitLength % bitsPerByte; 45039 var byteLength = Math.floor(bitLength / bitsPerByte); 45040 for (var k = 0; k < byteLength; k++) { 45041 var offset = (byteLength - k - 1) * bitsPerByte; 45042 dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset); 45043 } 45044 } 45045 return new Uint8Array(out); 45046} 45047exports.fromBase64 = fromBase64; 45048/** 45049 * Converts a Uint8Array of binary data to a base-64 encoded string. 45050 * 45051 * @param input The binary data to encode 45052 * 45053 * @see https://tools.ietf.org/html/rfc4648#section-4 45054 */ 45055function toBase64(input) { 45056 var str = ""; 45057 for (var i = 0; i < input.length; i += 3) { 45058 var bits = 0; 45059 var bitLength = 0; 45060 for (var j = i, limit = Math.min(i + 3, input.length); j < limit; j++) { 45061 bits |= input[j] << ((limit - j - 1) * bitsPerByte); 45062 bitLength += bitsPerByte; 45063 } 45064 var bitClusterCount = Math.ceil(bitLength / bitsPerLetter); 45065 bits <<= bitClusterCount * bitsPerLetter - bitLength; 45066 for (var k = 1; k <= bitClusterCount; k++) { 45067 var offset = (bitClusterCount - k) * bitsPerLetter; 45068 str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset]; 45069 } 45070 str += "==".slice(0, 4 - bitClusterCount); 45071 } 45072 return str; 45073} 45074exports.toBase64 = toBase64; 45075//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBTSxrQkFBa0IsR0FBOEIsRUFBRSxDQUFDO0FBQ3pELElBQU0sZUFBZSxHQUFrQixJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixJQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUM1QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMzQjtBQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzdGLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQzVDLElBQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDckIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7Q0FDL0I7QUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQzNCLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzVDLElBQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUIsSUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNyQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDakMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztDQUMvQjtBQUVELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQzFCLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUM3QixlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBRTFCLElBQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN4QixJQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFDdEIsSUFBTSxjQUFjLEdBQUcsRUFBUSxDQUFDO0FBRWhDOzs7Ozs7R0FNRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLElBQUksZUFBZSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0MsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQzdCLGVBQWUsSUFBSSxDQUFDLENBQUM7S0FDdEI7U0FBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDbkMsZUFBZSxFQUFFLENBQUM7S0FDbkI7SUFDRCxJQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3QyxJQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxJQUFJLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7Z0JBQ3RFLFNBQVMsSUFBSSxhQUFhLENBQUM7YUFDNUI7aUJBQU07Z0JBQ0wsSUFBSSxLQUFLLGFBQWEsQ0FBQzthQUN4QjtTQUNGO1FBRUQsSUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxTQUFTLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsSUFBTSxNQUFNLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUNsRCxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQztTQUN4RTtLQUNGO0lBRUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBL0JELGdDQStCQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxLQUFpQjtJQUN4QyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JFLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDcEQsU0FBUyxJQUFJLFdBQVcsQ0FBQztTQUMxQjtRQUVELElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQzdELElBQUksS0FBSyxlQUFlLEdBQUcsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUNyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLElBQU0sTUFBTSxHQUFHLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztZQUNyRCxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUM7U0FDdkU7UUFFRCxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDO0tBQzNDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBckJELDRCQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFscGhhYmV0QnlFbmNvZGluZzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuY29uc3QgYWxwaGFiZXRCeVZhbHVlOiBBcnJheTxzdHJpbmc+ID0gbmV3IEFycmF5KDY0KTtcblxuZm9yIChsZXQgaSA9IDAsIHN0YXJ0ID0gXCJBXCIuY2hhckNvZGVBdCgwKSwgbGltaXQgPSBcIlpcIi5jaGFyQ29kZUF0KDApOyBpICsgc3RhcnQgPD0gbGltaXQ7IGkrKykge1xuICBjb25zdCBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShpICsgc3RhcnQpO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpO1xuICBhbHBoYWJldEJ5VmFsdWVbaV0gPSBjaGFyO1xufVxuXG5mb3IgKGxldCBpID0gMCwgc3RhcnQgPSBcImFcIi5jaGFyQ29kZUF0KDApLCBsaW1pdCA9IFwielwiLmNoYXJDb2RlQXQoMCk7IGkgKyBzdGFydCA8PSBsaW1pdDsgaSsrKSB7XG4gIGNvbnN0IGNoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkgKyBzdGFydCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDI2O1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbaS50b1N0cmluZygxMCldID0gaSArIDUyO1xuICBjb25zdCBjaGFyID0gaS50b1N0cmluZygxMCk7XG4gIGNvbnN0IGluZGV4ID0gaSArIDUyO1xuICBhbHBoYWJldEJ5RW5jb2RpbmdbY2hhcl0gPSBpbmRleDtcbiAgYWxwaGFiZXRCeVZhbHVlW2luZGV4XSA9IGNoYXI7XG59XG5cbmFscGhhYmV0QnlFbmNvZGluZ1tcIitcIl0gPSA2MjtcbmFscGhhYmV0QnlWYWx1ZVs2Ml0gPSBcIitcIjtcbmFscGhhYmV0QnlFbmNvZGluZ1tcIi9cIl0gPSA2MztcbmFscGhhYmV0QnlWYWx1ZVs2M10gPSBcIi9cIjtcblxuY29uc3QgYml0c1BlckxldHRlciA9IDY7XG5jb25zdCBiaXRzUGVyQnl0ZSA9IDg7XG5jb25zdCBtYXhMZXR0ZXJWYWx1ZSA9IDBiMTExMTExO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZyB0byBhIFVpbnQ4QXJyYXkgb2YgYnl0ZXMuXG4gKlxuICogQHBhcmFtIGlucHV0IFRoZSBiYXNlLTY0IGVuY29kZWQgc3RyaW5nXG4gKlxuICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNDY0OCNzZWN0aW9uLTRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21CYXNlNjQoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBsZXQgdG90YWxCeXRlTGVuZ3RoID0gKGlucHV0Lmxlbmd0aCAvIDQpICogMztcbiAgaWYgKGlucHV0LnN1YnN0cigtMikgPT09IFwiPT1cIikge1xuICAgIHRvdGFsQnl0ZUxlbmd0aCAtPSAyO1xuICB9IGVsc2UgaWYgKGlucHV0LnN1YnN0cigtMSkgPT09IFwiPVwiKSB7XG4gICAgdG90YWxCeXRlTGVuZ3RoLS07XG4gIH1cbiAgY29uc3Qgb3V0ID0gbmV3IEFycmF5QnVmZmVyKHRvdGFsQnl0ZUxlbmd0aCk7XG4gIGNvbnN0IGRhdGFWaWV3ID0gbmV3IERhdGFWaWV3KG91dCk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpICs9IDQpIHtcbiAgICBsZXQgYml0cyA9IDA7XG4gICAgbGV0IGJpdExlbmd0aCA9IDA7XG4gICAgZm9yIChsZXQgaiA9IGksIGxpbWl0ID0gaSArIDM7IGogPD0gbGltaXQ7IGorKykge1xuICAgICAgaWYgKGlucHV0W2pdICE9PSBcIj1cIikge1xuICAgICAgICBiaXRzIHw9IGFscGhhYmV0QnlFbmNvZGluZ1tpbnB1dFtqXV0gPDwgKChsaW1pdCAtIGopICogYml0c1BlckxldHRlcik7XG4gICAgICAgIGJpdExlbmd0aCArPSBiaXRzUGVyTGV0dGVyO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYml0cyA+Pj0gYml0c1BlckxldHRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaHVua09mZnNldCA9IChpIC8gNCkgKiAzO1xuICAgIGJpdHMgPj49IGJpdExlbmd0aCAlIGJpdHNQZXJCeXRlO1xuICAgIGNvbnN0IGJ5dGVMZW5ndGggPSBNYXRoLmZsb29yKGJpdExlbmd0aCAvIGJpdHNQZXJCeXRlKTtcbiAgICBmb3IgKGxldCBrID0gMDsgayA8IGJ5dGVMZW5ndGg7IGsrKykge1xuICAgICAgY29uc3Qgb2Zmc2V0ID0gKGJ5dGVMZW5ndGggLSBrIC0gMSkgKiBiaXRzUGVyQnl0ZTtcbiAgICAgIGRhdGFWaWV3LnNldFVpbnQ4KGNodW5rT2Zmc2V0ICsgaywgKGJpdHMgJiAoMjU1IDw8IG9mZnNldCkpID4+IG9mZnNldCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ldyBVaW50OEFycmF5KG91dCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBVaW50OEFycmF5IG9mIGJpbmFyeSBkYXRhIHRvIGEgYmFzZS02NCBlbmNvZGVkIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5wdXQgVGhlIGJpbmFyeSBkYXRhIHRvIGVuY29kZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQ2NDgjc2VjdGlvbi00XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0Jhc2U2NChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBzdHIgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSArPSAzKSB7XG4gICAgbGV0IGJpdHMgPSAwO1xuICAgIGxldCBiaXRMZW5ndGggPSAwO1xuICAgIGZvciAobGV0IGogPSBpLCBsaW1pdCA9IE1hdGgubWluKGkgKyAzLCBpbnB1dC5sZW5ndGgpOyBqIDwgbGltaXQ7IGorKykge1xuICAgICAgYml0cyB8PSBpbnB1dFtqXSA8PCAoKGxpbWl0IC0gaiAtIDEpICogYml0c1BlckJ5dGUpO1xuICAgICAgYml0TGVuZ3RoICs9IGJpdHNQZXJCeXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGJpdENsdXN0ZXJDb3VudCA9IE1hdGguY2VpbChiaXRMZW5ndGggLyBiaXRzUGVyTGV0dGVyKTtcbiAgICBiaXRzIDw8PSBiaXRDbHVzdGVyQ291bnQgKiBiaXRzUGVyTGV0dGVyIC0gYml0TGVuZ3RoO1xuICAgIGZvciAobGV0IGsgPSAxOyBrIDw9IGJpdENsdXN0ZXJDb3VudDsgaysrKSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSAoYml0Q2x1c3RlckNvdW50IC0gaykgKiBiaXRzUGVyTGV0dGVyO1xuICAgICAgc3RyICs9IGFscGhhYmV0QnlWYWx1ZVsoYml0cyAmIChtYXhMZXR0ZXJWYWx1ZSA8PCBvZmZzZXQpKSA+PiBvZmZzZXRdO1xuICAgIH1cblxuICAgIHN0ciArPSBcIj09XCIuc2xpY2UoMCwgNCAtIGJpdENsdXN0ZXJDb3VudCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuIl19 45076 45077/***/ }), 45078
vendor: 2,207 bytes, lines 45079-45107
45079/***/ "./node_modules/@aws-sdk/util-body-length-browser/dist/cjs/index.js": 45080/*!**************************************************************************!*\ 45081 !*** ./node_modules/@aws-sdk/util-body-length-browser/dist/cjs/index.js ***! 45082 \**************************************************************************/ 45083/*! no static exports found */ 45084/***/ (function(module, exports, __webpack_require__) { 45085 45086"use strict"; 45087 45088Object.defineProperty(exports, "__esModule", { value: true }); 45089exports.calculateBodyLength = void 0; 45090function calculateBodyLength(body) { 45091 if (typeof body === "string") { 45092 return new Blob([body]).size; 45093 } 45094 else if (typeof body.byteLength === "number") { 45095 // handles Uint8Array, ArrayBuffer, Buffer, and ArrayBufferView 45096 return body.byteLength; 45097 } 45098 else if (typeof body.size === "number") { 45099 // handles browser File object 45100 return body.size; 45101 } 45102} 45103exports.calculateBodyLength = calculateBodyLength; 45104//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsbUJBQW1CLENBQUMsSUFBUztJQUMzQyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDOUI7U0FBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDOUMsK0RBQStEO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztLQUN4QjtTQUFNLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtRQUN4Qyw4QkFBOEI7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQztBQVZELGtEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUJvZHlMZW5ndGgoYm9keTogYW55KTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBib2R5ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIG5ldyBCbG9iKFtib2R5XSkuc2l6ZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYm9keS5ieXRlTGVuZ3RoID09PSBcIm51bWJlclwiKSB7XG4gICAgLy8gaGFuZGxlcyBVaW50OEFycmF5LCBBcnJheUJ1ZmZlciwgQnVmZmVyLCBhbmQgQXJyYXlCdWZmZXJWaWV3XG4gICAgcmV0dXJuIGJvZHkuYnl0ZUxlbmd0aDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgYm9keS5zaXplID09PSBcIm51bWJlclwiKSB7XG4gICAgLy8gaGFuZGxlcyBicm93c2VyIEZpbGUgb2JqZWN0XG4gICAgcmV0dXJuIGJvZHkuc2l6ZTtcbiAgfVxufVxuIl19 45105 45106/***/ }), 45107
vendor: 5,465 bytes, lines 45108-45167
45108/***/ "./node_modules/@aws-sdk/util-hex-encoding/dist/cjs/index.js": 45109/*!*******************************************************************!*\ 45110 !*** ./node_modules/@aws-sdk/util-hex-encoding/dist/cjs/index.js ***! 45111 \*******************************************************************/ 45112/*! no static exports found */ 45113/***/ (function(module, exports, __webpack_require__) { 45114 45115"use strict"; 45116 45117Object.defineProperty(exports, "__esModule", { value: true }); 45118exports.toHex = exports.fromHex = void 0; 45119var SHORT_TO_HEX = {}; 45120var HEX_TO_SHORT = {}; 45121for (var i = 0; i < 256; i++) { 45122 var encodedByte = i.toString(16).toLowerCase(); 45123 if (encodedByte.length === 1) { 45124 encodedByte = "0" + encodedByte; 45125 } 45126 SHORT_TO_HEX[i] = encodedByte; 45127 HEX_TO_SHORT[encodedByte] = i; 45128} 45129/** 45130 * Converts a hexadecimal encoded string to a Uint8Array of bytes. 45131 * 45132 * @param encoded The hexadecimal encoded string 45133 */ 45134function fromHex(encoded) { 45135 if (encoded.length % 2 !== 0) { 45136 throw new Error("Hex encoded strings must have an even number length"); 45137 } 45138 var out = new Uint8Array(encoded.length / 2); 45139 for (var i = 0; i < encoded.length; i += 2) { 45140 var encodedByte = encoded.substr(i, 2).toLowerCase(); 45141 if (encodedByte in HEX_TO_SHORT) { 45142 out[i / 2] = HEX_TO_SHORT[encodedByte]; 45143 } 45144 else { 45145 throw new Error("Cannot decode unrecognized sequence " + encodedByte + " as hexadecimal"); 45146 } 45147 } 45148 return out; 45149} 45150exports.fromHex = fromHex; 45151/** 45152 * Converts a Uint8Array of binary data to a hexadecimal encoded string. 45153 * 45154 * @param bytes The binary data to encode 45155 */ 45156function toHex(bytes) { 45157 var out = ""; 45158 for (var i = 0; i < bytes.byteLength; i++) { 45159 out += SHORT_TO_HEX[bytes[i]]; 45160 } 45161 return out; 45162} 45163exports.toHex = toHex; 45164//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi9zcmMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFlBQVksR0FBOEIsRUFBRSxDQUFDO0FBQ25ELElBQU0sWUFBWSxHQUE4QixFQUFFLENBQUM7QUFFbkQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM1QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDNUIsV0FBVyxHQUFHLE1BQUksV0FBYSxDQUFDO0tBQ2pDO0lBRUQsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztJQUM5QixZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQy9CO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxPQUFlO0lBQ3JDLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztLQUN4RTtJQUVELElBQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0MsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMxQyxJQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2RCxJQUFJLFdBQVcsSUFBSSxZQUFZLEVBQUU7WUFDL0IsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXVDLFdBQVcsb0JBQWlCLENBQUMsQ0FBQztTQUN0RjtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBaEJELDBCQWdCQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixLQUFLLENBQUMsS0FBaUI7SUFDckMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekMsR0FBRyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMvQjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQVBELHNCQU9DIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgU0hPUlRfVE9fSEVYOiB7IFtrZXk6IG51bWJlcl06IHN0cmluZyB9ID0ge307XG5jb25zdCBIRVhfVE9fU0hPUlQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBsZXQgZW5jb2RlZEJ5dGUgPSBpLnRvU3RyaW5nKDE2KS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZW5jb2RlZEJ5dGUubGVuZ3RoID09PSAxKSB7XG4gICAgZW5jb2RlZEJ5dGUgPSBgMCR7ZW5jb2RlZEJ5dGV9YDtcbiAgfVxuXG4gIFNIT1JUX1RPX0hFWFtpXSA9IGVuY29kZWRCeXRlO1xuICBIRVhfVE9fU0hPUlRbZW5jb2RlZEJ5dGVdID0gaTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nIHRvIGEgVWludDhBcnJheSBvZiBieXRlcy5cbiAqXG4gKiBAcGFyYW0gZW5jb2RlZCBUaGUgaGV4YWRlY2ltYWwgZW5jb2RlZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21IZXgoZW5jb2RlZDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChlbmNvZGVkLmxlbmd0aCAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJIZXggZW5jb2RlZCBzdHJpbmdzIG11c3QgaGF2ZSBhbiBldmVuIG51bWJlciBsZW5ndGhcIik7XG4gIH1cblxuICBjb25zdCBvdXQgPSBuZXcgVWludDhBcnJheShlbmNvZGVkLmxlbmd0aCAvIDIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGVuY29kZWQubGVuZ3RoOyBpICs9IDIpIHtcbiAgICBjb25zdCBlbmNvZGVkQnl0ZSA9IGVuY29kZWQuc3Vic3RyKGksIDIpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKGVuY29kZWRCeXRlIGluIEhFWF9UT19TSE9SVCkge1xuICAgICAgb3V0W2kgLyAyXSA9IEhFWF9UT19TSE9SVFtlbmNvZGVkQnl0ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlY29kZSB1bnJlY29nbml6ZWQgc2VxdWVuY2UgJHtlbmNvZGVkQnl0ZX0gYXMgaGV4YWRlY2ltYWxgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgVWludDhBcnJheSBvZiBiaW5hcnkgZGF0YSB0byBhIGhleGFkZWNpbWFsIGVuY29kZWQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBieXRlcyBUaGUgYmluYXJ5IGRhdGEgdG8gZW5jb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0hleChieXRlczogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGxldCBvdXQgPSBcIlwiO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVzLmJ5dGVMZW5ndGg7IGkrKykge1xuICAgIG91dCArPSBTSE9SVF9UT19IRVhbYnl0ZXNbaV1dO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ== 45165 45166/***/ }), 45167
vendor: 2,124 bytes, lines 45168-45196
45168/***/ "./node_modules/@aws-sdk/util-locate-window/dist/es/index.js": 45169/*!*******************************************************************!*\ 45170 !*** ./node_modules/@aws-sdk/util-locate-window/dist/es/index.js ***! 45171 \*******************************************************************/ 45172/*! exports provided: locateWindow */ 45173/***/ (function(module, __webpack_exports__, __webpack_require__) { 45174 45175"use strict"; 45176__webpack_require__.r(__webpack_exports__); 45177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "locateWindow", function() { return locateWindow; }); 45178var fallbackWindow = {}; 45179/** 45180 * Locates the global scope for a browser or browser-like environment. If 45181 * neither `window` nor `self` is defined by the environment, the same object 45182 * will be returned on each invocation. 45183 */ 45184function locateWindow() { 45185 if (typeof window !== "undefined") { 45186 return window; 45187 } 45188 else if (typeof self !== "undefined") { 45189 return self; 45190 } 45191 return fallbackWindow; 45192} 45193//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBTSxjQUFjLEdBQUcsRUFBWSxDQUFDO0FBRXBDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWTtJQUMxQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtRQUNqQyxPQUFPLE1BQU0sQ0FBQztLQUNmO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLEVBQUU7UUFDdEMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmYWxsYmFja1dpbmRvdyA9IHt9IGFzIFdpbmRvdztcblxuLyoqXG4gKiBMb2NhdGVzIHRoZSBnbG9iYWwgc2NvcGUgZm9yIGEgYnJvd3NlciBvciBicm93c2VyLWxpa2UgZW52aXJvbm1lbnQuIElmXG4gKiBuZWl0aGVyIGB3aW5kb3dgIG5vciBgc2VsZmAgaXMgZGVmaW5lZCBieSB0aGUgZW52aXJvbm1lbnQsIHRoZSBzYW1lIG9iamVjdFxuICogd2lsbCBiZSByZXR1cm5lZCBvbiBlYWNoIGludm9jYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhdGVXaW5kb3coKTogV2luZG93IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4gd2luZG93O1xuICB9IGVsc2UgaWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHNlbGY7XG4gIH1cblxuICByZXR1cm4gZmFsbGJhY2tXaW5kb3c7XG59XG4iXX0= 45194 45195/***/ }), 45196
vendor: 2,267 bytes, lines 45197-45232
45197/***/ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri-path.js": 45198/*!***************************************************************************!*\ 45199 !*** ./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri-path.js ***! 45200 \***************************************************************************/ 45201/*! no static exports found */ 45202/***/ (function(module, exports, __webpack_require__) { 45203 45204"use strict"; 45205 45206Object.defineProperty(exports, "__esModule", { value: true }); 45207exports.escapeUriPath = void 0; 45208var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 45209var escape_uri_1 = __webpack_require__(/*! ./escape-uri */ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri.js"); 45210function escapeUriPath(uri) { 45211 var e_1, _a; 45212 var parts = []; 45213 try { 45214 for (var _b = tslib_1.__values(uri.split("/")), _c = _b.next(); !_c.done; _c = _b.next()) { 45215 var sub = _c.value; 45216 parts.push(escape_uri_1.escapeUri(sub)); 45217 } 45218 } 45219 catch (e_1_1) { e_1 = { error: e_1_1 }; } 45220 finally { 45221 try { 45222 if (_c && !_c.done && (_a = _b.return)) _a.call(_b); 45223 } 45224 finally { if (e_1) throw e_1.error; } 45225 } 45226 return parts.join("/"); 45227} 45228exports.escapeUriPath = escapeUriPath; 45229//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS1wYXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2VzY2FwZS11cmktcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMkNBQXlDO0FBQ3pDLFNBQWdCLGFBQWEsQ0FBQyxHQUFXOztJQUN2QyxJQUFNLEtBQUssR0FBYSxFQUFFLENBQUM7O1FBQzNCLEtBQWtCLElBQUEsS0FBQSxpQkFBQSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBLGdCQUFBLDRCQUFFO1lBQTdCLElBQU0sR0FBRyxXQUFBO1lBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxzQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUI7Ozs7Ozs7OztJQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBTkQsc0NBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlc2NhcGVVcmkgfSBmcm9tIFwiLi9lc2NhcGUtdXJpXCI7XG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlVXJpUGF0aCh1cmk6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHN1YiBvZiB1cmkuc3BsaXQoXCIvXCIpKSB7XG4gICAgcGFydHMucHVzaChlc2NhcGVVcmkoc3ViKSk7XG4gIH1cbiAgcmV0dXJuIHBhcnRzLmpvaW4oXCIvXCIpO1xufVxuIl19 45230 45231/***/ }), 45232
vendor: 1,942 bytes, lines 45233-45257
45233/***/ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri.js": 45234/*!**********************************************************************!*\ 45235 !*** ./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri.js ***! 45236 \**********************************************************************/ 45237/*! no static exports found */ 45238/***/ (function(module, exports, __webpack_require__) { 45239 45240"use strict"; 45241 45242Object.defineProperty(exports, "__esModule", { value: true }); 45243exports.escapeUri = void 0; 45244function escapeUri(uri) { 45245 var output = encodeURIComponent(uri); 45246 // AWS percent-encodes some extra non-standard characters in a URI 45247 output = output.replace(/[!'()*]/g, hexEncode); 45248 return output; 45249} 45250exports.escapeUri = escapeUri; 45251function hexEncode(c) { 45252 return "%" + c.charCodeAt(0).toString(16).toUpperCase(); 45253} 45254//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNjYXBlLXVyaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lc2NhcGUtdXJpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFNBQVMsQ0FBQyxHQUFXO0lBQ25DLElBQUksTUFBTSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXJDLGtFQUFrRTtJQUNsRSxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFL0MsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVBELDhCQU9DO0FBRUQsU0FBUyxTQUFTLENBQUMsQ0FBUztJQUMxQixPQUFPLE1BQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFJLENBQUM7QUFDMUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBlc2NhcGVVcmkodXJpOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgb3V0cHV0ID0gZW5jb2RlVVJJQ29tcG9uZW50KHVyaSk7XG5cbiAgLy8gQVdTIHBlcmNlbnQtZW5jb2RlcyBzb21lIGV4dHJhIG5vbi1zdGFuZGFyZCBjaGFyYWN0ZXJzIGluIGEgVVJJXG4gIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9bIScoKSpdL2csIGhleEVuY29kZSk7XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gaGV4RW5jb2RlKGM6IHN0cmluZykge1xuICByZXR1cm4gYCUke2MuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX1gO1xufVxuIl19 45255 45256/***/ }), 45257
vendor: 1,179 bytes, lines 45258-45274
45258/***/ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/index.js": 45259/*!*****************************************************************!*\ 45260 !*** ./node_modules/@aws-sdk/util-uri-escape/dist/cjs/index.js ***! 45261 \*****************************************************************/ 45262/*! no static exports found */ 45263/***/ (function(module, exports, __webpack_require__) { 45264 45265"use strict"; 45266 45267Object.defineProperty(exports, "__esModule", { value: true }); 45268var tslib_1 = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); 45269tslib_1.__exportStar(__webpack_require__(/*! ./escape-uri */ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri.js"), exports); 45270tslib_1.__exportStar(__webpack_require__(/*! ./escape-uri-path */ "./node_modules/@aws-sdk/util-uri-escape/dist/cjs/escape-uri-path.js"), exports); 45271//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQTZCO0FBQzdCLDREQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2VzY2FwZS11cmlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VzY2FwZS11cmktcGF0aFwiO1xuIl19 45272 45273/***/ }), 45274
vendor: 1,815 bytes, lines 45275-45294
45275/***/ "./node_modules/@aws-sdk/util-user-agent-browser/dist/cjs/index.js": 45276/*!*************************************************************************!*\ 45277 !*** ./node_modules/@aws-sdk/util-user-agent-browser/dist/cjs/index.js ***! 45278 \*************************************************************************/ 45279/*! no static exports found */ 45280/***/ (function(module, exports, __webpack_require__) { 45281 45282"use strict"; 45283 45284Object.defineProperty(exports, "__esModule", { value: true }); 45285exports.defaultUserAgent = void 0; 45286function defaultUserAgent(packageName, packageVersion) { 45287 var originUserAgent = typeof navigator !== "undefined" && typeof navigator.userAgent === "string" ? navigator.userAgent : ""; 45288 return "aws-sdk-js-v3-" + packageName + "/" + packageVersion + " " + originUserAgent; 45289} 45290exports.defaultUserAgent = defaultUserAgent; 45291//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsZ0JBQWdCLENBQUMsV0FBbUIsRUFBRSxjQUFzQjtJQUMxRSxJQUFNLGVBQWUsR0FDbkIsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLE9BQU8sU0FBUyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RyxPQUFPLG1CQUFpQixXQUFXLFNBQUksY0FBYyxTQUFJLGVBQWlCLENBQUM7QUFDN0UsQ0FBQztBQUpELDRDQUlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRVc2VyQWdlbnQocGFja2FnZU5hbWU6IHN0cmluZywgcGFja2FnZVZlcnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG9yaWdpblVzZXJBZ2VudCA9XG4gICAgdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgbmF2aWdhdG9yLnVzZXJBZ2VudCA9PT0gXCJzdHJpbmdcIiA/IG5hdmlnYXRvci51c2VyQWdlbnQgOiBcIlwiO1xuICByZXR1cm4gYGF3cy1zZGstanMtdjMtJHtwYWNrYWdlTmFtZX0vJHtwYWNrYWdlVmVyc2lvbn0gJHtvcmlnaW5Vc2VyQWdlbnR9YDtcbn1cbiJdfQ== 45292 45293/***/ }), 45294
vendor: 2,707 bytes, lines 45295-45325
45295/***/ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/index.js": 45296/*!*******************************************************************!*\ 45297 !*** ./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/index.js ***! 45298 \*******************************************************************/ 45299/*! no static exports found */ 45300/***/ (function(module, exports, __webpack_require__) { 45301 45302"use strict"; 45303 45304Object.defineProperty(exports, "__esModule", { value: true }); 45305exports.toUtf8 = exports.fromUtf8 = void 0; 45306var pureJs_1 = __webpack_require__(/*! ./pureJs */ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/pureJs.js"); 45307var whatwgEncodingApi_1 = __webpack_require__(/*! ./whatwgEncodingApi */ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/whatwgEncodingApi.js"); 45308function fromUtf8(input) { 45309 if (typeof TextEncoder === "function") { 45310 return whatwgEncodingApi_1.fromUtf8(input); 45311 } 45312 return pureJs_1.fromUtf8(input); 45313} 45314exports.fromUtf8 = fromUtf8; 45315function toUtf8(input) { 45316 if (typeof TextDecoder === "function") { 45317 return whatwgEncodingApi_1.toUtf8(input); 45318 } 45319 return pureJs_1.toUtf8(input); 45320} 45321exports.toUtf8 = toUtf8; 45322//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQXNFO0FBQ3RFLHlEQUFtRztBQUtuRyxTQUFnQixRQUFRLENBQUMsS0FBYTtJQUNwQyxJQUFJLE9BQU8sV0FBVyxLQUFLLFVBQVUsRUFBRTtRQUNyQyxPQUFPLDRCQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25DO0lBRUQsT0FBTyxpQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFORCw0QkFNQztBQUVELFNBQWdCLE1BQU0sQ0FBQyxLQUFpQjtJQUN0QyxJQUFJLE9BQU8sV0FBVyxLQUFLLFVBQVUsRUFBRTtRQUNyQyxPQUFPLDBCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2pDO0lBRUQsT0FBTyxlQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQU5ELHdCQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbVV0ZjggYXMganNGcm9tVXRmOCwgdG9VdGY4IGFzIGpzVG9VdGY4IH0gZnJvbSBcIi4vcHVyZUpzXCI7XG5pbXBvcnQgeyBmcm9tVXRmOCBhcyB0ZXh0RW5jb2RlckZyb21VdGY4LCB0b1V0ZjggYXMgdGV4dEVuY29kZXJUb1V0ZjggfSBmcm9tIFwiLi93aGF0d2dFbmNvZGluZ0FwaVwiO1xuXG5kZWNsYXJlIGNvbnN0IFRleHREZWNvZGVyOiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbmRlY2xhcmUgY29uc3QgVGV4dEVuY29kZXI6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbVV0ZjgoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICBpZiAodHlwZW9mIFRleHRFbmNvZGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gdGV4dEVuY29kZXJGcm9tVXRmOChpbnB1dCk7XG4gIH1cblxuICByZXR1cm4ganNGcm9tVXRmOChpbnB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIFRleHREZWNvZGVyID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4gdGV4dEVuY29kZXJUb1V0ZjgoaW5wdXQpO1xuICB9XG5cbiAgcmV0dXJuIGpzVG9VdGY4KGlucHV0KTtcbn1cbiJdfQ== 45323 45324/***/ }), 45325
vendor: 9,683 bytes, lines 45326-45399
45326/***/ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/pureJs.js": 45327/*!********************************************************************!*\ 45328 !*** ./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/pureJs.js ***! 45329 \********************************************************************/ 45330/*! no static exports found */ 45331/***/ (function(module, exports, __webpack_require__) { 45332 45333"use strict"; 45334 45335Object.defineProperty(exports, "__esModule", { value: true }); 45336exports.toUtf8 = exports.fromUtf8 = void 0; 45337/** 45338 * Converts a JS string from its native UCS-2/UTF-16 representation into a 45339 * Uint8Array of the bytes used to represent the equivalent characters in UTF-8. 45340 * 45341 * Cribbed from the `goog.crypt.stringToUtf8ByteArray` function in the Google 45342 * Closure library, though updated to use typed arrays. 45343 */ 45344function fromUtf8(input) { 45345 var bytes = []; 45346 for (var i = 0, len = input.length; i < len; i++) { 45347 var value = input.charCodeAt(i); 45348 if (value < 0x80) { 45349 bytes.push(value); 45350 } 45351 else if (value < 0x800) { 45352 bytes.push((value >> 6) | 192, (value & 63) | 128); 45353 } 45354 else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) { 45355 var surrogatePair = 0x10000 + ((value & 1023) << 10) + (input.charCodeAt(++i) & 1023); 45356 bytes.push((surrogatePair >> 18) | 240, ((surrogatePair >> 12) & 63) | 128, ((surrogatePair >> 6) & 63) | 128, (surrogatePair & 63) | 128); 45357 } 45358 else { 45359 bytes.push((value >> 12) | 224, ((value >> 6) & 63) | 128, (value & 63) | 128); 45360 } 45361 } 45362 return Uint8Array.from(bytes); 45363} 45364exports.fromUtf8 = fromUtf8; 45365/** 45366 * Converts a typed array of bytes containing UTF-8 data into a native JS 45367 * string. 45368 * 45369 * Partly cribbed from the `goog.crypt.utf8ByteArrayToString` function in the 45370 * Google Closure library, though updated to use typed arrays and to better 45371 * handle astral plane code points. 45372 */ 45373function toUtf8(input) { 45374 var decoded = ""; 45375 for (var i = 0, len = input.length; i < len; i++) { 45376 var byte = input[i]; 45377 if (byte < 0x80) { 45378 decoded += String.fromCharCode(byte); 45379 } 45380 else if (192 <= byte && byte < 224) { 45381 var nextByte = input[++i]; 45382 decoded += String.fromCharCode(((byte & 31) << 6) | (nextByte & 63)); 45383 } 45384 else if (240 <= byte && byte < 365) { 45385 var surrogatePair = [byte, input[++i], input[++i], input[++i]]; 45386 var encoded = "%" + surrogatePair.map(function (byteValue) { return byteValue.toString(16); }).join("%"); 45387 decoded += decodeURIComponent(encoded); 45388 } 45389 else { 45390 decoded += String.fromCharCode(((byte & 15) << 12) | ((input[++i] & 63) << 6) | (input[++i] & 63)); 45391 } 45392 } 45393 return decoded; 45394} 45395exports.toUtf8 = toUtf8; 45396//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyZUpzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1cmVKcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7O0dBTUc7QUFDSCxTQUFnQixRQUFRLENBQUMsS0FBYTtJQUNwQyxJQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO0lBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDaEQsSUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUU7WUFDaEIsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQjthQUFNLElBQUksS0FBSyxHQUFHLEtBQUssRUFBRTtZQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQVUsRUFBRSxDQUFDLEtBQUssR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQUMsQ0FBQztTQUN4RTthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLE1BQU0sRUFBRTtZQUMvRyxJQUFNLGFBQWEsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFZLENBQUMsQ0FBQztZQUN4RyxLQUFLLENBQUMsSUFBSSxDQUNSLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQVUsRUFDbEMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQy9DLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBUSxDQUFDLEdBQUcsR0FBVSxFQUM5QyxDQUFDLGFBQWEsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLENBQ3hDLENBQUM7U0FDSDthQUFNO1lBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsR0FBRyxHQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsR0FBRyxHQUFVLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBUSxDQUFDLEdBQUcsR0FBVSxDQUFDLENBQUM7U0FDakg7S0FDRjtJQUVELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBdEJELDRCQXNCQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixNQUFNLENBQUMsS0FBaUI7SUFDdEMsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDaEQsSUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxHQUFHLElBQUksRUFBRTtZQUNmLE9BQU8sSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxHQUFVLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFVLEVBQUU7WUFDbEQsSUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUIsT0FBTyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2pGO2FBQU0sSUFBSSxHQUFVLElBQUksSUFBSSxJQUFJLElBQUksR0FBRyxHQUFXLEVBQUU7WUFDbkQsSUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFNLE9BQU8sR0FBRyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFDLFNBQVMsSUFBSyxPQUFBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQXRCLENBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekYsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTCxPQUFPLElBQUksTUFBTSxDQUFDLFlBQVksQ0FDNUIsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFRLENBQUMsQ0FDbkYsQ0FBQztTQUNIO0tBQ0Y7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBckJELHdCQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgYSBKUyBzdHJpbmcgZnJvbSBpdHMgbmF0aXZlIFVDUy0yL1VURi0xNiByZXByZXNlbnRhdGlvbiBpbnRvIGFcbiAqIFVpbnQ4QXJyYXkgb2YgdGhlIGJ5dGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBlcXVpdmFsZW50IGNoYXJhY3RlcnMgaW4gVVRGLTguXG4gKlxuICogQ3JpYmJlZCBmcm9tIHRoZSBgZ29vZy5jcnlwdC5zdHJpbmdUb1V0ZjhCeXRlQXJyYXlgIGZ1bmN0aW9uIGluIHRoZSBHb29nbGVcbiAqIENsb3N1cmUgbGlicmFyeSwgdGhvdWdoIHVwZGF0ZWQgdG8gdXNlIHR5cGVkIGFycmF5cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21VdGY4KGlucHV0OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgY29uc3QgYnl0ZXM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGlucHV0Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGlmICh2YWx1ZSA8IDB4ODApIHtcbiAgICAgIGJ5dGVzLnB1c2godmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPCAweDgwMCkge1xuICAgICAgYnl0ZXMucHVzaCgodmFsdWUgPj4gNikgfCAwYjExMDAwMDAwLCAodmFsdWUgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwKTtcbiAgICB9IGVsc2UgaWYgKGkgKyAxIDwgaW5wdXQubGVuZ3RoICYmICh2YWx1ZSAmIDB4ZmMwMCkgPT09IDB4ZDgwMCAmJiAoaW5wdXQuY2hhckNvZGVBdChpICsgMSkgJiAweGZjMDApID09PSAweGRjMDApIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSAweDEwMDAwICsgKCh2YWx1ZSAmIDBiMTExMTExMTExMSkgPDwgMTApICsgKGlucHV0LmNoYXJDb2RlQXQoKytpKSAmIDBiMTExMTExMTExMSk7XG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICAoc3Vycm9nYXRlUGFpciA+PiAxOCkgfCAwYjExMTEwMDAwLFxuICAgICAgICAoKHN1cnJvZ2F0ZVBhaXIgPj4gMTIpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKChzdXJyb2dhdGVQYWlyID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCxcbiAgICAgICAgKHN1cnJvZ2F0ZVBhaXIgJiAwYjExMTExMSkgfCAwYjEwMDAwMDAwXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBieXRlcy5wdXNoKCh2YWx1ZSA+PiAxMikgfCAwYjExMTAwMDAwLCAoKHZhbHVlID4+IDYpICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCwgKHZhbHVlICYgMGIxMTExMTEpIHwgMGIxMDAwMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShieXRlcyk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB0eXBlZCBhcnJheSBvZiBieXRlcyBjb250YWluaW5nIFVURi04IGRhdGEgaW50byBhIG5hdGl2ZSBKU1xuICogc3RyaW5nLlxuICpcbiAqIFBhcnRseSBjcmliYmVkIGZyb20gdGhlIGBnb29nLmNyeXB0LnV0ZjhCeXRlQXJyYXlUb1N0cmluZ2AgZnVuY3Rpb24gaW4gdGhlXG4gKiBHb29nbGUgQ2xvc3VyZSBsaWJyYXJ5LCB0aG91Z2ggdXBkYXRlZCB0byB1c2UgdHlwZWQgYXJyYXlzIGFuZCB0byBiZXR0ZXJcbiAqIGhhbmRsZSBhc3RyYWwgcGxhbmUgY29kZSBwb2ludHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1V0ZjgoaW5wdXQ6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBsZXQgZGVjb2RlZCA9IFwiXCI7XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBpbnB1dC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNvbnN0IGJ5dGUgPSBpbnB1dFtpXTtcbiAgICBpZiAoYnl0ZSA8IDB4ODApIHtcbiAgICAgIGRlY29kZWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlKTtcbiAgICB9IGVsc2UgaWYgKDBiMTEwMDAwMDAgPD0gYnl0ZSAmJiBieXRlIDwgMGIxMTEwMDAwMCkge1xuICAgICAgY29uc3QgbmV4dEJ5dGUgPSBpbnB1dFsrK2ldO1xuICAgICAgZGVjb2RlZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCgoYnl0ZSAmIDBiMTExMTEpIDw8IDYpIHwgKG5leHRCeXRlICYgMGIxMTExMTEpKTtcbiAgICB9IGVsc2UgaWYgKDBiMTExMTAwMDAgPD0gYnl0ZSAmJiBieXRlIDwgMGIxMDExMDExMDEpIHtcbiAgICAgIGNvbnN0IHN1cnJvZ2F0ZVBhaXIgPSBbYnl0ZSwgaW5wdXRbKytpXSwgaW5wdXRbKytpXSwgaW5wdXRbKytpXV07XG4gICAgICBjb25zdCBlbmNvZGVkID0gXCIlXCIgKyBzdXJyb2dhdGVQYWlyLm1hcCgoYnl0ZVZhbHVlKSA9PiBieXRlVmFsdWUudG9TdHJpbmcoMTYpKS5qb2luKFwiJVwiKTtcbiAgICAgIGRlY29kZWQgKz0gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvZGVkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoXG4gICAgICAgICgoYnl0ZSAmIDBiMTExMSkgPDwgMTIpIHwgKChpbnB1dFsrK2ldICYgMGIxMTExMTEpIDw8IDYpIHwgKGlucHV0WysraV0gJiAwYjExMTExMSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlY29kZWQ7XG59XG4iXX0= 45397 45398/***/ }), 45399
vendor: 2,957 bytes, lines 45400-45422
45400/***/ "./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/whatwgEncodingApi.js": 45401/*!*******************************************************************************!*\ 45402 !*** ./node_modules/@aws-sdk/util-utf8-browser/dist/cjs/whatwgEncodingApi.js ***! 45403 \*******************************************************************************/ 45404/*! no static exports found */ 45405/***/ (function(module, exports, __webpack_require__) { 45406 45407"use strict"; 45408 45409Object.defineProperty(exports, "__esModule", { value: true }); 45410exports.toUtf8 = exports.fromUtf8 = void 0; 45411function fromUtf8(input) { 45412 return new TextEncoder().encode(input); 45413} 45414exports.fromUtf8 = fromUtf8; 45415function toUtf8(input) { 45416 return new TextDecoder("utf-8").decode(input); 45417} 45418exports.toUtf8 = toUtf8; 45419//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hhdHdnRW5jb2RpbmdBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2hhdHdnRW5jb2RpbmdBcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUNBLFNBQWdCLFFBQVEsQ0FBQyxLQUFhO0lBQ3BDLE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUZELDRCQUVDO0FBRUQsU0FBZ0IsTUFBTSxDQUFDLEtBQWlCO0lBQ3RDLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFGRCx3QkFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBkZWNsYXJhdGlvbiBvZiB0aGUgZ2xvYmFsIFRleHRFbmNvZGVyIGFuZCBUZXh0RGVjb2RlciBjb25zdHJ1Y3RvcnMuXG4gKlxuICogQHNlZSBodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy9cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2Vcbm5hbWVzcGFjZSBFbmNvZGluZyB7XG4gIGludGVyZmFjZSBUZXh0RGVjb2Rlck9wdGlvbnMge1xuICAgIGZhdGFsPzogYm9vbGVhbjtcbiAgICBpZ25vcmVCT00/OiBib29sZWFuO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHREZWNvZGVPcHRpb25zIHtcbiAgICBzdHJlYW0/OiBib29sZWFuO1xuICB9XG5cbiAgaW50ZXJmYWNlIFRleHREZWNvZGVyIHtcbiAgICByZWFkb25seSBlbmNvZGluZzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGZhdGFsOiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGlnbm9yZUJPTTogYm9vbGVhbjtcbiAgICBkZWNvZGUoaW5wdXQ/OiBBcnJheUJ1ZmZlciB8IEFycmF5QnVmZmVyVmlldywgb3B0aW9ucz86IFRleHREZWNvZGVPcHRpb25zKTogc3RyaW5nO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBUZXh0RGVjb2RlckNvbnN0cnVjdG9yIHtcbiAgICBuZXcgKGxhYmVsPzogc3RyaW5nLCBvcHRpb25zPzogVGV4dERlY29kZXJPcHRpb25zKTogVGV4dERlY29kZXI7XG4gIH1cblxuICBpbnRlcmZhY2UgVGV4dEVuY29kZXIge1xuICAgIHJlYWRvbmx5IGVuY29kaW5nOiBcInV0Zi04XCI7XG4gICAgZW5jb2RlKGlucHV0Pzogc3RyaW5nKTogVWludDhBcnJheTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgVGV4dEVuY29kZXJDb25zdHJ1Y3RvciB7XG4gICAgbmV3ICgpOiBUZXh0RW5jb2RlcjtcbiAgfVxufVxuXG5kZWNsYXJlIGNvbnN0IFRleHREZWNvZGVyOiBFbmNvZGluZy5UZXh0RGVjb2RlckNvbnN0cnVjdG9yO1xuXG5kZWNsYXJlIGNvbnN0IFRleHRFbmNvZGVyOiBFbmNvZGluZy5UZXh0RW5jb2RlckNvbnN0cnVjdG9yO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJvbVV0ZjgoaW5wdXQ6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICByZXR1cm4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGlucHV0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvVXRmOChpbnB1dDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBuZXcgVGV4dERlY29kZXIoXCJ1dGYtOFwiKS5kZWNvZGUoaW5wdXQpO1xufVxuIl19 45420 45421/***/ }), 45422
vendor: 640 bytes, lines 45423-45448
45423/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js": 45424/*!***************************************************************!*\ 45425 !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***! 45426 \***************************************************************/ 45427/*! no static exports found */ 45428/***/ (function(module, exports) { 45429 45430function _defineProperty(obj, key, value) { 45431 if (key in obj) { 45432 Object.defineProperty(obj, key, { 45433 value: value, 45434 enumerable: true, 45435 configurable: true, 45436 writable: true 45437 }); 45438 } else { 45439 obj[key] = value; 45440 } 45441 45442 return obj; 45443} 45444 45445module.exports = _defineProperty; 45446 45447/***/ }), 45448
vendor: 3,056 bytes, lines 45449-45549
45449/***/ "./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js": 45450/*!*****************************************************************************!*\ 45451 !*** ./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js ***! 45452 \*****************************************************************************/ 45453/*! exports provided: default */ 45454/***/ (function(module, __webpack_exports__, __webpack_require__) { 45455 45456"use strict"; 45457__webpack_require__.r(__webpack_exports__); 45458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return AuthenticationDetails; }); 45459/*! 45460 * Copyright 2016 Amazon.com, 45461 * Inc. or its affiliates. All Rights Reserved. 45462 * 45463 * Licensed under the Amazon Software License (the "License"). 45464 * You may not use this file except in compliance with the 45465 * License. A copy of the License is located at 45466 * 45467 * http://aws.amazon.com/asl/ 45468 * 45469 * or in the "license" file accompanying this file. This file is 45470 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 45471 * CONDITIONS OF ANY KIND, express or implied. See the License 45472 * for the specific language governing permissions and 45473 * limitations under the License. 45474 */ 45475 45476/** @class */ 45477var AuthenticationDetails = /*#__PURE__*/function () { 45478 /** 45479 * Constructs a new AuthenticationDetails object 45480 * @param {object=} data Creation options. 45481 * @param {string} data.Username User being authenticated. 45482 * @param {string} data.Password Plain-text password to authenticate with. 45483 * @param {(AttributeArg[])?} data.ValidationData Application extra metadata. 45484 * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth. 45485 */ 45486 function AuthenticationDetails(data) { 45487 var _ref = data || {}, 45488 ValidationData = _ref.ValidationData, 45489 Username = _ref.Username, 45490 Password = _ref.Password, 45491 AuthParameters = _ref.AuthParameters, 45492 ClientMetadata = _ref.ClientMetadata; 45493 45494 this.validationData = ValidationData || {}; 45495 this.authParameters = AuthParameters || {}; 45496 this.clientMetadata = ClientMetadata || {}; 45497 this.username = Username; 45498 this.password = Password; 45499 } 45500 /** 45501 * @returns {string} the record's username 45502 */ 45503 45504 45505 var _proto = AuthenticationDetails.prototype; 45506 45507 _proto.getUsername = function getUsername() { 45508 return this.username; 45509 } 45510 /** 45511 * @returns {string} the record's password 45512 */ 45513 ; 45514 45515 _proto.getPassword = function getPassword() { 45516 return this.password; 45517 } 45518 /** 45519 * @returns {Array} the record's validationData 45520 */ 45521 ; 45522 45523 _proto.getValidationData = function getValidationData() { 45524 return this.validationData; 45525 } 45526 /** 45527 * @returns {Array} the record's authParameters 45528 */ 45529 ; 45530 45531 _proto.getAuthParameters = function getAuthParameters() { 45532 return this.authParameters; 45533 } 45534 /** 45535 * @returns {ClientMetadata} the clientMetadata for a Lambda trigger 45536 */ 45537 ; 45538 45539 _proto.getClientMetadata = function getClientMetadata() { 45540 return this.clientMetadata; 45541 }; 45542 45543 return AuthenticationDetails; 45544}(); 45545 45546 45547 45548/***/ }), 45549
vendor: 14,318 bytes, lines 45550-45900
45550/***/ "./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js": 45551/*!****************************************************************************!*\ 45552 !*** ./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js ***! 45553 \****************************************************************************/ 45554/*! exports provided: default */ 45555/***/ (function(module, __webpack_exports__, __webpack_require__) { 45556 45557"use strict"; 45558__webpack_require__.r(__webpack_exports__); 45559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return AuthenticationHelper; }); 45560/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"); 45561/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(buffer__WEBPACK_IMPORTED_MODULE_0__); 45562/* harmony import */ var crypto_js_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! crypto-js/core */ "./node_modules/crypto-js/core.js"); 45563/* harmony import */ var crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto_js_core__WEBPACK_IMPORTED_MODULE_1__); 45564/* harmony import */ var crypto_js_lib_typedarrays__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! crypto-js/lib-typedarrays */ "./node_modules/crypto-js/lib-typedarrays.js"); 45565/* harmony import */ var crypto_js_lib_typedarrays__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crypto_js_lib_typedarrays__WEBPACK_IMPORTED_MODULE_2__); 45566/* harmony import */ var crypto_js_sha256__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! crypto-js/sha256 */ "./node_modules/crypto-js/sha256.js"); 45567/* harmony import */ var crypto_js_sha256__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(crypto_js_sha256__WEBPACK_IMPORTED_MODULE_3__); 45568/* harmony import */ var crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crypto-js/hmac-sha256 */ "./node_modules/crypto-js/hmac-sha256.js"); 45569/* harmony import */ var crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4__); 45570/* harmony import */ var _BigInteger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BigInteger */ "./node_modules/amazon-cognito-identity-js/es/BigInteger.js"); 45571/*! 45572 * Copyright 2016 Amazon.com, 45573 * Inc. or its affiliates. All Rights Reserved. 45574 * 45575 * Licensed under the Amazon Software License (the "License"). 45576 * You may not use this file except in compliance with the 45577 * License. A copy of the License is located at 45578 * 45579 * http://aws.amazon.com/asl/ 45580 * 45581 * or in the "license" file accompanying this file. This file is 45582 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 45583 * CONDITIONS OF ANY KIND, express or implied. See the License 45584 * for the specific language governing permissions and 45585 * limitations under the License. 45586 */ 45587 45588 45589 // necessary for crypto js 45590 45591 45592 45593 45594var randomBytes = function randomBytes(nBytes) { 45595 return buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.random(nBytes).toString(), 'hex'); 45596}; 45597 45598 45599var initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF'; 45600var newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.'; 45601/** @class */ 45602 45603var AuthenticationHelper = /*#__PURE__*/function () { 45604 /** 45605 * Constructs a new AuthenticationHelper object 45606 * @param {string} PoolName Cognito user pool name. 45607 */ 45608 function AuthenticationHelper(PoolName) { 45609 this.N = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](initN, 16); 45610 this.g = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"]('2', 16); 45611 this.k = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](this.hexHash("00" + this.N.toString(16) + "0" + this.g.toString(16)), 16); 45612 this.smallAValue = this.generateRandomSmallA(); 45613 this.getLargeAValue(function () {}); 45614 this.infoBits = buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from('Caldera Derived Key', 'utf8'); 45615 this.poolName = PoolName; 45616 } 45617 /** 45618 * @returns {BigInteger} small A, a random number 45619 */ 45620 45621 45622 var _proto = AuthenticationHelper.prototype; 45623 45624 _proto.getSmallAValue = function getSmallAValue() { 45625 return this.smallAValue; 45626 } 45627 /** 45628 * @param {nodeCallback<BigInteger>} callback Called with (err, largeAValue) 45629 * @returns {void} 45630 */ 45631 ; 45632 45633 _proto.getLargeAValue = function getLargeAValue(callback) { 45634 var _this = this; 45635 45636 if (this.largeAValue) { 45637 callback(null, this.largeAValue); 45638 } else { 45639 this.calculateA(this.smallAValue, function (err, largeAValue) { 45640 if (err) { 45641 callback(err, null); 45642 } 45643 45644 _this.largeAValue = largeAValue; 45645 callback(null, _this.largeAValue); 45646 }); 45647 } 45648 } 45649 /** 45650 * helper function to generate a random big integer 45651 * @returns {BigInteger} a random value. 45652 * @private 45653 */ 45654 ; 45655 45656 _proto.generateRandomSmallA = function generateRandomSmallA() { 45657 var hexRandom = randomBytes(128).toString('hex'); 45658 var randomBigInt = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](hexRandom, 16); 45659 var smallABigInt = randomBigInt.mod(this.N); 45660 return smallABigInt; 45661 } 45662 /** 45663 * helper function to generate a random string 45664 * @returns {string} a random value. 45665 * @private 45666 */ 45667 ; 45668 45669 _proto.generateRandomString = function generateRandomString() { 45670 return randomBytes(40).toString('base64'); 45671 } 45672 /** 45673 * @returns {string} Generated random value included in password hash. 45674 */ 45675 ; 45676 45677 _proto.getRandomPassword = function getRandomPassword() { 45678 return this.randomPassword; 45679 } 45680 /** 45681 * @returns {string} Generated random value included in devices hash. 45682 */ 45683 ; 45684 45685 _proto.getSaltDevices = function getSaltDevices() { 45686 return this.SaltToHashDevices; 45687 } 45688 /** 45689 * @returns {string} Value used to verify devices. 45690 */ 45691 ; 45692 45693 _proto.getVerifierDevices = function getVerifierDevices() { 45694 return this.verifierDevices; 45695 } 45696 /** 45697 * Generate salts and compute verifier. 45698 * @param {string} deviceGroupKey Devices to generate verifier for. 45699 * @param {string} username User to generate verifier for. 45700 * @param {nodeCallback<null>} callback Called with (err, null) 45701 * @returns {void} 45702 */ 45703 ; 45704 45705 _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) { 45706 var _this2 = this; 45707 45708 this.randomPassword = this.generateRandomString(); 45709 var combinedString = "" + deviceGroupKey + username + ":" + this.randomPassword; 45710 var hashedString = this.hash(combinedString); 45711 var hexRandom = randomBytes(16).toString('hex'); 45712 this.SaltToHashDevices = this.padHex(new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](hexRandom, 16)); 45713 this.g.modPow(new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) { 45714 if (err) { 45715 callback(err, null); 45716 } 45717 45718 _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded); 45719 callback(null, null); 45720 }); 45721 } 45722 /** 45723 * Calculate the client's public value A = g^a%N 45724 * with the generated random number a 45725 * @param {BigInteger} a Randomly generated small A. 45726 * @param {nodeCallback<BigInteger>} callback Called with (err, largeAValue) 45727 * @returns {void} 45728 * @private 45729 */ 45730 ; 45731 45732 _proto.calculateA = function calculateA(a, callback) { 45733 var _this3 = this; 45734 45735 this.g.modPow(a, this.N, function (err, A) { 45736 if (err) { 45737 callback(err, null); 45738 } 45739 45740 if (A.mod(_this3.N).equals(_BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"].ZERO)) { 45741 callback(new Error('Illegal paramater. A mod N cannot be 0.'), null); 45742 } 45743 45744 callback(null, A); 45745 }); 45746 } 45747 /** 45748 * Calculate the client's value U which is the hash of A and B 45749 * @param {BigInteger} A Large A value. 45750 * @param {BigInteger} B Server B value. 45751 * @returns {BigInteger} Computed U value. 45752 * @private 45753 */ 45754 ; 45755 45756 _proto.calculateU = function calculateU(A, B) { 45757 this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B)); 45758 var finalU = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](this.UHexHash, 16); 45759 return finalU; 45760 } 45761 /** 45762 * Calculate a hash from a bitArray 45763 * @param {Buffer} buf Value to hash. 45764 * @returns {String} Hex-encoded hash. 45765 * @private 45766 */ 45767 ; 45768 45769 _proto.hash = function hash(buf) { 45770 var str = buf instanceof buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"] ? crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(buf) : buf; 45771 var hashHex = crypto_js_sha256__WEBPACK_IMPORTED_MODULE_3___default()(str).toString(); 45772 return new Array(64 - hashHex.length).join('0') + hashHex; 45773 } 45774 /** 45775 * Calculate a hash from a hex string 45776 * @param {String} hexStr Value to hash. 45777 * @returns {String} Hex-encoded hash. 45778 * @private 45779 */ 45780 ; 45781 45782 _proto.hexHash = function hexHash(hexStr) { 45783 return this.hash(buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(hexStr, 'hex')); 45784 } 45785 /** 45786 * Standard hkdf algorithm 45787 * @param {Buffer} ikm Input key material. 45788 * @param {Buffer} salt Salt value. 45789 * @returns {Buffer} Strong key material. 45790 * @private 45791 */ 45792 ; 45793 45794 _proto.computehkdf = function computehkdf(ikm, salt) { 45795 var infoBitsWordArray = crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].concat([this.infoBits, buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(String.fromCharCode(1), 'utf8')])); 45796 var ikmWordArray = ikm instanceof buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"] ? crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(ikm) : ikm; 45797 var saltWordArray = salt instanceof buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"] ? crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(salt) : salt; 45798 var prk = crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4___default()(ikmWordArray, saltWordArray); 45799 var hmac = crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4___default()(infoBitsWordArray, prk); 45800 return buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(hmac.toString(), 'hex').slice(0, 16); 45801 } 45802 /** 45803 * Calculates the final hkdf based on computed S value, and computed U value and the key 45804 * @param {String} username Username. 45805 * @param {String} password Password. 45806 * @param {BigInteger} serverBValue Server B value. 45807 * @param {BigInteger} salt Generated salt. 45808 * @param {nodeCallback<Buffer>} callback Called with (err, hkdfValue) 45809 * @returns {void} 45810 */ 45811 ; 45812 45813 _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) { 45814 var _this4 = this; 45815 45816 if (serverBValue.mod(this.N).equals(_BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"].ZERO)) { 45817 throw new Error('B cannot be zero.'); 45818 } 45819 45820 this.UValue = this.calculateU(this.largeAValue, serverBValue); 45821 45822 if (this.UValue.equals(_BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"].ZERO)) { 45823 throw new Error('U cannot be zero.'); 45824 } 45825 45826 var usernamePassword = "" + this.poolName + username + ":" + password; 45827 var usernamePasswordHash = this.hash(usernamePassword); 45828 var xValue = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](this.hexHash(this.padHex(salt) + usernamePasswordHash), 16); 45829 this.calculateS(xValue, serverBValue, function (err, sValue) { 45830 if (err) { 45831 callback(err, null); 45832 } 45833 45834 var hkdf = _this4.computehkdf(buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(_this4.padHex(sValue), 'hex'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(_this4.padHex(_this4.UValue.toString(16)), 'hex')); 45835 45836 callback(null, hkdf); 45837 }); 45838 } 45839 /** 45840 * Calculates the S value used in getPasswordAuthenticationKey 45841 * @param {BigInteger} xValue Salted password hash value. 45842 * @param {BigInteger} serverBValue Server B value. 45843 * @param {nodeCallback<string>} callback Called on success or error. 45844 * @returns {void} 45845 */ 45846 ; 45847 45848 _proto.calculateS = function calculateS(xValue, serverBValue, callback) { 45849 var _this5 = this; 45850 45851 this.g.modPow(xValue, this.N, function (err, gModPowXN) { 45852 if (err) { 45853 callback(err, null); 45854 } 45855 45856 var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN)); 45857 intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) { 45858 if (err2) { 45859 callback(err2, null); 45860 } 45861 45862 callback(null, result.mod(_this5.N)); 45863 }); 45864 }); 45865 } 45866 /** 45867 * Return constant newPasswordRequiredChallengeUserAttributePrefix 45868 * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value 45869 */ 45870 ; 45871 45872 _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() { 45873 return newPasswordRequiredChallengeUserAttributePrefix; 45874 } 45875 /** 45876 * Converts a BigInteger (or hex string) to hex format padded with zeroes for hashing 45877 * @param {BigInteger|String} bigInt Number or string to pad. 45878 * @returns {String} Padded hex string. 45879 */ 45880 ; 45881 45882 _proto.padHex = function padHex(bigInt) { 45883 var hashStr = bigInt.toString(16); 45884 45885 if (hashStr.length % 2 === 1) { 45886 hashStr = "0" + hashStr; 45887 } else if ('89ABCDEFabcdef'.indexOf(hashStr[0]) !== -1) { 45888 hashStr = "00" + hashStr; 45889 } 45890 45891 return hashStr; 45892 }; 45893 45894 return AuthenticationHelper; 45895}(); 45896 45897 45898 45899/***/ }), 45900
vendor: 19,897 bytes, lines 45901-46784
45901/***/ "./node_modules/amazon-cognito-identity-js/es/BigInteger.js": 45902/*!******************************************************************!*\ 45903 !*** ./node_modules/amazon-cognito-identity-js/es/BigInteger.js ***! 45904 \******************************************************************/ 45905/*! exports provided: default */ 45906/***/ (function(module, __webpack_exports__, __webpack_require__) { 45907 45908"use strict"; 45909__webpack_require__.r(__webpack_exports__); 45910// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/ 45911// 45912// All public methods have been removed except the following: 45913// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported) 45914// toString (only radix 2, 4, 8, 16 and 32 supported) 45915// negate 45916// abs 45917// compareTo 45918// bitLength 45919// mod 45920// equals 45921// add 45922// subtract 45923// multiply 45924// divide 45925// modPow 45926/* harmony default export */ __webpack_exports__["default"] = (BigInteger); 45927/* 45928 * Copyright (c) 2003-2005 Tom Wu 45929 * All Rights Reserved. 45930 * 45931 * Permission is hereby granted, free of charge, to any person obtaining 45932 * a copy of this software and associated documentation files (the 45933 * "Software"), to deal in the Software without restriction, including 45934 * without limitation the rights to use, copy, modify, merge, publish, 45935 * distribute, sublicense, and/or sell copies of the Software, and to 45936 * permit persons to whom the Software is furnished to do so, subject to 45937 * the following conditions: 45938 * 45939 * The above copyright notice and this permission notice shall be 45940 * included in all copies or substantial portions of the Software. 45941 * 45942 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 45943 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 45944 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 45945 * 45946 * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, 45947 * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER 45948 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF 45949 * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT 45950 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 45951 * 45952 * In addition, the following condition applies: 45953 * 45954 * All redistributions must retain an intact copy of this copyright notice 45955 * and disclaimer. 45956 */ 45957// (public) Constructor 45958 45959function BigInteger(a, b) { 45960 if (a != null) this.fromString(a, b); 45961} // return new, unset BigInteger 45962 45963 45964function nbi() { 45965 return new BigInteger(null); 45966} // Bits per digit 45967 45968 45969var dbits; // JavaScript engine analysis 45970 45971var canary = 0xdeadbeefcafe; 45972var j_lm = (canary & 0xffffff) == 0xefcafe; // am: Compute w_j += (x*this_i), propagate carries, 45973// c is initial carry, returns final carry. 45974// c < 3*dvalue, x < 2*dvalue, this_i < dvalue 45975// We need to select the fastest one that works in this environment. 45976// am1: use a single mult and divide to get the high bits, 45977// max digit bits should be 26 because 45978// max internal value = 2*dvalue^2-2*dvalue (< 2^53) 45979 45980function am1(i, x, w, j, c, n) { 45981 while (--n >= 0) { 45982 var v = x * this[i++] + w[j] + c; 45983 c = Math.floor(v / 0x4000000); 45984 w[j++] = v & 0x3ffffff; 45985 } 45986 45987 return c; 45988} // am2 avoids a big mult-and-extract completely. 45989// Max digit bits should be <= 30 because we do bitwise ops 45990// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31) 45991 45992 45993function am2(i, x, w, j, c, n) { 45994 var xl = x & 0x7fff, 45995 xh = x >> 15; 45996 45997 while (--n >= 0) { 45998 var l = this[i] & 0x7fff; 45999 var h = this[i++] >> 15; 46000 var m = xh * l + h * xl; 46001 l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff); 46002 c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30); 46003 w[j++] = l & 0x3fffffff; 46004 } 46005 46006 return c; 46007} // Alternately, set max digit bits to 28 since some 46008// browsers slow down when dealing with 32-bit numbers. 46009 46010 46011function am3(i, x, w, j, c, n) { 46012 var xl = x & 0x3fff, 46013 xh = x >> 14; 46014 46015 while (--n >= 0) { 46016 var l = this[i] & 0x3fff; 46017 var h = this[i++] >> 14; 46018 var m = xh * l + h * xl; 46019 l = xl * l + ((m & 0x3fff) << 14) + w[j] + c; 46020 c = (l >> 28) + (m >> 14) + xh * h; 46021 w[j++] = l & 0xfffffff; 46022 } 46023 46024 return c; 46025} 46026 46027var inBrowser = typeof navigator !== 'undefined'; 46028 46029if (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') { 46030 BigInteger.prototype.am = am2; 46031 dbits = 30; 46032} else if (inBrowser && j_lm && navigator.appName != 'Netscape') { 46033 BigInteger.prototype.am = am1; 46034 dbits = 26; 46035} else { 46036 // Mozilla/Netscape seems to prefer am3 46037 BigInteger.prototype.am = am3; 46038 dbits = 28; 46039} 46040 46041BigInteger.prototype.DB = dbits; 46042BigInteger.prototype.DM = (1 << dbits) - 1; 46043BigInteger.prototype.DV = 1 << dbits; 46044var BI_FP = 52; 46045BigInteger.prototype.FV = Math.pow(2, BI_FP); 46046BigInteger.prototype.F1 = BI_FP - dbits; 46047BigInteger.prototype.F2 = 2 * dbits - BI_FP; // Digit conversions 46048 46049var BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz'; 46050var BI_RC = new Array(); 46051var rr, vv; 46052rr = '0'.charCodeAt(0); 46053 46054for (vv = 0; vv <= 9; ++vv) { 46055 BI_RC[rr++] = vv; 46056} 46057 46058rr = 'a'.charCodeAt(0); 46059 46060for (vv = 10; vv < 36; ++vv) { 46061 BI_RC[rr++] = vv; 46062} 46063 46064rr = 'A'.charCodeAt(0); 46065 46066for (vv = 10; vv < 36; ++vv) { 46067 BI_RC[rr++] = vv; 46068} 46069 46070function int2char(n) { 46071 return BI_RM.charAt(n); 46072} 46073 46074function intAt(s, i) { 46075 var c = BI_RC[s.charCodeAt(i)]; 46076 return c == null ? -1 : c; 46077} // (protected) copy this to r 46078 46079 46080function bnpCopyTo(r) { 46081 for (var i = this.t - 1; i >= 0; --i) { 46082 r[i] = this[i]; 46083 } 46084 46085 r.t = this.t; 46086 r.s = this.s; 46087} // (protected) set from integer value x, -DV <= x < DV 46088 46089 46090function bnpFromInt(x) { 46091 this.t = 1; 46092 this.s = x < 0 ? -1 : 0; 46093 if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0; 46094} // return bigint initialized to value 46095 46096 46097function nbv(i) { 46098 var r = nbi(); 46099 r.fromInt(i); 46100 return r; 46101} // (protected) set from string and radix 46102 46103 46104function bnpFromString(s, b) { 46105 var k; 46106 if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported'); 46107 this.t = 0; 46108 this.s = 0; 46109 var i = s.length, 46110 mi = false, 46111 sh = 0; 46112 46113 while (--i >= 0) { 46114 var x = intAt(s, i); 46115 46116 if (x < 0) { 46117 if (s.charAt(i) == '-') mi = true; 46118 continue; 46119 } 46120 46121 mi = false; 46122 if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) { 46123 this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh; 46124 this[this.t++] = x >> this.DB - sh; 46125 } else this[this.t - 1] |= x << sh; 46126 sh += k; 46127 if (sh >= this.DB) sh -= this.DB; 46128 } 46129 46130 this.clamp(); 46131 if (mi) BigInteger.ZERO.subTo(this, this); 46132} // (protected) clamp off excess high words 46133 46134 46135function bnpClamp() { 46136 var c = this.s & this.DM; 46137 46138 while (this.t > 0 && this[this.t - 1] == c) { 46139 --this.t; 46140 } 46141} // (public) return string representation in given radix 46142 46143 46144function bnToString(b) { 46145 if (this.s < 0) return '-' + this.negate().toString(b); 46146 var k; 46147 if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported'); 46148 var km = (1 << k) - 1, 46149 d, 46150 m = false, 46151 r = '', 46152 i = this.t; 46153 var p = this.DB - i * this.DB % k; 46154 46155 if (i-- > 0) { 46156 if (p < this.DB && (d = this[i] >> p) > 0) { 46157 m = true; 46158 r = int2char(d); 46159 } 46160 46161 while (i >= 0) { 46162 if (p < k) { 46163 d = (this[i] & (1 << p) - 1) << k - p; 46164 d |= this[--i] >> (p += this.DB - k); 46165 } else { 46166 d = this[i] >> (p -= k) & km; 46167 46168 if (p <= 0) { 46169 p += this.DB; 46170 --i; 46171 } 46172 } 46173 46174 if (d > 0) m = true; 46175 if (m) r += int2char(d); 46176 } 46177 } 46178 46179 return m ? r : '0'; 46180} // (public) -this 46181 46182 46183function bnNegate() { 46184 var r = nbi(); 46185 BigInteger.ZERO.subTo(this, r); 46186 return r; 46187} // (public) |this| 46188 46189 46190function bnAbs() { 46191 return this.s < 0 ? this.negate() : this; 46192} // (public) return + if this > a, - if this < a, 0 if equal 46193 46194 46195function bnCompareTo(a) { 46196 var r = this.s - a.s; 46197 if (r != 0) return r; 46198 var i = this.t; 46199 r = i - a.t; 46200 if (r != 0) return this.s < 0 ? -r : r; 46201 46202 while (--i >= 0) { 46203 if ((r = this[i] - a[i]) != 0) return r; 46204 } 46205 46206 return 0; 46207} // returns bit length of the integer x 46208 46209 46210function nbits(x) { 46211 var r = 1, 46212 t; 46213 46214 if ((t = x >>> 16) != 0) { 46215 x = t; 46216 r += 16; 46217 } 46218 46219 if ((t = x >> 8) != 0) { 46220 x = t; 46221 r += 8; 46222 } 46223 46224 if ((t = x >> 4) != 0) { 46225 x = t; 46226 r += 4; 46227 } 46228 46229 if ((t = x >> 2) != 0) { 46230 x = t; 46231 r += 2; 46232 } 46233 46234 if ((t = x >> 1) != 0) { 46235 x = t; 46236 r += 1; 46237 } 46238 46239 return r; 46240} // (public) return the number of bits in "this" 46241 46242 46243function bnBitLength() { 46244 if (this.t <= 0) return 0; 46245 return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM); 46246} // (protected) r = this << n*DB 46247 46248 46249function bnpDLShiftTo(n, r) { 46250 var i; 46251 46252 for (i = this.t - 1; i >= 0; --i) { 46253 r[i + n] = this[i]; 46254 } 46255 46256 for (i = n - 1; i >= 0; --i) { 46257 r[i] = 0; 46258 } 46259 46260 r.t = this.t + n; 46261 r.s = this.s; 46262} // (protected) r = this >> n*DB 46263 46264 46265function bnpDRShiftTo(n, r) { 46266 for (var i = n; i < this.t; ++i) { 46267 r[i - n] = this[i]; 46268 } 46269 46270 r.t = Math.max(this.t - n, 0); 46271 r.s = this.s; 46272} // (protected) r = this << n 46273 46274 46275function bnpLShiftTo(n, r) { 46276 var bs = n % this.DB; 46277 var cbs = this.DB - bs; 46278 var bm = (1 << cbs) - 1; 46279 var ds = Math.floor(n / this.DB), 46280 c = this.s << bs & this.DM, 46281 i; 46282 46283 for (i = this.t - 1; i >= 0; --i) { 46284 r[i + ds + 1] = this[i] >> cbs | c; 46285 c = (this[i] & bm) << bs; 46286 } 46287 46288 for (i = ds - 1; i >= 0; --i) { 46289 r[i] = 0; 46290 } 46291 46292 r[ds] = c; 46293 r.t = this.t + ds + 1; 46294 r.s = this.s; 46295 r.clamp(); 46296} // (protected) r = this >> n 46297 46298 46299function bnpRShiftTo(n, r) { 46300 r.s = this.s; 46301 var ds = Math.floor(n / this.DB); 46302 46303 if (ds >= this.t) { 46304 r.t = 0; 46305 return; 46306 } 46307 46308 var bs = n % this.DB; 46309 var cbs = this.DB - bs; 46310 var bm = (1 << bs) - 1; 46311 r[0] = this[ds] >> bs; 46312 46313 for (var i = ds + 1; i < this.t; ++i) { 46314 r[i - ds - 1] |= (this[i] & bm) << cbs; 46315 r[i - ds] = this[i] >> bs; 46316 } 46317 46318 if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs; 46319 r.t = this.t - ds; 46320 r.clamp(); 46321} // (protected) r = this - a 46322 46323 46324function bnpSubTo(a, r) { 46325 var i = 0, 46326 c = 0, 46327 m = Math.min(a.t, this.t); 46328 46329 while (i < m) { 46330 c += this[i] - a[i]; 46331 r[i++] = c & this.DM; 46332 c >>= this.DB; 46333 } 46334 46335 if (a.t < this.t) { 46336 c -= a.s; 46337 46338 while (i < this.t) { 46339 c += this[i]; 46340 r[i++] = c & this.DM; 46341 c >>= this.DB; 46342 } 46343 46344 c += this.s; 46345 } else { 46346 c += this.s; 46347 46348 while (i < a.t) { 46349 c -= a[i]; 46350 r[i++] = c & this.DM; 46351 c >>= this.DB; 46352 } 46353 46354 c -= a.s; 46355 } 46356 46357 r.s = c < 0 ? -1 : 0; 46358 if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c; 46359 r.t = i; 46360 r.clamp(); 46361} // (protected) r = this * a, r != this,a (HAC 14.12) 46362// "this" should be the larger one if appropriate. 46363 46364 46365function bnpMultiplyTo(a, r) { 46366 var x = this.abs(), 46367 y = a.abs(); 46368 var i = x.t; 46369 r.t = i + y.t; 46370 46371 while (--i >= 0) { 46372 r[i] = 0; 46373 } 46374 46375 for (i = 0; i < y.t; ++i) { 46376 r[i + x.t] = x.am(0, y[i], r, i, 0, x.t); 46377 } 46378 46379 r.s = 0; 46380 r.clamp(); 46381 if (this.s != a.s) BigInteger.ZERO.subTo(r, r); 46382} // (protected) r = this^2, r != this (HAC 14.16) 46383 46384 46385function bnpSquareTo(r) { 46386 var x = this.abs(); 46387 var i = r.t = 2 * x.t; 46388 46389 while (--i >= 0) { 46390 r[i] = 0; 46391 } 46392 46393 for (i = 0; i < x.t - 1; ++i) { 46394 var c = x.am(i, x[i], r, 2 * i, 0, 1); 46395 46396 if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) { 46397 r[i + x.t] -= x.DV; 46398 r[i + x.t + 1] = 1; 46399 } 46400 } 46401 46402 if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1); 46403 r.s = 0; 46404 r.clamp(); 46405} // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20) 46406// r != q, this != m. q or r may be null. 46407 46408 46409function bnpDivRemTo(m, q, r) { 46410 var pm = m.abs(); 46411 if (pm.t <= 0) return; 46412 var pt = this.abs(); 46413 46414 if (pt.t < pm.t) { 46415 if (q != null) q.fromInt(0); 46416 if (r != null) this.copyTo(r); 46417 return; 46418 } 46419 46420 if (r == null) r = nbi(); 46421 var y = nbi(), 46422 ts = this.s, 46423 ms = m.s; 46424 var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus 46425 46426 if (nsh > 0) { 46427 pm.lShiftTo(nsh, y); 46428 pt.lShiftTo(nsh, r); 46429 } else { 46430 pm.copyTo(y); 46431 pt.copyTo(r); 46432 } 46433 46434 var ys = y.t; 46435 var y0 = y[ys - 1]; 46436 if (y0 == 0) return; 46437 var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0); 46438 var d1 = this.FV / yt, 46439 d2 = (1 << this.F1) / yt, 46440 e = 1 << this.F2; 46441 var i = r.t, 46442 j = i - ys, 46443 t = q == null ? nbi() : q; 46444 y.dlShiftTo(j, t); 46445 46446 if (r.compareTo(t) >= 0) { 46447 r[r.t++] = 1; 46448 r.subTo(t, r); 46449 } 46450 46451 BigInteger.ONE.dlShiftTo(ys, t); 46452 t.subTo(y, y); // "negative" y so we can replace sub with am later 46453 46454 while (y.t < ys) { 46455 y[y.t++] = 0; 46456 } 46457 46458 while (--j >= 0) { 46459 // Estimate quotient digit 46460 var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2); 46461 46462 if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { 46463 // Try it out 46464 y.dlShiftTo(j, t); 46465 r.subTo(t, r); 46466 46467 while (r[i] < --qd) { 46468 r.subTo(t, r); 46469 } 46470 } 46471 } 46472 46473 if (q != null) { 46474 r.drShiftTo(ys, q); 46475 if (ts != ms) BigInteger.ZERO.subTo(q, q); 46476 } 46477 46478 r.t = ys; 46479 r.clamp(); 46480 if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder 46481 46482 if (ts < 0) BigInteger.ZERO.subTo(r, r); 46483} // (public) this mod a 46484 46485 46486function bnMod(a) { 46487 var r = nbi(); 46488 this.abs().divRemTo(a, null, r); 46489 if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r); 46490 return r; 46491} // (protected) return "-1/this % 2^DB"; useful for Mont. reduction 46492// justification: 46493// xy == 1 (mod m) 46494// xy = 1+km 46495// xy(2-xy) = (1+km)(1-km) 46496// x[y(2-xy)] = 1-k^2m^2 46497// x[y(2-xy)] == 1 (mod m^2) 46498// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2 46499// should reduce x and y(2-xy) by m^2 at each step to keep size bounded. 46500// JS multiply "overflows" differently from C/C++, so care is needed here. 46501 46502 46503function bnpInvDigit() { 46504 if (this.t < 1) return 0; 46505 var x = this[0]; 46506 if ((x & 1) == 0) return 0; 46507 var y = x & 3; // y == 1/x mod 2^2 46508 46509 y = y * (2 - (x & 0xf) * y) & 0xf; // y == 1/x mod 2^4 46510 46511 y = y * (2 - (x & 0xff) * y) & 0xff; // y == 1/x mod 2^8 46512 46513 y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff; // y == 1/x mod 2^16 46514 // last step - calculate inverse mod DV directly; 46515 // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints 46516 46517 y = y * (2 - x * y % this.DV) % this.DV; // y == 1/x mod 2^dbits 46518 // we really want the negative inverse, and -DV < y < DV 46519 46520 return y > 0 ? this.DV - y : -y; 46521} 46522 46523function bnEquals(a) { 46524 return this.compareTo(a) == 0; 46525} // (protected) r = this + a 46526 46527 46528function bnpAddTo(a, r) { 46529 var i = 0, 46530 c = 0, 46531 m = Math.min(a.t, this.t); 46532 46533 while (i < m) { 46534 c += this[i] + a[i]; 46535 r[i++] = c & this.DM; 46536 c >>= this.DB; 46537 } 46538 46539 if (a.t < this.t) { 46540 c += a.s; 46541 46542 while (i < this.t) { 46543 c += this[i]; 46544 r[i++] = c & this.DM; 46545 c >>= this.DB; 46546 } 46547 46548 c += this.s; 46549 } else { 46550 c += this.s; 46551 46552 while (i < a.t) { 46553 c += a[i]; 46554 r[i++] = c & this.DM; 46555 c >>= this.DB; 46556 } 46557 46558 c += a.s; 46559 } 46560 46561 r.s = c < 0 ? -1 : 0; 46562 if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c; 46563 r.t = i; 46564 r.clamp(); 46565} // (public) this + a 46566 46567 46568function bnAdd(a) { 46569 var r = nbi(); 46570 this.addTo(a, r); 46571 return r; 46572} // (public) this - a 46573 46574 46575function bnSubtract(a) { 46576 var r = nbi(); 46577 this.subTo(a, r); 46578 return r; 46579} // (public) this * a 46580 46581 46582function bnMultiply(a) { 46583 var r = nbi(); 46584 this.multiplyTo(a, r); 46585 return r; 46586} // (public) this / a 46587 46588 46589function bnDivide(a) { 46590 var r = nbi(); 46591 this.divRemTo(a, r, null); 46592 return r; 46593} // Montgomery reduction 46594 46595 46596function Montgomery(m) { 46597 this.m = m; 46598 this.mp = m.invDigit(); 46599 this.mpl = this.mp & 0x7fff; 46600 this.mph = this.mp >> 15; 46601 this.um = (1 << m.DB - 15) - 1; 46602 this.mt2 = 2 * m.t; 46603} // xR mod m 46604 46605 46606function montConvert(x) { 46607 var r = nbi(); 46608 x.abs().dlShiftTo(this.m.t, r); 46609 r.divRemTo(this.m, null, r); 46610 if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r); 46611 return r; 46612} // x/R mod m 46613 46614 46615function montRevert(x) { 46616 var r = nbi(); 46617 x.copyTo(r); 46618 this.reduce(r); 46619 return r; 46620} // x = x/R mod m (HAC 14.32) 46621 46622 46623function montReduce(x) { 46624 while (x.t <= this.mt2) { 46625 // pad x so am has enough room later 46626 x[x.t++] = 0; 46627 } 46628 46629 for (var i = 0; i < this.m.t; ++i) { 46630 // faster way of calculating u0 = x[i]*mp mod DV 46631 var j = x[i] & 0x7fff; 46632 var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM; // use am to combine the multiply-shift-add into one call 46633 46634 j = i + this.m.t; 46635 x[j] += this.m.am(0, u0, x, i, 0, this.m.t); // propagate carry 46636 46637 while (x[j] >= x.DV) { 46638 x[j] -= x.DV; 46639 x[++j]++; 46640 } 46641 } 46642 46643 x.clamp(); 46644 x.drShiftTo(this.m.t, x); 46645 if (x.compareTo(this.m) >= 0) x.subTo(this.m, x); 46646} // r = "x^2/R mod m"; x != r 46647 46648 46649function montSqrTo(x, r) { 46650 x.squareTo(r); 46651 this.reduce(r); 46652} // r = "xy/R mod m"; x,y != r 46653 46654 46655function montMulTo(x, y, r) { 46656 x.multiplyTo(y, r); 46657 this.reduce(r); 46658} 46659 46660Montgomery.prototype.convert = montConvert; 46661Montgomery.prototype.revert = montRevert; 46662Montgomery.prototype.reduce = montReduce; 46663Montgomery.prototype.mulTo = montMulTo; 46664Montgomery.prototype.sqrTo = montSqrTo; // (public) this^e % m (HAC 14.85) 46665 46666function bnModPow(e, m, callback) { 46667 var i = e.bitLength(), 46668 k, 46669 r = nbv(1), 46670 z = new Montgomery(m); 46671 if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6; // precomputation 46672 46673 var g = new Array(), 46674 n = 3, 46675 k1 = k - 1, 46676 km = (1 << k) - 1; 46677 g[1] = z.convert(this); 46678 46679 if (k > 1) { 46680 var g2 = nbi(); 46681 z.sqrTo(g[1], g2); 46682 46683 while (n <= km) { 46684 g[n] = nbi(); 46685 z.mulTo(g2, g[n - 2], g[n]); 46686 n += 2; 46687 } 46688 } 46689 46690 var j = e.t - 1, 46691 w, 46692 is1 = true, 46693 r2 = nbi(), 46694 t; 46695 i = nbits(e[j]) - 1; 46696 46697 while (j >= 0) { 46698 if (i >= k1) w = e[j] >> i - k1 & km;else { 46699 w = (e[j] & (1 << i + 1) - 1) << k1 - i; 46700 if (j > 0) w |= e[j - 1] >> this.DB + i - k1; 46701 } 46702 n = k; 46703 46704 while ((w & 1) == 0) { 46705 w >>= 1; 46706 --n; 46707 } 46708 46709 if ((i -= n) < 0) { 46710 i += this.DB; 46711 --j; 46712 } 46713 46714 if (is1) { 46715 // ret == 1, don't bother squaring or multiplying it 46716 g[w].copyTo(r); 46717 is1 = false; 46718 } else { 46719 while (n > 1) { 46720 z.sqrTo(r, r2); 46721 z.sqrTo(r2, r); 46722 n -= 2; 46723 } 46724 46725 if (n > 0) z.sqrTo(r, r2);else { 46726 t = r; 46727 r = r2; 46728 r2 = t; 46729 } 46730 z.mulTo(r2, g[w], r); 46731 } 46732 46733 while (j >= 0 && (e[j] & 1 << i) == 0) { 46734 z.sqrTo(r, r2); 46735 t = r; 46736 r = r2; 46737 r2 = t; 46738 46739 if (--i < 0) { 46740 i = this.DB - 1; 46741 --j; 46742 } 46743 } 46744 } 46745 46746 var result = z.revert(r); 46747 callback(null, result); 46748 return result; 46749} // protected 46750 46751 46752BigInteger.prototype.copyTo = bnpCopyTo; 46753BigInteger.prototype.fromInt = bnpFromInt; 46754BigInteger.prototype.fromString = bnpFromString; 46755BigInteger.prototype.clamp = bnpClamp; 46756BigInteger.prototype.dlShiftTo = bnpDLShiftTo; 46757BigInteger.prototype.drShiftTo = bnpDRShiftTo; 46758BigInteger.prototype.lShiftTo = bnpLShiftTo; 46759BigInteger.prototype.rShiftTo = bnpRShiftTo; 46760BigInteger.prototype.subTo = bnpSubTo; 46761BigInteger.prototype.multiplyTo = bnpMultiplyTo; 46762BigInteger.prototype.squareTo = bnpSquareTo; 46763BigInteger.prototype.divRemTo = bnpDivRemTo; 46764BigInteger.prototype.invDigit = bnpInvDigit; 46765BigInteger.prototype.addTo = bnpAddTo; // public 46766 46767BigInteger.prototype.toString = bnToString; 46768BigInteger.prototype.negate = bnNegate; 46769BigInteger.prototype.abs = bnAbs; 46770BigInteger.prototype.compareTo = bnCompareTo; 46771BigInteger.prototype.bitLength = bnBitLength; 46772BigInteger.prototype.mod = bnMod; 46773BigInteger.prototype.equals = bnEquals; 46774BigInteger.prototype.add = bnAdd; 46775BigInteger.prototype.subtract = bnSubtract; 46776BigInteger.prototype.multiply = bnMultiply; 46777BigInteger.prototype.divide = bnDivide; 46778BigInteger.prototype.modPow = bnModPow; // "constants" 46779 46780BigInteger.ZERO = nbv(0); 46781BigInteger.ONE = nbv(1); 46782 46783/***/ }), 46784
vendor: 7,548 bytes, lines 46785-46962
46785/***/ "./node_modules/amazon-cognito-identity-js/es/Client.js": 46786/*!**************************************************************!*\ 46787 !*** ./node_modules/amazon-cognito-identity-js/es/Client.js ***! 46788 \**************************************************************/ 46789/*! exports provided: default */ 46790/***/ (function(module, __webpack_exports__, __webpack_require__) { 46791 46792"use strict"; 46793__webpack_require__.r(__webpack_exports__); 46794/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Client; }); 46795/* harmony import */ var isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! isomorphic-unfetch */ "./node_modules/isomorphic-unfetch/browser.js"); 46796/* harmony import */ var isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(isomorphic_unfetch__WEBPACK_IMPORTED_MODULE_0__); 46797/* harmony import */ var _UserAgent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserAgent */ "./node_modules/amazon-cognito-identity-js/es/UserAgent.js"); 46798function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } 46799 46800function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } 46801 46802function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } 46803 46804function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } 46805 46806function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } 46807 46808function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } 46809 46810function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } 46811 46812 46813 46814 46815var CognitoError = /*#__PURE__*/function (_Error) { 46816 _inheritsLoose(CognitoError, _Error); 46817 46818 function CognitoError(message, code, name, statusCode) { 46819 var _this; 46820 46821 _this = _Error.call(this, message) || this; 46822 _this.code = code; 46823 _this.name = name; 46824 _this.statusCode = statusCode; 46825 return _this; 46826 } 46827 46828 return CognitoError; 46829}( /*#__PURE__*/_wrapNativeSuper(Error)); 46830/** @class */ 46831 46832 46833var Client = /*#__PURE__*/function () { 46834 /** 46835 * Constructs a new AWS Cognito Identity Provider client object 46836 * @param {string} region AWS region 46837 * @param {string} endpoint endpoint 46838 * @param {object} fetchOptions options for fetch API (only credentials is supported) 46839 */ 46840 function Client(region, endpoint, fetchOptions) { 46841 this.endpoint = endpoint || "https://cognito-idp." + region + ".amazonaws.com/"; 46842 46843 var _ref = fetchOptions || {}, 46844 credentials = _ref.credentials; 46845 46846 this.fetchOptions = credentials ? { 46847 credentials: credentials 46848 } : {}; 46849 } 46850 /** 46851 * Makes an unauthenticated request on AWS Cognito Identity Provider API 46852 * using fetch 46853 * @param {string} operation API operation 46854 * @param {object} params Input parameters 46855 * @returns Promise<object> 46856 */ 46857 46858 46859 var _proto = Client.prototype; 46860 46861 _proto.promisifyRequest = function promisifyRequest(operation, params) { 46862 var _this2 = this; 46863 46864 return new Promise(function (resolve, reject) { 46865 _this2.request(operation, params, function (err, data) { 46866 if (err) { 46867 reject(new CognitoError(err.message, err.code, err.name, err.statusCode)); 46868 } else { 46869 resolve(data); 46870 } 46871 }); 46872 }); 46873 } 46874 /** 46875 * Makes an unauthenticated request on AWS Cognito Identity Provider API 46876 * using fetch 46877 * @param {string} operation API operation 46878 * @param {object} params Input parameters 46879 * @param {function} callback Callback called when a response is returned 46880 * @returns {void} 46881 */ 46882 ; 46883 46884 _proto.request = function request(operation, params, callback) { 46885 var headers = { 46886 'Content-Type': 'application/x-amz-json-1.1', 46887 'X-Amz-Target': "AWSCognitoIdentityProviderService." + operation, 46888 'X-Amz-User-Agent': _UserAgent__WEBPACK_IMPORTED_MODULE_1__["default"].prototype.userAgent 46889 }; 46890 var options = Object.assign({}, this.fetchOptions, { 46891 headers: headers, 46892 method: 'POST', 46893 mode: 'cors', 46894 cache: 'no-cache', 46895 body: JSON.stringify(params) 46896 }); 46897 var response; 46898 var responseJsonData; 46899 fetch(this.endpoint, options).then(function (resp) { 46900 response = resp; 46901 return resp; 46902 }, function (err) { 46903 // If error happens here, the request failed 46904 // if it is TypeError throw network error 46905 if (err instanceof TypeError) { 46906 throw new Error('Network error'); 46907 } 46908 46909 throw err; 46910 }).then(function (resp) { 46911 return resp.json()["catch"](function () { 46912 return {}; 46913 }); 46914 }).then(function (data) { 46915 // return parsed body stream 46916 if (response.ok) return callback(null, data); 46917 responseJsonData = data; // Taken from aws-sdk-js/lib/protocol/json.js 46918 // eslint-disable-next-line no-underscore-dangle 46919 46920 var code = (data.__type || data.code).split('#').pop(); 46921 var error = { 46922 code: code, 46923 name: code, 46924 message: data.message || data.Message || null 46925 }; 46926 return callback(error); 46927 })["catch"](function (err) { 46928 // first check if we have a service error 46929 if (response && response.headers && response.headers.get('x-amzn-errortype')) { 46930 try { 46931 var code = response.headers.get('x-amzn-errortype').split(':')[0]; 46932 var error = { 46933 code: code, 46934 name: code, 46935 statusCode: response.status, 46936 message: response.status ? response.status.toString() : null 46937 }; 46938 return callback(error); 46939 } catch (ex) { 46940 return callback(err); 46941 } // otherwise check if error is Network error 46942 46943 } else if (err instanceof Error && err.message === 'Network error') { 46944 var _error = { 46945 code: 'NetworkError', 46946 name: err.name, 46947 message: err.message 46948 }; 46949 return callback(_error); 46950 } else { 46951 return callback(err); 46952 } 46953 }); 46954 }; 46955 46956 return Client; 46957}(); 46958 46959 46960 46961/***/ }), 46962
vendor: 2,107 bytes, lines 46963-47015
46963/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js": 46964/*!**************************************************************************!*\ 46965 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js ***! 46966 \**************************************************************************/ 46967/*! exports provided: default */ 46968/***/ (function(module, __webpack_exports__, __webpack_require__) { 46969 46970"use strict"; 46971__webpack_require__.r(__webpack_exports__); 46972/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoAccessToken; }); 46973/* harmony import */ var _CognitoJwtToken__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CognitoJwtToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js"); 46974function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } 46975 46976/* 46977 * Copyright 2016 Amazon.com, 46978 * Inc. or its affiliates. All Rights Reserved. 46979 * 46980 * Licensed under the Amazon Software License (the "License"). 46981 * You may not use this file except in compliance with the 46982 * License. A copy of the License is located at 46983 * 46984 * http://aws.amazon.com/asl/ 46985 * 46986 * or in the "license" file accompanying this file. This file is 46987 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 46988 * CONDITIONS OF ANY KIND, express or implied. See the License 46989 * for the specific language governing permissions and 46990 * limitations under the License. 46991 */ 46992 46993/** @class */ 46994 46995var CognitoAccessToken = /*#__PURE__*/function (_CognitoJwtToken) { 46996 _inheritsLoose(CognitoAccessToken, _CognitoJwtToken); 46997 46998 /** 46999 * Constructs a new CognitoAccessToken object 47000 * @param {string=} AccessToken The JWT access token. 47001 */ 47002 function CognitoAccessToken(_temp) { 47003 var _ref = _temp === void 0 ? {} : _temp, 47004 AccessToken = _ref.AccessToken; 47005 47006 return _CognitoJwtToken.call(this, AccessToken || '') || this; 47007 } 47008 47009 return CognitoAccessToken; 47010}(_CognitoJwtToken__WEBPACK_IMPORTED_MODULE_0__["default"]); 47011 47012 47013 47014/***/ }), 47015
vendor: 2,047 bytes, lines 47016-47068
47016/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js": 47017/*!**********************************************************************!*\ 47018 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js ***! 47019 \**********************************************************************/ 47020/*! exports provided: default */ 47021/***/ (function(module, __webpack_exports__, __webpack_require__) { 47022 47023"use strict"; 47024__webpack_require__.r(__webpack_exports__); 47025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoIdToken; }); 47026/* harmony import */ var _CognitoJwtToken__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CognitoJwtToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js"); 47027function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } 47028 47029/*! 47030 * Copyright 2016 Amazon.com, 47031 * Inc. or its affiliates. All Rights Reserved. 47032 * 47033 * Licensed under the Amazon Software License (the "License"). 47034 * You may not use this file except in compliance with the 47035 * License. A copy of the License is located at 47036 * 47037 * http://aws.amazon.com/asl/ 47038 * 47039 * or in the "license" file accompanying this file. This file is 47040 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 47041 * CONDITIONS OF ANY KIND, express or implied. See the License 47042 * for the specific language governing permissions and 47043 * limitations under the License. 47044 */ 47045 47046/** @class */ 47047 47048var CognitoIdToken = /*#__PURE__*/function (_CognitoJwtToken) { 47049 _inheritsLoose(CognitoIdToken, _CognitoJwtToken); 47050 47051 /** 47052 * Constructs a new CognitoIdToken object 47053 * @param {string=} IdToken The JWT Id token 47054 */ 47055 function CognitoIdToken(_temp) { 47056 var _ref = _temp === void 0 ? {} : _temp, 47057 IdToken = _ref.IdToken; 47058 47059 return _CognitoJwtToken.call(this, IdToken || '') || this; 47060 } 47061 47062 return CognitoIdToken; 47063}(_CognitoJwtToken__WEBPACK_IMPORTED_MODULE_0__["default"]); 47064 47065 47066 47067/***/ }), 47068
vendor: 2,610 bytes, lines 47069-47157
47069/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js": 47070/*!***********************************************************************!*\ 47071 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js ***! 47072 \***********************************************************************/ 47073/*! exports provided: default */ 47074/***/ (function(module, __webpack_exports__, __webpack_require__) { 47075 47076"use strict"; 47077__webpack_require__.r(__webpack_exports__); 47078/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoJwtToken; }); 47079/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"); 47080/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(buffer__WEBPACK_IMPORTED_MODULE_0__); 47081/*! 47082 * Copyright 2016 Amazon.com, 47083 * Inc. or its affiliates. All Rights Reserved. 47084 * 47085 * Licensed under the Amazon Software License (the "License"). 47086 * You may not use this file except in compliance with the 47087 * License. A copy of the License is located at 47088 * 47089 * http://aws.amazon.com/asl/ 47090 * 47091 * or in the "license" file accompanying this file. This file is 47092 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 47093 * CONDITIONS OF ANY KIND, express or implied. See the License 47094 * for the specific language governing permissions and 47095 * limitations under the License. 47096 */ 47097 47098/** @class */ 47099 47100var CognitoJwtToken = /*#__PURE__*/function () { 47101 /** 47102 * Constructs a new CognitoJwtToken object 47103 * @param {string=} token The JWT token. 47104 */ 47105 function CognitoJwtToken(token) { 47106 // Assign object 47107 this.jwtToken = token || ''; 47108 this.payload = this.decodePayload(); 47109 } 47110 /** 47111 * @returns {string} the record's token. 47112 */ 47113 47114 47115 var _proto = CognitoJwtToken.prototype; 47116 47117 _proto.getJwtToken = function getJwtToken() { 47118 return this.jwtToken; 47119 } 47120 /** 47121 * @returns {int} the token's expiration (exp member). 47122 */ 47123 ; 47124 47125 _proto.getExpiration = function getExpiration() { 47126 return this.payload.exp; 47127 } 47128 /** 47129 * @returns {int} the token's "issued at" (iat member). 47130 */ 47131 ; 47132 47133 _proto.getIssuedAt = function getIssuedAt() { 47134 return this.payload.iat; 47135 } 47136 /** 47137 * @returns {object} the token's payload. 47138 */ 47139 ; 47140 47141 _proto.decodePayload = function decodePayload() { 47142 var payload = this.jwtToken.split('.')[1]; 47143 47144 try { 47145 return JSON.parse(buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(payload, 'base64').toString('utf8')); 47146 } catch (err) { 47147 return {}; 47148 } 47149 }; 47150 47151 return CognitoJwtToken; 47152}(); 47153 47154 47155 47156/***/ }), 47157
vendor: 1,785 bytes, lines 47158-47215
47158/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js": 47159/*!***************************************************************************!*\ 47160 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js ***! 47161 \***************************************************************************/ 47162/*! exports provided: default */ 47163/***/ (function(module, __webpack_exports__, __webpack_require__) { 47164 47165"use strict"; 47166__webpack_require__.r(__webpack_exports__); 47167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoRefreshToken; }); 47168/*! 47169 * Copyright 2016 Amazon.com, 47170 * Inc. or its affiliates. All Rights Reserved. 47171 * 47172 * Licensed under the Amazon Software License (the "License"). 47173 * You may not use this file except in compliance with the 47174 * License. A copy of the License is located at 47175 * 47176 * http://aws.amazon.com/asl/ 47177 * 47178 * or in the "license" file accompanying this file. This file is 47179 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 47180 * CONDITIONS OF ANY KIND, express or implied. See the License 47181 * for the specific language governing permissions and 47182 * limitations under the License. 47183 */ 47184 47185/** @class */ 47186var CognitoRefreshToken = /*#__PURE__*/function () { 47187 /** 47188 * Constructs a new CognitoRefreshToken object 47189 * @param {string=} RefreshToken The JWT refresh token. 47190 */ 47191 function CognitoRefreshToken(_temp) { 47192 var _ref = _temp === void 0 ? {} : _temp, 47193 RefreshToken = _ref.RefreshToken; 47194 47195 // Assign object 47196 this.token = RefreshToken || ''; 47197 } 47198 /** 47199 * @returns {string} the record's token. 47200 */ 47201 47202 47203 var _proto = CognitoRefreshToken.prototype; 47204 47205 _proto.getToken = function getToken() { 47206 return this.token; 47207 }; 47208 47209 return CognitoRefreshToken; 47210}(); 47211 47212 47213 47214/***/ }), 47215
vendor: 73,645 bytes, lines 47216-49233
47216/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUser.js": 47217/*!*******************************************************************!*\ 47218 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUser.js ***! 47219 \*******************************************************************/ 47220/*! exports provided: default */ 47221/***/ (function(module, __webpack_exports__, __webpack_require__) { 47222 47223"use strict"; 47224__webpack_require__.r(__webpack_exports__); 47225/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoUser; }); 47226/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ "./node_modules/buffer/index.js"); 47227/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(buffer__WEBPACK_IMPORTED_MODULE_0__); 47228/* harmony import */ var crypto_js_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! crypto-js/core */ "./node_modules/crypto-js/core.js"); 47229/* harmony import */ var crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto_js_core__WEBPACK_IMPORTED_MODULE_1__); 47230/* harmony import */ var crypto_js_lib_typedarrays__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! crypto-js/lib-typedarrays */ "./node_modules/crypto-js/lib-typedarrays.js"); 47231/* harmony import */ var crypto_js_lib_typedarrays__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(crypto_js_lib_typedarrays__WEBPACK_IMPORTED_MODULE_2__); 47232/* harmony import */ var crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! crypto-js/enc-base64 */ "./node_modules/crypto-js/enc-base64.js"); 47233/* harmony import */ var crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_3__); 47234/* harmony import */ var crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! crypto-js/hmac-sha256 */ "./node_modules/crypto-js/hmac-sha256.js"); 47235/* harmony import */ var crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4__); 47236/* harmony import */ var _BigInteger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./BigInteger */ "./node_modules/amazon-cognito-identity-js/es/BigInteger.js"); 47237/* harmony import */ var _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AuthenticationHelper */ "./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js"); 47238/* harmony import */ var _CognitoAccessToken__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CognitoAccessToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js"); 47239/* harmony import */ var _CognitoIdToken__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CognitoIdToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js"); 47240/* harmony import */ var _CognitoRefreshToken__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CognitoRefreshToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js"); 47241/* harmony import */ var _CognitoUserSession__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CognitoUserSession */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js"); 47242/* harmony import */ var _DateHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./DateHelper */ "./node_modules/amazon-cognito-identity-js/es/DateHelper.js"); 47243/* harmony import */ var _CognitoUserAttribute__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CognitoUserAttribute */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js"); 47244/* harmony import */ var _StorageHelper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/amazon-cognito-identity-js/es/StorageHelper.js"); 47245/*! 47246 * Copyright 2016 Amazon.com, 47247 * Inc. or its affiliates. All Rights Reserved. 47248 * 47249 * Licensed under the Amazon Software License (the "License"). 47250 * You may not use this file except in compliance with the 47251 * License. A copy of the License is located at 47252 * 47253 * http://aws.amazon.com/asl/ 47254 * 47255 * or in the "license" file accompanying this file. This file is 47256 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 47257 * CONDITIONS OF ANY KIND, express or implied. See the License 47258 * for the specific language governing permissions and 47259 * limitations under the License. 47260 */ 47261 47262 47263 // necessary for crypto js 47264 47265 47266 47267 47268 47269 47270 47271 47272 47273 47274 47275 47276/** 47277 * @callback nodeCallback 47278 * @template T result 47279 * @param {*} err The operation failure reason, or null. 47280 * @param {T} result The operation result. 47281 */ 47282 47283/** 47284 * @callback onFailure 47285 * @param {*} err Failure reason. 47286 */ 47287 47288/** 47289 * @callback onSuccess 47290 * @template T result 47291 * @param {T} result The operation result. 47292 */ 47293 47294/** 47295 * @callback mfaRequired 47296 * @param {*} details MFA challenge details. 47297 */ 47298 47299/** 47300 * @callback customChallenge 47301 * @param {*} details Custom challenge details. 47302 */ 47303 47304/** 47305 * @callback inputVerificationCode 47306 * @param {*} data Server response. 47307 */ 47308 47309/** 47310 * @callback authSuccess 47311 * @param {CognitoUserSession} session The new session. 47312 * @param {bool=} userConfirmationNecessary User must be confirmed. 47313 */ 47314 47315var isBrowser = typeof navigator !== 'undefined'; 47316var userAgent = isBrowser ? navigator.userAgent : 'nodejs'; 47317/** @class */ 47318 47319var CognitoUser = /*#__PURE__*/function () { 47320 /** 47321 * Constructs a new CognitoUser object 47322 * @param {object} data Creation options 47323 * @param {string} data.Username The user's username. 47324 * @param {CognitoUserPool} data.Pool Pool containing the user. 47325 * @param {object} data.Storage Optional storage object. 47326 */ 47327 function CognitoUser(data) { 47328 if (data == null || data.Username == null || data.Pool == null) { 47329 throw new Error('Username and pool information are required.'); 47330 } 47331 47332 this.username = data.Username || ''; 47333 this.pool = data.Pool; 47334 this.Session = null; 47335 this.client = data.Pool.client; 47336 this.signInUserSession = null; 47337 this.authenticationFlowType = 'USER_SRP_AUTH'; 47338 this.storage = data.Storage || new _StorageHelper__WEBPACK_IMPORTED_MODULE_13__["default"]().getStorage(); 47339 this.keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId(); 47340 this.userDataKey = this.keyPrefix + "." + this.username + ".userData"; 47341 } 47342 /** 47343 * Sets the session for this user 47344 * @param {CognitoUserSession} signInUserSession the session 47345 * @returns {void} 47346 */ 47347 47348 47349 var _proto = CognitoUser.prototype; 47350 47351 _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) { 47352 this.clearCachedUserData(); 47353 this.signInUserSession = signInUserSession; 47354 this.cacheTokens(); 47355 } 47356 /** 47357 * @returns {CognitoUserSession} the current session for this user 47358 */ 47359 ; 47360 47361 _proto.getSignInUserSession = function getSignInUserSession() { 47362 return this.signInUserSession; 47363 } 47364 /** 47365 * @returns {string} the user's username 47366 */ 47367 ; 47368 47369 _proto.getUsername = function getUsername() { 47370 return this.username; 47371 } 47372 /** 47373 * @returns {String} the authentication flow type 47374 */ 47375 ; 47376 47377 _proto.getAuthenticationFlowType = function getAuthenticationFlowType() { 47378 return this.authenticationFlowType; 47379 } 47380 /** 47381 * sets authentication flow type 47382 * @param {string} authenticationFlowType New value. 47383 * @returns {void} 47384 */ 47385 ; 47386 47387 _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) { 47388 this.authenticationFlowType = authenticationFlowType; 47389 } 47390 /** 47391 * This is used for authenticating the user through the custom authentication flow. 47392 * @param {AuthenticationDetails} authDetails Contains the authentication data 47393 * @param {object} callback Result callback map. 47394 * @param {onFailure} callback.onFailure Called on any error. 47395 * @param {customChallenge} callback.customChallenge Custom challenge 47396 * response required to continue. 47397 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47398 * @returns {void} 47399 */ 47400 ; 47401 47402 _proto.initiateAuth = function initiateAuth(authDetails, callback) { 47403 var _this = this; 47404 47405 var authParameters = authDetails.getAuthParameters(); 47406 authParameters.USERNAME = this.username; 47407 var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata(); 47408 var jsonReq = { 47409 AuthFlow: 'CUSTOM_AUTH', 47410 ClientId: this.pool.getClientId(), 47411 AuthParameters: authParameters, 47412 ClientMetadata: clientMetaData 47413 }; 47414 47415 if (this.getUserContextData()) { 47416 jsonReq.UserContextData = this.getUserContextData(); 47417 } 47418 47419 this.client.request('InitiateAuth', jsonReq, function (err, data) { 47420 if (err) { 47421 return callback.onFailure(err); 47422 } 47423 47424 var challengeName = data.ChallengeName; 47425 var challengeParameters = data.ChallengeParameters; 47426 47427 if (challengeName === 'CUSTOM_CHALLENGE') { 47428 _this.Session = data.Session; 47429 return callback.customChallenge(challengeParameters); 47430 } 47431 47432 _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult); 47433 47434 _this.cacheTokens(); 47435 47436 return callback.onSuccess(_this.signInUserSession); 47437 }); 47438 } 47439 /** 47440 * This is used for authenticating the user. 47441 * stuff 47442 * @param {AuthenticationDetails} authDetails Contains the authentication data 47443 * @param {object} callback Result callback map. 47444 * @param {onFailure} callback.onFailure Called on any error. 47445 * @param {newPasswordRequired} callback.newPasswordRequired new 47446 * password and any required attributes are required to continue 47447 * @param {mfaRequired} callback.mfaRequired MFA code 47448 * required to continue. 47449 * @param {customChallenge} callback.customChallenge Custom challenge 47450 * response required to continue. 47451 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47452 * @returns {void} 47453 */ 47454 ; 47455 47456 _proto.authenticateUser = function authenticateUser(authDetails, callback) { 47457 if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') { 47458 return this.authenticateUserPlainUsernamePassword(authDetails, callback); 47459 } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') { 47460 return this.authenticateUserDefaultAuth(authDetails, callback); 47461 } 47462 47463 return callback.onFailure(new Error('Authentication flow type is invalid.')); 47464 } 47465 /** 47466 * PRIVATE ONLY: This is an internal only method and should not 47467 * be directly called by the consumers. 47468 * It calls the AuthenticationHelper for SRP related 47469 * stuff 47470 * @param {AuthenticationDetails} authDetails Contains the authentication data 47471 * @param {object} callback Result callback map. 47472 * @param {onFailure} callback.onFailure Called on any error. 47473 * @param {newPasswordRequired} callback.newPasswordRequired new 47474 * password and any required attributes are required to continue 47475 * @param {mfaRequired} callback.mfaRequired MFA code 47476 * required to continue. 47477 * @param {customChallenge} callback.customChallenge Custom challenge 47478 * response required to continue. 47479 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47480 * @returns {void} 47481 */ 47482 ; 47483 47484 _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) { 47485 var _this2 = this; 47486 47487 var authenticationHelper = new _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__["default"](this.pool.getUserPoolId().split('_')[1]); 47488 var dateHelper = new _DateHelper__WEBPACK_IMPORTED_MODULE_11__["default"](); 47489 var serverBValue; 47490 var salt; 47491 var authParameters = {}; 47492 47493 if (this.deviceKey != null) { 47494 authParameters.DEVICE_KEY = this.deviceKey; 47495 } 47496 47497 authParameters.USERNAME = this.username; 47498 authenticationHelper.getLargeAValue(function (errOnAValue, aValue) { 47499 // getLargeAValue callback start 47500 if (errOnAValue) { 47501 callback.onFailure(errOnAValue); 47502 } 47503 47504 authParameters.SRP_A = aValue.toString(16); 47505 47506 if (_this2.authenticationFlowType === 'CUSTOM_AUTH') { 47507 authParameters.CHALLENGE_NAME = 'SRP_A'; 47508 } 47509 47510 var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata(); 47511 var jsonReq = { 47512 AuthFlow: _this2.authenticationFlowType, 47513 ClientId: _this2.pool.getClientId(), 47514 AuthParameters: authParameters, 47515 ClientMetadata: clientMetaData 47516 }; 47517 47518 if (_this2.getUserContextData(_this2.username)) { 47519 jsonReq.UserContextData = _this2.getUserContextData(_this2.username); 47520 } 47521 47522 _this2.client.request('InitiateAuth', jsonReq, function (err, data) { 47523 if (err) { 47524 return callback.onFailure(err); 47525 } 47526 47527 var challengeParameters = data.ChallengeParameters; 47528 _this2.username = challengeParameters.USER_ID_FOR_SRP; 47529 serverBValue = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](challengeParameters.SRP_B, 16); 47530 salt = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](challengeParameters.SALT, 16); 47531 47532 _this2.getCachedDeviceKeyAndPassword(); 47533 47534 authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) { 47535 // getPasswordAuthenticationKey callback start 47536 if (errOnHkdf) { 47537 callback.onFailure(errOnHkdf); 47538 } 47539 47540 var dateNow = dateHelper.getNowString(); 47541 var message = crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].concat([buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(_this2.pool.getUserPoolId().split('_')[1], 'utf8'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(_this2.username, 'utf8'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(challengeParameters.SECRET_BLOCK, 'base64'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(dateNow, 'utf8')])); 47542 var key = crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(hkdf); 47543 var signatureString = crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_3___default.a.stringify(crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4___default()(message, key)); 47544 var challengeResponses = {}; 47545 challengeResponses.USERNAME = _this2.username; 47546 challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK; 47547 challengeResponses.TIMESTAMP = dateNow; 47548 challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString; 47549 47550 if (_this2.deviceKey != null) { 47551 challengeResponses.DEVICE_KEY = _this2.deviceKey; 47552 } 47553 47554 var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) { 47555 return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) { 47556 if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) { 47557 challengeResponses.DEVICE_KEY = null; 47558 _this2.deviceKey = null; 47559 _this2.randomPassword = null; 47560 _this2.deviceGroupKey = null; 47561 47562 _this2.clearCachedDeviceKeyAndPassword(); 47563 47564 return respondToAuthChallenge(challenge, challengeCallback); 47565 } 47566 47567 return challengeCallback(errChallenge, dataChallenge); 47568 }); 47569 }; 47570 47571 var jsonReqResp = { 47572 ChallengeName: 'PASSWORD_VERIFIER', 47573 ClientId: _this2.pool.getClientId(), 47574 ChallengeResponses: challengeResponses, 47575 Session: data.Session, 47576 ClientMetadata: clientMetaData 47577 }; 47578 47579 if (_this2.getUserContextData()) { 47580 jsonReqResp.UserContextData = _this2.getUserContextData(); 47581 } 47582 47583 respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) { 47584 if (errAuthenticate) { 47585 return callback.onFailure(errAuthenticate); 47586 } 47587 47588 return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback); 47589 }); 47590 return undefined; // getPasswordAuthenticationKey callback end 47591 }); 47592 return undefined; 47593 }); // getLargeAValue callback end 47594 47595 }); 47596 } 47597 /** 47598 * PRIVATE ONLY: This is an internal only method and should not 47599 * be directly called by the consumers. 47600 * @param {AuthenticationDetails} authDetails Contains the authentication data. 47601 * @param {object} callback Result callback map. 47602 * @param {onFailure} callback.onFailure Called on any error. 47603 * @param {mfaRequired} callback.mfaRequired MFA code 47604 * required to continue. 47605 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47606 * @returns {void} 47607 */ 47608 ; 47609 47610 _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) { 47611 var _this3 = this; 47612 47613 var authParameters = {}; 47614 authParameters.USERNAME = this.username; 47615 authParameters.PASSWORD = authDetails.getPassword(); 47616 47617 if (!authParameters.PASSWORD) { 47618 callback.onFailure(new Error('PASSWORD parameter is required')); 47619 return; 47620 } 47621 47622 var authenticationHelper = new _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__["default"](this.pool.getUserPoolId().split('_')[1]); 47623 this.getCachedDeviceKeyAndPassword(); 47624 47625 if (this.deviceKey != null) { 47626 authParameters.DEVICE_KEY = this.deviceKey; 47627 } 47628 47629 var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata(); 47630 var jsonReq = { 47631 AuthFlow: 'USER_PASSWORD_AUTH', 47632 ClientId: this.pool.getClientId(), 47633 AuthParameters: authParameters, 47634 ClientMetadata: clientMetaData 47635 }; 47636 47637 if (this.getUserContextData(this.username)) { 47638 jsonReq.UserContextData = this.getUserContextData(this.username); 47639 } // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password, 47640 // Cognito UserPools verifies password and returns tokens. 47641 47642 47643 this.client.request('InitiateAuth', jsonReq, function (err, authResult) { 47644 if (err) { 47645 return callback.onFailure(err); 47646 } 47647 47648 return _this3.authenticateUserInternal(authResult, authenticationHelper, callback); 47649 }); 47650 } 47651 /** 47652 * PRIVATE ONLY: This is an internal only method and should not 47653 * be directly called by the consumers. 47654 * @param {object} dataAuthenticate authentication data 47655 * @param {object} authenticationHelper helper created 47656 * @param {callback} callback passed on from caller 47657 * @returns {void} 47658 */ 47659 ; 47660 47661 _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) { 47662 var _this4 = this; 47663 47664 var challengeName = dataAuthenticate.ChallengeName; 47665 var challengeParameters = dataAuthenticate.ChallengeParameters; 47666 47667 if (challengeName === 'SMS_MFA') { 47668 this.Session = dataAuthenticate.Session; 47669 return callback.mfaRequired(challengeName, challengeParameters); 47670 } 47671 47672 if (challengeName === 'SELECT_MFA_TYPE') { 47673 this.Session = dataAuthenticate.Session; 47674 return callback.selectMFAType(challengeName, challengeParameters); 47675 } 47676 47677 if (challengeName === 'MFA_SETUP') { 47678 this.Session = dataAuthenticate.Session; 47679 return callback.mfaSetup(challengeName, challengeParameters); 47680 } 47681 47682 if (challengeName === 'SOFTWARE_TOKEN_MFA') { 47683 this.Session = dataAuthenticate.Session; 47684 return callback.totpRequired(challengeName, challengeParameters); 47685 } 47686 47687 if (challengeName === 'CUSTOM_CHALLENGE') { 47688 this.Session = dataAuthenticate.Session; 47689 return callback.customChallenge(challengeParameters); 47690 } 47691 47692 if (challengeName === 'NEW_PASSWORD_REQUIRED') { 47693 this.Session = dataAuthenticate.Session; 47694 var userAttributes = null; 47695 var rawRequiredAttributes = null; 47696 var requiredAttributes = []; 47697 var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix(); 47698 47699 if (challengeParameters) { 47700 userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes); 47701 rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes); 47702 } 47703 47704 if (rawRequiredAttributes) { 47705 for (var i = 0; i < rawRequiredAttributes.length; i++) { 47706 requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length); 47707 } 47708 } 47709 47710 return callback.newPasswordRequired(userAttributes, requiredAttributes); 47711 } 47712 47713 if (challengeName === 'DEVICE_SRP_AUTH') { 47714 this.getDeviceResponse(callback); 47715 return undefined; 47716 } 47717 47718 this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult); 47719 this.challengeName = challengeName; 47720 this.cacheTokens(); 47721 var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata; 47722 47723 if (newDeviceMetadata == null) { 47724 return callback.onSuccess(this.signInUserSession); 47725 } 47726 47727 authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) { 47728 if (errGenHash) { 47729 return callback.onFailure(errGenHash); 47730 } 47731 47732 var deviceSecretVerifierConfig = { 47733 Salt: buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'), 47734 PasswordVerifier: buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64') 47735 }; 47736 _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier; 47737 _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey; 47738 _this4.randomPassword = authenticationHelper.getRandomPassword(); 47739 47740 _this4.client.request('ConfirmDevice', { 47741 DeviceKey: newDeviceMetadata.DeviceKey, 47742 AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(), 47743 DeviceSecretVerifierConfig: deviceSecretVerifierConfig, 47744 DeviceName: userAgent 47745 }, function (errConfirm, dataConfirm) { 47746 if (errConfirm) { 47747 return callback.onFailure(errConfirm); 47748 } 47749 47750 _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey; 47751 47752 _this4.cacheDeviceKeyAndPassword(); 47753 47754 if (dataConfirm.UserConfirmationNecessary === true) { 47755 return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary); 47756 } 47757 47758 return callback.onSuccess(_this4.signInUserSession); 47759 }); 47760 47761 return undefined; 47762 }); 47763 return undefined; 47764 } 47765 /** 47766 * This method is user to complete the NEW_PASSWORD_REQUIRED challenge. 47767 * Pass the new password with any new user attributes to be updated. 47768 * User attribute keys must be of format userAttributes.<attribute_name>. 47769 * @param {string} newPassword new password for this user 47770 * @param {object} requiredAttributeData map with values for all required attributes 47771 * @param {object} callback Result callback map. 47772 * @param {onFailure} callback.onFailure Called on any error. 47773 * @param {mfaRequired} callback.mfaRequired MFA code required to continue. 47774 * @param {customChallenge} callback.customChallenge Custom challenge 47775 * response required to continue. 47776 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47777 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 47778 * @returns {void} 47779 */ 47780 ; 47781 47782 _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) { 47783 var _this5 = this; 47784 47785 if (!newPassword) { 47786 return callback.onFailure(new Error('New password is required.')); 47787 } 47788 47789 var authenticationHelper = new _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__["default"](this.pool.getUserPoolId().split('_')[1]); 47790 var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix(); 47791 var finalUserAttributes = {}; 47792 47793 if (requiredAttributeData) { 47794 Object.keys(requiredAttributeData).forEach(function (key) { 47795 finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key]; 47796 }); 47797 } 47798 47799 finalUserAttributes.NEW_PASSWORD = newPassword; 47800 finalUserAttributes.USERNAME = this.username; 47801 var jsonReq = { 47802 ChallengeName: 'NEW_PASSWORD_REQUIRED', 47803 ClientId: this.pool.getClientId(), 47804 ChallengeResponses: finalUserAttributes, 47805 Session: this.Session, 47806 ClientMetadata: clientMetadata 47807 }; 47808 47809 if (this.getUserContextData()) { 47810 jsonReq.UserContextData = this.getUserContextData(); 47811 } 47812 47813 this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) { 47814 if (errAuthenticate) { 47815 return callback.onFailure(errAuthenticate); 47816 } 47817 47818 return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback); 47819 }); 47820 return undefined; 47821 } 47822 /** 47823 * This is used to get a session using device authentication. It is called at the end of user 47824 * authentication 47825 * 47826 * @param {object} callback Result callback map. 47827 * @param {onFailure} callback.onFailure Called on any error. 47828 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47829 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 47830 * @returns {void} 47831 * @private 47832 */ 47833 ; 47834 47835 _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) { 47836 var _this6 = this; 47837 47838 var authenticationHelper = new _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__["default"](this.deviceGroupKey); 47839 var dateHelper = new _DateHelper__WEBPACK_IMPORTED_MODULE_11__["default"](); 47840 var authParameters = {}; 47841 authParameters.USERNAME = this.username; 47842 authParameters.DEVICE_KEY = this.deviceKey; 47843 authenticationHelper.getLargeAValue(function (errAValue, aValue) { 47844 // getLargeAValue callback start 47845 if (errAValue) { 47846 callback.onFailure(errAValue); 47847 } 47848 47849 authParameters.SRP_A = aValue.toString(16); 47850 var jsonReq = { 47851 ChallengeName: 'DEVICE_SRP_AUTH', 47852 ClientId: _this6.pool.getClientId(), 47853 ChallengeResponses: authParameters, 47854 ClientMetadata: clientMetadata 47855 }; 47856 47857 if (_this6.getUserContextData()) { 47858 jsonReq.UserContextData = _this6.getUserContextData(); 47859 } 47860 47861 _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) { 47862 if (err) { 47863 return callback.onFailure(err); 47864 } 47865 47866 var challengeParameters = data.ChallengeParameters; 47867 var serverBValue = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](challengeParameters.SRP_B, 16); 47868 var salt = new _BigInteger__WEBPACK_IMPORTED_MODULE_5__["default"](challengeParameters.SALT, 16); 47869 authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) { 47870 // getPasswordAuthenticationKey callback start 47871 if (errHkdf) { 47872 return callback.onFailure(errHkdf); 47873 } 47874 47875 var dateNow = dateHelper.getNowString(); 47876 var message = crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].concat([buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(_this6.deviceGroupKey, 'utf8'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(_this6.deviceKey, 'utf8'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(challengeParameters.SECRET_BLOCK, 'base64'), buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(dateNow, 'utf8')])); 47877 var key = crypto_js_core__WEBPACK_IMPORTED_MODULE_1___default.a.lib.WordArray.create(hkdf); 47878 var signatureString = crypto_js_enc_base64__WEBPACK_IMPORTED_MODULE_3___default.a.stringify(crypto_js_hmac_sha256__WEBPACK_IMPORTED_MODULE_4___default()(message, key)); 47879 var challengeResponses = {}; 47880 challengeResponses.USERNAME = _this6.username; 47881 challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK; 47882 challengeResponses.TIMESTAMP = dateNow; 47883 challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString; 47884 challengeResponses.DEVICE_KEY = _this6.deviceKey; 47885 var jsonReqResp = { 47886 ChallengeName: 'DEVICE_PASSWORD_VERIFIER', 47887 ClientId: _this6.pool.getClientId(), 47888 ChallengeResponses: challengeResponses, 47889 Session: data.Session 47890 }; 47891 47892 if (_this6.getUserContextData()) { 47893 jsonReqResp.UserContextData = _this6.getUserContextData(); 47894 } 47895 47896 _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) { 47897 if (errAuthenticate) { 47898 return callback.onFailure(errAuthenticate); 47899 } 47900 47901 _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult); 47902 47903 _this6.cacheTokens(); 47904 47905 return callback.onSuccess(_this6.signInUserSession); 47906 }); 47907 47908 return undefined; // getPasswordAuthenticationKey callback end 47909 }); 47910 return undefined; 47911 }); // getLargeAValue callback end 47912 47913 }); 47914 } 47915 /** 47916 * This is used for a certain user to confirm the registration by using a confirmation code 47917 * @param {string} confirmationCode Code entered by user. 47918 * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number. 47919 * @param {nodeCallback<string>} callback Called on success or error. 47920 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 47921 * @returns {void} 47922 */ 47923 ; 47924 47925 _proto.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) { 47926 var jsonReq = { 47927 ClientId: this.pool.getClientId(), 47928 ConfirmationCode: confirmationCode, 47929 Username: this.username, 47930 ForceAliasCreation: forceAliasCreation, 47931 ClientMetadata: clientMetadata 47932 }; 47933 47934 if (this.getUserContextData()) { 47935 jsonReq.UserContextData = this.getUserContextData(); 47936 } 47937 47938 this.client.request('ConfirmSignUp', jsonReq, function (err) { 47939 if (err) { 47940 return callback(err, null); 47941 } 47942 47943 return callback(null, 'SUCCESS'); 47944 }); 47945 } 47946 /** 47947 * This is used by the user once he has the responses to a custom challenge 47948 * @param {string} answerChallenge The custom challenge answer. 47949 * @param {object} callback Result callback map. 47950 * @param {onFailure} callback.onFailure Called on any error. 47951 * @param {customChallenge} callback.customChallenge 47952 * Custom challenge response required to continue. 47953 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47954 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 47955 * @returns {void} 47956 */ 47957 ; 47958 47959 _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) { 47960 var _this7 = this; 47961 47962 var challengeResponses = {}; 47963 challengeResponses.USERNAME = this.username; 47964 challengeResponses.ANSWER = answerChallenge; 47965 var authenticationHelper = new _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__["default"](this.pool.getUserPoolId().split('_')[1]); 47966 this.getCachedDeviceKeyAndPassword(); 47967 47968 if (this.deviceKey != null) { 47969 challengeResponses.DEVICE_KEY = this.deviceKey; 47970 } 47971 47972 var jsonReq = { 47973 ChallengeName: 'CUSTOM_CHALLENGE', 47974 ChallengeResponses: challengeResponses, 47975 ClientId: this.pool.getClientId(), 47976 Session: this.Session, 47977 ClientMetadata: clientMetadata 47978 }; 47979 47980 if (this.getUserContextData()) { 47981 jsonReq.UserContextData = this.getUserContextData(); 47982 } 47983 47984 this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) { 47985 if (err) { 47986 return callback.onFailure(err); 47987 } 47988 47989 return _this7.authenticateUserInternal(data, authenticationHelper, callback); 47990 }); 47991 } 47992 /** 47993 * This is used by the user once he has an MFA code 47994 * @param {string} confirmationCode The MFA code entered by the user. 47995 * @param {object} callback Result callback map. 47996 * @param {string} mfaType The mfa we are replying to. 47997 * @param {onFailure} callback.onFailure Called on any error. 47998 * @param {authSuccess} callback.onSuccess Called on success with the new session. 47999 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48000 * @returns {void} 48001 */ 48002 ; 48003 48004 _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) { 48005 var _this8 = this; 48006 48007 var challengeResponses = {}; 48008 challengeResponses.USERNAME = this.username; 48009 challengeResponses.SMS_MFA_CODE = confirmationCode; 48010 var mfaTypeSelection = mfaType || 'SMS_MFA'; 48011 48012 if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') { 48013 challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode; 48014 } 48015 48016 if (this.deviceKey != null) { 48017 challengeResponses.DEVICE_KEY = this.deviceKey; 48018 } 48019 48020 var jsonReq = { 48021 ChallengeName: mfaTypeSelection, 48022 ChallengeResponses: challengeResponses, 48023 ClientId: this.pool.getClientId(), 48024 Session: this.Session, 48025 ClientMetadata: clientMetadata 48026 }; 48027 48028 if (this.getUserContextData()) { 48029 jsonReq.UserContextData = this.getUserContextData(); 48030 } 48031 48032 this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) { 48033 if (err) { 48034 return callback.onFailure(err); 48035 } 48036 48037 var challengeName = dataAuthenticate.ChallengeName; 48038 48039 if (challengeName === 'DEVICE_SRP_AUTH') { 48040 _this8.getDeviceResponse(callback); 48041 48042 return undefined; 48043 } 48044 48045 _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult); 48046 48047 _this8.cacheTokens(); 48048 48049 if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) { 48050 return callback.onSuccess(_this8.signInUserSession); 48051 } 48052 48053 var authenticationHelper = new _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_6__["default"](_this8.pool.getUserPoolId().split('_')[1]); 48054 authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) { 48055 if (errGenHash) { 48056 return callback.onFailure(errGenHash); 48057 } 48058 48059 var deviceSecretVerifierConfig = { 48060 Salt: buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'), 48061 PasswordVerifier: buffer__WEBPACK_IMPORTED_MODULE_0__["Buffer"].from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64') 48062 }; 48063 _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier; 48064 _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey; 48065 _this8.randomPassword = authenticationHelper.getRandomPassword(); 48066 48067 _this8.client.request('ConfirmDevice', { 48068 DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, 48069 AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(), 48070 DeviceSecretVerifierConfig: deviceSecretVerifierConfig, 48071 DeviceName: userAgent 48072 }, function (errConfirm, dataConfirm) { 48073 if (errConfirm) { 48074 return callback.onFailure(errConfirm); 48075 } 48076 48077 _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey; 48078 48079 _this8.cacheDeviceKeyAndPassword(); 48080 48081 if (dataConfirm.UserConfirmationNecessary === true) { 48082 return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary); 48083 } 48084 48085 return callback.onSuccess(_this8.signInUserSession); 48086 }); 48087 48088 return undefined; 48089 }); 48090 return undefined; 48091 }); 48092 } 48093 /** 48094 * This is used by an authenticated user to change the current password 48095 * @param {string} oldUserPassword The current password. 48096 * @param {string} newUserPassword The requested new password. 48097 * @param {nodeCallback<string>} callback Called on success or error. 48098 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48099 * @returns {void} 48100 */ 48101 ; 48102 48103 _proto.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) { 48104 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 48105 return callback(new Error('User is not authenticated'), null); 48106 } 48107 48108 this.client.request('ChangePassword', { 48109 PreviousPassword: oldUserPassword, 48110 ProposedPassword: newUserPassword, 48111 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48112 ClientMetadata: clientMetadata 48113 }, function (err) { 48114 if (err) { 48115 return callback(err, null); 48116 } 48117 48118 return callback(null, 'SUCCESS'); 48119 }); 48120 return undefined; 48121 } 48122 /** 48123 * This is used by an authenticated user to enable MFA for itself 48124 * @deprecated 48125 * @param {nodeCallback<string>} callback Called on success or error. 48126 * @returns {void} 48127 */ 48128 ; 48129 48130 _proto.enableMFA = function enableMFA(callback) { 48131 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48132 return callback(new Error('User is not authenticated'), null); 48133 } 48134 48135 var mfaOptions = []; 48136 var mfaEnabled = { 48137 DeliveryMedium: 'SMS', 48138 AttributeName: 'phone_number' 48139 }; 48140 mfaOptions.push(mfaEnabled); 48141 this.client.request('SetUserSettings', { 48142 MFAOptions: mfaOptions, 48143 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48144 }, function (err) { 48145 if (err) { 48146 return callback(err, null); 48147 } 48148 48149 return callback(null, 'SUCCESS'); 48150 }); 48151 return undefined; 48152 } 48153 /** 48154 * This is used by an authenticated user to enable MFA for itself 48155 * @param {IMfaSettings} smsMfaSettings the sms mfa settings 48156 * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings 48157 * @param {nodeCallback<string>} callback Called on success or error. 48158 * @returns {void} 48159 */ 48160 ; 48161 48162 _proto.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) { 48163 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48164 return callback(new Error('User is not authenticated'), null); 48165 } 48166 48167 this.client.request('SetUserMFAPreference', { 48168 SMSMfaSettings: smsMfaSettings, 48169 SoftwareTokenMfaSettings: softwareTokenMfaSettings, 48170 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48171 }, function (err) { 48172 if (err) { 48173 return callback(err, null); 48174 } 48175 48176 return callback(null, 'SUCCESS'); 48177 }); 48178 return undefined; 48179 } 48180 /** 48181 * This is used by an authenticated user to disable MFA for itself 48182 * @deprecated 48183 * @param {nodeCallback<string>} callback Called on success or error. 48184 * @returns {void} 48185 */ 48186 ; 48187 48188 _proto.disableMFA = function disableMFA(callback) { 48189 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48190 return callback(new Error('User is not authenticated'), null); 48191 } 48192 48193 var mfaOptions = []; 48194 this.client.request('SetUserSettings', { 48195 MFAOptions: mfaOptions, 48196 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48197 }, function (err) { 48198 if (err) { 48199 return callback(err, null); 48200 } 48201 48202 return callback(null, 'SUCCESS'); 48203 }); 48204 return undefined; 48205 } 48206 /** 48207 * This is used by an authenticated user to delete itself 48208 * @param {nodeCallback<string>} callback Called on success or error. 48209 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48210 * @returns {void} 48211 */ 48212 ; 48213 48214 _proto.deleteUser = function deleteUser(callback, clientMetadata) { 48215 var _this9 = this; 48216 48217 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48218 return callback(new Error('User is not authenticated'), null); 48219 } 48220 48221 this.client.request('DeleteUser', { 48222 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48223 ClientMetadata: clientMetadata 48224 }, function (err) { 48225 if (err) { 48226 return callback(err, null); 48227 } 48228 48229 _this9.clearCachedUser(); 48230 48231 return callback(null, 'SUCCESS'); 48232 }); 48233 return undefined; 48234 } 48235 /** 48236 * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg 48237 */ 48238 48239 /** 48240 * This is used by an authenticated user to change a list of attributes 48241 * @param {AttributeArg[]} attributes A list of the new user attributes. 48242 * @param {nodeCallback<string>} callback Called on success or error. 48243 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48244 * @returns {void} 48245 */ 48246 ; 48247 48248 _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) { 48249 var _this10 = this; 48250 48251 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48252 return callback(new Error('User is not authenticated'), null); 48253 } 48254 48255 this.client.request('UpdateUserAttributes', { 48256 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48257 UserAttributes: attributes, 48258 ClientMetadata: clientMetadata 48259 }, function (err) { 48260 if (err) { 48261 return callback(err, null); 48262 } // update cached user 48263 48264 48265 return _this10.getUserData(function () { 48266 return callback(null, 'SUCCESS'); 48267 }, { 48268 bypassCache: true 48269 }); 48270 }); 48271 return undefined; 48272 } 48273 /** 48274 * This is used by an authenticated user to get a list of attributes 48275 * @param {nodeCallback<CognitoUserAttribute[]>} callback Called on success or error. 48276 * @returns {void} 48277 */ 48278 ; 48279 48280 _proto.getUserAttributes = function getUserAttributes(callback) { 48281 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 48282 return callback(new Error('User is not authenticated'), null); 48283 } 48284 48285 this.client.request('GetUser', { 48286 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48287 }, function (err, userData) { 48288 if (err) { 48289 return callback(err, null); 48290 } 48291 48292 var attributeList = []; 48293 48294 for (var i = 0; i < userData.UserAttributes.length; i++) { 48295 var attribute = { 48296 Name: userData.UserAttributes[i].Name, 48297 Value: userData.UserAttributes[i].Value 48298 }; 48299 var userAttribute = new _CognitoUserAttribute__WEBPACK_IMPORTED_MODULE_12__["default"](attribute); 48300 attributeList.push(userAttribute); 48301 } 48302 48303 return callback(null, attributeList); 48304 }); 48305 return undefined; 48306 } 48307 /** 48308 * This is used by an authenticated user to get the MFAOptions 48309 * @param {nodeCallback<MFAOptions>} callback Called on success or error. 48310 * @returns {void} 48311 */ 48312 ; 48313 48314 _proto.getMFAOptions = function getMFAOptions(callback) { 48315 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 48316 return callback(new Error('User is not authenticated'), null); 48317 } 48318 48319 this.client.request('GetUser', { 48320 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48321 }, function (err, userData) { 48322 if (err) { 48323 return callback(err, null); 48324 } 48325 48326 return callback(null, userData.MFAOptions); 48327 }); 48328 return undefined; 48329 } 48330 /** 48331 * PRIVATE ONLY: This is an internal only method and should not 48332 * be directly called by the consumers. 48333 */ 48334 ; 48335 48336 _proto.createGetUserRequest = function createGetUserRequest() { 48337 return this.client.promisifyRequest('GetUser', { 48338 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48339 }); 48340 } 48341 /** 48342 * PRIVATE ONLY: This is an internal only method and should not 48343 * be directly called by the consumers. 48344 */ 48345 ; 48346 48347 _proto.refreshSessionIfPossible = function refreshSessionIfPossible() { 48348 var _this11 = this; 48349 48350 // best effort, if not possible 48351 return new Promise(function (resolve) { 48352 var refresh = _this11.signInUserSession.getRefreshToken(); 48353 48354 if (refresh && refresh.getToken()) { 48355 _this11.refreshSession(refresh, resolve); 48356 } else { 48357 resolve(); 48358 } 48359 }); 48360 } 48361 /** 48362 * This is used by an authenticated users to get the userData 48363 * @param {nodeCallback<UserData>} callback Called on success or error. 48364 * @param {GetUserDataOptions} params 48365 * @returns {void} 48366 */ 48367 ; 48368 48369 _proto.getUserData = function getUserData(callback, params) { 48370 var _this12 = this; 48371 48372 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 48373 this.clearCachedUserData(); 48374 return callback(new Error('User is not authenticated'), null); 48375 } 48376 48377 var userData = this.getUserDataFromCache(); 48378 48379 if (!userData) { 48380 this.fetchUserData().then(function (data) { 48381 callback(null, data); 48382 })["catch"](callback); 48383 return; 48384 } 48385 48386 if (this.isFetchUserDataAndTokenRequired(params)) { 48387 this.fetchUserData().then(function (data) { 48388 return _this12.refreshSessionIfPossible().then(function () { 48389 return data; 48390 }); 48391 }).then(function (data) { 48392 return callback(null, data); 48393 })["catch"](callback); 48394 return; 48395 } 48396 48397 try { 48398 callback(null, JSON.parse(userData)); 48399 return; 48400 } catch (err) { 48401 this.clearCachedUserData(); 48402 callback(err, null); 48403 return; 48404 } 48405 } 48406 /** 48407 * 48408 * PRIVATE ONLY: This is an internal only method and should not 48409 * be directly called by the consumers. 48410 */ 48411 ; 48412 48413 _proto.getUserDataFromCache = function getUserDataFromCache() { 48414 var userData = this.storage.getItem(this.userDataKey); 48415 return userData; 48416 } 48417 /** 48418 * 48419 * PRIVATE ONLY: This is an internal only method and should not 48420 * be directly called by the consumers. 48421 */ 48422 ; 48423 48424 _proto.isFetchUserDataAndTokenRequired = function isFetchUserDataAndTokenRequired(params) { 48425 var _ref = params || {}, 48426 _ref$bypassCache = _ref.bypassCache, 48427 bypassCache = _ref$bypassCache === void 0 ? false : _ref$bypassCache; 48428 48429 return bypassCache; 48430 } 48431 /** 48432 * 48433 * PRIVATE ONLY: This is an internal only method and should not 48434 * be directly called by the consumers. 48435 */ 48436 ; 48437 48438 _proto.fetchUserData = function fetchUserData() { 48439 var _this13 = this; 48440 48441 return this.createGetUserRequest().then(function (data) { 48442 _this13.cacheUserData(data); 48443 48444 return data; 48445 }); 48446 } 48447 /** 48448 * This is used by an authenticated user to delete a list of attributes 48449 * @param {string[]} attributeList Names of the attributes to delete. 48450 * @param {nodeCallback<string>} callback Called on success or error. 48451 * @returns {void} 48452 */ 48453 ; 48454 48455 _proto.deleteAttributes = function deleteAttributes(attributeList, callback) { 48456 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 48457 return callback(new Error('User is not authenticated'), null); 48458 } 48459 48460 this.client.request('DeleteUserAttributes', { 48461 UserAttributeNames: attributeList, 48462 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48463 }, function (err) { 48464 if (err) { 48465 return callback(err, null); 48466 } 48467 48468 return callback(null, 'SUCCESS'); 48469 }); 48470 return undefined; 48471 } 48472 /** 48473 * This is used by a user to resend a confirmation code 48474 * @param {nodeCallback<string>} callback Called on success or error. 48475 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48476 * @returns {void} 48477 */ 48478 ; 48479 48480 _proto.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) { 48481 var jsonReq = { 48482 ClientId: this.pool.getClientId(), 48483 Username: this.username, 48484 ClientMetadata: clientMetadata 48485 }; 48486 this.client.request('ResendConfirmationCode', jsonReq, function (err, result) { 48487 if (err) { 48488 return callback(err, null); 48489 } 48490 48491 return callback(null, result); 48492 }); 48493 } 48494 /** 48495 * This is used to get a session, either from the session object 48496 * or from the local storage, or by using a refresh token 48497 * 48498 * @param {nodeCallback<CognitoUserSession>} callback Called on success or error. 48499 * @returns {void} 48500 */ 48501 ; 48502 48503 _proto.getSession = function getSession(callback) { 48504 if (this.username == null) { 48505 return callback(new Error('Username is null. Cannot retrieve a new session'), null); 48506 } 48507 48508 if (this.signInUserSession != null && this.signInUserSession.isValid()) { 48509 return callback(null, this.signInUserSession); 48510 } 48511 48512 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId() + "." + this.username; 48513 var idTokenKey = keyPrefix + ".idToken"; 48514 var accessTokenKey = keyPrefix + ".accessToken"; 48515 var refreshTokenKey = keyPrefix + ".refreshToken"; 48516 var clockDriftKey = keyPrefix + ".clockDrift"; 48517 48518 if (this.storage.getItem(idTokenKey)) { 48519 var idToken = new _CognitoIdToken__WEBPACK_IMPORTED_MODULE_8__["default"]({ 48520 IdToken: this.storage.getItem(idTokenKey) 48521 }); 48522 var accessToken = new _CognitoAccessToken__WEBPACK_IMPORTED_MODULE_7__["default"]({ 48523 AccessToken: this.storage.getItem(accessTokenKey) 48524 }); 48525 var refreshToken = new _CognitoRefreshToken__WEBPACK_IMPORTED_MODULE_9__["default"]({ 48526 RefreshToken: this.storage.getItem(refreshTokenKey) 48527 }); 48528 var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0; 48529 var sessionData = { 48530 IdToken: idToken, 48531 AccessToken: accessToken, 48532 RefreshToken: refreshToken, 48533 ClockDrift: clockDrift 48534 }; 48535 var cachedSession = new _CognitoUserSession__WEBPACK_IMPORTED_MODULE_10__["default"](sessionData); 48536 48537 if (cachedSession.isValid()) { 48538 this.signInUserSession = cachedSession; 48539 return callback(null, this.signInUserSession); 48540 } 48541 48542 if (!refreshToken.getToken()) { 48543 return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null); 48544 } 48545 48546 this.refreshSession(refreshToken, callback); 48547 } else { 48548 callback(new Error('Local storage is missing an ID Token, Please authenticate'), null); 48549 } 48550 48551 return undefined; 48552 } 48553 /** 48554 * This uses the refreshToken to retrieve a new session 48555 * @param {CognitoRefreshToken} refreshToken A previous session's refresh token. 48556 * @param {nodeCallback<CognitoUserSession>} callback Called on success or error. 48557 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48558 * @returns {void} 48559 */ 48560 ; 48561 48562 _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) { 48563 var _this14 = this; 48564 48565 var authParameters = {}; 48566 authParameters.REFRESH_TOKEN = refreshToken.getToken(); 48567 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId(); 48568 var lastUserKey = keyPrefix + ".LastAuthUser"; 48569 48570 if (this.storage.getItem(lastUserKey)) { 48571 this.username = this.storage.getItem(lastUserKey); 48572 var deviceKeyKey = keyPrefix + "." + this.username + ".deviceKey"; 48573 this.deviceKey = this.storage.getItem(deviceKeyKey); 48574 authParameters.DEVICE_KEY = this.deviceKey; 48575 } 48576 48577 var jsonReq = { 48578 ClientId: this.pool.getClientId(), 48579 AuthFlow: 'REFRESH_TOKEN_AUTH', 48580 AuthParameters: authParameters, 48581 ClientMetadata: clientMetadata 48582 }; 48583 48584 if (this.getUserContextData()) { 48585 jsonReq.UserContextData = this.getUserContextData(); 48586 } 48587 48588 this.client.request('InitiateAuth', jsonReq, function (err, authResult) { 48589 if (err) { 48590 if (err.code === 'NotAuthorizedException') { 48591 _this14.clearCachedUser(); 48592 } 48593 48594 return callback(err, null); 48595 } 48596 48597 if (authResult) { 48598 var authenticationResult = authResult.AuthenticationResult; 48599 48600 if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) { 48601 authenticationResult.RefreshToken = refreshToken.getToken(); 48602 } 48603 48604 _this14.signInUserSession = _this14.getCognitoUserSession(authenticationResult); 48605 48606 _this14.cacheTokens(); 48607 48608 return callback(null, _this14.signInUserSession); 48609 } 48610 48611 return undefined; 48612 }); 48613 } 48614 /** 48615 * This is used to save the session tokens to local storage 48616 * @returns {void} 48617 */ 48618 ; 48619 48620 _proto.cacheTokens = function cacheTokens() { 48621 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId(); 48622 var idTokenKey = keyPrefix + "." + this.username + ".idToken"; 48623 var accessTokenKey = keyPrefix + "." + this.username + ".accessToken"; 48624 var refreshTokenKey = keyPrefix + "." + this.username + ".refreshToken"; 48625 var clockDriftKey = keyPrefix + "." + this.username + ".clockDrift"; 48626 var lastUserKey = keyPrefix + ".LastAuthUser"; 48627 this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken()); 48628 this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken()); 48629 this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken()); 48630 this.storage.setItem(clockDriftKey, "" + this.signInUserSession.getClockDrift()); 48631 this.storage.setItem(lastUserKey, this.username); 48632 } 48633 /** 48634 * This is to cache user data 48635 */ 48636 ; 48637 48638 _proto.cacheUserData = function cacheUserData(userData) { 48639 this.storage.setItem(this.userDataKey, JSON.stringify(userData)); 48640 } 48641 /** 48642 * This is to remove cached user data 48643 */ 48644 ; 48645 48646 _proto.clearCachedUserData = function clearCachedUserData() { 48647 this.storage.removeItem(this.userDataKey); 48648 }; 48649 48650 _proto.clearCachedUser = function clearCachedUser() { 48651 this.clearCachedTokens(); 48652 this.clearCachedUserData(); 48653 } 48654 /** 48655 * This is used to cache the device key and device group and device password 48656 * @returns {void} 48657 */ 48658 ; 48659 48660 _proto.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() { 48661 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId() + "." + this.username; 48662 var deviceKeyKey = keyPrefix + ".deviceKey"; 48663 var randomPasswordKey = keyPrefix + ".randomPasswordKey"; 48664 var deviceGroupKeyKey = keyPrefix + ".deviceGroupKey"; 48665 this.storage.setItem(deviceKeyKey, this.deviceKey); 48666 this.storage.setItem(randomPasswordKey, this.randomPassword); 48667 this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey); 48668 } 48669 /** 48670 * This is used to get current device key and device group and device password 48671 * @returns {void} 48672 */ 48673 ; 48674 48675 _proto.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() { 48676 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId() + "." + this.username; 48677 var deviceKeyKey = keyPrefix + ".deviceKey"; 48678 var randomPasswordKey = keyPrefix + ".randomPasswordKey"; 48679 var deviceGroupKeyKey = keyPrefix + ".deviceGroupKey"; 48680 48681 if (this.storage.getItem(deviceKeyKey)) { 48682 this.deviceKey = this.storage.getItem(deviceKeyKey); 48683 this.randomPassword = this.storage.getItem(randomPasswordKey); 48684 this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey); 48685 } 48686 } 48687 /** 48688 * This is used to clear the device key info from local storage 48689 * @returns {void} 48690 */ 48691 ; 48692 48693 _proto.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() { 48694 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId() + "." + this.username; 48695 var deviceKeyKey = keyPrefix + ".deviceKey"; 48696 var randomPasswordKey = keyPrefix + ".randomPasswordKey"; 48697 var deviceGroupKeyKey = keyPrefix + ".deviceGroupKey"; 48698 this.storage.removeItem(deviceKeyKey); 48699 this.storage.removeItem(randomPasswordKey); 48700 this.storage.removeItem(deviceGroupKeyKey); 48701 } 48702 /** 48703 * This is used to clear the session tokens from local storage 48704 * @returns {void} 48705 */ 48706 ; 48707 48708 _proto.clearCachedTokens = function clearCachedTokens() { 48709 var keyPrefix = "CognitoIdentityServiceProvider." + this.pool.getClientId(); 48710 var idTokenKey = keyPrefix + "." + this.username + ".idToken"; 48711 var accessTokenKey = keyPrefix + "." + this.username + ".accessToken"; 48712 var refreshTokenKey = keyPrefix + "." + this.username + ".refreshToken"; 48713 var lastUserKey = keyPrefix + ".LastAuthUser"; 48714 var clockDriftKey = keyPrefix + "." + this.username + ".clockDrift"; 48715 this.storage.removeItem(idTokenKey); 48716 this.storage.removeItem(accessTokenKey); 48717 this.storage.removeItem(refreshTokenKey); 48718 this.storage.removeItem(lastUserKey); 48719 this.storage.removeItem(clockDriftKey); 48720 } 48721 /** 48722 * This is used to build a user session from tokens retrieved in the authentication result 48723 * @param {object} authResult Successful auth response from server. 48724 * @returns {CognitoUserSession} The new user session. 48725 * @private 48726 */ 48727 ; 48728 48729 _proto.getCognitoUserSession = function getCognitoUserSession(authResult) { 48730 var idToken = new _CognitoIdToken__WEBPACK_IMPORTED_MODULE_8__["default"](authResult); 48731 var accessToken = new _CognitoAccessToken__WEBPACK_IMPORTED_MODULE_7__["default"](authResult); 48732 var refreshToken = new _CognitoRefreshToken__WEBPACK_IMPORTED_MODULE_9__["default"](authResult); 48733 var sessionData = { 48734 IdToken: idToken, 48735 AccessToken: accessToken, 48736 RefreshToken: refreshToken 48737 }; 48738 return new _CognitoUserSession__WEBPACK_IMPORTED_MODULE_10__["default"](sessionData); 48739 } 48740 /** 48741 * This is used to initiate a forgot password request 48742 * @param {object} callback Result callback map. 48743 * @param {onFailure} callback.onFailure Called on any error. 48744 * @param {inputVerificationCode?} callback.inputVerificationCode 48745 * Optional callback raised instead of onSuccess with response data. 48746 * @param {onSuccess} callback.onSuccess Called on success. 48747 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48748 * @returns {void} 48749 */ 48750 ; 48751 48752 _proto.forgotPassword = function forgotPassword(callback, clientMetadata) { 48753 var jsonReq = { 48754 ClientId: this.pool.getClientId(), 48755 Username: this.username, 48756 ClientMetadata: clientMetadata 48757 }; 48758 48759 if (this.getUserContextData()) { 48760 jsonReq.UserContextData = this.getUserContextData(); 48761 } 48762 48763 this.client.request('ForgotPassword', jsonReq, function (err, data) { 48764 if (err) { 48765 return callback.onFailure(err); 48766 } 48767 48768 if (typeof callback.inputVerificationCode === 'function') { 48769 return callback.inputVerificationCode(data); 48770 } 48771 48772 return callback.onSuccess(data); 48773 }); 48774 } 48775 /** 48776 * This is used to confirm a new password using a confirmationCode 48777 * @param {string} confirmationCode Code entered by user. 48778 * @param {string} newPassword Confirm new password. 48779 * @param {object} callback Result callback map. 48780 * @param {onFailure} callback.onFailure Called on any error. 48781 * @param {onSuccess<void>} callback.onSuccess Called on success. 48782 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48783 * @returns {void} 48784 */ 48785 ; 48786 48787 _proto.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) { 48788 var jsonReq = { 48789 ClientId: this.pool.getClientId(), 48790 Username: this.username, 48791 ConfirmationCode: confirmationCode, 48792 Password: newPassword, 48793 ClientMetadata: clientMetadata 48794 }; 48795 48796 if (this.getUserContextData()) { 48797 jsonReq.UserContextData = this.getUserContextData(); 48798 } 48799 48800 this.client.request('ConfirmForgotPassword', jsonReq, function (err) { 48801 if (err) { 48802 return callback.onFailure(err); 48803 } 48804 48805 return callback.onSuccess(); 48806 }); 48807 } 48808 /** 48809 * This is used to initiate an attribute confirmation request 48810 * @param {string} attributeName User attribute that needs confirmation. 48811 * @param {object} callback Result callback map. 48812 * @param {onFailure} callback.onFailure Called on any error. 48813 * @param {inputVerificationCode} callback.inputVerificationCode Called on success. 48814 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 48815 * @returns {void} 48816 */ 48817 ; 48818 48819 _proto.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) { 48820 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48821 return callback.onFailure(new Error('User is not authenticated')); 48822 } 48823 48824 this.client.request('GetUserAttributeVerificationCode', { 48825 AttributeName: attributeName, 48826 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48827 ClientMetadata: clientMetadata 48828 }, function (err, data) { 48829 if (err) { 48830 return callback.onFailure(err); 48831 } 48832 48833 if (typeof callback.inputVerificationCode === 'function') { 48834 return callback.inputVerificationCode(data); 48835 } 48836 48837 return callback.onSuccess(); 48838 }); 48839 return undefined; 48840 } 48841 /** 48842 * This is used to confirm an attribute using a confirmation code 48843 * @param {string} attributeName Attribute being confirmed. 48844 * @param {string} confirmationCode Code entered by user. 48845 * @param {object} callback Result callback map. 48846 * @param {onFailure} callback.onFailure Called on any error. 48847 * @param {onSuccess<string>} callback.onSuccess Called on success. 48848 * @returns {void} 48849 */ 48850 ; 48851 48852 _proto.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) { 48853 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48854 return callback.onFailure(new Error('User is not authenticated')); 48855 } 48856 48857 this.client.request('VerifyUserAttribute', { 48858 AttributeName: attributeName, 48859 Code: confirmationCode, 48860 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 48861 }, function (err) { 48862 if (err) { 48863 return callback.onFailure(err); 48864 } 48865 48866 return callback.onSuccess('SUCCESS'); 48867 }); 48868 return undefined; 48869 } 48870 /** 48871 * This is used to get the device information using the current device key 48872 * @param {object} callback Result callback map. 48873 * @param {onFailure} callback.onFailure Called on any error. 48874 * @param {onSuccess<*>} callback.onSuccess Called on success with device data. 48875 * @returns {void} 48876 */ 48877 ; 48878 48879 _proto.getDevice = function getDevice(callback) { 48880 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48881 return callback.onFailure(new Error('User is not authenticated')); 48882 } 48883 48884 this.client.request('GetDevice', { 48885 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48886 DeviceKey: this.deviceKey 48887 }, function (err, data) { 48888 if (err) { 48889 return callback.onFailure(err); 48890 } 48891 48892 return callback.onSuccess(data); 48893 }); 48894 return undefined; 48895 } 48896 /** 48897 * This is used to forget a specific device 48898 * @param {string} deviceKey Device key. 48899 * @param {object} callback Result callback map. 48900 * @param {onFailure} callback.onFailure Called on any error. 48901 * @param {onSuccess<string>} callback.onSuccess Called on success. 48902 * @returns {void} 48903 */ 48904 ; 48905 48906 _proto.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) { 48907 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48908 return callback.onFailure(new Error('User is not authenticated')); 48909 } 48910 48911 this.client.request('ForgetDevice', { 48912 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48913 DeviceKey: deviceKey 48914 }, function (err) { 48915 if (err) { 48916 return callback.onFailure(err); 48917 } 48918 48919 return callback.onSuccess('SUCCESS'); 48920 }); 48921 return undefined; 48922 } 48923 /** 48924 * This is used to forget the current device 48925 * @param {object} callback Result callback map. 48926 * @param {onFailure} callback.onFailure Called on any error. 48927 * @param {onSuccess<string>} callback.onSuccess Called on success. 48928 * @returns {void} 48929 */ 48930 ; 48931 48932 _proto.forgetDevice = function forgetDevice(callback) { 48933 var _this15 = this; 48934 48935 this.forgetSpecificDevice(this.deviceKey, { 48936 onFailure: callback.onFailure, 48937 onSuccess: function onSuccess(result) { 48938 _this15.deviceKey = null; 48939 _this15.deviceGroupKey = null; 48940 _this15.randomPassword = null; 48941 48942 _this15.clearCachedDeviceKeyAndPassword(); 48943 48944 return callback.onSuccess(result); 48945 } 48946 }); 48947 } 48948 /** 48949 * This is used to set the device status as remembered 48950 * @param {object} callback Result callback map. 48951 * @param {onFailure} callback.onFailure Called on any error. 48952 * @param {onSuccess<string>} callback.onSuccess Called on success. 48953 * @returns {void} 48954 */ 48955 ; 48956 48957 _proto.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) { 48958 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48959 return callback.onFailure(new Error('User is not authenticated')); 48960 } 48961 48962 this.client.request('UpdateDeviceStatus', { 48963 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48964 DeviceKey: this.deviceKey, 48965 DeviceRememberedStatus: 'remembered' 48966 }, function (err) { 48967 if (err) { 48968 return callback.onFailure(err); 48969 } 48970 48971 return callback.onSuccess('SUCCESS'); 48972 }); 48973 return undefined; 48974 } 48975 /** 48976 * This is used to set the device status as not remembered 48977 * @param {object} callback Result callback map. 48978 * @param {onFailure} callback.onFailure Called on any error. 48979 * @param {onSuccess<string>} callback.onSuccess Called on success. 48980 * @returns {void} 48981 */ 48982 ; 48983 48984 _proto.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) { 48985 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 48986 return callback.onFailure(new Error('User is not authenticated')); 48987 } 48988 48989 this.client.request('UpdateDeviceStatus', { 48990 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 48991 DeviceKey: this.deviceKey, 48992 DeviceRememberedStatus: 'not_remembered' 48993 }, function (err) { 48994 if (err) { 48995 return callback.onFailure(err); 48996 } 48997 48998 return callback.onSuccess('SUCCESS'); 48999 }); 49000 return undefined; 49001 } 49002 /** 49003 * This is used to list all devices for a user 49004 * 49005 * @param {int} limit the number of devices returned in a call 49006 * @param {string | null} paginationToken the pagination token in case any was returned before 49007 * @param {object} callback Result callback map. 49008 * @param {onFailure} callback.onFailure Called on any error. 49009 * @param {onSuccess<*>} callback.onSuccess Called on success with device list. 49010 * @returns {void} 49011 */ 49012 ; 49013 49014 _proto.listDevices = function listDevices(limit, paginationToken, callback) { 49015 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 49016 return callback.onFailure(new Error('User is not authenticated')); 49017 } 49018 49019 var requestParams = { 49020 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 49021 Limit: limit 49022 }; 49023 49024 if (paginationToken) { 49025 requestParams.PaginationToken = paginationToken; 49026 } 49027 49028 this.client.request('ListDevices', requestParams, function (err, data) { 49029 if (err) { 49030 return callback.onFailure(err); 49031 } 49032 49033 return callback.onSuccess(data); 49034 }); 49035 return undefined; 49036 } 49037 /** 49038 * This is used to globally revoke all tokens issued to a user 49039 * @param {object} callback Result callback map. 49040 * @param {onFailure} callback.onFailure Called on any error. 49041 * @param {onSuccess<string>} callback.onSuccess Called on success. 49042 * @returns {void} 49043 */ 49044 ; 49045 49046 _proto.globalSignOut = function globalSignOut(callback) { 49047 var _this16 = this; 49048 49049 if (this.signInUserSession == null || !this.signInUserSession.isValid()) { 49050 return callback.onFailure(new Error('User is not authenticated')); 49051 } 49052 49053 this.client.request('GlobalSignOut', { 49054 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 49055 }, function (err) { 49056 if (err) { 49057 return callback.onFailure(err); 49058 } 49059 49060 _this16.clearCachedUser(); 49061 49062 return callback.onSuccess('SUCCESS'); 49063 }); 49064 return undefined; 49065 } 49066 /** 49067 * This is used for the user to signOut of the application and clear the cached tokens. 49068 * @returns {void} 49069 */ 49070 ; 49071 49072 _proto.signOut = function signOut() { 49073 this.signInUserSession = null; 49074 this.clearCachedUser(); 49075 } 49076 /** 49077 * This is used by a user trying to select a given MFA 49078 * @param {string} answerChallenge the mfa the user wants 49079 * @param {nodeCallback<string>} callback Called on success or error. 49080 * @returns {void} 49081 */ 49082 ; 49083 49084 _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) { 49085 var _this17 = this; 49086 49087 var challengeResponses = {}; 49088 challengeResponses.USERNAME = this.username; 49089 challengeResponses.ANSWER = answerChallenge; 49090 var jsonReq = { 49091 ChallengeName: 'SELECT_MFA_TYPE', 49092 ChallengeResponses: challengeResponses, 49093 ClientId: this.pool.getClientId(), 49094 Session: this.Session 49095 }; 49096 49097 if (this.getUserContextData()) { 49098 jsonReq.UserContextData = this.getUserContextData(); 49099 } 49100 49101 this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) { 49102 if (err) { 49103 return callback.onFailure(err); 49104 } 49105 49106 _this17.Session = data.Session; 49107 49108 if (answerChallenge === 'SMS_MFA') { 49109 return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters); 49110 } 49111 49112 if (answerChallenge === 'SOFTWARE_TOKEN_MFA') { 49113 return callback.totpRequired(data.ChallengeName, data.ChallengeParameters); 49114 } 49115 49116 return undefined; 49117 }); 49118 } 49119 /** 49120 * This returns the user context data for advanced security feature. 49121 * @returns {void} 49122 */ 49123 ; 49124 49125 _proto.getUserContextData = function getUserContextData() { 49126 var pool = this.pool; 49127 return pool.getUserContextData(this.username); 49128 } 49129 /** 49130 * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA 49131 * @param {nodeCallback<string>} callback Called on success or error. 49132 * @returns {void} 49133 */ 49134 ; 49135 49136 _proto.associateSoftwareToken = function associateSoftwareToken(callback) { 49137 var _this18 = this; 49138 49139 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 49140 this.client.request('AssociateSoftwareToken', { 49141 Session: this.Session 49142 }, function (err, data) { 49143 if (err) { 49144 return callback.onFailure(err); 49145 } 49146 49147 _this18.Session = data.Session; 49148 return callback.associateSecretCode(data.SecretCode); 49149 }); 49150 } else { 49151 this.client.request('AssociateSoftwareToken', { 49152 AccessToken: this.signInUserSession.getAccessToken().getJwtToken() 49153 }, function (err, data) { 49154 if (err) { 49155 return callback.onFailure(err); 49156 } 49157 49158 return callback.associateSecretCode(data.SecretCode); 49159 }); 49160 } 49161 } 49162 /** 49163 * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA 49164 * @param {string} totpCode The MFA code entered by the user. 49165 * @param {string} friendlyDeviceName The device name we are assigning to the device. 49166 * @param {nodeCallback<string>} callback Called on success or error. 49167 * @returns {void} 49168 */ 49169 ; 49170 49171 _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) { 49172 var _this19 = this; 49173 49174 if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { 49175 this.client.request('VerifySoftwareToken', { 49176 Session: this.Session, 49177 UserCode: totpCode, 49178 FriendlyDeviceName: friendlyDeviceName 49179 }, function (err, data) { 49180 if (err) { 49181 return callback.onFailure(err); 49182 } 49183 49184 _this19.Session = data.Session; 49185 var challengeResponses = {}; 49186 challengeResponses.USERNAME = _this19.username; 49187 var jsonReq = { 49188 ChallengeName: 'MFA_SETUP', 49189 ClientId: _this19.pool.getClientId(), 49190 ChallengeResponses: challengeResponses, 49191 Session: _this19.Session 49192 }; 49193 49194 if (_this19.getUserContextData()) { 49195 jsonReq.UserContextData = _this19.getUserContextData(); 49196 } 49197 49198 _this19.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) { 49199 if (errRespond) { 49200 return callback.onFailure(errRespond); 49201 } 49202 49203 _this19.signInUserSession = _this19.getCognitoUserSession(dataRespond.AuthenticationResult); 49204 49205 _this19.cacheTokens(); 49206 49207 return callback.onSuccess(_this19.signInUserSession); 49208 }); 49209 49210 return undefined; 49211 }); 49212 } else { 49213 this.client.request('VerifySoftwareToken', { 49214 AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), 49215 UserCode: totpCode, 49216 FriendlyDeviceName: friendlyDeviceName 49217 }, function (err, data) { 49218 if (err) { 49219 return callback.onFailure(err); 49220 } 49221 49222 return callback.onSuccess(data); 49223 }); 49224 } 49225 }; 49226 49227 return CognitoUser; 49228}(); 49229 49230 49231 49232/***/ }), 49233
vendor: 2,803 bytes, lines 49234-49342
49234/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js": 49235/*!****************************************************************************!*\ 49236 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js ***! 49237 \****************************************************************************/ 49238/*! exports provided: default */ 49239/***/ (function(module, __webpack_exports__, __webpack_require__) { 49240 49241"use strict"; 49242__webpack_require__.r(__webpack_exports__); 49243/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoUserAttribute; }); 49244/*! 49245 * Copyright 2016 Amazon.com, 49246 * Inc. or its affiliates. All Rights Reserved. 49247 * 49248 * Licensed under the Amazon Software License (the "License"). 49249 * You may not use this file except in compliance with the 49250 * License. A copy of the License is located at 49251 * 49252 * http://aws.amazon.com/asl/ 49253 * 49254 * or in the "license" file accompanying this file. This file is 49255 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 49256 * CONDITIONS OF ANY KIND, express or implied. See the License 49257 * for the specific language governing permissions and 49258 * limitations under the License. 49259 */ 49260 49261/** @class */ 49262var CognitoUserAttribute = /*#__PURE__*/function () { 49263 /** 49264 * Constructs a new CognitoUserAttribute object 49265 * @param {string=} Name The record's name 49266 * @param {string=} Value The record's value 49267 */ 49268 function CognitoUserAttribute(_temp) { 49269 var _ref = _temp === void 0 ? {} : _temp, 49270 Name = _ref.Name, 49271 Value = _ref.Value; 49272 49273 this.Name = Name || ''; 49274 this.Value = Value || ''; 49275 } 49276 /** 49277 * @returns {string} the record's value. 49278 */ 49279 49280 49281 var _proto = CognitoUserAttribute.prototype; 49282 49283 _proto.getValue = function getValue() { 49284 return this.Value; 49285 } 49286 /** 49287 * Sets the record's value. 49288 * @param {string} value The new value. 49289 * @returns {CognitoUserAttribute} The record for method chaining. 49290 */ 49291 ; 49292 49293 _proto.setValue = function setValue(value) { 49294 this.Value = value; 49295 return this; 49296 } 49297 /** 49298 * @returns {string} the record's name. 49299 */ 49300 ; 49301 49302 _proto.getName = function getName() { 49303 return this.Name; 49304 } 49305 /** 49306 * Sets the record's name 49307 * @param {string} name The new name. 49308 * @returns {CognitoUserAttribute} The record for method chaining. 49309 */ 49310 ; 49311 49312 _proto.setName = function setName(name) { 49313 this.Name = name; 49314 return this; 49315 } 49316 /** 49317 * @returns {string} a string representation of the record. 49318 */ 49319 ; 49320 49321 _proto.toString = function toString() { 49322 return JSON.stringify(this); 49323 } 49324 /** 49325 * @returns {object} a flat object representing the record. 49326 */ 49327 ; 49328 49329 _proto.toJSON = function toJSON() { 49330 return { 49331 Name: this.Name, 49332 Value: this.Value 49333 }; 49334 }; 49335 49336 return CognitoUserAttribute; 49337}(); 49338 49339 49340 49341/***/ }), 49342
vendor: 7,373 bytes, lines 49343-49554
49343/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js": 49344/*!***********************************************************************!*\ 49345 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js ***! 49346 \***********************************************************************/ 49347/*! exports provided: default */ 49348/***/ (function(module, __webpack_exports__, __webpack_require__) { 49349 49350"use strict"; 49351__webpack_require__.r(__webpack_exports__); 49352/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoUserPool; }); 49353/* harmony import */ var _Client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Client */ "./node_modules/amazon-cognito-identity-js/es/Client.js"); 49354/* harmony import */ var _CognitoUser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CognitoUser */ "./node_modules/amazon-cognito-identity-js/es/CognitoUser.js"); 49355/* harmony import */ var _StorageHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./StorageHelper */ "./node_modules/amazon-cognito-identity-js/es/StorageHelper.js"); 49356/*! 49357 * Copyright 2016 Amazon.com, 49358 * Inc. or its affiliates. All Rights Reserved. 49359 * 49360 * Licensed under the Amazon Software License (the "License"). 49361 * You may not use this file except in compliance with the 49362 * License. A copy of the License is located at 49363 * 49364 * http://aws.amazon.com/asl/ 49365 * 49366 * or in the "license" file accompanying this file. This file is 49367 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 49368 * CONDITIONS OF ANY KIND, express or implied. See the License 49369 * for the specific language governing permissions and 49370 * limitations under the License. 49371 */ 49372 49373 49374 49375/** @class */ 49376 49377var CognitoUserPool = /*#__PURE__*/function () { 49378 /** 49379 * Constructs a new CognitoUserPool object 49380 * @param {object} data Creation options. 49381 * @param {string} data.UserPoolId Cognito user pool id. 49382 * @param {string} data.ClientId User pool application client id. 49383 * @param {string} data.endpoint Optional custom service endpoint. 49384 * @param {object} data.fetchOptions Optional options for fetch API. 49385 * (only credentials option is supported) 49386 * @param {object} data.Storage Optional storage object. 49387 * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional: 49388 * boolean flag indicating if the data collection is enabled 49389 * to support cognito advanced security features. By default, this 49390 * flag is set to true. 49391 */ 49392 function CognitoUserPool(data) { 49393 var _ref = data || {}, 49394 UserPoolId = _ref.UserPoolId, 49395 ClientId = _ref.ClientId, 49396 endpoint = _ref.endpoint, 49397 fetchOptions = _ref.fetchOptions, 49398 AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag; 49399 49400 if (!UserPoolId || !ClientId) { 49401 throw new Error('Both UserPoolId and ClientId are required.'); 49402 } 49403 49404 if (!/^[\w-]+_.+$/.test(UserPoolId)) { 49405 throw new Error('Invalid UserPoolId format.'); 49406 } 49407 49408 var region = UserPoolId.split('_')[0]; 49409 this.userPoolId = UserPoolId; 49410 this.clientId = ClientId; 49411 this.client = new _Client__WEBPACK_IMPORTED_MODULE_0__["default"](region, endpoint, fetchOptions); 49412 /** 49413 * By default, AdvancedSecurityDataCollectionFlag is set to true, 49414 * if no input value is provided. 49415 */ 49416 49417 this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false; 49418 this.storage = data.Storage || new _StorageHelper__WEBPACK_IMPORTED_MODULE_2__["default"]().getStorage(); 49419 } 49420 /** 49421 * @returns {string} the user pool id 49422 */ 49423 49424 49425 var _proto = CognitoUserPool.prototype; 49426 49427 _proto.getUserPoolId = function getUserPoolId() { 49428 return this.userPoolId; 49429 } 49430 /** 49431 * @returns {string} the client id 49432 */ 49433 ; 49434 49435 _proto.getClientId = function getClientId() { 49436 return this.clientId; 49437 } 49438 /** 49439 * @typedef {object} SignUpResult 49440 * @property {CognitoUser} user New user. 49441 * @property {bool} userConfirmed If the user is already confirmed. 49442 */ 49443 49444 /** 49445 * method for signing up a user 49446 * @param {string} username User's username. 49447 * @param {string} password Plain-text initial password entered by user. 49448 * @param {(AttributeArg[])=} userAttributes New user attributes. 49449 * @param {(AttributeArg[])=} validationData Application metadata. 49450 * @param {(AttributeArg[])=} clientMetadata Client metadata. 49451 * @param {nodeCallback<SignUpResult>} callback Called on error or with the new user. 49452 * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger 49453 * @returns {void} 49454 */ 49455 ; 49456 49457 _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) { 49458 var _this = this; 49459 49460 var jsonReq = { 49461 ClientId: this.clientId, 49462 Username: username, 49463 Password: password, 49464 UserAttributes: userAttributes, 49465 ValidationData: validationData, 49466 ClientMetadata: clientMetadata 49467 }; 49468 49469 if (this.getUserContextData(username)) { 49470 jsonReq.UserContextData = this.getUserContextData(username); 49471 } 49472 49473 this.client.request('SignUp', jsonReq, function (err, data) { 49474 if (err) { 49475 return callback(err, null); 49476 } 49477 49478 var cognitoUser = { 49479 Username: username, 49480 Pool: _this, 49481 Storage: _this.storage 49482 }; 49483 var returnData = { 49484 user: new _CognitoUser__WEBPACK_IMPORTED_MODULE_1__["default"](cognitoUser), 49485 userConfirmed: data.UserConfirmed, 49486 userSub: data.UserSub, 49487 codeDeliveryDetails: data.CodeDeliveryDetails 49488 }; 49489 return callback(null, returnData); 49490 }); 49491 } 49492 /** 49493 * method for getting the current user of the application from the local storage 49494 * 49495 * @returns {CognitoUser} the user retrieved from storage 49496 */ 49497 ; 49498 49499 _proto.getCurrentUser = function getCurrentUser() { 49500 var lastUserKey = "CognitoIdentityServiceProvider." + this.clientId + ".LastAuthUser"; 49501 var lastAuthUser = this.storage.getItem(lastUserKey); 49502 49503 if (lastAuthUser) { 49504 var cognitoUser = { 49505 Username: lastAuthUser, 49506 Pool: this, 49507 Storage: this.storage 49508 }; 49509 return new _CognitoUser__WEBPACK_IMPORTED_MODULE_1__["default"](cognitoUser); 49510 } 49511 49512 return null; 49513 } 49514 /** 49515 * This method returns the encoded data string used for cognito advanced security feature. 49516 * This would be generated only when developer has included the JS used for collecting the 49517 * data on their client. Please refer to documentation to know more about using AdvancedSecurity 49518 * features 49519 * @param {string} username the username for the context data 49520 * @returns {string} the user context data 49521 **/ 49522 ; 49523 49524 _proto.getUserContextData = function getUserContextData(username) { 49525 if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { 49526 return undefined; 49527 } 49528 /* eslint-disable */ 49529 49530 49531 var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; 49532 /* eslint-enable */ 49533 49534 if (this.advancedSecurityDataCollectionFlag) { 49535 var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId); 49536 49537 if (advancedSecurityData) { 49538 var userContextData = { 49539 EncodedData: advancedSecurityData 49540 }; 49541 return userContextData; 49542 } 49543 } 49544 49545 return {}; 49546 }; 49547 49548 return CognitoUserPool; 49549}(); 49550 49551 49552 49553/***/ }), 49554
vendor: 3,635 bytes, lines 49555-49670
49555/***/ "./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js": 49556/*!**************************************************************************!*\ 49557 !*** ./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js ***! 49558 \**************************************************************************/ 49559/*! exports provided: default */ 49560/***/ (function(module, __webpack_exports__, __webpack_require__) { 49561 49562"use strict"; 49563__webpack_require__.r(__webpack_exports__); 49564/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CognitoUserSession; }); 49565/*! 49566 * Copyright 2016 Amazon.com, 49567 * Inc. or its affiliates. All Rights Reserved. 49568 * 49569 * Licensed under the Amazon Software License (the "License"). 49570 * You may not use this file except in compliance with the 49571 * License. A copy of the License is located at 49572 * 49573 * http://aws.amazon.com/asl/ 49574 * 49575 * or in the "license" file accompanying this file. This file is 49576 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 49577 * CONDITIONS OF ANY KIND, express or implied. See the License 49578 * for the specific language governing permissions and 49579 * limitations under the License. 49580 */ 49581 49582/** @class */ 49583var CognitoUserSession = /*#__PURE__*/function () { 49584 /** 49585 * Constructs a new CognitoUserSession object 49586 * @param {CognitoIdToken} IdToken The session's Id token. 49587 * @param {CognitoRefreshToken=} RefreshToken The session's refresh token. 49588 * @param {CognitoAccessToken} AccessToken The session's access token. 49589 * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation. 49590 */ 49591 function CognitoUserSession(_temp) { 49592 var _ref = _temp === void 0 ? {} : _temp, 49593 IdToken = _ref.IdToken, 49594 RefreshToken = _ref.RefreshToken, 49595 AccessToken = _ref.AccessToken, 49596 ClockDrift = _ref.ClockDrift; 49597 49598 if (AccessToken == null || IdToken == null) { 49599 throw new Error('Id token and Access Token must be present.'); 49600 } 49601 49602 this.idToken = IdToken; 49603 this.refreshToken = RefreshToken; 49604 this.accessToken = AccessToken; 49605 this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift; 49606 } 49607 /** 49608 * @returns {CognitoIdToken} the session's Id token 49609 */ 49610 49611 49612 var _proto = CognitoUserSession.prototype; 49613 49614 _proto.getIdToken = function getIdToken() { 49615 return this.idToken; 49616 } 49617 /** 49618 * @returns {CognitoRefreshToken} the session's refresh token 49619 */ 49620 ; 49621 49622 _proto.getRefreshToken = function getRefreshToken() { 49623 return this.refreshToken; 49624 } 49625 /** 49626 * @returns {CognitoAccessToken} the session's access token 49627 */ 49628 ; 49629 49630 _proto.getAccessToken = function getAccessToken() { 49631 return this.accessToken; 49632 } 49633 /** 49634 * @returns {int} the session's clock drift 49635 */ 49636 ; 49637 49638 _proto.getClockDrift = function getClockDrift() { 49639 return this.clockDrift; 49640 } 49641 /** 49642 * @returns {int} the computer's clock drift 49643 */ 49644 ; 49645 49646 _proto.calculateClockDrift = function calculateClockDrift() { 49647 var now = Math.floor(new Date() / 1000); 49648 var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt()); 49649 return now - iat; 49650 } 49651 /** 49652 * Checks to see if the session is still valid based on session expiry information found 49653 * in tokens and the current time (adjusted with clock drift) 49654 * @returns {boolean} if the session is still valid 49655 */ 49656 ; 49657 49658 _proto.isValid = function isValid() { 49659 var now = Math.floor(new Date() / 1000); 49660 var adjusted = now - this.clockDrift; 49661 return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration(); 49662 }; 49663 49664 return CognitoUserSession; 49665}(); 49666 49667 49668 49669/***/ }), 49670
vendor: 4,276 bytes, lines 49671-49815
49671/***/ "./node_modules/amazon-cognito-identity-js/es/CookieStorage.js": 49672/*!*********************************************************************!*\ 49673 !*** ./node_modules/amazon-cognito-identity-js/es/CookieStorage.js ***! 49674 \*********************************************************************/ 49675/*! exports provided: default */ 49676/***/ (function(module, __webpack_exports__, __webpack_require__) { 49677 49678"use strict"; 49679__webpack_require__.r(__webpack_exports__); 49680/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return CookieStorage; }); 49681/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-cookie */ "./node_modules/js-cookie/src/js.cookie.js"); 49682/* harmony import */ var js_cookie__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_cookie__WEBPACK_IMPORTED_MODULE_0__); 49683 49684/** @class */ 49685 49686var CookieStorage = /*#__PURE__*/function () { 49687 /** 49688 * Constructs a new CookieStorage object 49689 * @param {object} data Creation options. 49690 * @param {string} data.domain Cookies domain (mandatory). 49691 * @param {string} data.path Cookies path (default: '/') 49692 * @param {integer} data.expires Cookie expiration (in days, default: 365) 49693 * @param {boolean} data.secure Cookie secure flag (default: true) 49694 * @param {string} data.sameSite Cookie request behaviour (default: null) 49695 */ 49696 function CookieStorage(data) { 49697 if (data.domain) { 49698 this.domain = data.domain; 49699 } else { 49700 throw new Error('The domain of cookieStorage can not be undefined.'); 49701 } 49702 49703 if (data.path) { 49704 this.path = data.path; 49705 } else { 49706 this.path = '/'; 49707 } 49708 49709 if (Object.prototype.hasOwnProperty.call(data, 'expires')) { 49710 this.expires = data.expires; 49711 } else { 49712 this.expires = 365; 49713 } 49714 49715 if (Object.prototype.hasOwnProperty.call(data, 'secure')) { 49716 this.secure = data.secure; 49717 } else { 49718 this.secure = true; 49719 } 49720 49721 if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) { 49722 if (!['strict', 'lax', 'none'].includes(data.sameSite)) { 49723 throw new Error('The sameSite value of cookieStorage must be "lax", "strict" or "none".'); 49724 } 49725 49726 if (data.sameSite === 'none' && !this.secure) { 49727 throw new Error('sameSite = None requires the Secure attribute in latest browser versions.'); 49728 } 49729 49730 this.sameSite = data.sameSite; 49731 } else { 49732 this.sameSite = null; 49733 } 49734 } 49735 /** 49736 * This is used to set a specific item in storage 49737 * @param {string} key - the key for the item 49738 * @param {object} value - the value 49739 * @returns {string} value that was set 49740 */ 49741 49742 49743 var _proto = CookieStorage.prototype; 49744 49745 _proto.setItem = function setItem(key, value) { 49746 var options = { 49747 path: this.path, 49748 expires: this.expires, 49749 domain: this.domain, 49750 secure: this.secure 49751 }; 49752 49753 if (this.sameSite) { 49754 options.sameSite = this.sameSite; 49755 } 49756 49757 js_cookie__WEBPACK_IMPORTED_MODULE_0__["set"](key, value, options); 49758 return js_cookie__WEBPACK_IMPORTED_MODULE_0__["get"](key); 49759 } 49760 /** 49761 * This is used to get a specific key from storage 49762 * @param {string} key - the key for the item 49763 * This is used to clear the storage 49764 * @returns {string} the data item 49765 */ 49766 ; 49767 49768 _proto.getItem = function getItem(key) { 49769 return js_cookie__WEBPACK_IMPORTED_MODULE_0__["get"](key); 49770 } 49771 /** 49772 * This is used to remove an item from storage 49773 * @param {string} key - the key being set 49774 * @returns {string} value - value that was deleted 49775 */ 49776 ; 49777 49778 _proto.removeItem = function removeItem(key) { 49779 var options = { 49780 path: this.path, 49781 expires: this.expires, 49782 domain: this.domain, 49783 secure: this.secure 49784 }; 49785 49786 if (this.sameSite) { 49787 options.sameSite = this.sameSite; 49788 } 49789 49790 return js_cookie__WEBPACK_IMPORTED_MODULE_0__["remove"](key, options); 49791 } 49792 /** 49793 * This is used to clear the storage 49794 * @returns {string} nothing 49795 */ 49796 ; 49797 49798 _proto.clear = function clear() { 49799 var cookies = js_cookie__WEBPACK_IMPORTED_MODULE_0__["get"](); 49800 var index; 49801 49802 for (index = 0; index < cookies.length; ++index) { 49803 js_cookie__WEBPACK_IMPORTED_MODULE_0__["remove"](cookies[index]); 49804 } 49805 49806 return {}; 49807 }; 49808 49809 return CookieStorage; 49810}(); 49811 49812 49813 49814/***/ }), 49815
vendor: 2,274 bytes, lines 49816-49889
49816/***/ "./node_modules/amazon-cognito-identity-js/es/DateHelper.js": 49817/*!******************************************************************!*\ 49818 !*** ./node_modules/amazon-cognito-identity-js/es/DateHelper.js ***! 49819 \******************************************************************/ 49820/*! exports provided: default */ 49821/***/ (function(module, __webpack_exports__, __webpack_require__) { 49822 49823"use strict"; 49824__webpack_require__.r(__webpack_exports__); 49825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return DateHelper; }); 49826/*! 49827 * Copyright 2016 Amazon.com, 49828 * Inc. or its affiliates. All Rights Reserved. 49829 * 49830 * Licensed under the Amazon Software License (the "License"). 49831 * You may not use this file except in compliance with the 49832 * License. A copy of the License is located at 49833 * 49834 * http://aws.amazon.com/asl/ 49835 * 49836 * or in the "license" file accompanying this file. This file is 49837 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 49838 * CONDITIONS OF ANY KIND, express or implied. See the License 49839 * for the specific language governing permissions and 49840 * limitations under the License. 49841 */ 49842var monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; 49843var weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 49844/** @class */ 49845 49846var DateHelper = /*#__PURE__*/function () { 49847 function DateHelper() {} 49848 49849 var _proto = DateHelper.prototype; 49850 49851 /** 49852 * @returns {string} The current time in "ddd MMM D HH:mm:ss UTC YYYY" format. 49853 */ 49854 _proto.getNowString = function getNowString() { 49855 var now = new Date(); 49856 var weekDay = weekNames[now.getUTCDay()]; 49857 var month = monthNames[now.getUTCMonth()]; 49858 var day = now.getUTCDate(); 49859 var hours = now.getUTCHours(); 49860 49861 if (hours < 10) { 49862 hours = "0" + hours; 49863 } 49864 49865 var minutes = now.getUTCMinutes(); 49866 49867 if (minutes < 10) { 49868 minutes = "0" + minutes; 49869 } 49870 49871 var seconds = now.getUTCSeconds(); 49872 49873 if (seconds < 10) { 49874 seconds = "0" + seconds; 49875 } 49876 49877 var year = now.getUTCFullYear(); // ddd MMM D HH:mm:ss UTC YYYY 49878 49879 var dateNow = weekDay + " " + month + " " + day + " " + hours + ":" + minutes + ":" + seconds + " UTC " + year; 49880 return dateNow; 49881 }; 49882 49883 return DateHelper; 49884}(); 49885 49886 49887 49888/***/ }), 49889
vendor: 3,084 bytes, lines 49890-50001
49890/***/ "./node_modules/amazon-cognito-identity-js/es/StorageHelper.js": 49891/*!*********************************************************************!*\ 49892 !*** ./node_modules/amazon-cognito-identity-js/es/StorageHelper.js ***! 49893 \*********************************************************************/ 49894/*! exports provided: default */ 49895/***/ (function(module, __webpack_exports__, __webpack_require__) { 49896 49897"use strict"; 49898__webpack_require__.r(__webpack_exports__); 49899/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return StorageHelper; }); 49900/*! 49901 * Copyright 2016 Amazon.com, 49902 * Inc. or its affiliates. All Rights Reserved. 49903 * 49904 * Licensed under the Amazon Software License (the "License"). 49905 * You may not use this file except in compliance with the 49906 * License. A copy of the License is located at 49907 * 49908 * http://aws.amazon.com/asl/ 49909 * 49910 * or in the "license" file accompanying this file. This file is 49911 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 49912 * CONDITIONS OF ANY KIND, express or implied. See the License 49913 * for the specific language governing permissions and 49914 * limitations under the License. 49915 */ 49916var dataMemory = {}; 49917/** @class */ 49918 49919var MemoryStorage = /*#__PURE__*/function () { 49920 function MemoryStorage() {} 49921 49922 /** 49923 * This is used to set a specific item in storage 49924 * @param {string} key - the key for the item 49925 * @param {object} value - the value 49926 * @returns {string} value that was set 49927 */ 49928 MemoryStorage.setItem = function setItem(key, value) { 49929 dataMemory[key] = value; 49930 return dataMemory[key]; 49931 } 49932 /** 49933 * This is used to get a specific key from storage 49934 * @param {string} key - the key for the item 49935 * This is used to clear the storage 49936 * @returns {string} the data item 49937 */ 49938 ; 49939 49940 MemoryStorage.getItem = function getItem(key) { 49941 return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined; 49942 } 49943 /** 49944 * This is used to remove an item from storage 49945 * @param {string} key - the key being set 49946 * @returns {string} value - value that was deleted 49947 */ 49948 ; 49949 49950 MemoryStorage.removeItem = function removeItem(key) { 49951 return delete dataMemory[key]; 49952 } 49953 /** 49954 * This is used to clear the storage 49955 * @returns {string} nothing 49956 */ 49957 ; 49958 49959 MemoryStorage.clear = function clear() { 49960 dataMemory = {}; 49961 return dataMemory; 49962 }; 49963 49964 return MemoryStorage; 49965}(); 49966/** @class */ 49967 49968 49969var StorageHelper = /*#__PURE__*/function () { 49970 /** 49971 * This is used to get a storage object 49972 * @returns {object} the storage 49973 */ 49974 function StorageHelper() { 49975 try { 49976 this.storageWindow = window.localStorage; 49977 this.storageWindow.setItem('aws.cognito.test-ls', 1); 49978 this.storageWindow.removeItem('aws.cognito.test-ls'); 49979 } catch (exception) { 49980 this.storageWindow = MemoryStorage; 49981 } 49982 } 49983 /** 49984 * This is used to return the storage 49985 * @returns {object} the storage 49986 */ 49987 49988 49989 var _proto = StorageHelper.prototype; 49990 49991 _proto.getStorage = function getStorage() { 49992 return this.storageWindow; 49993 }; 49994 49995 return StorageHelper; 49996}(); 49997 49998 49999 50000/***/ }), 50001
vendor: 1,281 bytes, lines 50002-50034
50002/***/ "./node_modules/amazon-cognito-identity-js/es/UserAgent.js": 50003/*!*****************************************************************!*\ 50004 !*** ./node_modules/amazon-cognito-identity-js/es/UserAgent.js ***! 50005 \*****************************************************************/ 50006/*! exports provided: appendToCognitoUserAgent, default */ 50007/***/ (function(module, __webpack_exports__, __webpack_require__) { 50008 50009"use strict"; 50010__webpack_require__.r(__webpack_exports__); 50011/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendToCognitoUserAgent", function() { return appendToCognitoUserAgent; }); 50012// constructor 50013function UserAgent() {} // public 50014 50015 50016UserAgent.prototype.userAgent = 'aws-amplify/0.1.x js'; 50017var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) { 50018 if (!content) { 50019 return; 50020 } 50021 50022 if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) { 50023 UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content); 50024 } 50025 50026 if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') { 50027 UserAgent.prototype.userAgent = content; 50028 } 50029}; // class for defining the amzn user-agent 50030 50031/* harmony default export */ __webpack_exports__["default"] = (UserAgent); 50032 50033/***/ }), 50034
vendor: 5,647 bytes, lines 50035-50110
50035/***/ "./node_modules/amazon-cognito-identity-js/es/index.js": 50036/*!*************************************************************!*\ 50037 !*** ./node_modules/amazon-cognito-identity-js/es/index.js ***! 50038 \*************************************************************/ 50039/*! exports provided: AuthenticationDetails, AuthenticationHelper, CognitoAccessToken, CognitoIdToken, CognitoRefreshToken, CognitoUser, CognitoUserAttribute, CognitoUserPool, CognitoUserSession, CookieStorage, DateHelper, appendToCognitoUserAgent */ 50040/***/ (function(module, __webpack_exports__, __webpack_require__) { 50041 50042"use strict"; 50043__webpack_require__.r(__webpack_exports__); 50044/* harmony import */ var _AuthenticationDetails__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AuthenticationDetails */ "./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js"); 50045/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AuthenticationDetails", function() { return _AuthenticationDetails__WEBPACK_IMPORTED_MODULE_0__["default"]; }); 50046 50047/* harmony import */ var _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AuthenticationHelper */ "./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js"); 50048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AuthenticationHelper", function() { return _AuthenticationHelper__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 50049 50050/* harmony import */ var _CognitoAccessToken__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CognitoAccessToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js"); 50051/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoAccessToken", function() { return _CognitoAccessToken__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 50052 50053/* harmony import */ var _CognitoIdToken__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CognitoIdToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js"); 50054/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoIdToken", function() { return _CognitoIdToken__WEBPACK_IMPORTED_MODULE_3__["default"]; }); 50055 50056/* harmony import */ var _CognitoRefreshToken__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CognitoRefreshToken */ "./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js"); 50057/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoRefreshToken", function() { return _CognitoRefreshToken__WEBPACK_IMPORTED_MODULE_4__["default"]; }); 50058 50059/* harmony import */ var _CognitoUser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CognitoUser */ "./node_modules/amazon-cognito-identity-js/es/CognitoUser.js"); 50060/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoUser", function() { return _CognitoUser__WEBPACK_IMPORTED_MODULE_5__["default"]; }); 50061 50062/* harmony import */ var _CognitoUserAttribute__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./CognitoUserAttribute */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js"); 50063/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoUserAttribute", function() { return _CognitoUserAttribute__WEBPACK_IMPORTED_MODULE_6__["default"]; }); 50064 50065/* harmony import */ var _CognitoUserPool__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CognitoUserPool */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js"); 50066/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoUserPool", function() { return _CognitoUserPool__WEBPACK_IMPORTED_MODULE_7__["default"]; }); 50067 50068/* harmony import */ var _CognitoUserSession__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CognitoUserSession */ "./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js"); 50069/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CognitoUserSession", function() { return _CognitoUserSession__WEBPACK_IMPORTED_MODULE_8__["default"]; }); 50070 50071/* harmony import */ var _CookieStorage__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CookieStorage */ "./node_modules/amazon-cognito-identity-js/es/CookieStorage.js"); 50072/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CookieStorage", function() { return _CookieStorage__WEBPACK_IMPORTED_MODULE_9__["default"]; }); 50073 50074/* harmony import */ var _DateHelper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./DateHelper */ "./node_modules/amazon-cognito-identity-js/es/DateHelper.js"); 50075/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateHelper", function() { return _DateHelper__WEBPACK_IMPORTED_MODULE_10__["default"]; }); 50076 50077/* harmony import */ var _UserAgent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./UserAgent */ "./node_modules/amazon-cognito-identity-js/es/UserAgent.js"); 50078/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "appendToCognitoUserAgent", function() { return _UserAgent__WEBPACK_IMPORTED_MODULE_11__["appendToCognitoUserAgent"]; }); 50079 50080/*! 50081 * Copyright 2016 Amazon.com, 50082 * Inc. or its affiliates. All Rights Reserved. 50083 * 50084 * Licensed under the Amazon Software License (the "License"). 50085 * You may not use this file except in compliance with the 50086 * License. A copy of the License is located at 50087 * 50088 * http://aws.amazon.com/asl/ 50089 * 50090 * or in the "license" file accompanying this file. This file is 50091 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 50092 * CONDITIONS OF ANY KIND, express or implied. See the License 50093 * for the specific language governing permissions and 50094 * limitations under the License. 50095 */ 50096 50097 50098 50099 50100 50101 50102 50103 50104 50105 50106 50107 50108 50109/***/ }), 50110
vendor: 4,230 bytes, lines 50111-50274
50111/***/ "./node_modules/base64-js/index.js": 50112/*!*****************************************!*\ 50113 !*** ./node_modules/base64-js/index.js ***! 50114 \*****************************************/ 50115/*! no static exports found */ 50116/***/ (function(module, exports, __webpack_require__) { 50117 50118"use strict"; 50119 50120 50121exports.byteLength = byteLength 50122exports.toByteArray = toByteArray 50123exports.fromByteArray = fromByteArray 50124 50125var lookup = [] 50126var revLookup = [] 50127var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array 50128 50129var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' 50130for (var i = 0, len = code.length; i < len; ++i) { 50131 lookup[i] = code[i] 50132 revLookup[code.charCodeAt(i)] = i 50133} 50134 50135// Support decoding URL-safe base64 strings, as Node.js does. 50136// See: https://en.wikipedia.org/wiki/Base64#URL_applications 50137revLookup['-'.charCodeAt(0)] = 62 50138revLookup['_'.charCodeAt(0)] = 63 50139 50140function getLens (b64) { 50141 var len = b64.length 50142 50143 if (len % 4 > 0) { 50144 throw new Error('Invalid string. Length must be a multiple of 4') 50145 } 50146 50147 // Trim off extra bytes after placeholder bytes are found 50148 // See: https://github.com/beatgammit/base64-js/issues/42 50149 var validLen = b64.indexOf('=') 50150 if (validLen === -1) validLen = len 50151 50152 var placeHoldersLen = validLen === len 50153 ? 0 50154 : 4 - (validLen % 4) 50155 50156 return [validLen, placeHoldersLen] 50157} 50158 50159// base64 is 4/3 + up to two characters of the original data 50160function byteLength (b64) { 50161 var lens = getLens(b64) 50162 var validLen = lens[0] 50163 var placeHoldersLen = lens[1] 50164 return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen 50165} 50166 50167function _byteLength (b64, validLen, placeHoldersLen) { 50168 return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen 50169} 50170 50171function toByteArray (b64) { 50172 var tmp 50173 var lens = getLens(b64) 50174 var validLen = lens[0] 50175 var placeHoldersLen = lens[1] 50176 50177 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) 50178 50179 var curByte = 0 50180 50181 // if there are placeholders, only get up to the last complete 4 chars 50182 var len = placeHoldersLen > 0 50183 ? validLen - 4 50184 : validLen 50185 50186 var i 50187 for (i = 0; i < len; i += 4) { 50188 tmp = 50189 (revLookup[b64.charCodeAt(i)] << 18) | 50190 (revLookup[b64.charCodeAt(i + 1)] << 12) | 50191 (revLookup[b64.charCodeAt(i + 2)] << 6) | 50192 revLookup[b64.charCodeAt(i + 3)] 50193 arr[curByte++] = (tmp >> 16) & 0xFF 50194 arr[curByte++] = (tmp >> 8) & 0xFF 50195 arr[curByte++] = tmp & 0xFF 50196 } 50197 50198 if (placeHoldersLen === 2) { 50199 tmp = 50200 (revLookup[b64.charCodeAt(i)] << 2) | 50201 (revLookup[b64.charCodeAt(i + 1)] >> 4) 50202 arr[curByte++] = tmp & 0xFF 50203 } 50204 50205 if (placeHoldersLen === 1) { 50206 tmp = 50207 (revLookup[b64.charCodeAt(i)] << 10) | 50208 (revLookup[b64.charCodeAt(i + 1)] << 4) | 50209 (revLookup[b64.charCodeAt(i + 2)] >> 2) 50210 arr[curByte++] = (tmp >> 8) & 0xFF 50211 arr[curByte++] = tmp & 0xFF 50212 } 50213 50214 return arr 50215} 50216 50217function tripletToBase64 (num) { 50218 return lookup[num >> 18 & 0x3F] + 50219 lookup[num >> 12 & 0x3F] + 50220 lookup[num >> 6 & 0x3F] + 50221 lookup[num & 0x3F] 50222} 50223 50224function encodeChunk (uint8, start, end) { 50225 var tmp 50226 var output = [] 50227 for (var i = start; i < end; i += 3) { 50228 tmp = 50229 ((uint8[i] << 16) & 0xFF0000) + 50230 ((uint8[i + 1] << 8) & 0xFF00) + 50231 (uint8[i + 2] & 0xFF) 50232 output.push(tripletToBase64(tmp)) 50233 } 50234 return output.join('') 50235} 50236 50237function fromByteArray (uint8) { 50238 var tmp 50239 var len = uint8.length 50240 var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes 50241 var parts = [] 50242 var maxChunkLength = 16383 // must be multiple of 3 50243 50244 // go through the array every three bytes, we'll deal with trailing stuff later 50245 for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { 50246 parts.push(encodeChunk( 50247 uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) 50248 )) 50249 } 50250 50251 // pad the end with zeros, but make sure to not forget the extra bytes 50252 if (extraBytes === 1) { 50253 tmp = uint8[len - 1] 50254 parts.push( 50255 lookup[tmp >> 2] + 50256 lookup[(tmp << 4) & 0x3F] + 50257 '==' 50258 ) 50259 } else if (extraBytes === 2) { 50260 tmp = (uint8[len - 2] << 8) + uint8[len - 1] 50261 parts.push( 50262 lookup[tmp >> 10] + 50263 lookup[(tmp >> 4) & 0x3F] + 50264 lookup[(tmp << 2) & 0x3F] + 50265 '=' 50266 ) 50267 } 50268 50269 return parts.join('') 50270} 50271 50272 50273/***/ }), 50274
vendor: 49,209 bytes, lines 50275-52076
50275/***/ "./node_modules/buffer/index.js": 50276/*!**************************************!*\ 50277 !*** ./node_modules/buffer/index.js ***! 50278 \**************************************/ 50279/*! no static exports found */ 50280/***/ (function(module, exports, __webpack_require__) { 50281 50282"use strict"; 50283/* WEBPACK VAR INJECTION */(function(global) {/*! 50284 * The buffer module from node.js, for the browser. 50285 * 50286 * @author Feross Aboukhadijeh <http://feross.org> 50287 * @license MIT 50288 */ 50289/* eslint-disable no-proto */ 50290 50291 50292 50293var base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js") 50294var ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js") 50295var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js") 50296 50297exports.Buffer = Buffer 50298exports.SlowBuffer = SlowBuffer 50299exports.INSPECT_MAX_BYTES = 50 50300 50301/** 50302 * If `Buffer.TYPED_ARRAY_SUPPORT`: 50303 * === true Use Uint8Array implementation (fastest) 50304 * === false Use Object implementation (most compatible, even IE6) 50305 * 50306 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, 50307 * Opera 11.6+, iOS 4.2+. 50308 * 50309 * Due to various browser bugs, sometimes the Object implementation will be used even 50310 * when the browser supports typed arrays. 50311 * 50312 * Note: 50313 * 50314 * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, 50315 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. 50316 * 50317 * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. 50318 * 50319 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of 50320 * incorrect length in some situations. 50321 50322 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they 50323 * get the Object implementation, which is slower but behaves correctly. 50324 */ 50325Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined 50326 ? global.TYPED_ARRAY_SUPPORT 50327 : typedArraySupport() 50328 50329/* 50330 * Export kMaxLength after typed array support is determined. 50331 */ 50332exports.kMaxLength = kMaxLength() 50333 50334function typedArraySupport () { 50335 try { 50336 var arr = new Uint8Array(1) 50337 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} 50338 return arr.foo() === 42 && // typed array instances can be augmented 50339 typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` 50340 arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` 50341 } catch (e) { 50342 return false 50343 } 50344} 50345 50346function kMaxLength () { 50347 return Buffer.TYPED_ARRAY_SUPPORT 50348 ? 0x7fffffff 50349 : 0x3fffffff 50350} 50351 50352function createBuffer (that, length) { 50353 if (kMaxLength() < length) { 50354 throw new RangeError('Invalid typed array length') 50355 } 50356 if (Buffer.TYPED_ARRAY_SUPPORT) { 50357 // Return an augmented `Uint8Array` instance, for best performance 50358 that = new Uint8Array(length) 50359 that.__proto__ = Buffer.prototype 50360 } else { 50361 // Fallback: Return an object instance of the Buffer class 50362 if (that === null) { 50363 that = new Buffer(length) 50364 } 50365 that.length = length 50366 } 50367 50368 return that 50369} 50370 50371/** 50372 * The Buffer constructor returns instances of `Uint8Array` that have their 50373 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of 50374 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods 50375 * and the `Uint8Array` methods. Square bracket notation works as expected -- it 50376 * returns a single octet. 50377 * 50378 * The `Uint8Array` prototype remains unmodified. 50379 */ 50380 50381function Buffer (arg, encodingOrOffset, length) { 50382 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { 50383 return new Buffer(arg, encodingOrOffset, length) 50384 } 50385 50386 // Common case. 50387 if (typeof arg === 'number') { 50388 if (typeof encodingOrOffset === 'string') { 50389 throw new Error( 50390 'If encoding is specified then the first argument must be a string' 50391 ) 50392 } 50393 return allocUnsafe(this, arg) 50394 } 50395 return from(this, arg, encodingOrOffset, length) 50396} 50397 50398Buffer.poolSize = 8192 // not used by this implementation 50399 50400// TODO: Legacy, not needed anymore. Remove in next major version. 50401Buffer._augment = function (arr) { 50402 arr.__proto__ = Buffer.prototype 50403 return arr 50404} 50405 50406function from (that, value, encodingOrOffset, length) { 50407 if (typeof value === 'number') { 50408 throw new TypeError('"value" argument must not be a number') 50409 } 50410 50411 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { 50412 return fromArrayBuffer(that, value, encodingOrOffset, length) 50413 } 50414 50415 if (typeof value === 'string') { 50416 return fromString(that, value, encodingOrOffset) 50417 } 50418 50419 return fromObject(that, value) 50420} 50421 50422/** 50423 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError 50424 * if value is a number. 50425 * Buffer.from(str[, encoding]) 50426 * Buffer.from(array) 50427 * Buffer.from(buffer) 50428 * Buffer.from(arrayBuffer[, byteOffset[, length]]) 50429 **/ 50430Buffer.from = function (value, encodingOrOffset, length) { 50431 return from(null, value, encodingOrOffset, length) 50432} 50433 50434if (Buffer.TYPED_ARRAY_SUPPORT) { 50435 Buffer.prototype.__proto__ = Uint8Array.prototype 50436 Buffer.__proto__ = Uint8Array 50437 if (typeof Symbol !== 'undefined' && Symbol.species && 50438 Buffer[Symbol.species] === Buffer) { 50439 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 50440 Object.defineProperty(Buffer, Symbol.species, { 50441 value: null, 50442 configurable: true 50443 }) 50444 } 50445} 50446 50447function assertSize (size) { 50448 if (typeof size !== 'number') { 50449 throw new TypeError('"size" argument must be a number') 50450 } else if (size < 0) { 50451 throw new RangeError('"size" argument must not be negative') 50452 } 50453} 50454 50455function alloc (that, size, fill, encoding) { 50456 assertSize(size) 50457 if (size <= 0) { 50458 return createBuffer(that, size) 50459 } 50460 if (fill !== undefined) { 50461 // Only pay attention to encoding if it's a string. This 50462 // prevents accidentally sending in a number that would 50463 // be interpretted as a start offset. 50464 return typeof encoding === 'string' 50465 ? createBuffer(that, size).fill(fill, encoding) 50466 : createBuffer(that, size).fill(fill) 50467 } 50468 return createBuffer(that, size) 50469} 50470 50471/** 50472 * Creates a new filled Buffer instance. 50473 * alloc(size[, fill[, encoding]]) 50474 **/ 50475Buffer.alloc = function (size, fill, encoding) { 50476 return alloc(null, size, fill, encoding) 50477} 50478 50479function allocUnsafe (that, size) { 50480 assertSize(size) 50481 that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) 50482 if (!Buffer.TYPED_ARRAY_SUPPORT) { 50483 for (var i = 0; i < size; ++i) { 50484 that[i] = 0 50485 } 50486 } 50487 return that 50488} 50489 50490/** 50491 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. 50492 * */ 50493Buffer.allocUnsafe = function (size) { 50494 return allocUnsafe(null, size) 50495} 50496/** 50497 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. 50498 */ 50499Buffer.allocUnsafeSlow = function (size) { 50500 return allocUnsafe(null, size) 50501} 50502 50503function fromString (that, string, encoding) { 50504 if (typeof encoding !== 'string' || encoding === '') { 50505 encoding = 'utf8' 50506 } 50507 50508 if (!Buffer.isEncoding(encoding)) { 50509 throw new TypeError('"encoding" must be a valid string encoding') 50510 } 50511 50512 var length = byteLength(string, encoding) | 0 50513 that = createBuffer(that, length) 50514 50515 var actual = that.write(string, encoding) 50516 50517 if (actual !== length) { 50518 // Writing a hex string, for example, that contains invalid characters will 50519 // cause everything after the first invalid character to be ignored. (e.g. 50520 // 'abxxcd' will be treated as 'ab') 50521 that = that.slice(0, actual) 50522 } 50523 50524 return that 50525} 50526 50527function fromArrayLike (that, array) { 50528 var length = array.length < 0 ? 0 : checked(array.length) | 0 50529 that = createBuffer(that, length) 50530 for (var i = 0; i < length; i += 1) { 50531 that[i] = array[i] & 255 50532 } 50533 return that 50534} 50535 50536function fromArrayBuffer (that, array, byteOffset, length) { 50537 array.byteLength // this throws if `array` is not a valid ArrayBuffer 50538 50539 if (byteOffset < 0 || array.byteLength < byteOffset) { 50540 throw new RangeError('\'offset\' is out of bounds') 50541 } 50542 50543 if (array.byteLength < byteOffset + (length || 0)) { 50544 throw new RangeError('\'length\' is out of bounds') 50545 } 50546 50547 if (byteOffset === undefined && length === undefined) { 50548 array = new Uint8Array(array) 50549 } else if (length === undefined) { 50550 array = new Uint8Array(array, byteOffset) 50551 } else { 50552 array = new Uint8Array(array, byteOffset, length) 50553 } 50554 50555 if (Buffer.TYPED_ARRAY_SUPPORT) { 50556 // Return an augmented `Uint8Array` instance, for best performance 50557 that = array 50558 that.__proto__ = Buffer.prototype 50559 } else { 50560 // Fallback: Return an object instance of the Buffer class 50561 that = fromArrayLike(that, array) 50562 } 50563 return that 50564} 50565 50566function fromObject (that, obj) { 50567 if (Buffer.isBuffer(obj)) { 50568 var len = checked(obj.length) | 0 50569 that = createBuffer(that, len) 50570 50571 if (that.length === 0) { 50572 return that 50573 } 50574 50575 obj.copy(that, 0, 0, len) 50576 return that 50577 } 50578 50579 if (obj) { 50580 if ((typeof ArrayBuffer !== 'undefined' && 50581 obj.buffer instanceof ArrayBuffer) || 'length' in obj) { 50582 if (typeof obj.length !== 'number' || isnan(obj.length)) { 50583 return createBuffer(that, 0) 50584 } 50585 return fromArrayLike(that, obj) 50586 } 50587 50588 if (obj.type === 'Buffer' && isArray(obj.data)) { 50589 return fromArrayLike(that, obj.data) 50590 } 50591 } 50592 50593 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') 50594} 50595 50596function checked (length) { 50597 // Note: cannot use `length < kMaxLength()` here because that fails when 50598 // length is NaN (which is otherwise coerced to zero.) 50599 if (length >= kMaxLength()) { 50600 throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 50601 'size: 0x' + kMaxLength().toString(16) + ' bytes') 50602 } 50603 return length | 0 50604} 50605 50606function SlowBuffer (length) { 50607 if (+length != length) { // eslint-disable-line eqeqeq 50608 length = 0 50609 } 50610 return Buffer.alloc(+length) 50611} 50612 50613Buffer.isBuffer = function isBuffer (b) { 50614 return !!(b != null && b._isBuffer) 50615} 50616 50617Buffer.compare = function compare (a, b) { 50618 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { 50619 throw new TypeError('Arguments must be Buffers') 50620 } 50621 50622 if (a === b) return 0 50623 50624 var x = a.length 50625 var y = b.length 50626 50627 for (var i = 0, len = Math.min(x, y); i < len; ++i) { 50628 if (a[i] !== b[i]) { 50629 x = a[i] 50630 y = b[i] 50631 break 50632 } 50633 } 50634 50635 if (x < y) return -1 50636 if (y < x) return 1 50637 return 0 50638} 50639 50640Buffer.isEncoding = function isEncoding (encoding) { 50641 switch (String(encoding).toLowerCase()) { 50642 case 'hex': 50643 case 'utf8': 50644 case 'utf-8': 50645 case 'ascii': 50646 case 'latin1': 50647 case 'binary': 50648 case 'base64': 50649 case 'ucs2': 50650 case 'ucs-2': 50651 case 'utf16le': 50652 case 'utf-16le': 50653 return true 50654 default: 50655 return false 50656 } 50657} 50658 50659Buffer.concat = function concat (list, length) { 50660 if (!isArray(list)) { 50661 throw new TypeError('"list" argument must be an Array of Buffers') 50662 } 50663 50664 if (list.length === 0) { 50665 return Buffer.alloc(0) 50666 } 50667 50668 var i 50669 if (length === undefined) { 50670 length = 0 50671 for (i = 0; i < list.length; ++i) { 50672 length += list[i].length 50673 } 50674 } 50675 50676 var buffer = Buffer.allocUnsafe(length) 50677 var pos = 0 50678 for (i = 0; i < list.length; ++i) { 50679 var buf = list[i] 50680 if (!Buffer.isBuffer(buf)) { 50681 throw new TypeError('"list" argument must be an Array of Buffers') 50682 } 50683 buf.copy(buffer, pos) 50684 pos += buf.length 50685 } 50686 return buffer 50687} 50688 50689function byteLength (string, encoding) { 50690 if (Buffer.isBuffer(string)) { 50691 return string.length 50692 } 50693 if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && 50694 (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { 50695 return string.byteLength 50696 } 50697 if (typeof string !== 'string') { 50698 string = '' + string 50699 } 50700 50701 var len = string.length 50702 if (len === 0) return 0 50703 50704 // Use a for loop to avoid recursion 50705 var loweredCase = false 50706 for (;;) { 50707 switch (encoding) { 50708 case 'ascii': 50709 case 'latin1': 50710 case 'binary': 50711 return len 50712 case 'utf8': 50713 case 'utf-8': 50714 case undefined: 50715 return utf8ToBytes(string).length 50716 case 'ucs2': 50717 case 'ucs-2': 50718 case 'utf16le': 50719 case 'utf-16le': 50720 return len * 2 50721 case 'hex': 50722 return len >>> 1 50723 case 'base64': 50724 return base64ToBytes(string).length 50725 default: 50726 if (loweredCase) return utf8ToBytes(string).length // assume utf8 50727 encoding = ('' + encoding).toLowerCase() 50728 loweredCase = true 50729 } 50730 } 50731} 50732Buffer.byteLength = byteLength 50733 50734function slowToString (encoding, start, end) { 50735 var loweredCase = false 50736 50737 // No need to verify that "this.length <= MAX_UINT32" since it's a read-only 50738 // property of a typed array. 50739 50740 // This behaves neither like String nor Uint8Array in that we set start/end 50741 // to their upper/lower bounds if the value passed is out of range. 50742 // undefined is handled specially as per ECMA-262 6th Edition, 50743 // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. 50744 if (start === undefined || start < 0) { 50745 start = 0 50746 } 50747 // Return early if start > this.length. Done here to prevent potential uint32 50748 // coercion fail below. 50749 if (start > this.length) { 50750 return '' 50751 } 50752 50753 if (end === undefined || end > this.length) { 50754 end = this.length 50755 } 50756 50757 if (end <= 0) { 50758 return '' 50759 } 50760 50761 // Force coersion to uint32. This will also coerce falsey/NaN values to 0. 50762 end >>>= 0 50763 start >>>= 0 50764 50765 if (end <= start) { 50766 return '' 50767 } 50768 50769 if (!encoding) encoding = 'utf8' 50770 50771 while (true) { 50772 switch (encoding) { 50773 case 'hex': 50774 return hexSlice(this, start, end) 50775 50776 case 'utf8': 50777 case 'utf-8': 50778 return utf8Slice(this, start, end) 50779 50780 case 'ascii': 50781 return asciiSlice(this, start, end) 50782 50783 case 'latin1': 50784 case 'binary': 50785 return latin1Slice(this, start, end) 50786 50787 case 'base64': 50788 return base64Slice(this, start, end) 50789 50790 case 'ucs2': 50791 case 'ucs-2': 50792 case 'utf16le': 50793 case 'utf-16le': 50794 return utf16leSlice(this, start, end) 50795 50796 default: 50797 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) 50798 encoding = (encoding + '').toLowerCase() 50799 loweredCase = true 50800 } 50801 } 50802} 50803 50804// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect 50805// Buffer instances. 50806Buffer.prototype._isBuffer = true 50807 50808function swap (b, n, m) { 50809 var i = b[n] 50810 b[n] = b[m] 50811 b[m] = i 50812} 50813 50814Buffer.prototype.swap16 = function swap16 () { 50815 var len = this.length 50816 if (len % 2 !== 0) { 50817 throw new RangeError('Buffer size must be a multiple of 16-bits') 50818 } 50819 for (var i = 0; i < len; i += 2) { 50820 swap(this, i, i + 1) 50821 } 50822 return this 50823} 50824 50825Buffer.prototype.swap32 = function swap32 () { 50826 var len = this.length 50827 if (len % 4 !== 0) { 50828 throw new RangeError('Buffer size must be a multiple of 32-bits') 50829 } 50830 for (var i = 0; i < len; i += 4) { 50831 swap(this, i, i + 3) 50832 swap(this, i + 1, i + 2) 50833 } 50834 return this 50835} 50836 50837Buffer.prototype.swap64 = function swap64 () { 50838 var len = this.length 50839 if (len % 8 !== 0) { 50840 throw new RangeError('Buffer size must be a multiple of 64-bits') 50841 } 50842 for (var i = 0; i < len; i += 8) { 50843 swap(this, i, i + 7) 50844 swap(this, i + 1, i + 6) 50845 swap(this, i + 2, i + 5) 50846 swap(this, i + 3, i + 4) 50847 } 50848 return this 50849} 50850 50851Buffer.prototype.toString = function toString () { 50852 var length = this.length | 0 50853 if (length === 0) return '' 50854 if (arguments.length === 0) return utf8Slice(this, 0, length) 50855 return slowToString.apply(this, arguments) 50856} 50857 50858Buffer.prototype.equals = function equals (b) { 50859 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') 50860 if (this === b) return true 50861 return Buffer.compare(this, b) === 0 50862} 50863 50864Buffer.prototype.inspect = function inspect () { 50865 var str = '' 50866 var max = exports.INSPECT_MAX_BYTES 50867 if (this.length > 0) { 50868 str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') 50869 if (this.length > max) str += ' ... ' 50870 } 50871 return '<Buffer ' + str + '>' 50872} 50873 50874Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { 50875 if (!Buffer.isBuffer(target)) { 50876 throw new TypeError('Argument must be a Buffer') 50877 } 50878 50879 if (start === undefined) { 50880 start = 0 50881 } 50882 if (end === undefined) { 50883 end = target ? target.length : 0 50884 } 50885 if (thisStart === undefined) { 50886 thisStart = 0 50887 } 50888 if (thisEnd === undefined) { 50889 thisEnd = this.length 50890 } 50891 50892 if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { 50893 throw new RangeError('out of range index') 50894 } 50895 50896 if (thisStart >= thisEnd && start >= end) { 50897 return 0 50898 } 50899 if (thisStart >= thisEnd) { 50900 return -1 50901 } 50902 if (start >= end) { 50903 return 1 50904 } 50905 50906 start >>>= 0 50907 end >>>= 0 50908 thisStart >>>= 0 50909 thisEnd >>>= 0 50910 50911 if (this === target) return 0 50912 50913 var x = thisEnd - thisStart 50914 var y = end - start 50915 var len = Math.min(x, y) 50916 50917 var thisCopy = this.slice(thisStart, thisEnd) 50918 var targetCopy = target.slice(start, end) 50919 50920 for (var i = 0; i < len; ++i) { 50921 if (thisCopy[i] !== targetCopy[i]) { 50922 x = thisCopy[i] 50923 y = targetCopy[i] 50924 break 50925 } 50926 } 50927 50928 if (x < y) return -1 50929 if (y < x) return 1 50930 return 0 50931} 50932 50933// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, 50934// OR the last index of `val` in `buffer` at offset <= `byteOffset`. 50935// 50936// Arguments: 50937// - buffer - a Buffer to search 50938// - val - a string, Buffer, or number 50939// - byteOffset - an index into `buffer`; will be clamped to an int32 50940// - encoding - an optional encoding, relevant is val is a string 50941// - dir - true for indexOf, false for lastIndexOf 50942function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { 50943 // Empty buffer means no match 50944 if (buffer.length === 0) return -1 50945 50946 // Normalize byteOffset 50947 if (typeof byteOffset === 'string') { 50948 encoding = byteOffset 50949 byteOffset = 0 50950 } else if (byteOffset > 0x7fffffff) { 50951 byteOffset = 0x7fffffff 50952 } else if (byteOffset < -0x80000000) { 50953 byteOffset = -0x80000000 50954 } 50955 byteOffset = +byteOffset // Coerce to Number. 50956 if (isNaN(byteOffset)) { 50957 // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer 50958 byteOffset = dir ? 0 : (buffer.length - 1) 50959 } 50960 50961 // Normalize byteOffset: negative offsets start from the end of the buffer 50962 if (byteOffset < 0) byteOffset = buffer.length + byteOffset 50963 if (byteOffset >= buffer.length) { 50964 if (dir) return -1 50965 else byteOffset = buffer.length - 1 50966 } else if (byteOffset < 0) { 50967 if (dir) byteOffset = 0 50968 else return -1 50969 } 50970 50971 // Normalize val 50972 if (typeof val === 'string') { 50973 val = Buffer.from(val, encoding) 50974 } 50975 50976 // Finally, search either indexOf (if dir is true) or lastIndexOf 50977 if (Buffer.isBuffer(val)) { 50978 // Special case: looking for empty string/buffer always fails 50979 if (val.length === 0) { 50980 return -1 50981 } 50982 return arrayIndexOf(buffer, val, byteOffset, encoding, dir) 50983 } else if (typeof val === 'number') { 50984 val = val & 0xFF // Search for a byte value [0-255] 50985 if (Buffer.TYPED_ARRAY_SUPPORT && 50986 typeof Uint8Array.prototype.indexOf === 'function') { 50987 if (dir) { 50988 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) 50989 } else { 50990 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) 50991 } 50992 } 50993 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) 50994 } 50995 50996 throw new TypeError('val must be string, number or Buffer') 50997} 50998 50999function arrayIndexOf (arr, val, byteOffset, encoding, dir) { 51000 var indexSize = 1 51001 var arrLength = arr.length 51002 var valLength = val.length 51003 51004 if (encoding !== undefined) { 51005 encoding = String(encoding).toLowerCase() 51006 if (encoding === 'ucs2' || encoding === 'ucs-2' || 51007 encoding === 'utf16le' || encoding === 'utf-16le') { 51008 if (arr.length < 2 || val.length < 2) { 51009 return -1 51010 } 51011 indexSize = 2 51012 arrLength /= 2 51013 valLength /= 2 51014 byteOffset /= 2 51015 } 51016 } 51017 51018 function read (buf, i) { 51019 if (indexSize === 1) { 51020 return buf[i] 51021 } else { 51022 return buf.readUInt16BE(i * indexSize) 51023 } 51024 } 51025 51026 var i 51027 if (dir) { 51028 var foundIndex = -1 51029 for (i = byteOffset; i < arrLength; i++) { 51030 if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { 51031 if (foundIndex === -1) foundIndex = i 51032 if (i - foundIndex + 1 === valLength) return foundIndex * indexSize 51033 } else { 51034 if (foundIndex !== -1) i -= i - foundIndex 51035 foundIndex = -1 51036 } 51037 } 51038 } else { 51039 if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength 51040 for (i = byteOffset; i >= 0; i--) { 51041 var found = true 51042 for (var j = 0; j < valLength; j++) { 51043 if (read(arr, i + j) !== read(val, j)) { 51044 found = false 51045 break 51046 } 51047 } 51048 if (found) return i 51049 } 51050 } 51051 51052 return -1 51053} 51054 51055Buffer.prototype.includes = function includes (val, byteOffset, encoding) { 51056 return this.indexOf(val, byteOffset, encoding) !== -1 51057} 51058 51059Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { 51060 return bidirectionalIndexOf(this, val, byteOffset, encoding, true) 51061} 51062 51063Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { 51064 return bidirectionalIndexOf(this, val, byteOffset, encoding, false) 51065} 51066 51067function hexWrite (buf, string, offset, length) { 51068 offset = Number(offset) || 0 51069 var remaining = buf.length - offset 51070 if (!length) { 51071 length = remaining 51072 } else { 51073 length = Number(length) 51074 if (length > remaining) { 51075 length = remaining 51076 } 51077 } 51078 51079 // must be an even number of digits 51080 var strLen = string.length 51081 if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') 51082 51083 if (length > strLen / 2) { 51084 length = strLen / 2 51085 } 51086 for (var i = 0; i < length; ++i) { 51087 var parsed = parseInt(string.substr(i * 2, 2), 16) 51088 if (isNaN(parsed)) return i 51089 buf[offset + i] = parsed 51090 } 51091 return i 51092} 51093 51094function utf8Write (buf, string, offset, length) { 51095 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) 51096} 51097 51098function asciiWrite (buf, string, offset, length) { 51099 return blitBuffer(asciiToBytes(string), buf, offset, length) 51100} 51101 51102function latin1Write (buf, string, offset, length) { 51103 return asciiWrite(buf, string, offset, length) 51104} 51105 51106function base64Write (buf, string, offset, length) { 51107 return blitBuffer(base64ToBytes(string), buf, offset, length) 51108} 51109 51110function ucs2Write (buf, string, offset, length) { 51111 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) 51112} 51113 51114Buffer.prototype.write = function write (string, offset, length, encoding) { 51115 // Buffer#write(string) 51116 if (offset === undefined) { 51117 encoding = 'utf8' 51118 length = this.length 51119 offset = 0 51120 // Buffer#write(string, encoding) 51121 } else if (length === undefined && typeof offset === 'string') { 51122 encoding = offset 51123 length = this.length 51124 offset = 0 51125 // Buffer#write(string, offset[, length][, encoding]) 51126 } else if (isFinite(offset)) { 51127 offset = offset | 0 51128 if (isFinite(length)) { 51129 length = length | 0 51130 if (encoding === undefined) encoding = 'utf8' 51131 } else { 51132 encoding = length 51133 length = undefined 51134 } 51135 // legacy write(string, encoding, offset, length) - remove in v0.13 51136 } else { 51137 throw new Error( 51138 'Buffer.write(string, encoding, offset[, length]) is no longer supported' 51139 ) 51140 } 51141 51142 var remaining = this.length - offset 51143 if (length === undefined || length > remaining) length = remaining 51144 51145 if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { 51146 throw new RangeError('Attempt to write outside buffer bounds') 51147 } 51148 51149 if (!encoding) encoding = 'utf8' 51150 51151 var loweredCase = false 51152 for (;;) { 51153 switch (encoding) { 51154 case 'hex': 51155 return hexWrite(this, string, offset, length) 51156 51157 case 'utf8': 51158 case 'utf-8': 51159 return utf8Write(this, string, offset, length) 51160 51161 case 'ascii': 51162 return asciiWrite(this, string, offset, length) 51163 51164 case 'latin1': 51165 case 'binary': 51166 return latin1Write(this, string, offset, length) 51167 51168 case 'base64': 51169 // Warning: maxLength not taken into account in base64Write 51170 return base64Write(this, string, offset, length) 51171 51172 case 'ucs2': 51173 case 'ucs-2': 51174 case 'utf16le': 51175 case 'utf-16le': 51176 return ucs2Write(this, string, offset, length) 51177 51178 default: 51179 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) 51180 encoding = ('' + encoding).toLowerCase() 51181 loweredCase = true 51182 } 51183 } 51184} 51185 51186Buffer.prototype.toJSON = function toJSON () { 51187 return { 51188 type: 'Buffer', 51189 data: Array.prototype.slice.call(this._arr || this, 0) 51190 } 51191} 51192 51193function base64Slice (buf, start, end) { 51194 if (start === 0 && end === buf.length) { 51195 return base64.fromByteArray(buf) 51196 } else { 51197 return base64.fromByteArray(buf.slice(start, end)) 51198 } 51199} 51200 51201function utf8Slice (buf, start, end) { 51202 end = Math.min(buf.length, end) 51203 var res = [] 51204 51205 var i = start 51206 while (i < end) { 51207 var firstByte = buf[i] 51208 var codePoint = null 51209 var bytesPerSequence = (firstByte > 0xEF) ? 4 51210 : (firstByte > 0xDF) ? 3 51211 : (firstByte > 0xBF) ? 2 51212 : 1 51213 51214 if (i + bytesPerSequence <= end) { 51215 var secondByte, thirdByte, fourthByte, tempCodePoint 51216 51217 switch (bytesPerSequence) { 51218 case 1: 51219 if (firstByte < 0x80) { 51220 codePoint = firstByte 51221 } 51222 break 51223 case 2: 51224 secondByte = buf[i + 1] 51225 if ((secondByte & 0xC0) === 0x80) { 51226 tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) 51227 if (tempCodePoint > 0x7F) { 51228 codePoint = tempCodePoint 51229 } 51230 } 51231 break 51232 case 3: 51233 secondByte = buf[i + 1] 51234 thirdByte = buf[i + 2] 51235 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { 51236 tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) 51237 if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { 51238 codePoint = tempCodePoint 51239 } 51240 } 51241 break 51242 case 4: 51243 secondByte = buf[i + 1] 51244 thirdByte = buf[i + 2] 51245 fourthByte = buf[i + 3] 51246 if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { 51247 tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) 51248 if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { 51249 codePoint = tempCodePoint 51250 } 51251 } 51252 } 51253 } 51254 51255 if (codePoint === null) { 51256 // we did not generate a valid codePoint so insert a 51257 // replacement char (U+FFFD) and advance only 1 byte 51258 codePoint = 0xFFFD 51259 bytesPerSequence = 1 51260 } else if (codePoint > 0xFFFF) { 51261 // encode to utf16 (surrogate pair dance) 51262 codePoint -= 0x10000 51263 res.push(codePoint >>> 10 & 0x3FF | 0xD800) 51264 codePoint = 0xDC00 | codePoint & 0x3FF 51265 } 51266 51267 res.push(codePoint) 51268 i += bytesPerSequence 51269 } 51270 51271 return decodeCodePointsArray(res) 51272} 51273 51274// Based on http://stackoverflow.com/a/22747272/680742, the browser with 51275// the lowest limit is Chrome, with 0x10000 args. 51276// We go 1 magnitude less, for safety 51277var MAX_ARGUMENTS_LENGTH = 0x1000 51278 51279function decodeCodePointsArray (codePoints) { 51280 var len = codePoints.length 51281 if (len <= MAX_ARGUMENTS_LENGTH) { 51282 return String.fromCharCode.apply(String, codePoints) // avoid extra slice() 51283 } 51284 51285 // Decode in chunks to avoid "call stack size exceeded". 51286 var res = '' 51287 var i = 0 51288 while (i < len) { 51289 res += String.fromCharCode.apply( 51290 String, 51291 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) 51292 ) 51293 } 51294 return res 51295} 51296 51297function asciiSlice (buf, start, end) { 51298 var ret = '' 51299 end = Math.min(buf.length, end) 51300 51301 for (var i = start; i < end; ++i) { 51302 ret += String.fromCharCode(buf[i] & 0x7F) 51303 } 51304 return ret 51305} 51306 51307function latin1Slice (buf, start, end) { 51308 var ret = '' 51309 end = Math.min(buf.length, end) 51310 51311 for (var i = start; i < end; ++i) { 51312 ret += String.fromCharCode(buf[i]) 51313 } 51314 return ret 51315} 51316 51317function hexSlice (buf, start, end) { 51318 var len = buf.length 51319 51320 if (!start || start < 0) start = 0 51321 if (!end || end < 0 || end > len) end = len 51322 51323 var out = '' 51324 for (var i = start; i < end; ++i) { 51325 out += toHex(buf[i]) 51326 } 51327 return out 51328} 51329 51330function utf16leSlice (buf, start, end) { 51331 var bytes = buf.slice(start, end) 51332 var res = '' 51333 for (var i = 0; i < bytes.length; i += 2) { 51334 res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) 51335 } 51336 return res 51337} 51338 51339Buffer.prototype.slice = function slice (start, end) { 51340 var len = this.length 51341 start = ~~start 51342 end = end === undefined ? len : ~~end 51343 51344 if (start < 0) { 51345 start += len 51346 if (start < 0) start = 0 51347 } else if (start > len) { 51348 start = len 51349 } 51350 51351 if (end < 0) { 51352 end += len 51353 if (end < 0) end = 0 51354 } else if (end > len) { 51355 end = len 51356 } 51357 51358 if (end < start) end = start 51359 51360 var newBuf 51361 if (Buffer.TYPED_ARRAY_SUPPORT) { 51362 newBuf = this.subarray(start, end) 51363 newBuf.__proto__ = Buffer.prototype 51364 } else { 51365 var sliceLen = end - start 51366 newBuf = new Buffer(sliceLen, undefined) 51367 for (var i = 0; i < sliceLen; ++i) { 51368 newBuf[i] = this[i + start] 51369 } 51370 } 51371 51372 return newBuf 51373} 51374 51375/* 51376 * Need to make sure that buffer isn't trying to write out of bounds. 51377 */ 51378function checkOffset (offset, ext, length) { 51379 if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') 51380 if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') 51381} 51382 51383Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { 51384 offset = offset | 0 51385 byteLength = byteLength | 0 51386 if (!noAssert) checkOffset(offset, byteLength, this.length) 51387 51388 var val = this[offset] 51389 var mul = 1 51390 var i = 0 51391 while (++i < byteLength && (mul *= 0x100)) { 51392 val += this[offset + i] * mul 51393 } 51394 51395 return val 51396} 51397 51398Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { 51399 offset = offset | 0 51400 byteLength = byteLength | 0 51401 if (!noAssert) { 51402 checkOffset(offset, byteLength, this.length) 51403 } 51404 51405 var val = this[offset + --byteLength] 51406 var mul = 1 51407 while (byteLength > 0 && (mul *= 0x100)) { 51408 val += this[offset + --byteLength] * mul 51409 } 51410 51411 return val 51412} 51413 51414Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { 51415 if (!noAssert) checkOffset(offset, 1, this.length) 51416 return this[offset] 51417} 51418 51419Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { 51420 if (!noAssert) checkOffset(offset, 2, this.length) 51421 return this[offset] | (this[offset + 1] << 8) 51422} 51423 51424Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { 51425 if (!noAssert) checkOffset(offset, 2, this.length) 51426 return (this[offset] << 8) | this[offset + 1] 51427} 51428 51429Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { 51430 if (!noAssert) checkOffset(offset, 4, this.length) 51431 51432 return ((this[offset]) | 51433 (this[offset + 1] << 8) | 51434 (this[offset + 2] << 16)) + 51435 (this[offset + 3] * 0x1000000) 51436} 51437 51438Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { 51439 if (!noAssert) checkOffset(offset, 4, this.length) 51440 51441 return (this[offset] * 0x1000000) + 51442 ((this[offset + 1] << 16) | 51443 (this[offset + 2] << 8) | 51444 this[offset + 3]) 51445} 51446 51447Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { 51448 offset = offset | 0 51449 byteLength = byteLength | 0 51450 if (!noAssert) checkOffset(offset, byteLength, this.length) 51451 51452 var val = this[offset] 51453 var mul = 1 51454 var i = 0 51455 while (++i < byteLength && (mul *= 0x100)) { 51456 val += this[offset + i] * mul 51457 } 51458 mul *= 0x80 51459 51460 if (val >= mul) val -= Math.pow(2, 8 * byteLength) 51461 51462 return val 51463} 51464 51465Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { 51466 offset = offset | 0 51467 byteLength = byteLength | 0 51468 if (!noAssert) checkOffset(offset, byteLength, this.length) 51469 51470 var i = byteLength 51471 var mul = 1 51472 var val = this[offset + --i] 51473 while (i > 0 && (mul *= 0x100)) { 51474 val += this[offset + --i] * mul 51475 } 51476 mul *= 0x80 51477 51478 if (val >= mul) val -= Math.pow(2, 8 * byteLength) 51479 51480 return val 51481} 51482 51483Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { 51484 if (!noAssert) checkOffset(offset, 1, this.length) 51485 if (!(this[offset] & 0x80)) return (this[offset]) 51486 return ((0xff - this[offset] + 1) * -1) 51487} 51488 51489Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { 51490 if (!noAssert) checkOffset(offset, 2, this.length) 51491 var val = this[offset] | (this[offset + 1] << 8) 51492 return (val & 0x8000) ? val | 0xFFFF0000 : val 51493} 51494 51495Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { 51496 if (!noAssert) checkOffset(offset, 2, this.length) 51497 var val = this[offset + 1] | (this[offset] << 8) 51498 return (val & 0x8000) ? val | 0xFFFF0000 : val 51499} 51500 51501Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { 51502 if (!noAssert) checkOffset(offset, 4, this.length) 51503 51504 return (this[offset]) | 51505 (this[offset + 1] << 8) | 51506 (this[offset + 2] << 16) | 51507 (this[offset + 3] << 24) 51508} 51509 51510Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { 51511 if (!noAssert) checkOffset(offset, 4, this.length) 51512 51513 return (this[offset] << 24) | 51514 (this[offset + 1] << 16) | 51515 (this[offset + 2] << 8) | 51516 (this[offset + 3]) 51517} 51518 51519Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { 51520 if (!noAssert) checkOffset(offset, 4, this.length) 51521 return ieee754.read(this, offset, true, 23, 4) 51522} 51523 51524Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { 51525 if (!noAssert) checkOffset(offset, 4, this.length) 51526 return ieee754.read(this, offset, false, 23, 4) 51527} 51528 51529Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { 51530 if (!noAssert) checkOffset(offset, 8, this.length) 51531 return ieee754.read(this, offset, true, 52, 8) 51532} 51533 51534Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { 51535 if (!noAssert) checkOffset(offset, 8, this.length) 51536 return ieee754.read(this, offset, false, 52, 8) 51537} 51538 51539function checkInt (buf, value, offset, ext, max, min) { 51540 if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') 51541 if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') 51542 if (offset + ext > buf.length) throw new RangeError('Index out of range') 51543} 51544 51545Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { 51546 value = +value 51547 offset = offset | 0 51548 byteLength = byteLength | 0 51549 if (!noAssert) { 51550 var maxBytes = Math.pow(2, 8 * byteLength) - 1 51551 checkInt(this, value, offset, byteLength, maxBytes, 0) 51552 } 51553 51554 var mul = 1 51555 var i = 0 51556 this[offset] = value & 0xFF 51557 while (++i < byteLength && (mul *= 0x100)) { 51558 this[offset + i] = (value / mul) & 0xFF 51559 } 51560 51561 return offset + byteLength 51562} 51563 51564Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { 51565 value = +value 51566 offset = offset | 0 51567 byteLength = byteLength | 0 51568 if (!noAssert) { 51569 var maxBytes = Math.pow(2, 8 * byteLength) - 1 51570 checkInt(this, value, offset, byteLength, maxBytes, 0) 51571 } 51572 51573 var i = byteLength - 1 51574 var mul = 1 51575 this[offset + i] = value & 0xFF 51576 while (--i >= 0 && (mul *= 0x100)) { 51577 this[offset + i] = (value / mul) & 0xFF 51578 } 51579 51580 return offset + byteLength 51581} 51582 51583Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { 51584 value = +value 51585 offset = offset | 0 51586 if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) 51587 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) 51588 this[offset] = (value & 0xff) 51589 return offset + 1 51590} 51591 51592function objectWriteUInt16 (buf, value, offset, littleEndian) { 51593 if (value < 0) value = 0xffff + value + 1 51594 for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { 51595 buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> 51596 (littleEndian ? i : 1 - i) * 8 51597 } 51598} 51599 51600Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { 51601 value = +value 51602 offset = offset | 0 51603 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) 51604 if (Buffer.TYPED_ARRAY_SUPPORT) { 51605 this[offset] = (value & 0xff) 51606 this[offset + 1] = (value >>> 8) 51607 } else { 51608 objectWriteUInt16(this, value, offset, true) 51609 } 51610 return offset + 2 51611} 51612 51613Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { 51614 value = +value 51615 offset = offset | 0 51616 if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) 51617 if (Buffer.TYPED_ARRAY_SUPPORT) { 51618 this[offset] = (value >>> 8) 51619 this[offset + 1] = (value & 0xff) 51620 } else { 51621 objectWriteUInt16(this, value, offset, false) 51622 } 51623 return offset + 2 51624} 51625 51626function objectWriteUInt32 (buf, value, offset, littleEndian) { 51627 if (value < 0) value = 0xffffffff + value + 1 51628 for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { 51629 buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff 51630 } 51631} 51632 51633Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { 51634 value = +value 51635 offset = offset | 0 51636 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) 51637 if (Buffer.TYPED_ARRAY_SUPPORT) { 51638 this[offset + 3] = (value >>> 24) 51639 this[offset + 2] = (value >>> 16) 51640 this[offset + 1] = (value >>> 8) 51641 this[offset] = (value & 0xff) 51642 } else { 51643 objectWriteUInt32(this, value, offset, true) 51644 } 51645 return offset + 4 51646} 51647 51648Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { 51649 value = +value 51650 offset = offset | 0 51651 if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) 51652 if (Buffer.TYPED_ARRAY_SUPPORT) { 51653 this[offset] = (value >>> 24) 51654 this[offset + 1] = (value >>> 16) 51655 this[offset + 2] = (value >>> 8) 51656 this[offset + 3] = (value & 0xff) 51657 } else { 51658 objectWriteUInt32(this, value, offset, false) 51659 } 51660 return offset + 4 51661} 51662 51663Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { 51664 value = +value 51665 offset = offset | 0 51666 if (!noAssert) { 51667 var limit = Math.pow(2, 8 * byteLength - 1) 51668 51669 checkInt(this, value, offset, byteLength, limit - 1, -limit) 51670 } 51671 51672 var i = 0 51673 var mul = 1 51674 var sub = 0 51675 this[offset] = value & 0xFF 51676 while (++i < byteLength && (mul *= 0x100)) { 51677 if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { 51678 sub = 1 51679 } 51680 this[offset + i] = ((value / mul) >> 0) - sub & 0xFF 51681 } 51682 51683 return offset + byteLength 51684} 51685 51686Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { 51687 value = +value 51688 offset = offset | 0 51689 if (!noAssert) { 51690 var limit = Math.pow(2, 8 * byteLength - 1) 51691 51692 checkInt(this, value, offset, byteLength, limit - 1, -limit) 51693 } 51694 51695 var i = byteLength - 1 51696 var mul = 1 51697 var sub = 0 51698 this[offset + i] = value & 0xFF 51699 while (--i >= 0 && (mul *= 0x100)) { 51700 if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { 51701 sub = 1 51702 } 51703 this[offset + i] = ((value / mul) >> 0) - sub & 0xFF 51704 } 51705 51706 return offset + byteLength 51707} 51708 51709Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { 51710 value = +value 51711 offset = offset | 0 51712 if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) 51713 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) 51714 if (value < 0) value = 0xff + value + 1 51715 this[offset] = (value & 0xff) 51716 return offset + 1 51717} 51718 51719Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { 51720 value = +value 51721 offset = offset | 0 51722 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) 51723 if (Buffer.TYPED_ARRAY_SUPPORT) { 51724 this[offset] = (value & 0xff) 51725 this[offset + 1] = (value >>> 8) 51726 } else { 51727 objectWriteUInt16(this, value, offset, true) 51728 } 51729 return offset + 2 51730} 51731 51732Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { 51733 value = +value 51734 offset = offset | 0 51735 if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) 51736 if (Buffer.TYPED_ARRAY_SUPPORT) { 51737 this[offset] = (value >>> 8) 51738 this[offset + 1] = (value & 0xff) 51739 } else { 51740 objectWriteUInt16(this, value, offset, false) 51741 } 51742 return offset + 2 51743} 51744 51745Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { 51746 value = +value 51747 offset = offset | 0 51748 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) 51749 if (Buffer.TYPED_ARRAY_SUPPORT) { 51750 this[offset] = (value & 0xff) 51751 this[offset + 1] = (value >>> 8) 51752 this[offset + 2] = (value >>> 16) 51753 this[offset + 3] = (value >>> 24) 51754 } else { 51755 objectWriteUInt32(this, value, offset, true) 51756 } 51757 return offset + 4 51758} 51759 51760Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { 51761 value = +value 51762 offset = offset | 0 51763 if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) 51764 if (value < 0) value = 0xffffffff + value + 1 51765 if (Buffer.TYPED_ARRAY_SUPPORT) { 51766 this[offset] = (value >>> 24) 51767 this[offset + 1] = (value >>> 16) 51768 this[offset + 2] = (value >>> 8) 51769 this[offset + 3] = (value & 0xff) 51770 } else { 51771 objectWriteUInt32(this, value, offset, false) 51772 } 51773 return offset + 4 51774} 51775 51776function checkIEEE754 (buf, value, offset, ext, max, min) { 51777 if (offset + ext > buf.length) throw new RangeError('Index out of range') 51778 if (offset < 0) throw new RangeError('Index out of range') 51779} 51780 51781function writeFloat (buf, value, offset, littleEndian, noAssert) { 51782 if (!noAssert) { 51783 checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) 51784 } 51785 ieee754.write(buf, value, offset, littleEndian, 23, 4) 51786 return offset + 4 51787} 51788 51789Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { 51790 return writeFloat(this, value, offset, true, noAssert) 51791} 51792 51793Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { 51794 return writeFloat(this, value, offset, false, noAssert) 51795} 51796 51797function writeDouble (buf, value, offset, littleEndian, noAssert) { 51798 if (!noAssert) { 51799 checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) 51800 } 51801 ieee754.write(buf, value, offset, littleEndian, 52, 8) 51802 return offset + 8 51803} 51804 51805Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { 51806 return writeDouble(this, value, offset, true, noAssert) 51807} 51808 51809Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { 51810 return writeDouble(this, value, offset, false, noAssert) 51811} 51812 51813// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) 51814Buffer.prototype.copy = function copy (target, targetStart, start, end) { 51815 if (!start) start = 0 51816 if (!end && end !== 0) end = this.length 51817 if (targetStart >= target.length) targetStart = target.length 51818 if (!targetStart) targetStart = 0 51819 if (end > 0 && end < start) end = start 51820 51821 // Copy 0 bytes; we're done 51822 if (end === start) return 0 51823 if (target.length === 0 || this.length === 0) return 0 51824 51825 // Fatal error conditions 51826 if (targetStart < 0) { 51827 throw new RangeError('targetStart out of bounds') 51828 } 51829 if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') 51830 if (end < 0) throw new RangeError('sourceEnd out of bounds') 51831 51832 // Are we oob? 51833 if (end > this.length) end = this.length 51834 if (target.length - targetStart < end - start) { 51835 end = target.length - targetStart + start 51836 } 51837 51838 var len = end - start 51839 var i 51840 51841 if (this === target && start < targetStart && targetStart < end) { 51842 // descending copy from end 51843 for (i = len - 1; i >= 0; --i) { 51844 target[i + targetStart] = this[i + start] 51845 } 51846 } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { 51847 // ascending copy from start 51848 for (i = 0; i < len; ++i) { 51849 target[i + targetStart] = this[i + start] 51850 } 51851 } else { 51852 Uint8Array.prototype.set.call( 51853 target, 51854 this.subarray(start, start + len), 51855 targetStart 51856 ) 51857 } 51858 51859 return len 51860} 51861 51862// Usage: 51863// buffer.fill(number[, offset[, end]]) 51864// buffer.fill(buffer[, offset[, end]]) 51865// buffer.fill(string[, offset[, end]][, encoding]) 51866Buffer.prototype.fill = function fill (val, start, end, encoding) { 51867 // Handle string cases: 51868 if (typeof val === 'string') { 51869 if (typeof start === 'string') { 51870 encoding = start 51871 start = 0 51872 end = this.length 51873 } else if (typeof end === 'string') { 51874 encoding = end 51875 end = this.length 51876 } 51877 if (val.length === 1) { 51878 var code = val.charCodeAt(0) 51879 if (code < 256) { 51880 val = code 51881 } 51882 } 51883 if (encoding !== undefined && typeof encoding !== 'string') { 51884 throw new TypeError('encoding must be a string') 51885 } 51886 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { 51887 throw new TypeError('Unknown encoding: ' + encoding) 51888 } 51889 } else if (typeof val === 'number') { 51890 val = val & 255 51891 } 51892 51893 // Invalid ranges are not set to a default, so can range check early. 51894 if (start < 0 || this.length < start || this.length < end) { 51895 throw new RangeError('Out of range index') 51896 } 51897 51898 if (end <= start) { 51899 return this 51900 } 51901 51902 start = start >>> 0 51903 end = end === undefined ? this.length : end >>> 0 51904 51905 if (!val) val = 0 51906 51907 var i 51908 if (typeof val === 'number') { 51909 for (i = start; i < end; ++i) { 51910 this[i] = val 51911 } 51912 } else { 51913 var bytes = Buffer.isBuffer(val) 51914 ? val 51915 : utf8ToBytes(new Buffer(val, encoding).toString()) 51916 var len = bytes.length 51917 for (i = 0; i < end - start; ++i) { 51918 this[i + start] = bytes[i % len] 51919 } 51920 } 51921 51922 return this 51923} 51924 51925// HELPER FUNCTIONS 51926// ================ 51927 51928var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g 51929 51930function base64clean (str) { 51931 // Node strips out invalid characters like \n and \t from the string, base64-js does not 51932 str = stringtrim(str).replace(INVALID_BASE64_RE, '') 51933 // Node converts strings with length < 2 to '' 51934 if (str.length < 2) return '' 51935 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not 51936 while (str.length % 4 !== 0) { 51937 str = str + '=' 51938 } 51939 return str 51940} 51941 51942function stringtrim (str) { 51943 if (str.trim) return str.trim() 51944 return str.replace(/^\s+|\s+$/g, '') 51945} 51946 51947function toHex (n) { 51948 if (n < 16) return '0' + n.toString(16) 51949 return n.toString(16) 51950} 51951 51952function utf8ToBytes (string, units) { 51953 units = units || Infinity 51954 var codePoint 51955 var length = string.length 51956 var leadSurrogate = null 51957 var bytes = [] 51958 51959 for (var i = 0; i < length; ++i) { 51960 codePoint = string.charCodeAt(i) 51961 51962 // is surrogate component 51963 if (codePoint > 0xD7FF && codePoint < 0xE000) { 51964 // last char was a lead 51965 if (!leadSurrogate) { 51966 // no lead yet 51967 if (codePoint > 0xDBFF) { 51968 // unexpected trail 51969 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) 51970 continue 51971 } else if (i + 1 === length) { 51972 // unpaired lead 51973 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) 51974 continue 51975 } 51976 51977 // valid lead 51978 leadSurrogate = codePoint 51979 51980 continue 51981 } 51982 51983 // 2 leads in a row 51984 if (codePoint < 0xDC00) { 51985 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) 51986 leadSurrogate = codePoint 51987 continue 51988 } 51989 51990 // valid surrogate pair 51991 codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 51992 } else if (leadSurrogate) { 51993 // valid bmp char, but last char was a lead 51994 if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) 51995 } 51996 51997 leadSurrogate = null 51998 51999 // encode utf8 52000 if (codePoint < 0x80) { 52001 if ((units -= 1) < 0) break 52002 bytes.push(codePoint) 52003 } else if (codePoint < 0x800) { 52004 if ((units -= 2) < 0) break 52005 bytes.push( 52006 codePoint >> 0x6 | 0xC0, 52007 codePoint & 0x3F | 0x80 52008 ) 52009 } else if (codePoint < 0x10000) { 52010 if ((units -= 3) < 0) break 52011 bytes.push( 52012 codePoint >> 0xC | 0xE0, 52013 codePoint >> 0x6 & 0x3F | 0x80, 52014 codePoint & 0x3F | 0x80 52015 ) 52016 } else if (codePoint < 0x110000) { 52017 if ((units -= 4) < 0) break 52018 bytes.push( 52019 codePoint >> 0x12 | 0xF0, 52020 codePoint >> 0xC & 0x3F | 0x80, 52021 codePoint >> 0x6 & 0x3F | 0x80, 52022 codePoint & 0x3F | 0x80 52023 ) 52024 } else { 52025 throw new Error('Invalid code point') 52026 } 52027 } 52028 52029 return bytes 52030} 52031 52032function asciiToBytes (str) { 52033 var byteArray = [] 52034 for (var i = 0; i < str.length; ++i) { 52035 // Node's code seems to be doing this and not & 0x7F.. 52036 byteArray.push(str.charCodeAt(i) & 0xFF) 52037 } 52038 return byteArray 52039} 52040 52041function utf16leToBytes (str, units) { 52042 var c, hi, lo 52043 var byteArray = [] 52044 for (var i = 0; i < str.length; ++i) { 52045 if ((units -= 2) < 0) break 52046 52047 c = str.charCodeAt(i) 52048 hi = c >> 8 52049 lo = c % 256 52050 byteArray.push(lo) 52051 byteArray.push(hi) 52052 } 52053 52054 return byteArray 52055} 52056 52057function base64ToBytes (str) { 52058 return base64.toByteArray(base64clean(str)) 52059} 52060 52061function blitBuffer (src, dst, offset, length) { 52062 for (var i = 0; i < length; ++i) { 52063 if ((i + offset >= dst.length) || (i >= src.length)) break 52064 dst[i + offset] = src[i] 52065 } 52066 return i 52067} 52068 52069function isnan (val) { 52070 return val !== val // eslint-disable-line no-self-compare 52071} 52072 52073/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 52074 52075/***/ }), 52076
vendor: 4,310 bytes, lines 52077-52286
52077/***/ "./node_modules/cookie/index.js": 52078/*!**************************************!*\ 52079 !*** ./node_modules/cookie/index.js ***! 52080 \**************************************/ 52081/*! no static exports found */ 52082/***/ (function(module, exports, __webpack_require__) { 52083 52084"use strict"; 52085/*! 52086 * cookie 52087 * Copyright(c) 2012-2014 Roman Shtylman 52088 * Copyright(c) 2015 Douglas Christopher Wilson 52089 * MIT Licensed 52090 */ 52091 52092 52093 52094/** 52095 * Module exports. 52096 * @public 52097 */ 52098 52099exports.parse = parse; 52100exports.serialize = serialize; 52101 52102/** 52103 * Module variables. 52104 * @private 52105 */ 52106 52107var decode = decodeURIComponent; 52108var encode = encodeURIComponent; 52109var pairSplitRegExp = /; */; 52110 52111/** 52112 * RegExp to match field-content in RFC 7230 sec 3.2 52113 * 52114 * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] 52115 * field-vchar = VCHAR / obs-text 52116 * obs-text = %x80-FF 52117 */ 52118 52119var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; 52120 52121/** 52122 * Parse a cookie header. 52123 * 52124 * Parse the given cookie header string into an object 52125 * The object has the various cookies as keys(names) => values 52126 * 52127 * @param {string} str 52128 * @param {object} [options] 52129 * @return {object} 52130 * @public 52131 */ 52132 52133function parse(str, options) { 52134 if (typeof str !== 'string') { 52135 throw new TypeError('argument str must be a string'); 52136 } 52137 52138 var obj = {} 52139 var opt = options || {}; 52140 var pairs = str.split(pairSplitRegExp); 52141 var dec = opt.decode || decode; 52142 52143 for (var i = 0; i < pairs.length; i++) { 52144 var pair = pairs[i]; 52145 var eq_idx = pair.indexOf('='); 52146 52147 // skip things that don't look like key=value 52148 if (eq_idx < 0) { 52149 continue; 52150 } 52151 52152 var key = pair.substr(0, eq_idx).trim() 52153 var val = pair.substr(++eq_idx, pair.length).trim(); 52154 52155 // quoted values 52156 if ('"' == val[0]) { 52157 val = val.slice(1, -1); 52158 } 52159 52160 // only assign once 52161 if (undefined == obj[key]) { 52162 obj[key] = tryDecode(val, dec); 52163 } 52164 } 52165 52166 return obj; 52167} 52168 52169/** 52170 * Serialize data into a cookie header. 52171 * 52172 * Serialize the a name value pair into a cookie string suitable for 52173 * http headers. An optional options object specified cookie parameters. 52174 * 52175 * serialize('foo', 'bar', { httpOnly: true }) 52176 * => "foo=bar; httpOnly" 52177 * 52178 * @param {string} name 52179 * @param {string} val 52180 * @param {object} [options] 52181 * @return {string} 52182 * @public 52183 */ 52184 52185function serialize(name, val, options) { 52186 var opt = options || {}; 52187 var enc = opt.encode || encode; 52188 52189 if (typeof enc !== 'function') { 52190 throw new TypeError('option encode is invalid'); 52191 } 52192 52193 if (!fieldContentRegExp.test(name)) { 52194 throw new TypeError('argument name is invalid'); 52195 } 52196 52197 var value = enc(val); 52198 52199 if (value && !fieldContentRegExp.test(value)) { 52200 throw new TypeError('argument val is invalid'); 52201 } 52202 52203 var str = name + '=' + value; 52204 52205 if (null != opt.maxAge) { 52206 var maxAge = opt.maxAge - 0; 52207 if (isNaN(maxAge)) throw new Error('maxAge should be a Number'); 52208 str += '; Max-Age=' + Math.floor(maxAge); 52209 } 52210 52211 if (opt.domain) { 52212 if (!fieldContentRegExp.test(opt.domain)) { 52213 throw new TypeError('option domain is invalid'); 52214 } 52215 52216 str += '; Domain=' + opt.domain; 52217 } 52218 52219 if (opt.path) { 52220 if (!fieldContentRegExp.test(opt.path)) { 52221 throw new TypeError('option path is invalid'); 52222 } 52223 52224 str += '; Path=' + opt.path; 52225 } 52226 52227 if (opt.expires) { 52228 if (typeof opt.expires.toUTCString !== 'function') { 52229 throw new TypeError('option expires is invalid'); 52230 } 52231 52232 str += '; Expires=' + opt.expires.toUTCString(); 52233 } 52234 52235 if (opt.httpOnly) { 52236 str += '; HttpOnly'; 52237 } 52238 52239 if (opt.secure) { 52240 str += '; Secure'; 52241 } 52242 52243 if (opt.sameSite) { 52244 var sameSite = typeof opt.sameSite === 'string' 52245 ? opt.sameSite.toLowerCase() : opt.sameSite; 52246 52247 switch (sameSite) { 52248 case true: 52249 str += '; SameSite=Strict'; 52250 break; 52251 case 'lax': 52252 str += '; SameSite=Lax'; 52253 break; 52254 case 'strict': 52255 str += '; SameSite=Strict'; 52256 break; 52257 case 'none': 52258 str += '; SameSite=None'; 52259 break; 52260 default: 52261 throw new TypeError('option sameSite is invalid'); 52262 } 52263 } 52264 52265 return str; 52266} 52267 52268/** 52269 * Try decoding a string using a decoding function. 52270 * 52271 * @param {string} str 52272 * @param {function} decode 52273 * @private 52274 */ 52275 52276function tryDecode(str, decode) { 52277 try { 52278 return decode(str); 52279 } catch (e) { 52280 return str; 52281 } 52282} 52283 52284 52285/***/ }), 52286
vendor: 455 bytes, lines 52287-52302
52287/***/ "./node_modules/core-js/internals/a-function.js": 52288/*!******************************************************!*\ 52289 !*** ./node_modules/core-js/internals/a-function.js ***! 52290 \******************************************************/ 52291/*! no static exports found */ 52292/***/ (function(module, exports) { 52293 52294module.exports = function (it) { 52295 if (typeof it != 'function') { 52296 throw TypeError(String(it) + ' is not a function'); 52297 } return it; 52298}; 52299 52300 52301/***/ }), 52302
vendor: 649 bytes, lines 52303-52320
52303/***/ "./node_modules/core-js/internals/a-possible-prototype.js": 52304/*!****************************************************************!*\ 52305 !*** ./node_modules/core-js/internals/a-possible-prototype.js ***! 52306 \****************************************************************/ 52307/*! no static exports found */ 52308/***/ (function(module, exports, __webpack_require__) { 52309 52310var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 52311 52312module.exports = function (it) { 52313 if (!isObject(it) && it !== null) { 52314 throw TypeError("Can't set " + String(it) + ' as a prototype'); 52315 } return it; 52316}; 52317 52318 52319/***/ }), 52320
vendor: 1,261 bytes, lines 52321-52351
52321/***/ "./node_modules/core-js/internals/add-to-unscopables.js": 52322/*!**************************************************************!*\ 52323 !*** ./node_modules/core-js/internals/add-to-unscopables.js ***! 52324 \**************************************************************/ 52325/*! no static exports found */ 52326/***/ (function(module, exports, __webpack_require__) { 52327 52328var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 52329var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 52330var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 52331 52332var UNSCOPABLES = wellKnownSymbol('unscopables'); 52333var ArrayPrototype = Array.prototype; 52334 52335// Array.prototype[@@unscopables] 52336// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 52337if (ArrayPrototype[UNSCOPABLES] == undefined) { 52338 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { 52339 configurable: true, 52340 value: create(null) 52341 }); 52342} 52343 52344// add a key to Array.prototype[@@unscopables] 52345module.exports = function (key) { 52346 ArrayPrototype[UNSCOPABLES][key] = true; 52347}; 52348 52349 52350/***/ }), 52351
vendor: 736 bytes, lines 52352-52371
52352/***/ "./node_modules/core-js/internals/advance-string-index.js": 52353/*!****************************************************************!*\ 52354 !*** ./node_modules/core-js/internals/advance-string-index.js ***! 52355 \****************************************************************/ 52356/*! no static exports found */ 52357/***/ (function(module, exports, __webpack_require__) { 52358 52359"use strict"; 52360 52361var charAt = __webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt; 52362 52363// `AdvanceStringIndex` abstract operation 52364// https://tc39.github.io/ecma262/#sec-advancestringindex 52365module.exports = function (S, index, unicode) { 52366 return index + (unicode ? charAt(S, index).length : 1); 52367}; 52368 52369 52370/***/ }), 52371
vendor: 504 bytes, lines 52372-52387
52372/***/ "./node_modules/core-js/internals/an-instance.js": 52373/*!*******************************************************!*\ 52374 !*** ./node_modules/core-js/internals/an-instance.js ***! 52375 \*******************************************************/ 52376/*! no static exports found */ 52377/***/ (function(module, exports) { 52378 52379module.exports = function (it, Constructor, name) { 52380 if (!(it instanceof Constructor)) { 52381 throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); 52382 } return it; 52383}; 52384 52385 52386/***/ }), 52387
vendor: 577 bytes, lines 52388-52405
52388/***/ "./node_modules/core-js/internals/an-object.js": 52389/*!*****************************************************!*\ 52390 !*** ./node_modules/core-js/internals/an-object.js ***! 52391 \*****************************************************/ 52392/*! no static exports found */ 52393/***/ (function(module, exports, __webpack_require__) { 52394 52395var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 52396 52397module.exports = function (it) { 52398 if (!isObject(it)) { 52399 throw TypeError(String(it) + ' is not an object'); 52400 } return it; 52401}; 52402 52403 52404/***/ }), 52405
vendor: 2,701 bytes, lines 52406-52458
52406/***/ "./node_modules/core-js/internals/array-from.js": 52407/*!******************************************************!*\ 52408 !*** ./node_modules/core-js/internals/array-from.js ***! 52409 \******************************************************/ 52410/*! no static exports found */ 52411/***/ (function(module, exports, __webpack_require__) { 52412 52413"use strict"; 52414 52415var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 52416var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 52417var callWithSafeIterationClosing = __webpack_require__(/*! ../internals/call-with-safe-iteration-closing */ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); 52418var isArrayIteratorMethod = __webpack_require__(/*! ../internals/is-array-iterator-method */ "./node_modules/core-js/internals/is-array-iterator-method.js"); 52419var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 52420var createProperty = __webpack_require__(/*! ../internals/create-property */ "./node_modules/core-js/internals/create-property.js"); 52421var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); 52422 52423// `Array.from` method implementation 52424// https://tc39.github.io/ecma262/#sec-array.from 52425module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { 52426 var O = toObject(arrayLike); 52427 var C = typeof this == 'function' ? this : Array; 52428 var argumentsLength = arguments.length; 52429 var mapfn = argumentsLength > 1 ? arguments[1] : undefined; 52430 var mapping = mapfn !== undefined; 52431 var iteratorMethod = getIteratorMethod(O); 52432 var index = 0; 52433 var length, result, step, iterator, next, value; 52434 if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); 52435 // if the target is not iterable or it's an array with the default iterator - use a simple case 52436 if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { 52437 iterator = iteratorMethod.call(O); 52438 next = iterator.next; 52439 result = new C(); 52440 for (;!(step = next.call(iterator)).done; index++) { 52441 value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; 52442 createProperty(result, index, value); 52443 } 52444 } else { 52445 length = toLength(O.length); 52446 result = new C(length); 52447 for (;length > index; index++) { 52448 value = mapping ? mapfn(O[index], index) : O[index]; 52449 createProperty(result, index, value); 52450 } 52451 } 52452 result.length = index; 52453 return result; 52454}; 52455 52456 52457/***/ }), 52458
vendor: 1,846 bytes, lines 52459-52501
52459/***/ "./node_modules/core-js/internals/array-includes.js": 52460/*!**********************************************************!*\ 52461 !*** ./node_modules/core-js/internals/array-includes.js ***! 52462 \**********************************************************/ 52463/*! no static exports found */ 52464/***/ (function(module, exports, __webpack_require__) { 52465 52466var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 52467var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 52468var toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ "./node_modules/core-js/internals/to-absolute-index.js"); 52469 52470// `Array.prototype.{ indexOf, includes }` methods implementation 52471var createMethod = function (IS_INCLUDES) { 52472 return function ($this, el, fromIndex) { 52473 var O = toIndexedObject($this); 52474 var length = toLength(O.length); 52475 var index = toAbsoluteIndex(fromIndex, length); 52476 var value; 52477 // Array#includes uses SameValueZero equality algorithm 52478 // eslint-disable-next-line no-self-compare 52479 if (IS_INCLUDES && el != el) while (length > index) { 52480 value = O[index++]; 52481 // eslint-disable-next-line no-self-compare 52482 if (value != value) return true; 52483 // Array#indexOf ignores holes, Array#includes - not 52484 } else for (;length > index; index++) { 52485 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 52486 } return !IS_INCLUDES && -1; 52487 }; 52488}; 52489 52490module.exports = { 52491 // `Array.prototype.includes` method 52492 // https://tc39.github.io/ecma262/#sec-array.prototype.includes 52493 includes: createMethod(true), 52494 // `Array.prototype.indexOf` method 52495 // https://tc39.github.io/ecma262/#sec-array.prototype.indexof 52496 indexOf: createMethod(false) 52497}; 52498 52499 52500/***/ }), 52501
vendor: 945 bytes, lines 52502-52525
52502/***/ "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": 52503/*!****************************************************************************!*\ 52504 !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! 52505 \****************************************************************************/ 52506/*! no static exports found */ 52507/***/ (function(module, exports, __webpack_require__) { 52508 52509var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 52510 52511// call something on iterator step with safe closing on error 52512module.exports = function (iterator, fn, value, ENTRIES) { 52513 try { 52514 return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); 52515 // 7.4.6 IteratorClose(iterator, completion) 52516 } catch (error) { 52517 var returnMethod = iterator['return']; 52518 if (returnMethod !== undefined) anObject(returnMethod.call(iterator)); 52519 throw error; 52520 } 52521}; 52522 52523 52524/***/ }), 52525
vendor: 425 bytes, lines 52526-52541
52526/***/ "./node_modules/core-js/internals/classof-raw.js": 52527/*!*******************************************************!*\ 52528 !*** ./node_modules/core-js/internals/classof-raw.js ***! 52529 \*******************************************************/ 52530/*! no static exports found */ 52531/***/ (function(module, exports) { 52532 52533var toString = {}.toString; 52534 52535module.exports = function (it) { 52536 return toString.call(it).slice(8, -1); 52537}; 52538 52539 52540/***/ }), 52541
vendor: 1,550 bytes, lines 52542-52578
52542/***/ "./node_modules/core-js/internals/classof.js": 52543/*!***************************************************!*\ 52544 !*** ./node_modules/core-js/internals/classof.js ***! 52545 \***************************************************/ 52546/*! no static exports found */ 52547/***/ (function(module, exports, __webpack_require__) { 52548 52549var TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ "./node_modules/core-js/internals/to-string-tag-support.js"); 52550var classofRaw = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 52551var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 52552 52553var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 52554// ES3 wrong here 52555var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; 52556 52557// fallback for IE11 Script Access Denied error 52558var tryGet = function (it, key) { 52559 try { 52560 return it[key]; 52561 } catch (error) { /* empty */ } 52562}; 52563 52564// getting tag from ES6+ `Object.prototype.toString` 52565module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { 52566 var O, tag, result; 52567 return it === undefined ? 'Undefined' : it === null ? 'Null' 52568 // @@toStringTag case 52569 : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag 52570 // builtinTag case 52571 : CORRECT_ARGUMENTS ? classofRaw(O) 52572 // ES3 arguments fallback 52573 : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; 52574}; 52575 52576 52577/***/ }), 52578
vendor: 1,311 bytes, lines 52579-52603
52579/***/ "./node_modules/core-js/internals/copy-constructor-properties.js": 52580/*!***********************************************************************!*\ 52581 !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! 52582 \***********************************************************************/ 52583/*! no static exports found */ 52584/***/ (function(module, exports, __webpack_require__) { 52585 52586var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 52587var ownKeys = __webpack_require__(/*! ../internals/own-keys */ "./node_modules/core-js/internals/own-keys.js"); 52588var getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js"); 52589var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 52590 52591module.exports = function (target, source) { 52592 var keys = ownKeys(source); 52593 var defineProperty = definePropertyModule.f; 52594 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 52595 for (var i = 0; i < keys.length; i++) { 52596 var key = keys[i]; 52597 if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 52598 } 52599}; 52600 52601 52602/***/ }), 52603
vendor: 661 bytes, lines 52604-52621
52604/***/ "./node_modules/core-js/internals/correct-prototype-getter.js": 52605/*!********************************************************************!*\ 52606 !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! 52607 \********************************************************************/ 52608/*! no static exports found */ 52609/***/ (function(module, exports, __webpack_require__) { 52610 52611var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 52612 52613module.exports = !fails(function () { 52614 function F() { /* empty */ } 52615 F.prototype.constructor = null; 52616 return Object.getPrototypeOf(new F()) !== F.prototype; 52617}); 52618 52619 52620/***/ }), 52621
vendor: 1,510 bytes, lines 52622-52649
52622/***/ "./node_modules/core-js/internals/create-iterator-constructor.js": 52623/*!***********************************************************************!*\ 52624 !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! 52625 \***********************************************************************/ 52626/*! no static exports found */ 52627/***/ (function(module, exports, __webpack_require__) { 52628 52629"use strict"; 52630 52631var IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js").IteratorPrototype; 52632var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 52633var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 52634var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 52635var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 52636 52637var returnThis = function () { return this; }; 52638 52639module.exports = function (IteratorConstructor, NAME, next) { 52640 var TO_STRING_TAG = NAME + ' Iterator'; 52641 IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); 52642 setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); 52643 Iterators[TO_STRING_TAG] = returnThis; 52644 return IteratorConstructor; 52645}; 52646 52647 52648/***/ }), 52649
vendor: 1,081 bytes, lines 52650-52670
52650/***/ "./node_modules/core-js/internals/create-non-enumerable-property.js": 52651/*!**************************************************************************!*\ 52652 !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***! 52653 \**************************************************************************/ 52654/*! no static exports found */ 52655/***/ (function(module, exports, __webpack_require__) { 52656 52657var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 52658var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 52659var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 52660 52661module.exports = DESCRIPTORS ? function (object, key, value) { 52662 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); 52663} : function (object, key, value) { 52664 object[key] = value; 52665 return object; 52666}; 52667 52668 52669/***/ }), 52670
vendor: 552 bytes, lines 52671-52689
52671/***/ "./node_modules/core-js/internals/create-property-descriptor.js": 52672/*!**********************************************************************!*\ 52673 !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! 52674 \**********************************************************************/ 52675/*! no static exports found */ 52676/***/ (function(module, exports) { 52677 52678module.exports = function (bitmap, value) { 52679 return { 52680 enumerable: !(bitmap & 1), 52681 configurable: !(bitmap & 2), 52682 writable: !(bitmap & 4), 52683 value: value 52684 }; 52685}; 52686 52687 52688/***/ }), 52689
vendor: 1,050 bytes, lines 52690-52711
52690/***/ "./node_modules/core-js/internals/create-property.js": 52691/*!***********************************************************!*\ 52692 !*** ./node_modules/core-js/internals/create-property.js ***! 52693 \***********************************************************/ 52694/*! no static exports found */ 52695/***/ (function(module, exports, __webpack_require__) { 52696 52697"use strict"; 52698 52699var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 52700var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 52701var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 52702 52703module.exports = function (object, key, value) { 52704 var propertyKey = toPrimitive(key); 52705 if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); 52706 else object[propertyKey] = value; 52707}; 52708 52709 52710/***/ }), 52711
vendor: 5,196 bytes, lines 52712-52813
52712/***/ "./node_modules/core-js/internals/define-iterator.js": 52713/*!***********************************************************!*\ 52714 !*** ./node_modules/core-js/internals/define-iterator.js ***! 52715 \***********************************************************/ 52716/*! no static exports found */ 52717/***/ (function(module, exports, __webpack_require__) { 52718 52719"use strict"; 52720 52721var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 52722var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ "./node_modules/core-js/internals/create-iterator-constructor.js"); 52723var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); 52724var setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ "./node_modules/core-js/internals/object-set-prototype-of.js"); 52725var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 52726var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 52727var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 52728var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 52729var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 52730var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 52731var IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ "./node_modules/core-js/internals/iterators-core.js"); 52732 52733var IteratorPrototype = IteratorsCore.IteratorPrototype; 52734var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; 52735var ITERATOR = wellKnownSymbol('iterator'); 52736var KEYS = 'keys'; 52737var VALUES = 'values'; 52738var ENTRIES = 'entries'; 52739 52740var returnThis = function () { return this; }; 52741 52742module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { 52743 createIteratorConstructor(IteratorConstructor, NAME, next); 52744 52745 var getIterationMethod = function (KIND) { 52746 if (KIND === DEFAULT && defaultIterator) return defaultIterator; 52747 if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; 52748 switch (KIND) { 52749 case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; 52750 case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; 52751 case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; 52752 } return function () { return new IteratorConstructor(this); }; 52753 }; 52754 52755 var TO_STRING_TAG = NAME + ' Iterator'; 52756 var INCORRECT_VALUES_NAME = false; 52757 var IterablePrototype = Iterable.prototype; 52758 var nativeIterator = IterablePrototype[ITERATOR] 52759 || IterablePrototype['@@iterator'] 52760 || DEFAULT && IterablePrototype[DEFAULT]; 52761 var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); 52762 var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; 52763 var CurrentIteratorPrototype, methods, KEY; 52764 52765 // fix native 52766 if (anyNativeIterator) { 52767 CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); 52768 if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { 52769 if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { 52770 if (setPrototypeOf) { 52771 setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); 52772 } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { 52773 createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); 52774 } 52775 } 52776 // Set @@toStringTag to native iterators 52777 setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); 52778 if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; 52779 } 52780 } 52781 52782 // fix Array#{values, @@iterator}.name in V8 / FF 52783 if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { 52784 INCORRECT_VALUES_NAME = true; 52785 defaultIterator = function values() { return nativeIterator.call(this); }; 52786 } 52787 52788 // define iterator 52789 if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { 52790 createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); 52791 } 52792 Iterators[NAME] = defaultIterator; 52793 52794 // export additional methods 52795 if (DEFAULT) { 52796 methods = { 52797 values: getIterationMethod(VALUES), 52798 keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), 52799 entries: getIterationMethod(ENTRIES) 52800 }; 52801 if (FORCED) for (KEY in methods) { 52802 if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { 52803 redefine(IterablePrototype, KEY, methods[KEY]); 52804 } 52805 } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); 52806 } 52807 52808 return methods; 52809}; 52810 52811 52812/***/ }), 52813
vendor: 614 bytes, lines 52814-52830
52814/***/ "./node_modules/core-js/internals/descriptors.js": 52815/*!*******************************************************!*\ 52816 !*** ./node_modules/core-js/internals/descriptors.js ***! 52817 \*******************************************************/ 52818/*! no static exports found */ 52819/***/ (function(module, exports, __webpack_require__) { 52820 52821var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 52822 52823// Thank's IE8 for his funny defineProperty 52824module.exports = !fails(function () { 52825 return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; 52826}); 52827 52828 52829/***/ }), 52830
vendor: 855 bytes, lines 52831-52851
52831/***/ "./node_modules/core-js/internals/document-create-element.js": 52832/*!*******************************************************************!*\ 52833 !*** ./node_modules/core-js/internals/document-create-element.js ***! 52834 \*******************************************************************/ 52835/*! no static exports found */ 52836/***/ (function(module, exports, __webpack_require__) { 52837 52838var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 52839var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 52840 52841var document = global.document; 52842// typeof document.createElement is 'object' in old IE 52843var EXISTS = isObject(document) && isObject(document.createElement); 52844 52845module.exports = function (it) { 52846 return EXISTS ? document.createElement(it) : {}; 52847}; 52848 52849 52850/***/ }), 52851
vendor: 1,080 bytes, lines 52852-52897
52852/***/ "./node_modules/core-js/internals/dom-iterables.js": 52853/*!*********************************************************!*\ 52854 !*** ./node_modules/core-js/internals/dom-iterables.js ***! 52855 \*********************************************************/ 52856/*! no static exports found */ 52857/***/ (function(module, exports) { 52858 52859// iterable DOM collections 52860// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods 52861module.exports = { 52862 CSSRuleList: 0, 52863 CSSStyleDeclaration: 0, 52864 CSSValueList: 0, 52865 ClientRectList: 0, 52866 DOMRectList: 0, 52867 DOMStringList: 0, 52868 DOMTokenList: 1, 52869 DataTransferItemList: 0, 52870 FileList: 0, 52871 HTMLAllCollection: 0, 52872 HTMLCollection: 0, 52873 HTMLFormElement: 0, 52874 HTMLSelectElement: 0, 52875 MediaList: 0, 52876 MimeTypeArray: 0, 52877 NamedNodeMap: 0, 52878 NodeList: 1, 52879 PaintRequestList: 0, 52880 Plugin: 0, 52881 PluginArray: 0, 52882 SVGLengthList: 0, 52883 SVGNumberList: 0, 52884 SVGPathSegList: 0, 52885 SVGPointList: 0, 52886 SVGStringList: 0, 52887 SVGTransformList: 0, 52888 SourceBufferList: 0, 52889 StyleSheetList: 0, 52890 TextTrackCueList: 0, 52891 TextTrackList: 0, 52892 TouchList: 0 52893}; 52894 52895 52896/***/ }), 52897
vendor: 505 bytes, lines 52898-52918
52898/***/ "./node_modules/core-js/internals/enum-bug-keys.js": 52899/*!*********************************************************!*\ 52900 !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! 52901 \*********************************************************/ 52902/*! no static exports found */ 52903/***/ (function(module, exports) { 52904 52905// IE8- don't enum bug keys 52906module.exports = [ 52907 'constructor', 52908 'hasOwnProperty', 52909 'isPrototypeOf', 52910 'propertyIsEnumerable', 52911 'toLocaleString', 52912 'toString', 52913 'valueOf' 52914]; 52915 52916 52917/***/ }), 52918
vendor: 3,355 bytes, lines 52919-52983
52919/***/ "./node_modules/core-js/internals/export.js": 52920/*!**************************************************!*\ 52921 !*** ./node_modules/core-js/internals/export.js ***! 52922 \**************************************************/ 52923/*! no static exports found */ 52924/***/ (function(module, exports, __webpack_require__) { 52925 52926var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 52927var getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ "./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; 52928var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 52929var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 52930var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 52931var copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ "./node_modules/core-js/internals/copy-constructor-properties.js"); 52932var isForced = __webpack_require__(/*! ../internals/is-forced */ "./node_modules/core-js/internals/is-forced.js"); 52933 52934/* 52935 options.target - name of the target object 52936 options.global - target is the global object 52937 options.stat - export as static methods of target 52938 options.proto - export as prototype methods of target 52939 options.real - real prototype method for the `pure` version 52940 options.forced - export even if the native feature is available 52941 options.bind - bind methods to the target, required for the `pure` version 52942 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 52943 options.unsafe - use the simple assignment of property instead of delete + defineProperty 52944 options.sham - add a flag to not completely full polyfills 52945 options.enumerable - export as enumerable property 52946 options.noTargetGet - prevent calling a getter on target 52947*/ 52948module.exports = function (options, source) { 52949 var TARGET = options.target; 52950 var GLOBAL = options.global; 52951 var STATIC = options.stat; 52952 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 52953 if (GLOBAL) { 52954 target = global; 52955 } else if (STATIC) { 52956 target = global[TARGET] || setGlobal(TARGET, {}); 52957 } else { 52958 target = (global[TARGET] || {}).prototype; 52959 } 52960 if (target) for (key in source) { 52961 sourceProperty = source[key]; 52962 if (options.noTargetGet) { 52963 descriptor = getOwnPropertyDescriptor(target, key); 52964 targetProperty = descriptor && descriptor.value; 52965 } else targetProperty = target[key]; 52966 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 52967 // contained in target 52968 if (!FORCED && targetProperty !== undefined) { 52969 if (typeof sourceProperty === typeof targetProperty) continue; 52970 copyConstructorProperties(sourceProperty, targetProperty); 52971 } 52972 // add a flag to not completely full polyfills 52973 if (options.sham || (targetProperty && targetProperty.sham)) { 52974 createNonEnumerableProperty(sourceProperty, 'sham', true); 52975 } 52976 // extend global 52977 redefine(target, key, sourceProperty, options); 52978 } 52979}; 52980 52981 52982/***/ }), 52983
vendor: 403 bytes, lines 52984-53001
52984/***/ "./node_modules/core-js/internals/fails.js": 52985/*!*************************************************!*\ 52986 !*** ./node_modules/core-js/internals/fails.js ***! 52987 \*************************************************/ 52988/*! no static exports found */ 52989/***/ (function(module, exports) { 52990 52991module.exports = function (exec) { 52992 try { 52993 return !!exec(); 52994 } catch (error) { 52995 return true; 52996 } 52997}; 52998 52999 53000/***/ }), 53001
vendor: 5,515 bytes, lines 53002-53138
53002/***/ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js": 53003/*!******************************************************************************!*\ 53004 !*** ./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js ***! 53005 \******************************************************************************/ 53006/*! no static exports found */ 53007/***/ (function(module, exports, __webpack_require__) { 53008 53009"use strict"; 53010 53011// TODO: Remove from `core-js@4` since it's moved to entry points 53012__webpack_require__(/*! ../modules/es.regexp.exec */ "./node_modules/core-js/modules/es.regexp.exec.js"); 53013var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 53014var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53015var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 53016var regexpExec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 53017var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 53018 53019var SPECIES = wellKnownSymbol('species'); 53020 53021var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { 53022 // #replace needs built-in support for named groups. 53023 // #match works fine because it just return the exec results, even if it has 53024 // a "grops" property. 53025 var re = /./; 53026 re.exec = function () { 53027 var result = []; 53028 result.groups = { a: '7' }; 53029 return result; 53030 }; 53031 return ''.replace(re, '$<a>') !== '7'; 53032}); 53033 53034// IE <= 11 replaces $0 with the whole match, as if it was $& 53035// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0 53036var REPLACE_KEEPS_$0 = (function () { 53037 return 'a'.replace(/./, '$0') === '$0'; 53038})(); 53039 53040var REPLACE = wellKnownSymbol('replace'); 53041// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string 53042var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () { 53043 if (/./[REPLACE]) { 53044 return /./[REPLACE]('a', '$0') === ''; 53045 } 53046 return false; 53047})(); 53048 53049// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec 53050// Weex JS has frozen built-in prototypes, so use try / catch wrapper 53051var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () { 53052 var re = /(?:)/; 53053 var originalExec = re.exec; 53054 re.exec = function () { return originalExec.apply(this, arguments); }; 53055 var result = 'ab'.split(re); 53056 return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b'; 53057}); 53058 53059module.exports = function (KEY, length, exec, sham) { 53060 var SYMBOL = wellKnownSymbol(KEY); 53061 53062 var DELEGATES_TO_SYMBOL = !fails(function () { 53063 // String methods call symbol-named RegEp methods 53064 var O = {}; 53065 O[SYMBOL] = function () { return 7; }; 53066 return ''[KEY](O) != 7; 53067 }); 53068 53069 var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () { 53070 // Symbol-named RegExp methods call .exec 53071 var execCalled = false; 53072 var re = /a/; 53073 53074 if (KEY === 'split') { 53075 // We can't use real regex here since it causes deoptimization 53076 // and serious performance degradation in V8 53077 // https://github.com/zloirock/core-js/issues/306 53078 re = {}; 53079 // RegExp[@@split] doesn't call the regex's exec method, but first creates 53080 // a new one. We need to return the patched regex when creating the new one. 53081 re.constructor = {}; 53082 re.constructor[SPECIES] = function () { return re; }; 53083 re.flags = ''; 53084 re[SYMBOL] = /./[SYMBOL]; 53085 } 53086 53087 re.exec = function () { execCalled = true; return null; }; 53088 53089 re[SYMBOL](''); 53090 return !execCalled; 53091 }); 53092 53093 if ( 53094 !DELEGATES_TO_SYMBOL || 53095 !DELEGATES_TO_EXEC || 53096 (KEY === 'replace' && !( 53097 REPLACE_SUPPORTS_NAMED_GROUPS && 53098 REPLACE_KEEPS_$0 && 53099 !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE 53100 )) || 53101 (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) 53102 ) { 53103 var nativeRegExpMethod = /./[SYMBOL]; 53104 var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) { 53105 if (regexp.exec === regexpExec) { 53106 if (DELEGATES_TO_SYMBOL && !forceStringMethod) { 53107 // The native String method already delegates to @@method (this 53108 // polyfilled function), leasing to infinite recursion. 53109 // We avoid it by directly calling the native @@method method. 53110 return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; 53111 } 53112 return { done: true, value: nativeMethod.call(str, regexp, arg2) }; 53113 } 53114 return { done: false }; 53115 }, { 53116 REPLACE_KEEPS_$0: REPLACE_KEEPS_$0, 53117 REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE 53118 }); 53119 var stringMethod = methods[0]; 53120 var regexMethod = methods[1]; 53121 53122 redefine(String.prototype, KEY, stringMethod); 53123 redefine(RegExp.prototype, SYMBOL, length == 2 53124 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) 53125 // 21.2.5.11 RegExp.prototype[@@split](string, limit) 53126 ? function (string, arg) { return regexMethod.call(string, this, arg); } 53127 // 21.2.5.6 RegExp.prototype[@@match](string) 53128 // 21.2.5.9 RegExp.prototype[@@search](string) 53129 : function (string) { return regexMethod.call(string, this); } 53130 ); 53131 } 53132 53133 if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true); 53134}; 53135 53136 53137/***/ }), 53138
vendor: 1,045 bytes, lines 53139-53173
53139/***/ "./node_modules/core-js/internals/function-bind-context.js": 53140/*!*****************************************************************!*\ 53141 !*** ./node_modules/core-js/internals/function-bind-context.js ***! 53142 \*****************************************************************/ 53143/*! no static exports found */ 53144/***/ (function(module, exports, __webpack_require__) { 53145 53146var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js"); 53147 53148// optional / simple context binding 53149module.exports = function (fn, that, length) { 53150 aFunction(fn); 53151 if (that === undefined) return fn; 53152 switch (length) { 53153 case 0: return function () { 53154 return fn.call(that); 53155 }; 53156 case 1: return function (a) { 53157 return fn.call(that, a); 53158 }; 53159 case 2: return function (a, b) { 53160 return fn.call(that, a, b); 53161 }; 53162 case 3: return function (a, b, c) { 53163 return fn.call(that, a, b, c); 53164 }; 53165 } 53166 return function (/* ...args */) { 53167 return fn.apply(that, arguments); 53168 }; 53169}; 53170 53171 53172/***/ }), 53173
vendor: 900 bytes, lines 53174-53195
53174/***/ "./node_modules/core-js/internals/get-built-in.js": 53175/*!********************************************************!*\ 53176 !*** ./node_modules/core-js/internals/get-built-in.js ***! 53177 \********************************************************/ 53178/*! no static exports found */ 53179/***/ (function(module, exports, __webpack_require__) { 53180 53181var path = __webpack_require__(/*! ../internals/path */ "./node_modules/core-js/internals/path.js"); 53182var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 53183 53184var aFunction = function (variable) { 53185 return typeof variable == 'function' ? variable : undefined; 53186}; 53187 53188module.exports = function (namespace, method) { 53189 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) 53190 : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; 53191}; 53192 53193 53194/***/ }), 53195
vendor: 916 bytes, lines 53196-53217
53196/***/ "./node_modules/core-js/internals/get-iterator-method.js": 53197/*!***************************************************************!*\ 53198 !*** ./node_modules/core-js/internals/get-iterator-method.js ***! 53199 \***************************************************************/ 53200/*! no static exports found */ 53201/***/ (function(module, exports, __webpack_require__) { 53202 53203var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); 53204var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 53205var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 53206 53207var ITERATOR = wellKnownSymbol('iterator'); 53208 53209module.exports = function (it) { 53210 if (it != undefined) return it[ITERATOR] 53211 || it['@@iterator'] 53212 || Iterators[classof(it)]; 53213}; 53214 53215 53216/***/ }), 53217
vendor: 831 bytes, lines 53218-53237
53218/***/ "./node_modules/core-js/internals/get-iterator.js": 53219/*!********************************************************!*\ 53220 !*** ./node_modules/core-js/internals/get-iterator.js ***! 53221 \********************************************************/ 53222/*! no static exports found */ 53223/***/ (function(module, exports, __webpack_require__) { 53224 53225var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 53226var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); 53227 53228module.exports = function (it) { 53229 var iteratorMethod = getIteratorMethod(it); 53230 if (typeof iteratorMethod != 'function') { 53231 throw TypeError(String(it) + ' is not iterable'); 53232 } return anObject(iteratorMethod.call(it)); 53233}; 53234 53235 53236/***/ }), 53237
vendor: 978 bytes, lines 53238-53262
53238/***/ "./node_modules/core-js/internals/global.js": 53239/*!**************************************************!*\ 53240 !*** ./node_modules/core-js/internals/global.js ***! 53241 \**************************************************/ 53242/*! no static exports found */ 53243/***/ (function(module, exports, __webpack_require__) { 53244 53245/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { 53246 return it && it.Math == Math && it; 53247}; 53248 53249// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 53250module.exports = 53251 // eslint-disable-next-line no-undef 53252 check(typeof globalThis == 'object' && globalThis) || 53253 check(typeof window == 'object' && window) || 53254 check(typeof self == 'object' && self) || 53255 check(typeof global == 'object' && global) || 53256 // eslint-disable-next-line no-new-func 53257 Function('return this')(); 53258 53259/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 53260 53261/***/ }), 53262
vendor: 408 bytes, lines 53263-53278
53263/***/ "./node_modules/core-js/internals/has.js": 53264/*!***********************************************!*\ 53265 !*** ./node_modules/core-js/internals/has.js ***! 53266 \***********************************************/ 53267/*! no static exports found */ 53268/***/ (function(module, exports) { 53269 53270var hasOwnProperty = {}.hasOwnProperty; 53271 53272module.exports = function (it, key) { 53273 return hasOwnProperty.call(it, key); 53274}; 53275 53276 53277/***/ }), 53278
vendor: 340 bytes, lines 53279-53290
53279/***/ "./node_modules/core-js/internals/hidden-keys.js": 53280/*!*******************************************************!*\ 53281 !*** ./node_modules/core-js/internals/hidden-keys.js ***! 53282 \*******************************************************/ 53283/*! no static exports found */ 53284/***/ (function(module, exports) { 53285 53286module.exports = {}; 53287 53288 53289/***/ }), 53290
vendor: 496 bytes, lines 53291-53304
53291/***/ "./node_modules/core-js/internals/html.js": 53292/*!************************************************!*\ 53293 !*** ./node_modules/core-js/internals/html.js ***! 53294 \************************************************/ 53295/*! no static exports found */ 53296/***/ (function(module, exports, __webpack_require__) { 53297 53298var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 53299 53300module.exports = getBuiltIn('document', 'documentElement'); 53301 53302 53303/***/ }), 53304
vendor: 937 bytes, lines 53305-53325
53305/***/ "./node_modules/core-js/internals/ie8-dom-define.js": 53306/*!**********************************************************!*\ 53307 !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! 53308 \**********************************************************/ 53309/*! no static exports found */ 53310/***/ (function(module, exports, __webpack_require__) { 53311 53312var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 53313var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53314var createElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 53315 53316// Thank's IE8 for his funny defineProperty 53317module.exports = !DESCRIPTORS && !fails(function () { 53318 return Object.defineProperty(createElement('div'), 'a', { 53319 get: function () { return 7; } 53320 }).a != 7; 53321}); 53322 53323 53324/***/ }), 53325
vendor: 983 bytes, lines 53326-53349
53326/***/ "./node_modules/core-js/internals/indexed-object.js": 53327/*!**********************************************************!*\ 53328 !*** ./node_modules/core-js/internals/indexed-object.js ***! 53329 \**********************************************************/ 53330/*! no static exports found */ 53331/***/ (function(module, exports, __webpack_require__) { 53332 53333var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53334var classof = __webpack_require__(/*! ../internals/classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 53335 53336var split = ''.split; 53337 53338// fallback for non-array-like ES3 and non-enumerable old V8 strings 53339module.exports = fails(function () { 53340 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 53341 // eslint-disable-next-line no-prototype-builtins 53342 return !Object('z').propertyIsEnumerable(0); 53343}) ? function (it) { 53344 return classof(it) == 'String' ? split.call(it, '') : Object(it); 53345} : Object; 53346 53347 53348/***/ }), 53349
vendor: 758 bytes, lines 53350-53372
53350/***/ "./node_modules/core-js/internals/inspect-source.js": 53351/*!**********************************************************!*\ 53352 !*** ./node_modules/core-js/internals/inspect-source.js ***! 53353 \**********************************************************/ 53354/*! no static exports found */ 53355/***/ (function(module, exports, __webpack_require__) { 53356 53357var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 53358 53359var functionToString = Function.toString; 53360 53361// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper 53362if (typeof store.inspectSource != 'function') { 53363 store.inspectSource = function (it) { 53364 return functionToString.call(it); 53365 }; 53366} 53367 53368module.exports = store.inspectSource; 53369 53370 53371/***/ }), 53372
vendor: 2,374 bytes, lines 53373-53444
53373/***/ "./node_modules/core-js/internals/internal-state.js": 53374/*!**********************************************************!*\ 53375 !*** ./node_modules/core-js/internals/internal-state.js ***! 53376 \**********************************************************/ 53377/*! no static exports found */ 53378/***/ (function(module, exports, __webpack_require__) { 53379 53380var NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ "./node_modules/core-js/internals/native-weak-map.js"); 53381var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 53382var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 53383var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 53384var objectHas = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 53385var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 53386var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 53387 53388var WeakMap = global.WeakMap; 53389var set, get, has; 53390 53391var enforce = function (it) { 53392 return has(it) ? get(it) : set(it, {}); 53393}; 53394 53395var getterFor = function (TYPE) { 53396 return function (it) { 53397 var state; 53398 if (!isObject(it) || (state = get(it)).type !== TYPE) { 53399 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 53400 } return state; 53401 }; 53402}; 53403 53404if (NATIVE_WEAK_MAP) { 53405 var store = new WeakMap(); 53406 var wmget = store.get; 53407 var wmhas = store.has; 53408 var wmset = store.set; 53409 set = function (it, metadata) { 53410 wmset.call(store, it, metadata); 53411 return metadata; 53412 }; 53413 get = function (it) { 53414 return wmget.call(store, it) || {}; 53415 }; 53416 has = function (it) { 53417 return wmhas.call(store, it); 53418 }; 53419} else { 53420 var STATE = sharedKey('state'); 53421 hiddenKeys[STATE] = true; 53422 set = function (it, metadata) { 53423 createNonEnumerableProperty(it, STATE, metadata); 53424 return metadata; 53425 }; 53426 get = function (it) { 53427 return objectHas(it, STATE) ? it[STATE] : {}; 53428 }; 53429 has = function (it) { 53430 return objectHas(it, STATE); 53431 }; 53432} 53433 53434module.exports = { 53435 set: set, 53436 get: get, 53437 has: has, 53438 enforce: enforce, 53439 getterFor: getterFor 53440}; 53441 53442 53443/***/ }), 53444
vendor: 891 bytes, lines 53445-53465
53445/***/ "./node_modules/core-js/internals/is-array-iterator-method.js": 53446/*!********************************************************************!*\ 53447 !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! 53448 \********************************************************************/ 53449/*! no static exports found */ 53450/***/ (function(module, exports, __webpack_require__) { 53451 53452var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 53453var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 53454 53455var ITERATOR = wellKnownSymbol('iterator'); 53456var ArrayPrototype = Array.prototype; 53457 53458// check on default Array iterator 53459module.exports = function (it) { 53460 return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); 53461}; 53462 53463 53464/***/ }), 53465
vendor: 966 bytes, lines 53466-53497
53466/***/ "./node_modules/core-js/internals/is-forced.js": 53467/*!*****************************************************!*\ 53468 !*** ./node_modules/core-js/internals/is-forced.js ***! 53469 \*****************************************************/ 53470/*! no static exports found */ 53471/***/ (function(module, exports, __webpack_require__) { 53472 53473var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53474 53475var replacement = /#|\.prototype\./; 53476 53477var isForced = function (feature, detection) { 53478 var value = data[normalize(feature)]; 53479 return value == POLYFILL ? true 53480 : value == NATIVE ? false 53481 : typeof detection == 'function' ? fails(detection) 53482 : !!detection; 53483}; 53484 53485var normalize = isForced.normalize = function (string) { 53486 return String(string).replace(replacement, '.').toLowerCase(); 53487}; 53488 53489var data = isForced.data = {}; 53490var NATIVE = isForced.NATIVE = 'N'; 53491var POLYFILL = isForced.POLYFILL = 'P'; 53492 53493module.exports = isForced; 53494 53495 53496/***/ }), 53497
vendor: 421 bytes, lines 53498-53511
53498/***/ "./node_modules/core-js/internals/is-object.js": 53499/*!*****************************************************!*\ 53500 !*** ./node_modules/core-js/internals/is-object.js ***! 53501 \*****************************************************/ 53502/*! no static exports found */ 53503/***/ (function(module, exports) { 53504 53505module.exports = function (it) { 53506 return typeof it === 'object' ? it !== null : typeof it === 'function'; 53507}; 53508 53509 53510/***/ }), 53511
vendor: 327 bytes, lines 53512-53523
53512/***/ "./node_modules/core-js/internals/is-pure.js": 53513/*!***************************************************!*\ 53514 !*** ./node_modules/core-js/internals/is-pure.js ***! 53515 \***************************************************/ 53516/*! no static exports found */ 53517/***/ (function(module, exports) { 53518 53519module.exports = false; 53520 53521 53522/***/ }), 53523
vendor: 2,064 bytes, lines 53524-53572
53524/***/ "./node_modules/core-js/internals/iterators-core.js": 53525/*!**********************************************************!*\ 53526 !*** ./node_modules/core-js/internals/iterators-core.js ***! 53527 \**********************************************************/ 53528/*! no static exports found */ 53529/***/ (function(module, exports, __webpack_require__) { 53530 53531"use strict"; 53532 53533var getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ "./node_modules/core-js/internals/object-get-prototype-of.js"); 53534var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 53535var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 53536var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 53537var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 53538 53539var ITERATOR = wellKnownSymbol('iterator'); 53540var BUGGY_SAFARI_ITERATORS = false; 53541 53542var returnThis = function () { return this; }; 53543 53544// `%IteratorPrototype%` object 53545// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object 53546var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; 53547 53548if ([].keys) { 53549 arrayIterator = [].keys(); 53550 // Safari 8 has buggy iterators w/o `next` 53551 if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; 53552 else { 53553 PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); 53554 if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; 53555 } 53556} 53557 53558if (IteratorPrototype == undefined) IteratorPrototype = {}; 53559 53560// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() 53561if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { 53562 createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); 53563} 53564 53565module.exports = { 53566 IteratorPrototype: IteratorPrototype, 53567 BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS 53568}; 53569 53570 53571/***/ }), 53572
vendor: 332 bytes, lines 53573-53584
53573/***/ "./node_modules/core-js/internals/iterators.js": 53574/*!*****************************************************!*\ 53575 !*** ./node_modules/core-js/internals/iterators.js ***! 53576 \*****************************************************/ 53577/*! no static exports found */ 53578/***/ (function(module, exports) { 53579 53580module.exports = {}; 53581 53582 53583/***/ }), 53584
vendor: 541 bytes, lines 53585-53598
53585/***/ "./node_modules/core-js/internals/native-promise-constructor.js": 53586/*!**********************************************************************!*\ 53587 !*** ./node_modules/core-js/internals/native-promise-constructor.js ***! 53588 \**********************************************************************/ 53589/*! no static exports found */ 53590/***/ (function(module, exports, __webpack_require__) { 53591 53592var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 53593 53594module.exports = global.Promise; 53595 53596 53597/***/ }), 53598
vendor: 652 bytes, lines 53599-53616
53599/***/ "./node_modules/core-js/internals/native-symbol.js": 53600/*!*********************************************************!*\ 53601 !*** ./node_modules/core-js/internals/native-symbol.js ***! 53602 \*********************************************************/ 53603/*! no static exports found */ 53604/***/ (function(module, exports, __webpack_require__) { 53605 53606var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53607 53608module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 53609 // Chrome 38 Symbol has incorrect toString conversion 53610 // eslint-disable-next-line no-undef 53611 return !String(Symbol()); 53612}); 53613 53614 53615/***/ }), 53616
vendor: 1,685 bytes, lines 53617-53660
53617/***/ "./node_modules/core-js/internals/native-url.js": 53618/*!******************************************************!*\ 53619 !*** ./node_modules/core-js/internals/native-url.js ***! 53620 \******************************************************/ 53621/*! no static exports found */ 53622/***/ (function(module, exports, __webpack_require__) { 53623 53624var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53625var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 53626var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 53627 53628var ITERATOR = wellKnownSymbol('iterator'); 53629 53630module.exports = !fails(function () { 53631 var url = new URL('b?a=1&b=2&c=3', 'http://a'); 53632 var searchParams = url.searchParams; 53633 var result = ''; 53634 url.pathname = 'c%20d'; 53635 searchParams.forEach(function (value, key) { 53636 searchParams['delete']('b'); 53637 result += key + value; 53638 }); 53639 return (IS_PURE && !url.toJSON) 53640 || !searchParams.sort 53641 || url.href !== 'http://a/c%20d?a=1&c=3' 53642 || searchParams.get('c') !== '3' 53643 || String(new URLSearchParams('?a=1')) !== 'a=1' 53644 || !searchParams[ITERATOR] 53645 // throws in Edge 53646 || new URL('https://a@b').username !== 'a' 53647 || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' 53648 // not punycoded in Edge 53649 || new URL('http://ÑеÑÑ').host !== 'xn--e1aybc' 53650 // not escaped in Chrome 62- 53651 || new URL('http://a#б').hash !== '#%D0%B1' 53652 // fails in Chrome 66- 53653 || result !== 'a1c3' 53654 // throws in Safari 53655 || new URL('http://x', undefined).host !== 'x'; 53656}); 53657 53658 53659/***/ }), 53660
vendor: 719 bytes, lines 53661-53677
53661/***/ "./node_modules/core-js/internals/native-weak-map.js": 53662/*!***********************************************************!*\ 53663 !*** ./node_modules/core-js/internals/native-weak-map.js ***! 53664 \***********************************************************/ 53665/*! no static exports found */ 53666/***/ (function(module, exports, __webpack_require__) { 53667 53668var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 53669var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 53670 53671var WeakMap = global.WeakMap; 53672 53673module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); 53674 53675 53676/***/ }), 53677
vendor: 973 bytes, lines 53678-53707
53678/***/ "./node_modules/core-js/internals/new-promise-capability.js": 53679/*!******************************************************************!*\ 53680 !*** ./node_modules/core-js/internals/new-promise-capability.js ***! 53681 \******************************************************************/ 53682/*! no static exports found */ 53683/***/ (function(module, exports, __webpack_require__) { 53684 53685"use strict"; 53686 53687var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js"); 53688 53689var PromiseCapability = function (C) { 53690 var resolve, reject; 53691 this.promise = new C(function ($$resolve, $$reject) { 53692 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 53693 resolve = $$resolve; 53694 reject = $$reject; 53695 }); 53696 this.resolve = aFunction(resolve); 53697 this.reject = aFunction(reject); 53698}; 53699 53700// 25.4.1.5 NewPromiseCapability(C) 53701module.exports.f = function (C) { 53702 return new PromiseCapability(C); 53703}; 53704 53705 53706/***/ }), 53707
vendor: 2,925 bytes, lines 53708-53771
53708/***/ "./node_modules/core-js/internals/object-assign.js": 53709/*!*********************************************************!*\ 53710 !*** ./node_modules/core-js/internals/object-assign.js ***! 53711 \*********************************************************/ 53712/*! no static exports found */ 53713/***/ (function(module, exports, __webpack_require__) { 53714 53715"use strict"; 53716 53717var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 53718var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 53719var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); 53720var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); 53721var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); 53722var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 53723var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 53724 53725var nativeAssign = Object.assign; 53726var defineProperty = Object.defineProperty; 53727 53728// `Object.assign` method 53729// https://tc39.github.io/ecma262/#sec-object.assign 53730module.exports = !nativeAssign || fails(function () { 53731 // should have correct order of operations (Edge bug) 53732 if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', { 53733 enumerable: true, 53734 get: function () { 53735 defineProperty(this, 'b', { 53736 value: 3, 53737 enumerable: false 53738 }); 53739 } 53740 }), { b: 2 })).b !== 1) return true; 53741 // should work with symbols and should have deterministic property order (V8 bug) 53742 var A = {}; 53743 var B = {}; 53744 // eslint-disable-next-line no-undef 53745 var symbol = Symbol(); 53746 var alphabet = 'abcdefghijklmnopqrst'; 53747 A[symbol] = 7; 53748 alphabet.split('').forEach(function (chr) { B[chr] = chr; }); 53749 return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; 53750}) ? function assign(target, source) { // eslint-disable-line no-unused-vars 53751 var T = toObject(target); 53752 var argumentsLength = arguments.length; 53753 var index = 1; 53754 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 53755 var propertyIsEnumerable = propertyIsEnumerableModule.f; 53756 while (argumentsLength > index) { 53757 var S = IndexedObject(arguments[index++]); 53758 var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); 53759 var length = keys.length; 53760 var j = 0; 53761 var key; 53762 while (length > j) { 53763 key = keys[j++]; 53764 if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key]; 53765 } 53766 } return T; 53767} : nativeAssign; 53768 53769 53770/***/ }), 53771
vendor: 3,716 bytes, lines 53772-53860
53772/***/ "./node_modules/core-js/internals/object-create.js": 53773/*!*********************************************************!*\ 53774 !*** ./node_modules/core-js/internals/object-create.js ***! 53775 \*********************************************************/ 53776/*! no static exports found */ 53777/***/ (function(module, exports, __webpack_require__) { 53778 53779var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 53780var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js"); 53781var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 53782var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 53783var html = __webpack_require__(/*! ../internals/html */ "./node_modules/core-js/internals/html.js"); 53784var documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ "./node_modules/core-js/internals/document-create-element.js"); 53785var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 53786 53787var GT = '>'; 53788var LT = '<'; 53789var PROTOTYPE = 'prototype'; 53790var SCRIPT = 'script'; 53791var IE_PROTO = sharedKey('IE_PROTO'); 53792 53793var EmptyConstructor = function () { /* empty */ }; 53794 53795var scriptTag = function (content) { 53796 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; 53797}; 53798 53799// Create object with fake `null` prototype: use ActiveX Object with cleared prototype 53800var NullProtoObjectViaActiveX = function (activeXDocument) { 53801 activeXDocument.write(scriptTag('')); 53802 activeXDocument.close(); 53803 var temp = activeXDocument.parentWindow.Object; 53804 activeXDocument = null; // avoid memory leak 53805 return temp; 53806}; 53807 53808// Create object with fake `null` prototype: use iframe Object with cleared prototype 53809var NullProtoObjectViaIFrame = function () { 53810 // Thrash, waste and sodomy: IE GC bug 53811 var iframe = documentCreateElement('iframe'); 53812 var JS = 'java' + SCRIPT + ':'; 53813 var iframeDocument; 53814 iframe.style.display = 'none'; 53815 html.appendChild(iframe); 53816 // https://github.com/zloirock/core-js/issues/475 53817 iframe.src = String(JS); 53818 iframeDocument = iframe.contentWindow.document; 53819 iframeDocument.open(); 53820 iframeDocument.write(scriptTag('document.F=Object')); 53821 iframeDocument.close(); 53822 return iframeDocument.F; 53823}; 53824 53825// Check for document.domain and active x support 53826// No need to use active x approach when document.domain is not set 53827// see https://github.com/es-shims/es5-shim/issues/150 53828// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 53829// avoid IE GC bug 53830var activeXDocument; 53831var NullProtoObject = function () { 53832 try { 53833 /* global ActiveXObject */ 53834 activeXDocument = document.domain && new ActiveXObject('htmlfile'); 53835 } catch (error) { /* ignore */ } 53836 NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); 53837 var length = enumBugKeys.length; 53838 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; 53839 return NullProtoObject(); 53840}; 53841 53842hiddenKeys[IE_PROTO] = true; 53843 53844// `Object.create` method 53845// https://tc39.github.io/ecma262/#sec-object.create 53846module.exports = Object.create || function create(O, Properties) { 53847 var result; 53848 if (O !== null) { 53849 EmptyConstructor[PROTOTYPE] = anObject(O); 53850 result = new EmptyConstructor(); 53851 EmptyConstructor[PROTOTYPE] = null; 53852 // add "__proto__" for Object.getPrototypeOf polyfill 53853 result[IE_PROTO] = O; 53854 } else result = NullProtoObject(); 53855 return Properties === undefined ? result : defineProperties(result, Properties); 53856}; 53857 53858 53859/***/ }), 53860
vendor: 1,316 bytes, lines 53861-53887
53861/***/ "./node_modules/core-js/internals/object-define-properties.js": 53862/*!********************************************************************!*\ 53863 !*** ./node_modules/core-js/internals/object-define-properties.js ***! 53864 \********************************************************************/ 53865/*! no static exports found */ 53866/***/ (function(module, exports, __webpack_require__) { 53867 53868var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 53869var definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js"); 53870var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 53871var objectKeys = __webpack_require__(/*! ../internals/object-keys */ "./node_modules/core-js/internals/object-keys.js"); 53872 53873// `Object.defineProperties` method 53874// https://tc39.github.io/ecma262/#sec-object.defineproperties 53875module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 53876 anObject(O); 53877 var keys = objectKeys(Properties); 53878 var length = keys.length; 53879 var index = 0; 53880 var key; 53881 while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); 53882 return O; 53883}; 53884 53885 53886/***/ }), 53887
vendor: 1,459 bytes, lines 53888-53918
53888/***/ "./node_modules/core-js/internals/object-define-property.js": 53889/*!******************************************************************!*\ 53890 !*** ./node_modules/core-js/internals/object-define-property.js ***! 53891 \******************************************************************/ 53892/*! no static exports found */ 53893/***/ (function(module, exports, __webpack_require__) { 53894 53895var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 53896var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); 53897var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 53898var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 53899 53900var nativeDefineProperty = Object.defineProperty; 53901 53902// `Object.defineProperty` method 53903// https://tc39.github.io/ecma262/#sec-object.defineproperty 53904exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { 53905 anObject(O); 53906 P = toPrimitive(P, true); 53907 anObject(Attributes); 53908 if (IE8_DOM_DEFINE) try { 53909 return nativeDefineProperty(O, P, Attributes); 53910 } catch (error) { /* empty */ } 53911 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 53912 if ('value' in Attributes) O[P] = Attributes.value; 53913 return O; 53914}; 53915 53916 53917/***/ }), 53918
vendor: 1,937 bytes, lines 53919-53949
53919/***/ "./node_modules/core-js/internals/object-get-own-property-descriptor.js": 53920/*!******************************************************************************!*\ 53921 !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! 53922 \******************************************************************************/ 53923/*! no static exports found */ 53924/***/ (function(module, exports, __webpack_require__) { 53925 53926var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 53927var propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ "./node_modules/core-js/internals/object-property-is-enumerable.js"); 53928var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 53929var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 53930var toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ "./node_modules/core-js/internals/to-primitive.js"); 53931var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 53932var IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ "./node_modules/core-js/internals/ie8-dom-define.js"); 53933 53934var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 53935 53936// `Object.getOwnPropertyDescriptor` method 53937// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor 53938exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 53939 O = toIndexedObject(O); 53940 P = toPrimitive(P, true); 53941 if (IE8_DOM_DEFINE) try { 53942 return nativeGetOwnPropertyDescriptor(O, P); 53943 } catch (error) { /* empty */ } 53944 if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); 53945}; 53946 53947 53948/***/ }), 53949
vendor: 975 bytes, lines 53950-53970
53950/***/ "./node_modules/core-js/internals/object-get-own-property-names.js": 53951/*!*************************************************************************!*\ 53952 !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! 53953 \*************************************************************************/ 53954/*! no static exports found */ 53955/***/ (function(module, exports, __webpack_require__) { 53956 53957var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); 53958var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 53959 53960var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 53961 53962// `Object.getOwnPropertyNames` method 53963// https://tc39.github.io/ecma262/#sec-object.getownpropertynames 53964exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 53965 return internalObjectKeys(O, hiddenKeys); 53966}; 53967 53968 53969/***/ }), 53970
vendor: 441 bytes, lines 53971-53982
53971/***/ "./node_modules/core-js/internals/object-get-own-property-symbols.js": 53972/*!***************************************************************************!*\ 53973 !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! 53974 \***************************************************************************/ 53975/*! no static exports found */ 53976/***/ (function(module, exports) { 53977 53978exports.f = Object.getOwnPropertySymbols; 53979 53980 53981/***/ }), 53982
vendor: 1,371 bytes, lines 53983-54010
53983/***/ "./node_modules/core-js/internals/object-get-prototype-of.js": 53984/*!*******************************************************************!*\ 53985 !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! 53986 \*******************************************************************/ 53987/*! no static exports found */ 53988/***/ (function(module, exports, __webpack_require__) { 53989 53990var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 53991var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 53992var sharedKey = __webpack_require__(/*! ../internals/shared-key */ "./node_modules/core-js/internals/shared-key.js"); 53993var CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ "./node_modules/core-js/internals/correct-prototype-getter.js"); 53994 53995var IE_PROTO = sharedKey('IE_PROTO'); 53996var ObjectPrototype = Object.prototype; 53997 53998// `Object.getPrototypeOf` method 53999// https://tc39.github.io/ecma262/#sec-object.getprototypeof 54000module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { 54001 O = toObject(O); 54002 if (has(O, IE_PROTO)) return O[IE_PROTO]; 54003 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 54004 return O.constructor.prototype; 54005 } return O instanceof Object ? ObjectPrototype : null; 54006}; 54007 54008 54009/***/ }), 54010
vendor: 1,227 bytes, lines 54011-54038
54011/***/ "./node_modules/core-js/internals/object-keys-internal.js": 54012/*!****************************************************************!*\ 54013 !*** ./node_modules/core-js/internals/object-keys-internal.js ***! 54014 \****************************************************************/ 54015/*! no static exports found */ 54016/***/ (function(module, exports, __webpack_require__) { 54017 54018var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 54019var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 54020var indexOf = __webpack_require__(/*! ../internals/array-includes */ "./node_modules/core-js/internals/array-includes.js").indexOf; 54021var hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ "./node_modules/core-js/internals/hidden-keys.js"); 54022 54023module.exports = function (object, names) { 54024 var O = toIndexedObject(object); 54025 var i = 0; 54026 var result = []; 54027 var key; 54028 for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); 54029 // Don't enum bug & hidden keys 54030 while (names.length > i) if (has(O, key = names[i++])) { 54031 ~indexOf(result, key) || result.push(key); 54032 } 54033 return result; 54034}; 54035 54036 54037/***/ }), 54038
vendor: 788 bytes, lines 54039-54057
54039/***/ "./node_modules/core-js/internals/object-keys.js": 54040/*!*******************************************************!*\ 54041 !*** ./node_modules/core-js/internals/object-keys.js ***! 54042 \*******************************************************/ 54043/*! no static exports found */ 54044/***/ (function(module, exports, __webpack_require__) { 54045 54046var internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ "./node_modules/core-js/internals/object-keys-internal.js"); 54047var enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ "./node_modules/core-js/internals/enum-bug-keys.js"); 54048 54049// `Object.keys` method 54050// https://tc39.github.io/ecma262/#sec-object.keys 54051module.exports = Object.keys || function keys(O) { 54052 return internalObjectKeys(O, enumBugKeys); 54053}; 54054 54055 54056/***/ }), 54057
vendor: 1,003 bytes, lines 54058-54082
54058/***/ "./node_modules/core-js/internals/object-property-is-enumerable.js": 54059/*!*************************************************************************!*\ 54060 !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! 54061 \*************************************************************************/ 54062/*! no static exports found */ 54063/***/ (function(module, exports, __webpack_require__) { 54064 54065"use strict"; 54066 54067var nativePropertyIsEnumerable = {}.propertyIsEnumerable; 54068var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 54069 54070// Nashorn ~ JDK8 bug 54071var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); 54072 54073// `Object.prototype.propertyIsEnumerable` method implementation 54074// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable 54075exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 54076 var descriptor = getOwnPropertyDescriptor(this, V); 54077 return !!descriptor && descriptor.enumerable; 54078} : nativePropertyIsEnumerable; 54079 54080 54081/***/ }), 54082
vendor: 1,388 bytes, lines 54083-54117
54083/***/ "./node_modules/core-js/internals/object-set-prototype-of.js": 54084/*!*******************************************************************!*\ 54085 !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! 54086 \*******************************************************************/ 54087/*! no static exports found */ 54088/***/ (function(module, exports, __webpack_require__) { 54089 54090var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 54091var aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ "./node_modules/core-js/internals/a-possible-prototype.js"); 54092 54093// `Object.setPrototypeOf` method 54094// https://tc39.github.io/ecma262/#sec-object.setprototypeof 54095// Works with __proto__ only. Old v8 can't work with null proto objects. 54096/* eslint-disable no-proto */ 54097module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { 54098 var CORRECT_SETTER = false; 54099 var test = {}; 54100 var setter; 54101 try { 54102 setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; 54103 setter.call(test, []); 54104 CORRECT_SETTER = test instanceof Array; 54105 } catch (error) { /* empty */ } 54106 return function setPrototypeOf(O, proto) { 54107 anObject(O); 54108 aPossiblePrototype(proto); 54109 if (CORRECT_SETTER) setter.call(O, proto); 54110 else O.__proto__ = proto; 54111 return O; 54112 }; 54113}() : undefined); 54114 54115 54116/***/ }), 54117
vendor: 1,249 bytes, lines 54118-54139
54118/***/ "./node_modules/core-js/internals/own-keys.js": 54119/*!****************************************************!*\ 54120 !*** ./node_modules/core-js/internals/own-keys.js ***! 54121 \****************************************************/ 54122/*! no static exports found */ 54123/***/ (function(module, exports, __webpack_require__) { 54124 54125var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 54126var getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ "./node_modules/core-js/internals/object-get-own-property-names.js"); 54127var getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ "./node_modules/core-js/internals/object-get-own-property-symbols.js"); 54128var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 54129 54130// all object keys, includes non-enumerable and symbols 54131module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 54132 var keys = getOwnPropertyNamesModule.f(anObject(it)); 54133 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 54134 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; 54135}; 54136 54137 54138/***/ }), 54139
vendor: 445 bytes, lines 54140-54153
54140/***/ "./node_modules/core-js/internals/path.js": 54141/*!************************************************!*\ 54142 !*** ./node_modules/core-js/internals/path.js ***! 54143 \************************************************/ 54144/*! no static exports found */ 54145/***/ (function(module, exports, __webpack_require__) { 54146 54147var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 54148 54149module.exports = global; 54150 54151 54152/***/ }), 54153
vendor: 991 bytes, lines 54154-54176
54154/***/ "./node_modules/core-js/internals/promise-resolve.js": 54155/*!***********************************************************!*\ 54156 !*** ./node_modules/core-js/internals/promise-resolve.js ***! 54157 \***********************************************************/ 54158/*! no static exports found */ 54159/***/ (function(module, exports, __webpack_require__) { 54160 54161var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 54162var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 54163var newPromiseCapability = __webpack_require__(/*! ../internals/new-promise-capability */ "./node_modules/core-js/internals/new-promise-capability.js"); 54164 54165module.exports = function (C, x) { 54166 anObject(C); 54167 if (isObject(x) && x.constructor === C) return x; 54168 var promiseCapability = newPromiseCapability.f(C); 54169 var resolve = promiseCapability.resolve; 54170 resolve(x); 54171 return promiseCapability.promise; 54172}; 54173 54174 54175/***/ }), 54176
vendor: 594 bytes, lines 54177-54193
54177/***/ "./node_modules/core-js/internals/redefine-all.js": 54178/*!********************************************************!*\ 54179 !*** ./node_modules/core-js/internals/redefine-all.js ***! 54180 \********************************************************/ 54181/*! no static exports found */ 54182/***/ (function(module, exports, __webpack_require__) { 54183 54184var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 54185 54186module.exports = function (target, src, options) { 54187 for (var key in src) redefine(target, key, src[key], options); 54188 return target; 54189}; 54190 54191 54192/***/ }), 54193
vendor: 2,251 bytes, lines 54194-54238
54194/***/ "./node_modules/core-js/internals/redefine.js": 54195/*!****************************************************!*\ 54196 !*** ./node_modules/core-js/internals/redefine.js ***! 54197 \****************************************************/ 54198/*! no static exports found */ 54199/***/ (function(module, exports, __webpack_require__) { 54200 54201var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 54202var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 54203var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 54204var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 54205var inspectSource = __webpack_require__(/*! ../internals/inspect-source */ "./node_modules/core-js/internals/inspect-source.js"); 54206var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 54207 54208var getInternalState = InternalStateModule.get; 54209var enforceInternalState = InternalStateModule.enforce; 54210var TEMPLATE = String(String).split('String'); 54211 54212(module.exports = function (O, key, value, options) { 54213 var unsafe = options ? !!options.unsafe : false; 54214 var simple = options ? !!options.enumerable : false; 54215 var noTargetGet = options ? !!options.noTargetGet : false; 54216 if (typeof value == 'function') { 54217 if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key); 54218 enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); 54219 } 54220 if (O === global) { 54221 if (simple) O[key] = value; 54222 else setGlobal(key, value); 54223 return; 54224 } else if (!unsafe) { 54225 delete O[key]; 54226 } else if (!noTargetGet && O[key]) { 54227 simple = true; 54228 } 54229 if (simple) O[key] = value; 54230 else createNonEnumerableProperty(O, key, value); 54231// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 54232})(Function.prototype, 'toString', function toString() { 54233 return typeof this == 'function' && getInternalState(this).source || inspectSource(this); 54234}); 54235 54236 54237/***/ }), 54238
vendor: 1,108 bytes, lines 54239-54271
54239/***/ "./node_modules/core-js/internals/regexp-exec-abstract.js": 54240/*!****************************************************************!*\ 54241 !*** ./node_modules/core-js/internals/regexp-exec-abstract.js ***! 54242 \****************************************************************/ 54243/*! no static exports found */ 54244/***/ (function(module, exports, __webpack_require__) { 54245 54246var classof = __webpack_require__(/*! ./classof-raw */ "./node_modules/core-js/internals/classof-raw.js"); 54247var regexpExec = __webpack_require__(/*! ./regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 54248 54249// `RegExpExec` abstract operation 54250// https://tc39.github.io/ecma262/#sec-regexpexec 54251module.exports = function (R, S) { 54252 var exec = R.exec; 54253 if (typeof exec === 'function') { 54254 var result = exec.call(R, S); 54255 if (typeof result !== 'object') { 54256 throw TypeError('RegExp exec method returned something other than an Object or null'); 54257 } 54258 return result; 54259 } 54260 54261 if (classof(R) !== 'RegExp') { 54262 throw TypeError('RegExp#exec called on incompatible receiver'); 54263 } 54264 54265 return regexpExec.call(R, S); 54266}; 54267 54268 54269 54270/***/ }), 54271
vendor: 3,302 bytes, lines 54272-54370
54272/***/ "./node_modules/core-js/internals/regexp-exec.js": 54273/*!*******************************************************!*\ 54274 !*** ./node_modules/core-js/internals/regexp-exec.js ***! 54275 \*******************************************************/ 54276/*! no static exports found */ 54277/***/ (function(module, exports, __webpack_require__) { 54278 54279"use strict"; 54280 54281var regexpFlags = __webpack_require__(/*! ./regexp-flags */ "./node_modules/core-js/internals/regexp-flags.js"); 54282var stickyHelpers = __webpack_require__(/*! ./regexp-sticky-helpers */ "./node_modules/core-js/internals/regexp-sticky-helpers.js"); 54283 54284var nativeExec = RegExp.prototype.exec; 54285// This always refers to the native implementation, because the 54286// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, 54287// which loads this file before patching the method. 54288var nativeReplace = String.prototype.replace; 54289 54290var patchedExec = nativeExec; 54291 54292var UPDATES_LAST_INDEX_WRONG = (function () { 54293 var re1 = /a/; 54294 var re2 = /b*/g; 54295 nativeExec.call(re1, 'a'); 54296 nativeExec.call(re2, 'a'); 54297 return re1.lastIndex !== 0 || re2.lastIndex !== 0; 54298})(); 54299 54300var UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET; 54301 54302// nonparticipating capturing group, copied from es5-shim's String#split patch. 54303var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; 54304 54305var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y; 54306 54307if (PATCH) { 54308 patchedExec = function exec(str) { 54309 var re = this; 54310 var lastIndex, reCopy, match, i; 54311 var sticky = UNSUPPORTED_Y && re.sticky; 54312 var flags = regexpFlags.call(re); 54313 var source = re.source; 54314 var charsAdded = 0; 54315 var strCopy = str; 54316 54317 if (sticky) { 54318 flags = flags.replace('y', ''); 54319 if (flags.indexOf('g') === -1) { 54320 flags += 'g'; 54321 } 54322 54323 strCopy = String(str).slice(re.lastIndex); 54324 // Support anchored sticky behavior. 54325 if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) { 54326 source = '(?: ' + source + ')'; 54327 strCopy = ' ' + strCopy; 54328 charsAdded++; 54329 } 54330 // ^(? + rx + ) is needed, in combination with some str slicing, to 54331 // simulate the 'y' flag. 54332 reCopy = new RegExp('^(?:' + source + ')', flags); 54333 } 54334 54335 if (NPCG_INCLUDED) { 54336 reCopy = new RegExp('^' + source + '$(?!\\s)', flags); 54337 } 54338 if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex; 54339 54340 match = nativeExec.call(sticky ? reCopy : re, strCopy); 54341 54342 if (sticky) { 54343 if (match) { 54344 match.input = match.input.slice(charsAdded); 54345 match[0] = match[0].slice(charsAdded); 54346 match.index = re.lastIndex; 54347 re.lastIndex += match[0].length; 54348 } else re.lastIndex = 0; 54349 } else if (UPDATES_LAST_INDEX_WRONG && match) { 54350 re.lastIndex = re.global ? match.index + match[0].length : lastIndex; 54351 } 54352 if (NPCG_INCLUDED && match && match.length > 1) { 54353 // Fix browsers whose `exec` methods don't consistently return `undefined` 54354 // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ 54355 nativeReplace.call(match[0], reCopy, function () { 54356 for (i = 1; i < arguments.length - 2; i++) { 54357 if (arguments[i] === undefined) match[i] = undefined; 54358 } 54359 }); 54360 } 54361 54362 return match; 54363 }; 54364} 54365 54366module.exports = patchedExec; 54367 54368 54369/***/ }), 54370
vendor: 902 bytes, lines 54371-54398
54371/***/ "./node_modules/core-js/internals/regexp-flags.js": 54372/*!********************************************************!*\ 54373 !*** ./node_modules/core-js/internals/regexp-flags.js ***! 54374 \********************************************************/ 54375/*! no static exports found */ 54376/***/ (function(module, exports, __webpack_require__) { 54377 54378"use strict"; 54379 54380var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 54381 54382// `RegExp.prototype.flags` getter implementation 54383// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags 54384module.exports = function () { 54385 var that = anObject(this); 54386 var result = ''; 54387 if (that.global) result += 'g'; 54388 if (that.ignoreCase) result += 'i'; 54389 if (that.multiline) result += 'm'; 54390 if (that.dotAll) result += 's'; 54391 if (that.unicode) result += 'u'; 54392 if (that.sticky) result += 'y'; 54393 return result; 54394}; 54395 54396 54397/***/ }), 54398
vendor: 1,046 bytes, lines 54399-54433
54399/***/ "./node_modules/core-js/internals/regexp-sticky-helpers.js": 54400/*!*****************************************************************!*\ 54401 !*** ./node_modules/core-js/internals/regexp-sticky-helpers.js ***! 54402 \*****************************************************************/ 54403/*! no static exports found */ 54404/***/ (function(module, exports, __webpack_require__) { 54405 54406"use strict"; 54407 54408 54409var fails = __webpack_require__(/*! ./fails */ "./node_modules/core-js/internals/fails.js"); 54410 54411// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError, 54412// so we use an intermediate function. 54413function RE(s, f) { 54414 return RegExp(s, f); 54415} 54416 54417exports.UNSUPPORTED_Y = fails(function () { 54418 // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError 54419 var re = RE('a', 'y'); 54420 re.lastIndex = 2; 54421 return re.exec('abcd') != null; 54422}); 54423 54424exports.BROKEN_CARET = fails(function () { 54425 // https://bugzilla.mozilla.org/show_bug.cgi?id=773687 54426 var re = RE('^r', 'gy'); 54427 re.lastIndex = 2; 54428 return re.exec('str') != null; 54429}); 54430 54431 54432/***/ }), 54433
vendor: 599 bytes, lines 54434-54450
54434/***/ "./node_modules/core-js/internals/require-object-coercible.js": 54435/*!********************************************************************!*\ 54436 !*** ./node_modules/core-js/internals/require-object-coercible.js ***! 54437 \********************************************************************/ 54438/*! no static exports found */ 54439/***/ (function(module, exports) { 54440 54441// `RequireObjectCoercible` abstract operation 54442// https://tc39.github.io/ecma262/#sec-requireobjectcoercible 54443module.exports = function (it) { 54444 if (it == undefined) throw TypeError("Can't call method on " + it); 54445 return it; 54446}; 54447 54448 54449/***/ }), 54450
vendor: 788 bytes, lines 54451-54471
54451/***/ "./node_modules/core-js/internals/set-global.js": 54452/*!******************************************************!*\ 54453 !*** ./node_modules/core-js/internals/set-global.js ***! 54454 \******************************************************/ 54455/*! no static exports found */ 54456/***/ (function(module, exports, __webpack_require__) { 54457 54458var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 54459var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 54460 54461module.exports = function (key, value) { 54462 try { 54463 createNonEnumerableProperty(global, key, value); 54464 } catch (error) { 54465 global[key] = value; 54466 } return value; 54467}; 54468 54469 54470/***/ }), 54471
vendor: 999 bytes, lines 54472-54493
54472/***/ "./node_modules/core-js/internals/set-to-string-tag.js": 54473/*!*************************************************************!*\ 54474 !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! 54475 \*************************************************************/ 54476/*! no static exports found */ 54477/***/ (function(module, exports, __webpack_require__) { 54478 54479var defineProperty = __webpack_require__(/*! ../internals/object-define-property */ "./node_modules/core-js/internals/object-define-property.js").f; 54480var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 54481var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 54482 54483var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 54484 54485module.exports = function (it, TAG, STATIC) { 54486 if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { 54487 defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); 54488 } 54489}; 54490 54491 54492/***/ }), 54493
vendor: 653 bytes, lines 54494-54512
54494/***/ "./node_modules/core-js/internals/shared-key.js": 54495/*!******************************************************!*\ 54496 !*** ./node_modules/core-js/internals/shared-key.js ***! 54497 \******************************************************/ 54498/*! no static exports found */ 54499/***/ (function(module, exports, __webpack_require__) { 54500 54501var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 54502var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 54503 54504var keys = shared('keys'); 54505 54506module.exports = function (key) { 54507 return keys[key] || (keys[key] = uid(key)); 54508}; 54509 54510 54511/***/ }), 54512
vendor: 683 bytes, lines 54513-54530
54513/***/ "./node_modules/core-js/internals/shared-store.js": 54514/*!********************************************************!*\ 54515 !*** ./node_modules/core-js/internals/shared-store.js ***! 54516 \********************************************************/ 54517/*! no static exports found */ 54518/***/ (function(module, exports, __webpack_require__) { 54519 54520var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 54521var setGlobal = __webpack_require__(/*! ../internals/set-global */ "./node_modules/core-js/internals/set-global.js"); 54522 54523var SHARED = '__core-js_shared__'; 54524var store = global[SHARED] || setGlobal(SHARED, {}); 54525 54526module.exports = store; 54527 54528 54529/***/ }), 54530
vendor: 803 bytes, lines 54531-54551
54531/***/ "./node_modules/core-js/internals/shared.js": 54532/*!**************************************************!*\ 54533 !*** ./node_modules/core-js/internals/shared.js ***! 54534 \**************************************************/ 54535/*! no static exports found */ 54536/***/ (function(module, exports, __webpack_require__) { 54537 54538var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 54539var store = __webpack_require__(/*! ../internals/shared-store */ "./node_modules/core-js/internals/shared-store.js"); 54540 54541(module.exports = function (key, value) { 54542 return store[key] || (store[key] = value !== undefined ? value : {}); 54543})('versions', []).push({ 54544 version: '3.6.5', 54545 mode: IS_PURE ? 'pure' : 'global', 54546 copyright: '© 2020 Denis Pushkarev (zloirock.ru)' 54547}); 54548 54549 54550/***/ }), 54551
vendor: 1,092 bytes, lines 54552-54575
54552/***/ "./node_modules/core-js/internals/species-constructor.js": 54553/*!***************************************************************!*\ 54554 !*** ./node_modules/core-js/internals/species-constructor.js ***! 54555 \***************************************************************/ 54556/*! no static exports found */ 54557/***/ (function(module, exports, __webpack_require__) { 54558 54559var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 54560var aFunction = __webpack_require__(/*! ../internals/a-function */ "./node_modules/core-js/internals/a-function.js"); 54561var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 54562 54563var SPECIES = wellKnownSymbol('species'); 54564 54565// `SpeciesConstructor` abstract operation 54566// https://tc39.github.io/ecma262/#sec-speciesconstructor 54567module.exports = function (O, defaultConstructor) { 54568 var C = anObject(O).constructor; 54569 var S; 54570 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); 54571}; 54572 54573 54574/***/ }), 54575
vendor: 1,656 bytes, lines 54576-54613
54576/***/ "./node_modules/core-js/internals/string-multibyte.js": 54577/*!************************************************************!*\ 54578 !*** ./node_modules/core-js/internals/string-multibyte.js ***! 54579 \************************************************************/ 54580/*! no static exports found */ 54581/***/ (function(module, exports, __webpack_require__) { 54582 54583var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); 54584var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 54585 54586// `String.prototype.{ codePointAt, at }` methods implementation 54587var createMethod = function (CONVERT_TO_STRING) { 54588 return function ($this, pos) { 54589 var S = String(requireObjectCoercible($this)); 54590 var position = toInteger(pos); 54591 var size = S.length; 54592 var first, second; 54593 if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; 54594 first = S.charCodeAt(position); 54595 return first < 0xD800 || first > 0xDBFF || position + 1 === size 54596 || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF 54597 ? CONVERT_TO_STRING ? S.charAt(position) : first 54598 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; 54599 }; 54600}; 54601 54602module.exports = { 54603 // `String.prototype.codePointAt` method 54604 // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat 54605 codeAt: createMethod(false), 54606 // `String.prototype.at` method 54607 // https://github.com/mathiasbynens/String.prototype.at 54608 charAt: createMethod(true) 54609}; 54610 54611 54612/***/ }), 54613
vendor: 5,620 bytes, lines 54614-54793
54614/***/ "./node_modules/core-js/internals/string-punycode-to-ascii.js": 54615/*!********************************************************************!*\ 54616 !*** ./node_modules/core-js/internals/string-punycode-to-ascii.js ***! 54617 \********************************************************************/ 54618/*! no static exports found */ 54619/***/ (function(module, exports, __webpack_require__) { 54620 54621"use strict"; 54622 54623// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js 54624var maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1 54625var base = 36; 54626var tMin = 1; 54627var tMax = 26; 54628var skew = 38; 54629var damp = 700; 54630var initialBias = 72; 54631var initialN = 128; // 0x80 54632var delimiter = '-'; // '\x2D' 54633var regexNonASCII = /[^\0-\u007E]/; // non-ASCII chars 54634var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; // RFC 3490 separators 54635var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; 54636var baseMinusTMin = base - tMin; 54637var floor = Math.floor; 54638var stringFromCharCode = String.fromCharCode; 54639 54640/** 54641 * Creates an array containing the numeric code points of each Unicode 54642 * character in the string. While JavaScript uses UCS-2 internally, 54643 * this function will convert a pair of surrogate halves (each of which 54644 * UCS-2 exposes as separate characters) into a single code point, 54645 * matching UTF-16. 54646 */ 54647var ucs2decode = function (string) { 54648 var output = []; 54649 var counter = 0; 54650 var length = string.length; 54651 while (counter < length) { 54652 var value = string.charCodeAt(counter++); 54653 if (value >= 0xD800 && value <= 0xDBFF && counter < length) { 54654 // It's a high surrogate, and there is a next character. 54655 var extra = string.charCodeAt(counter++); 54656 if ((extra & 0xFC00) == 0xDC00) { // Low surrogate. 54657 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); 54658 } else { 54659 // It's an unmatched surrogate; only append this code unit, in case the 54660 // next code unit is the high surrogate of a surrogate pair. 54661 output.push(value); 54662 counter--; 54663 } 54664 } else { 54665 output.push(value); 54666 } 54667 } 54668 return output; 54669}; 54670 54671/** 54672 * Converts a digit/integer into a basic code point. 54673 */ 54674var digitToBasic = function (digit) { 54675 // 0..25 map to ASCII a..z or A..Z 54676 // 26..35 map to ASCII 0..9 54677 return digit + 22 + 75 * (digit < 26); 54678}; 54679 54680/** 54681 * Bias adaptation function as per section 3.4 of RFC 3492. 54682 * https://tools.ietf.org/html/rfc3492#section-3.4 54683 */ 54684var adapt = function (delta, numPoints, firstTime) { 54685 var k = 0; 54686 delta = firstTime ? floor(delta / damp) : delta >> 1; 54687 delta += floor(delta / numPoints); 54688 for (; delta > baseMinusTMin * tMax >> 1; k += base) { 54689 delta = floor(delta / baseMinusTMin); 54690 } 54691 return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); 54692}; 54693 54694/** 54695 * Converts a string of Unicode symbols (e.g. a domain name label) to a 54696 * Punycode string of ASCII-only symbols. 54697 */ 54698// eslint-disable-next-line max-statements 54699var encode = function (input) { 54700 var output = []; 54701 54702 // Convert the input in UCS-2 to an array of Unicode code points. 54703 input = ucs2decode(input); 54704 54705 // Cache the length. 54706 var inputLength = input.length; 54707 54708 // Initialize the state. 54709 var n = initialN; 54710 var delta = 0; 54711 var bias = initialBias; 54712 var i, currentValue; 54713 54714 // Handle the basic code points. 54715 for (i = 0; i < input.length; i++) { 54716 currentValue = input[i]; 54717 if (currentValue < 0x80) { 54718 output.push(stringFromCharCode(currentValue)); 54719 } 54720 } 54721 54722 var basicLength = output.length; // number of basic code points. 54723 var handledCPCount = basicLength; // number of code points that have been handled; 54724 54725 // Finish the basic string with a delimiter unless it's empty. 54726 if (basicLength) { 54727 output.push(delimiter); 54728 } 54729 54730 // Main encoding loop: 54731 while (handledCPCount < inputLength) { 54732 // All non-basic code points < n have been handled already. Find the next larger one: 54733 var m = maxInt; 54734 for (i = 0; i < input.length; i++) { 54735 currentValue = input[i]; 54736 if (currentValue >= n && currentValue < m) { 54737 m = currentValue; 54738 } 54739 } 54740 54741 // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow. 54742 var handledCPCountPlusOne = handledCPCount + 1; 54743 if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { 54744 throw RangeError(OVERFLOW_ERROR); 54745 } 54746 54747 delta += (m - n) * handledCPCountPlusOne; 54748 n = m; 54749 54750 for (i = 0; i < input.length; i++) { 54751 currentValue = input[i]; 54752 if (currentValue < n && ++delta > maxInt) { 54753 throw RangeError(OVERFLOW_ERROR); 54754 } 54755 if (currentValue == n) { 54756 // Represent delta as a generalized variable-length integer. 54757 var q = delta; 54758 for (var k = base; /* no condition */; k += base) { 54759 var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); 54760 if (q < t) break; 54761 var qMinusT = q - t; 54762 var baseMinusT = base - t; 54763 output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); 54764 q = floor(qMinusT / baseMinusT); 54765 } 54766 54767 output.push(stringFromCharCode(digitToBasic(q))); 54768 bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); 54769 delta = 0; 54770 ++handledCPCount; 54771 } 54772 } 54773 54774 ++delta; 54775 ++n; 54776 } 54777 return output.join(''); 54778}; 54779 54780module.exports = function (input) { 54781 var encoded = []; 54782 var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.'); 54783 var i, label; 54784 for (i = 0; i < labels.length; i++) { 54785 label = labels[i]; 54786 encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); 54787 } 54788 return encoded.join('.'); 54789}; 54790 54791 54792/***/ }), 54793
vendor: 869 bytes, lines 54794-54816
54794/***/ "./node_modules/core-js/internals/to-absolute-index.js": 54795/*!*************************************************************!*\ 54796 !*** ./node_modules/core-js/internals/to-absolute-index.js ***! 54797 \*************************************************************/ 54798/*! no static exports found */ 54799/***/ (function(module, exports, __webpack_require__) { 54800 54801var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); 54802 54803var max = Math.max; 54804var min = Math.min; 54805 54806// Helper for a popular repeating case of the spec: 54807// Let integer be ? ToInteger(index). 54808// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). 54809module.exports = function (index, length) { 54810 var integer = toInteger(index); 54811 return integer < 0 ? max(integer + length, 0) : min(integer, length); 54812}; 54813 54814 54815/***/ }), 54816
vendor: 799 bytes, lines 54817-54834
54817/***/ "./node_modules/core-js/internals/to-indexed-object.js": 54818/*!*************************************************************!*\ 54819 !*** ./node_modules/core-js/internals/to-indexed-object.js ***! 54820 \*************************************************************/ 54821/*! no static exports found */ 54822/***/ (function(module, exports, __webpack_require__) { 54823 54824// toObject with fallback for non-array-like ES3 strings 54825var IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ "./node_modules/core-js/internals/indexed-object.js"); 54826var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 54827 54828module.exports = function (it) { 54829 return IndexedObject(requireObjectCoercible(it)); 54830}; 54831 54832 54833/***/ }), 54834
vendor: 571 bytes, lines 54835-54853
54835/***/ "./node_modules/core-js/internals/to-integer.js": 54836/*!******************************************************!*\ 54837 !*** ./node_modules/core-js/internals/to-integer.js ***! 54838 \******************************************************/ 54839/*! no static exports found */ 54840/***/ (function(module, exports) { 54841 54842var ceil = Math.ceil; 54843var floor = Math.floor; 54844 54845// `ToInteger` abstract operation 54846// https://tc39.github.io/ecma262/#sec-tointeger 54847module.exports = function (argument) { 54848 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); 54849}; 54850 54851 54852/***/ }), 54853
vendor: 702 bytes, lines 54854-54873
54854/***/ "./node_modules/core-js/internals/to-length.js": 54855/*!*****************************************************!*\ 54856 !*** ./node_modules/core-js/internals/to-length.js ***! 54857 \*****************************************************/ 54858/*! no static exports found */ 54859/***/ (function(module, exports, __webpack_require__) { 54860 54861var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); 54862 54863var min = Math.min; 54864 54865// `ToLength` abstract operation 54866// https://tc39.github.io/ecma262/#sec-tolength 54867module.exports = function (argument) { 54868 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 54869}; 54870 54871 54872/***/ }), 54873
vendor: 666 bytes, lines 54874-54891
54874/***/ "./node_modules/core-js/internals/to-object.js": 54875/*!*****************************************************!*\ 54876 !*** ./node_modules/core-js/internals/to-object.js ***! 54877 \*****************************************************/ 54878/*! no static exports found */ 54879/***/ (function(module, exports, __webpack_require__) { 54880 54881var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 54882 54883// `ToObject` abstract operation 54884// https://tc39.github.io/ecma262/#sec-toobject 54885module.exports = function (argument) { 54886 return Object(requireObjectCoercible(argument)); 54887}; 54888 54889 54890/***/ }), 54891
vendor: 1,188 bytes, lines 54892-54916
54892/***/ "./node_modules/core-js/internals/to-primitive.js": 54893/*!********************************************************!*\ 54894 !*** ./node_modules/core-js/internals/to-primitive.js ***! 54895 \********************************************************/ 54896/*! no static exports found */ 54897/***/ (function(module, exports, __webpack_require__) { 54898 54899var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 54900 54901// `ToPrimitive` abstract operation 54902// https://tc39.github.io/ecma262/#sec-toprimitive 54903// instead of the ES6 spec version, we didn't implement @@toPrimitive case 54904// and the second argument - flag - preferred type is a string 54905module.exports = function (input, PREFERRED_STRING) { 54906 if (!isObject(input)) return input; 54907 var fn, val; 54908 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 54909 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; 54910 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 54911 throw TypeError("Can't convert object to primitive value"); 54912}; 54913 54914 54915/***/ }), 54916
vendor: 663 bytes, lines 54917-54935
54917/***/ "./node_modules/core-js/internals/to-string-tag-support.js": 54918/*!*****************************************************************!*\ 54919 !*** ./node_modules/core-js/internals/to-string-tag-support.js ***! 54920 \*****************************************************************/ 54921/*! no static exports found */ 54922/***/ (function(module, exports, __webpack_require__) { 54923 54924var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 54925 54926var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 54927var test = {}; 54928 54929test[TO_STRING_TAG] = 'z'; 54930 54931module.exports = String(test) === '[object z]'; 54932 54933 54934/***/ }), 54935
vendor: 464 bytes, lines 54936-54952
54936/***/ "./node_modules/core-js/internals/uid.js": 54937/*!***********************************************!*\ 54938 !*** ./node_modules/core-js/internals/uid.js ***! 54939 \***********************************************/ 54940/*! no static exports found */ 54941/***/ (function(module, exports) { 54942 54943var id = 0; 54944var postfix = Math.random(); 54945 54946module.exports = function (key) { 54947 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); 54948}; 54949 54950 54951/***/ }), 54952
vendor: 661 bytes, lines 54953-54970
54953/***/ "./node_modules/core-js/internals/use-symbol-as-uid.js": 54954/*!*************************************************************!*\ 54955 !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***! 54956 \*************************************************************/ 54957/*! no static exports found */ 54958/***/ (function(module, exports, __webpack_require__) { 54959 54960var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 54961 54962module.exports = NATIVE_SYMBOL 54963 // eslint-disable-next-line no-undef 54964 && !Symbol.sham 54965 // eslint-disable-next-line no-undef 54966 && typeof Symbol.iterator == 'symbol'; 54967 54968 54969/***/ }), 54970
vendor: 1,500 bytes, lines 54971-54998
54971/***/ "./node_modules/core-js/internals/well-known-symbol.js": 54972/*!*************************************************************!*\ 54973 !*** ./node_modules/core-js/internals/well-known-symbol.js ***! 54974 \*************************************************************/ 54975/*! no static exports found */ 54976/***/ (function(module, exports, __webpack_require__) { 54977 54978var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 54979var shared = __webpack_require__(/*! ../internals/shared */ "./node_modules/core-js/internals/shared.js"); 54980var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 54981var uid = __webpack_require__(/*! ../internals/uid */ "./node_modules/core-js/internals/uid.js"); 54982var NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ "./node_modules/core-js/internals/native-symbol.js"); 54983var USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ "./node_modules/core-js/internals/use-symbol-as-uid.js"); 54984 54985var WellKnownSymbolsStore = shared('wks'); 54986var Symbol = global.Symbol; 54987var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; 54988 54989module.exports = function (name) { 54990 if (!has(WellKnownSymbolsStore, name)) { 54991 if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name]; 54992 else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); 54993 } return WellKnownSymbolsStore[name]; 54994}; 54995 54996 54997/***/ }), 54998
vendor: 2,926 bytes, lines 54999-55063
54999/***/ "./node_modules/core-js/modules/es.array.iterator.js": 55000/*!***********************************************************!*\ 55001 !*** ./node_modules/core-js/modules/es.array.iterator.js ***! 55002 \***********************************************************/ 55003/*! no static exports found */ 55004/***/ (function(module, exports, __webpack_require__) { 55005 55006"use strict"; 55007 55008var toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ "./node_modules/core-js/internals/to-indexed-object.js"); 55009var addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ "./node_modules/core-js/internals/add-to-unscopables.js"); 55010var Iterators = __webpack_require__(/*! ../internals/iterators */ "./node_modules/core-js/internals/iterators.js"); 55011var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 55012var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js"); 55013 55014var ARRAY_ITERATOR = 'Array Iterator'; 55015var setInternalState = InternalStateModule.set; 55016var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); 55017 55018// `Array.prototype.entries` method 55019// https://tc39.github.io/ecma262/#sec-array.prototype.entries 55020// `Array.prototype.keys` method 55021// https://tc39.github.io/ecma262/#sec-array.prototype.keys 55022// `Array.prototype.values` method 55023// https://tc39.github.io/ecma262/#sec-array.prototype.values 55024// `Array.prototype[@@iterator]` method 55025// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator 55026// `CreateArrayIterator` internal method 55027// https://tc39.github.io/ecma262/#sec-createarrayiterator 55028module.exports = defineIterator(Array, 'Array', function (iterated, kind) { 55029 setInternalState(this, { 55030 type: ARRAY_ITERATOR, 55031 target: toIndexedObject(iterated), // target 55032 index: 0, // next index 55033 kind: kind // kind 55034 }); 55035// `%ArrayIteratorPrototype%.next` method 55036// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next 55037}, function () { 55038 var state = getInternalState(this); 55039 var target = state.target; 55040 var kind = state.kind; 55041 var index = state.index++; 55042 if (!target || index >= target.length) { 55043 state.target = undefined; 55044 return { value: undefined, done: true }; 55045 } 55046 if (kind == 'keys') return { value: index, done: false }; 55047 if (kind == 'values') return { value: target[index], done: false }; 55048 return { value: [index, target[index]], done: false }; 55049}, 'values'); 55050 55051// argumentsList[@@iterator] is %ArrayProto_values% 55052// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject 55053// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject 55054Iterators.Arguments = Iterators.Array; 55055 55056// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 55057addToUnscopables('keys'); 55058addToUnscopables('values'); 55059addToUnscopables('entries'); 55060 55061 55062/***/ }), 55063
vendor: 2,472 bytes, lines 55064-55111
55064/***/ "./node_modules/core-js/modules/es.promise.finally.js": 55065/*!************************************************************!*\ 55066 !*** ./node_modules/core-js/modules/es.promise.finally.js ***! 55067 \************************************************************/ 55068/*! no static exports found */ 55069/***/ (function(module, exports, __webpack_require__) { 55070 55071"use strict"; 55072 55073var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 55074var IS_PURE = __webpack_require__(/*! ../internals/is-pure */ "./node_modules/core-js/internals/is-pure.js"); 55075var NativePromise = __webpack_require__(/*! ../internals/native-promise-constructor */ "./node_modules/core-js/internals/native-promise-constructor.js"); 55076var fails = __webpack_require__(/*! ../internals/fails */ "./node_modules/core-js/internals/fails.js"); 55077var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 55078var speciesConstructor = __webpack_require__(/*! ../internals/species-constructor */ "./node_modules/core-js/internals/species-constructor.js"); 55079var promiseResolve = __webpack_require__(/*! ../internals/promise-resolve */ "./node_modules/core-js/internals/promise-resolve.js"); 55080var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 55081 55082// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 55083var NON_GENERIC = !!NativePromise && fails(function () { 55084 NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); 55085}); 55086 55087// `Promise.prototype.finally` method 55088// https://tc39.github.io/ecma262/#sec-promise.prototype.finally 55089$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { 55090 'finally': function (onFinally) { 55091 var C = speciesConstructor(this, getBuiltIn('Promise')); 55092 var isFunction = typeof onFinally == 'function'; 55093 return this.then( 55094 isFunction ? function (x) { 55095 return promiseResolve(C, onFinally()).then(function () { return x; }); 55096 } : onFinally, 55097 isFunction ? function (e) { 55098 return promiseResolve(C, onFinally()).then(function () { throw e; }); 55099 } : onFinally 55100 ); 55101 } 55102}); 55103 55104// patch native Promise.prototype for native async functions 55105if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) { 55106 redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']); 55107} 55108 55109 55110/***/ }), 55111
vendor: 660 bytes, lines 55112-55130
55112/***/ "./node_modules/core-js/modules/es.regexp.exec.js": 55113/*!********************************************************!*\ 55114 !*** ./node_modules/core-js/modules/es.regexp.exec.js ***! 55115 \********************************************************/ 55116/*! no static exports found */ 55117/***/ (function(module, exports, __webpack_require__) { 55118 55119"use strict"; 55120 55121var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 55122var exec = __webpack_require__(/*! ../internals/regexp-exec */ "./node_modules/core-js/internals/regexp-exec.js"); 55123 55124$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, { 55125 exec: exec 55126}); 55127 55128 55129/***/ }), 55130
vendor: 1,626 bytes, lines 55131-55171
55131/***/ "./node_modules/core-js/modules/es.string.iterator.js": 55132/*!************************************************************!*\ 55133 !*** ./node_modules/core-js/modules/es.string.iterator.js ***! 55134 \************************************************************/ 55135/*! no static exports found */ 55136/***/ (function(module, exports, __webpack_require__) { 55137 55138"use strict"; 55139 55140var charAt = __webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").charAt; 55141var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 55142var defineIterator = __webpack_require__(/*! ../internals/define-iterator */ "./node_modules/core-js/internals/define-iterator.js"); 55143 55144var STRING_ITERATOR = 'String Iterator'; 55145var setInternalState = InternalStateModule.set; 55146var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); 55147 55148// `String.prototype[@@iterator]` method 55149// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator 55150defineIterator(String, 'String', function (iterated) { 55151 setInternalState(this, { 55152 type: STRING_ITERATOR, 55153 string: String(iterated), 55154 index: 0 55155 }); 55156// `%StringIteratorPrototype%.next` method 55157// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next 55158}, function next() { 55159 var state = getInternalState(this); 55160 var string = state.string; 55161 var index = state.index; 55162 var point; 55163 if (index >= string.length) return { value: undefined, done: true }; 55164 point = charAt(string, index); 55165 state.index += point.length; 55166 return { value: point, done: false }; 55167}); 55168 55169 55170/***/ }), 55171
vendor: 6,340 bytes, lines 55172-55318
55172/***/ "./node_modules/core-js/modules/es.string.replace.js": 55173/*!***********************************************************!*\ 55174 !*** ./node_modules/core-js/modules/es.string.replace.js ***! 55175 \***********************************************************/ 55176/*! no static exports found */ 55177/***/ (function(module, exports, __webpack_require__) { 55178 55179"use strict"; 55180 55181var fixRegExpWellKnownSymbolLogic = __webpack_require__(/*! ../internals/fix-regexp-well-known-symbol-logic */ "./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js"); 55182var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 55183var toObject = __webpack_require__(/*! ../internals/to-object */ "./node_modules/core-js/internals/to-object.js"); 55184var toLength = __webpack_require__(/*! ../internals/to-length */ "./node_modules/core-js/internals/to-length.js"); 55185var toInteger = __webpack_require__(/*! ../internals/to-integer */ "./node_modules/core-js/internals/to-integer.js"); 55186var requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ "./node_modules/core-js/internals/require-object-coercible.js"); 55187var advanceStringIndex = __webpack_require__(/*! ../internals/advance-string-index */ "./node_modules/core-js/internals/advance-string-index.js"); 55188var regExpExec = __webpack_require__(/*! ../internals/regexp-exec-abstract */ "./node_modules/core-js/internals/regexp-exec-abstract.js"); 55189 55190var max = Math.max; 55191var min = Math.min; 55192var floor = Math.floor; 55193var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g; 55194var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g; 55195 55196var maybeToString = function (it) { 55197 return it === undefined ? it : String(it); 55198}; 55199 55200// @@replace logic 55201fixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) { 55202 var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE; 55203 var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0; 55204 var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0'; 55205 55206 return [ 55207 // `String.prototype.replace` method 55208 // https://tc39.github.io/ecma262/#sec-string.prototype.replace 55209 function replace(searchValue, replaceValue) { 55210 var O = requireObjectCoercible(this); 55211 var replacer = searchValue == undefined ? undefined : searchValue[REPLACE]; 55212 return replacer !== undefined 55213 ? replacer.call(searchValue, O, replaceValue) 55214 : nativeReplace.call(String(O), searchValue, replaceValue); 55215 }, 55216 // `RegExp.prototype[@@replace]` method 55217 // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace 55218 function (regexp, replaceValue) { 55219 if ( 55220 (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) || 55221 (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1) 55222 ) { 55223 var res = maybeCallNative(nativeReplace, regexp, this, replaceValue); 55224 if (res.done) return res.value; 55225 } 55226 55227 var rx = anObject(regexp); 55228 var S = String(this); 55229 55230 var functionalReplace = typeof replaceValue === 'function'; 55231 if (!functionalReplace) replaceValue = String(replaceValue); 55232 55233 var global = rx.global; 55234 if (global) { 55235 var fullUnicode = rx.unicode; 55236 rx.lastIndex = 0; 55237 } 55238 var results = []; 55239 while (true) { 55240 var result = regExpExec(rx, S); 55241 if (result === null) break; 55242 55243 results.push(result); 55244 if (!global) break; 55245 55246 var matchStr = String(result[0]); 55247 if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); 55248 } 55249 55250 var accumulatedResult = ''; 55251 var nextSourcePosition = 0; 55252 for (var i = 0; i < results.length; i++) { 55253 result = results[i]; 55254 55255 var matched = String(result[0]); 55256 var position = max(min(toInteger(result.index), S.length), 0); 55257 var captures = []; 55258 // NOTE: This is equivalent to 55259 // captures = result.slice(1).map(maybeToString) 55260 // but for some reason `nativeSlice.call(result, 1, result.length)` (called in 55261 // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and 55262 // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. 55263 for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); 55264 var namedCaptures = result.groups; 55265 if (functionalReplace) { 55266 var replacerArgs = [matched].concat(captures, position, S); 55267 if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); 55268 var replacement = String(replaceValue.apply(undefined, replacerArgs)); 55269 } else { 55270 replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); 55271 } 55272 if (position >= nextSourcePosition) { 55273 accumulatedResult += S.slice(nextSourcePosition, position) + replacement; 55274 nextSourcePosition = position + matched.length; 55275 } 55276 } 55277 return accumulatedResult + S.slice(nextSourcePosition); 55278 } 55279 ]; 55280 55281 // https://tc39.github.io/ecma262/#sec-getsubstitution 55282 function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { 55283 var tailPos = position + matched.length; 55284 var m = captures.length; 55285 var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; 55286 if (namedCaptures !== undefined) { 55287 namedCaptures = toObject(namedCaptures); 55288 symbols = SUBSTITUTION_SYMBOLS; 55289 } 55290 return nativeReplace.call(replacement, symbols, function (match, ch) { 55291 var capture; 55292 switch (ch.charAt(0)) { 55293 case '$': return '$'; 55294 case '&': return matched; 55295 case '`': return str.slice(0, position); 55296 case "'": return str.slice(tailPos); 55297 case '<': 55298 capture = namedCaptures[ch.slice(1, -1)]; 55299 break; 55300 default: // \d\d? 55301 var n = +ch; 55302 if (n === 0) return match; 55303 if (n > m) { 55304 var f = floor(n / 10); 55305 if (f === 0) return match; 55306 if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); 55307 return match; 55308 } 55309 capture = captures[n - 1]; 55310 } 55311 return capture === undefined ? '' : capture; 55312 }); 55313 } 55314}); 55315 55316 55317/***/ }), 55318
vendor: 2,326 bytes, lines 55319-55362
55319/***/ "./node_modules/core-js/modules/web.dom-collections.iterator.js": 55320/*!**********************************************************************!*\ 55321 !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***! 55322 \**********************************************************************/ 55323/*! no static exports found */ 55324/***/ (function(module, exports, __webpack_require__) { 55325 55326var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 55327var DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ "./node_modules/core-js/internals/dom-iterables.js"); 55328var ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ "./node_modules/core-js/modules/es.array.iterator.js"); 55329var createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ "./node_modules/core-js/internals/create-non-enumerable-property.js"); 55330var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 55331 55332var ITERATOR = wellKnownSymbol('iterator'); 55333var TO_STRING_TAG = wellKnownSymbol('toStringTag'); 55334var ArrayValues = ArrayIteratorMethods.values; 55335 55336for (var COLLECTION_NAME in DOMIterables) { 55337 var Collection = global[COLLECTION_NAME]; 55338 var CollectionPrototype = Collection && Collection.prototype; 55339 if (CollectionPrototype) { 55340 // some Chrome versions have non-configurable methods on DOMTokenList 55341 if (CollectionPrototype[ITERATOR] !== ArrayValues) try { 55342 createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); 55343 } catch (error) { 55344 CollectionPrototype[ITERATOR] = ArrayValues; 55345 } 55346 if (!CollectionPrototype[TO_STRING_TAG]) { 55347 createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); 55348 } 55349 if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { 55350 // some Chrome versions have non-configurable methods on DOMTokenList 55351 if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { 55352 createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); 55353 } catch (error) { 55354 CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; 55355 } 55356 } 55357 } 55358} 55359 55360 55361/***/ }), 55362
vendor: 13,638 bytes, lines 55363-55721
55363/***/ "./node_modules/core-js/modules/web.url-search-params.js": 55364/*!***************************************************************!*\ 55365 !*** ./node_modules/core-js/modules/web.url-search-params.js ***! 55366 \***************************************************************/ 55367/*! no static exports found */ 55368/***/ (function(module, exports, __webpack_require__) { 55369 55370"use strict"; 55371 55372// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` 55373__webpack_require__(/*! ../modules/es.array.iterator */ "./node_modules/core-js/modules/es.array.iterator.js"); 55374var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 55375var getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ "./node_modules/core-js/internals/get-built-in.js"); 55376var USE_NATIVE_URL = __webpack_require__(/*! ../internals/native-url */ "./node_modules/core-js/internals/native-url.js"); 55377var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 55378var redefineAll = __webpack_require__(/*! ../internals/redefine-all */ "./node_modules/core-js/internals/redefine-all.js"); 55379var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 55380var createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ "./node_modules/core-js/internals/create-iterator-constructor.js"); 55381var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 55382var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js"); 55383var hasOwn = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 55384var bind = __webpack_require__(/*! ../internals/function-bind-context */ "./node_modules/core-js/internals/function-bind-context.js"); 55385var classof = __webpack_require__(/*! ../internals/classof */ "./node_modules/core-js/internals/classof.js"); 55386var anObject = __webpack_require__(/*! ../internals/an-object */ "./node_modules/core-js/internals/an-object.js"); 55387var isObject = __webpack_require__(/*! ../internals/is-object */ "./node_modules/core-js/internals/is-object.js"); 55388var create = __webpack_require__(/*! ../internals/object-create */ "./node_modules/core-js/internals/object-create.js"); 55389var createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ "./node_modules/core-js/internals/create-property-descriptor.js"); 55390var getIterator = __webpack_require__(/*! ../internals/get-iterator */ "./node_modules/core-js/internals/get-iterator.js"); 55391var getIteratorMethod = __webpack_require__(/*! ../internals/get-iterator-method */ "./node_modules/core-js/internals/get-iterator-method.js"); 55392var wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ "./node_modules/core-js/internals/well-known-symbol.js"); 55393 55394var $fetch = getBuiltIn('fetch'); 55395var Headers = getBuiltIn('Headers'); 55396var ITERATOR = wellKnownSymbol('iterator'); 55397var URL_SEARCH_PARAMS = 'URLSearchParams'; 55398var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; 55399var setInternalState = InternalStateModule.set; 55400var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); 55401var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); 55402 55403var plus = /\+/g; 55404var sequences = Array(4); 55405 55406var percentSequence = function (bytes) { 55407 return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); 55408}; 55409 55410var percentDecode = function (sequence) { 55411 try { 55412 return decodeURIComponent(sequence); 55413 } catch (error) { 55414 return sequence; 55415 } 55416}; 55417 55418var deserialize = function (it) { 55419 var result = it.replace(plus, ' '); 55420 var bytes = 4; 55421 try { 55422 return decodeURIComponent(result); 55423 } catch (error) { 55424 while (bytes) { 55425 result = result.replace(percentSequence(bytes--), percentDecode); 55426 } 55427 return result; 55428 } 55429}; 55430 55431var find = /[!'()~]|%20/g; 55432 55433var replace = { 55434 '!': '%21', 55435 "'": '%27', 55436 '(': '%28', 55437 ')': '%29', 55438 '~': '%7E', 55439 '%20': '+' 55440}; 55441 55442var replacer = function (match) { 55443 return replace[match]; 55444}; 55445 55446var serialize = function (it) { 55447 return encodeURIComponent(it).replace(find, replacer); 55448}; 55449 55450var parseSearchParams = function (result, query) { 55451 if (query) { 55452 var attributes = query.split('&'); 55453 var index = 0; 55454 var attribute, entry; 55455 while (index < attributes.length) { 55456 attribute = attributes[index++]; 55457 if (attribute.length) { 55458 entry = attribute.split('='); 55459 result.push({ 55460 key: deserialize(entry.shift()), 55461 value: deserialize(entry.join('=')) 55462 }); 55463 } 55464 } 55465 } 55466}; 55467 55468var updateSearchParams = function (query) { 55469 this.entries.length = 0; 55470 parseSearchParams(this.entries, query); 55471}; 55472 55473var validateArgumentsLength = function (passed, required) { 55474 if (passed < required) throw TypeError('Not enough arguments'); 55475}; 55476 55477var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { 55478 setInternalState(this, { 55479 type: URL_SEARCH_PARAMS_ITERATOR, 55480 iterator: getIterator(getInternalParamsState(params).entries), 55481 kind: kind 55482 }); 55483}, 'Iterator', function next() { 55484 var state = getInternalIteratorState(this); 55485 var kind = state.kind; 55486 var step = state.iterator.next(); 55487 var entry = step.value; 55488 if (!step.done) { 55489 step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; 55490 } return step; 55491}); 55492 55493// `URLSearchParams` constructor 55494// https://url.spec.whatwg.org/#interface-urlsearchparams 55495var URLSearchParamsConstructor = function URLSearchParams(/* init */) { 55496 anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); 55497 var init = arguments.length > 0 ? arguments[0] : undefined; 55498 var that = this; 55499 var entries = []; 55500 var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; 55501 55502 setInternalState(that, { 55503 type: URL_SEARCH_PARAMS, 55504 entries: entries, 55505 updateURL: function () { /* empty */ }, 55506 updateSearchParams: updateSearchParams 55507 }); 55508 55509 if (init !== undefined) { 55510 if (isObject(init)) { 55511 iteratorMethod = getIteratorMethod(init); 55512 if (typeof iteratorMethod === 'function') { 55513 iterator = iteratorMethod.call(init); 55514 next = iterator.next; 55515 while (!(step = next.call(iterator)).done) { 55516 entryIterator = getIterator(anObject(step.value)); 55517 entryNext = entryIterator.next; 55518 if ( 55519 (first = entryNext.call(entryIterator)).done || 55520 (second = entryNext.call(entryIterator)).done || 55521 !entryNext.call(entryIterator).done 55522 ) throw TypeError('Expected sequence with length 2'); 55523 entries.push({ key: first.value + '', value: second.value + '' }); 55524 } 55525 } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' }); 55526 } else { 55527 parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); 55528 } 55529 } 55530}; 55531 55532var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; 55533 55534redefineAll(URLSearchParamsPrototype, { 55535 // `URLSearchParams.prototype.appent` method 55536 // https://url.spec.whatwg.org/#dom-urlsearchparams-append 55537 append: function append(name, value) { 55538 validateArgumentsLength(arguments.length, 2); 55539 var state = getInternalParamsState(this); 55540 state.entries.push({ key: name + '', value: value + '' }); 55541 state.updateURL(); 55542 }, 55543 // `URLSearchParams.prototype.delete` method 55544 // https://url.spec.whatwg.org/#dom-urlsearchparams-delete 55545 'delete': function (name) { 55546 validateArgumentsLength(arguments.length, 1); 55547 var state = getInternalParamsState(this); 55548 var entries = state.entries; 55549 var key = name + ''; 55550 var index = 0; 55551 while (index < entries.length) { 55552 if (entries[index].key === key) entries.splice(index, 1); 55553 else index++; 55554 } 55555 state.updateURL(); 55556 }, 55557 // `URLSearchParams.prototype.get` method 55558 // https://url.spec.whatwg.org/#dom-urlsearchparams-get 55559 get: function get(name) { 55560 validateArgumentsLength(arguments.length, 1); 55561 var entries = getInternalParamsState(this).entries; 55562 var key = name + ''; 55563 var index = 0; 55564 for (; index < entries.length; index++) { 55565 if (entries[index].key === key) return entries[index].value; 55566 } 55567 return null; 55568 }, 55569 // `URLSearchParams.prototype.getAll` method 55570 // https://url.spec.whatwg.org/#dom-urlsearchparams-getall 55571 getAll: function getAll(name) { 55572 validateArgumentsLength(arguments.length, 1); 55573 var entries = getInternalParamsState(this).entries; 55574 var key = name + ''; 55575 var result = []; 55576 var index = 0; 55577 for (; index < entries.length; index++) { 55578 if (entries[index].key === key) result.push(entries[index].value); 55579 } 55580 return result; 55581 }, 55582 // `URLSearchParams.prototype.has` method 55583 // https://url.spec.whatwg.org/#dom-urlsearchparams-has 55584 has: function has(name) { 55585 validateArgumentsLength(arguments.length, 1); 55586 var entries = getInternalParamsState(this).entries; 55587 var key = name + ''; 55588 var index = 0; 55589 while (index < entries.length) { 55590 if (entries[index++].key === key) return true; 55591 } 55592 return false; 55593 }, 55594 // `URLSearchParams.prototype.set` method 55595 // https://url.spec.whatwg.org/#dom-urlsearchparams-set 55596 set: function set(name, value) { 55597 validateArgumentsLength(arguments.length, 1); 55598 var state = getInternalParamsState(this); 55599 var entries = state.entries; 55600 var found = false; 55601 var key = name + ''; 55602 var val = value + ''; 55603 var index = 0; 55604 var entry; 55605 for (; index < entries.length; index++) { 55606 entry = entries[index]; 55607 if (entry.key === key) { 55608 if (found) entries.splice(index--, 1); 55609 else { 55610 found = true; 55611 entry.value = val; 55612 } 55613 } 55614 } 55615 if (!found) entries.push({ key: key, value: val }); 55616 state.updateURL(); 55617 }, 55618 // `URLSearchParams.prototype.sort` method 55619 // https://url.spec.whatwg.org/#dom-urlsearchparams-sort 55620 sort: function sort() { 55621 var state = getInternalParamsState(this); 55622 var entries = state.entries; 55623 // Array#sort is not stable in some engines 55624 var slice = entries.slice(); 55625 var entry, entriesIndex, sliceIndex; 55626 entries.length = 0; 55627 for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { 55628 entry = slice[sliceIndex]; 55629 for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { 55630 if (entries[entriesIndex].key > entry.key) { 55631 entries.splice(entriesIndex, 0, entry); 55632 break; 55633 } 55634 } 55635 if (entriesIndex === sliceIndex) entries.push(entry); 55636 } 55637 state.updateURL(); 55638 }, 55639 // `URLSearchParams.prototype.forEach` method 55640 forEach: function forEach(callback /* , thisArg */) { 55641 var entries = getInternalParamsState(this).entries; 55642 var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3); 55643 var index = 0; 55644 var entry; 55645 while (index < entries.length) { 55646 entry = entries[index++]; 55647 boundFunction(entry.value, entry.key, this); 55648 } 55649 }, 55650 // `URLSearchParams.prototype.keys` method 55651 keys: function keys() { 55652 return new URLSearchParamsIterator(this, 'keys'); 55653 }, 55654 // `URLSearchParams.prototype.values` method 55655 values: function values() { 55656 return new URLSearchParamsIterator(this, 'values'); 55657 }, 55658 // `URLSearchParams.prototype.entries` method 55659 entries: function entries() { 55660 return new URLSearchParamsIterator(this, 'entries'); 55661 } 55662}, { enumerable: true }); 55663 55664// `URLSearchParams.prototype[@@iterator]` method 55665redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries); 55666 55667// `URLSearchParams.prototype.toString` method 55668// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior 55669redefine(URLSearchParamsPrototype, 'toString', function toString() { 55670 var entries = getInternalParamsState(this).entries; 55671 var result = []; 55672 var index = 0; 55673 var entry; 55674 while (index < entries.length) { 55675 entry = entries[index++]; 55676 result.push(serialize(entry.key) + '=' + serialize(entry.value)); 55677 } return result.join('&'); 55678}, { enumerable: true }); 55679 55680setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); 55681 55682$({ global: true, forced: !USE_NATIVE_URL }, { 55683 URLSearchParams: URLSearchParamsConstructor 55684}); 55685 55686// Wrap `fetch` for correct work with polyfilled `URLSearchParams` 55687// https://github.com/zloirock/core-js/issues/674 55688if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') { 55689 $({ global: true, enumerable: true, forced: true }, { 55690 fetch: function fetch(input /* , init */) { 55691 var args = [input]; 55692 var init, body, headers; 55693 if (arguments.length > 1) { 55694 init = arguments[1]; 55695 if (isObject(init)) { 55696 body = init.body; 55697 if (classof(body) === URL_SEARCH_PARAMS) { 55698 headers = init.headers ? new Headers(init.headers) : new Headers(); 55699 if (!headers.has('content-type')) { 55700 headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); 55701 } 55702 init = create(init, { 55703 body: createPropertyDescriptor(0, String(body)), 55704 headers: createPropertyDescriptor(0, headers) 55705 }); 55706 } 55707 } 55708 args.push(init); 55709 } return $fetch.apply(this, args); 55710 } 55711 }); 55712} 55713 55714module.exports = { 55715 URLSearchParams: URLSearchParamsConstructor, 55716 getState: getInternalParamsState 55717}; 55718 55719 55720/***/ }), 55721
vendor: 34,086 bytes, lines 55722-56740
55722/***/ "./node_modules/core-js/modules/web.url.js": 55723/*!*************************************************!*\ 55724 !*** ./node_modules/core-js/modules/web.url.js ***! 55725 \*************************************************/ 55726/*! no static exports found */ 55727/***/ (function(module, exports, __webpack_require__) { 55728 55729"use strict"; 55730 55731// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` 55732__webpack_require__(/*! ../modules/es.string.iterator */ "./node_modules/core-js/modules/es.string.iterator.js"); 55733var $ = __webpack_require__(/*! ../internals/export */ "./node_modules/core-js/internals/export.js"); 55734var DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ "./node_modules/core-js/internals/descriptors.js"); 55735var USE_NATIVE_URL = __webpack_require__(/*! ../internals/native-url */ "./node_modules/core-js/internals/native-url.js"); 55736var global = __webpack_require__(/*! ../internals/global */ "./node_modules/core-js/internals/global.js"); 55737var defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ "./node_modules/core-js/internals/object-define-properties.js"); 55738var redefine = __webpack_require__(/*! ../internals/redefine */ "./node_modules/core-js/internals/redefine.js"); 55739var anInstance = __webpack_require__(/*! ../internals/an-instance */ "./node_modules/core-js/internals/an-instance.js"); 55740var has = __webpack_require__(/*! ../internals/has */ "./node_modules/core-js/internals/has.js"); 55741var assign = __webpack_require__(/*! ../internals/object-assign */ "./node_modules/core-js/internals/object-assign.js"); 55742var arrayFrom = __webpack_require__(/*! ../internals/array-from */ "./node_modules/core-js/internals/array-from.js"); 55743var codeAt = __webpack_require__(/*! ../internals/string-multibyte */ "./node_modules/core-js/internals/string-multibyte.js").codeAt; 55744var toASCII = __webpack_require__(/*! ../internals/string-punycode-to-ascii */ "./node_modules/core-js/internals/string-punycode-to-ascii.js"); 55745var setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ "./node_modules/core-js/internals/set-to-string-tag.js"); 55746var URLSearchParamsModule = __webpack_require__(/*! ../modules/web.url-search-params */ "./node_modules/core-js/modules/web.url-search-params.js"); 55747var InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ "./node_modules/core-js/internals/internal-state.js"); 55748 55749var NativeURL = global.URL; 55750var URLSearchParams = URLSearchParamsModule.URLSearchParams; 55751var getInternalSearchParamsState = URLSearchParamsModule.getState; 55752var setInternalState = InternalStateModule.set; 55753var getInternalURLState = InternalStateModule.getterFor('URL'); 55754var floor = Math.floor; 55755var pow = Math.pow; 55756 55757var INVALID_AUTHORITY = 'Invalid authority'; 55758var INVALID_SCHEME = 'Invalid scheme'; 55759var INVALID_HOST = 'Invalid host'; 55760var INVALID_PORT = 'Invalid port'; 55761 55762var ALPHA = /[A-Za-z]/; 55763var ALPHANUMERIC = /[\d+-.A-Za-z]/; 55764var DIGIT = /\d/; 55765var HEX_START = /^(0x|0X)/; 55766var OCT = /^[0-7]+$/; 55767var DEC = /^\d+$/; 55768var HEX = /^[\dA-Fa-f]+$/; 55769// eslint-disable-next-line no-control-regex 55770var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/; 55771// eslint-disable-next-line no-control-regex 55772var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/; 55773// eslint-disable-next-line no-control-regex 55774var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; 55775// eslint-disable-next-line no-control-regex 55776var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g; 55777var EOF; 55778 55779var parseHost = function (url, input) { 55780 var result, codePoints, index; 55781 if (input.charAt(0) == '[') { 55782 if (input.charAt(input.length - 1) != ']') return INVALID_HOST; 55783 result = parseIPv6(input.slice(1, -1)); 55784 if (!result) return INVALID_HOST; 55785 url.host = result; 55786 // opaque host 55787 } else if (!isSpecial(url)) { 55788 if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST; 55789 result = ''; 55790 codePoints = arrayFrom(input); 55791 for (index = 0; index < codePoints.length; index++) { 55792 result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); 55793 } 55794 url.host = result; 55795 } else { 55796 input = toASCII(input); 55797 if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST; 55798 result = parseIPv4(input); 55799 if (result === null) return INVALID_HOST; 55800 url.host = result; 55801 } 55802}; 55803 55804var parseIPv4 = function (input) { 55805 var parts = input.split('.'); 55806 var partsLength, numbers, index, part, radix, number, ipv4; 55807 if (parts.length && parts[parts.length - 1] == '') { 55808 parts.pop(); 55809 } 55810 partsLength = parts.length; 55811 if (partsLength > 4) return input; 55812 numbers = []; 55813 for (index = 0; index < partsLength; index++) { 55814 part = parts[index]; 55815 if (part == '') return input; 55816 radix = 10; 55817 if (part.length > 1 && part.charAt(0) == '0') { 55818 radix = HEX_START.test(part) ? 16 : 8; 55819 part = part.slice(radix == 8 ? 1 : 2); 55820 } 55821 if (part === '') { 55822 number = 0; 55823 } else { 55824 if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input; 55825 number = parseInt(part, radix); 55826 } 55827 numbers.push(number); 55828 } 55829 for (index = 0; index < partsLength; index++) { 55830 number = numbers[index]; 55831 if (index == partsLength - 1) { 55832 if (number >= pow(256, 5 - partsLength)) return null; 55833 } else if (number > 255) return null; 55834 } 55835 ipv4 = numbers.pop(); 55836 for (index = 0; index < numbers.length; index++) { 55837 ipv4 += numbers[index] * pow(256, 3 - index); 55838 } 55839 return ipv4; 55840}; 55841 55842// eslint-disable-next-line max-statements 55843var parseIPv6 = function (input) { 55844 var address = [0, 0, 0, 0, 0, 0, 0, 0]; 55845 var pieceIndex = 0; 55846 var compress = null; 55847 var pointer = 0; 55848 var value, length, numbersSeen, ipv4Piece, number, swaps, swap; 55849 55850 var char = function () { 55851 return input.charAt(pointer); 55852 }; 55853 55854 if (char() == ':') { 55855 if (input.charAt(1) != ':') return; 55856 pointer += 2; 55857 pieceIndex++; 55858 compress = pieceIndex; 55859 } 55860 while (char()) { 55861 if (pieceIndex == 8) return; 55862 if (char() == ':') { 55863 if (compress !== null) return; 55864 pointer++; 55865 pieceIndex++; 55866 compress = pieceIndex; 55867 continue; 55868 } 55869 value = length = 0; 55870 while (length < 4 && HEX.test(char())) { 55871 value = value * 16 + parseInt(char(), 16); 55872 pointer++; 55873 length++; 55874 } 55875 if (char() == '.') { 55876 if (length == 0) return; 55877 pointer -= length; 55878 if (pieceIndex > 6) return; 55879 numbersSeen = 0; 55880 while (char()) { 55881 ipv4Piece = null; 55882 if (numbersSeen > 0) { 55883 if (char() == '.' && numbersSeen < 4) pointer++; 55884 else return; 55885 } 55886 if (!DIGIT.test(char())) return; 55887 while (DIGIT.test(char())) { 55888 number = parseInt(char(), 10); 55889 if (ipv4Piece === null) ipv4Piece = number; 55890 else if (ipv4Piece == 0) return; 55891 else ipv4Piece = ipv4Piece * 10 + number; 55892 if (ipv4Piece > 255) return; 55893 pointer++; 55894 } 55895 address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; 55896 numbersSeen++; 55897 if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++; 55898 } 55899 if (numbersSeen != 4) return; 55900 break; 55901 } else if (char() == ':') { 55902 pointer++; 55903 if (!char()) return; 55904 } else if (char()) return; 55905 address[pieceIndex++] = value; 55906 } 55907 if (compress !== null) { 55908 swaps = pieceIndex - compress; 55909 pieceIndex = 7; 55910 while (pieceIndex != 0 && swaps > 0) { 55911 swap = address[pieceIndex]; 55912 address[pieceIndex--] = address[compress + swaps - 1]; 55913 address[compress + --swaps] = swap; 55914 } 55915 } else if (pieceIndex != 8) return; 55916 return address; 55917}; 55918 55919var findLongestZeroSequence = function (ipv6) { 55920 var maxIndex = null; 55921 var maxLength = 1; 55922 var currStart = null; 55923 var currLength = 0; 55924 var index = 0; 55925 for (; index < 8; index++) { 55926 if (ipv6[index] !== 0) { 55927 if (currLength > maxLength) { 55928 maxIndex = currStart; 55929 maxLength = currLength; 55930 } 55931 currStart = null; 55932 currLength = 0; 55933 } else { 55934 if (currStart === null) currStart = index; 55935 ++currLength; 55936 } 55937 } 55938 if (currLength > maxLength) { 55939 maxIndex = currStart; 55940 maxLength = currLength; 55941 } 55942 return maxIndex; 55943}; 55944 55945var serializeHost = function (host) { 55946 var result, index, compress, ignore0; 55947 // ipv4 55948 if (typeof host == 'number') { 55949 result = []; 55950 for (index = 0; index < 4; index++) { 55951 result.unshift(host % 256); 55952 host = floor(host / 256); 55953 } return result.join('.'); 55954 // ipv6 55955 } else if (typeof host == 'object') { 55956 result = ''; 55957 compress = findLongestZeroSequence(host); 55958 for (index = 0; index < 8; index++) { 55959 if (ignore0 && host[index] === 0) continue; 55960 if (ignore0) ignore0 = false; 55961 if (compress === index) { 55962 result += index ? ':' : '::'; 55963 ignore0 = true; 55964 } else { 55965 result += host[index].toString(16); 55966 if (index < 7) result += ':'; 55967 } 55968 } 55969 return '[' + result + ']'; 55970 } return host; 55971}; 55972 55973var C0ControlPercentEncodeSet = {}; 55974var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { 55975 ' ': 1, '"': 1, '<': 1, '>': 1, '`': 1 55976}); 55977var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { 55978 '#': 1, '?': 1, '{': 1, '}': 1 55979}); 55980var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { 55981 '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\': 1, ']': 1, '^': 1, '|': 1 55982}); 55983 55984var percentEncode = function (char, set) { 55985 var code = codeAt(char, 0); 55986 return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char); 55987}; 55988 55989var specialSchemes = { 55990 ftp: 21, 55991 file: null, 55992 http: 80, 55993 https: 443, 55994 ws: 80, 55995 wss: 443 55996}; 55997 55998var isSpecial = function (url) { 55999 return has(specialSchemes, url.scheme); 56000}; 56001 56002var includesCredentials = function (url) { 56003 return url.username != '' || url.password != ''; 56004}; 56005 56006var cannotHaveUsernamePasswordPort = function (url) { 56007 return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; 56008}; 56009 56010var isWindowsDriveLetter = function (string, normalized) { 56011 var second; 56012 return string.length == 2 && ALPHA.test(string.charAt(0)) 56013 && ((second = string.charAt(1)) == ':' || (!normalized && second == '|')); 56014}; 56015 56016var startsWithWindowsDriveLetter = function (string) { 56017 var third; 56018 return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && ( 56019 string.length == 2 || 56020 ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#') 56021 ); 56022}; 56023 56024var shortenURLsPath = function (url) { 56025 var path = url.path; 56026 var pathSize = path.length; 56027 if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { 56028 path.pop(); 56029 } 56030}; 56031 56032var isSingleDot = function (segment) { 56033 return segment === '.' || segment.toLowerCase() === '%2e'; 56034}; 56035 56036var isDoubleDot = function (segment) { 56037 segment = segment.toLowerCase(); 56038 return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; 56039}; 56040 56041// States: 56042var SCHEME_START = {}; 56043var SCHEME = {}; 56044var NO_SCHEME = {}; 56045var SPECIAL_RELATIVE_OR_AUTHORITY = {}; 56046var PATH_OR_AUTHORITY = {}; 56047var RELATIVE = {}; 56048var RELATIVE_SLASH = {}; 56049var SPECIAL_AUTHORITY_SLASHES = {}; 56050var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; 56051var AUTHORITY = {}; 56052var HOST = {}; 56053var HOSTNAME = {}; 56054var PORT = {}; 56055var FILE = {}; 56056var FILE_SLASH = {}; 56057var FILE_HOST = {}; 56058var PATH_START = {}; 56059var PATH = {}; 56060var CANNOT_BE_A_BASE_URL_PATH = {}; 56061var QUERY = {}; 56062var FRAGMENT = {}; 56063 56064// eslint-disable-next-line max-statements 56065var parseURL = function (url, input, stateOverride, base) { 56066 var state = stateOverride || SCHEME_START; 56067 var pointer = 0; 56068 var buffer = ''; 56069 var seenAt = false; 56070 var seenBracket = false; 56071 var seenPasswordToken = false; 56072 var codePoints, char, bufferCodePoints, failure; 56073 56074 if (!stateOverride) { 56075 url.scheme = ''; 56076 url.username = ''; 56077 url.password = ''; 56078 url.host = null; 56079 url.port = null; 56080 url.path = []; 56081 url.query = null; 56082 url.fragment = null; 56083 url.cannotBeABaseURL = false; 56084 input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); 56085 } 56086 56087 input = input.replace(TAB_AND_NEW_LINE, ''); 56088 56089 codePoints = arrayFrom(input); 56090 56091 while (pointer <= codePoints.length) { 56092 char = codePoints[pointer]; 56093 switch (state) { 56094 case SCHEME_START: 56095 if (char && ALPHA.test(char)) { 56096 buffer += char.toLowerCase(); 56097 state = SCHEME; 56098 } else if (!stateOverride) { 56099 state = NO_SCHEME; 56100 continue; 56101 } else return INVALID_SCHEME; 56102 break; 56103 56104 case SCHEME: 56105 if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) { 56106 buffer += char.toLowerCase(); 56107 } else if (char == ':') { 56108 if (stateOverride && ( 56109 (isSpecial(url) != has(specialSchemes, buffer)) || 56110 (buffer == 'file' && (includesCredentials(url) || url.port !== null)) || 56111 (url.scheme == 'file' && !url.host) 56112 )) return; 56113 url.scheme = buffer; 56114 if (stateOverride) { 56115 if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null; 56116 return; 56117 } 56118 buffer = ''; 56119 if (url.scheme == 'file') { 56120 state = FILE; 56121 } else if (isSpecial(url) && base && base.scheme == url.scheme) { 56122 state = SPECIAL_RELATIVE_OR_AUTHORITY; 56123 } else if (isSpecial(url)) { 56124 state = SPECIAL_AUTHORITY_SLASHES; 56125 } else if (codePoints[pointer + 1] == '/') { 56126 state = PATH_OR_AUTHORITY; 56127 pointer++; 56128 } else { 56129 url.cannotBeABaseURL = true; 56130 url.path.push(''); 56131 state = CANNOT_BE_A_BASE_URL_PATH; 56132 } 56133 } else if (!stateOverride) { 56134 buffer = ''; 56135 state = NO_SCHEME; 56136 pointer = 0; 56137 continue; 56138 } else return INVALID_SCHEME; 56139 break; 56140 56141 case NO_SCHEME: 56142 if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME; 56143 if (base.cannotBeABaseURL && char == '#') { 56144 url.scheme = base.scheme; 56145 url.path = base.path.slice(); 56146 url.query = base.query; 56147 url.fragment = ''; 56148 url.cannotBeABaseURL = true; 56149 state = FRAGMENT; 56150 break; 56151 } 56152 state = base.scheme == 'file' ? FILE : RELATIVE; 56153 continue; 56154 56155 case SPECIAL_RELATIVE_OR_AUTHORITY: 56156 if (char == '/' && codePoints[pointer + 1] == '/') { 56157 state = SPECIAL_AUTHORITY_IGNORE_SLASHES; 56158 pointer++; 56159 } else { 56160 state = RELATIVE; 56161 continue; 56162 } break; 56163 56164 case PATH_OR_AUTHORITY: 56165 if (char == '/') { 56166 state = AUTHORITY; 56167 break; 56168 } else { 56169 state = PATH; 56170 continue; 56171 } 56172 56173 case RELATIVE: 56174 url.scheme = base.scheme; 56175 if (char == EOF) { 56176 url.username = base.username; 56177 url.password = base.password; 56178 url.host = base.host; 56179 url.port = base.port; 56180 url.path = base.path.slice(); 56181 url.query = base.query; 56182 } else if (char == '/' || (char == '\\' && isSpecial(url))) { 56183 state = RELATIVE_SLASH; 56184 } else if (char == '?') { 56185 url.username = base.username; 56186 url.password = base.password; 56187 url.host = base.host; 56188 url.port = base.port; 56189 url.path = base.path.slice(); 56190 url.query = ''; 56191 state = QUERY; 56192 } else if (char == '#') { 56193 url.username = base.username; 56194 url.password = base.password; 56195 url.host = base.host; 56196 url.port = base.port; 56197 url.path = base.path.slice(); 56198 url.query = base.query; 56199 url.fragment = ''; 56200 state = FRAGMENT; 56201 } else { 56202 url.username = base.username; 56203 url.password = base.password; 56204 url.host = base.host; 56205 url.port = base.port; 56206 url.path = base.path.slice(); 56207 url.path.pop(); 56208 state = PATH; 56209 continue; 56210 } break; 56211 56212 case RELATIVE_SLASH: 56213 if (isSpecial(url) && (char == '/' || char == '\\')) { 56214 state = SPECIAL_AUTHORITY_IGNORE_SLASHES; 56215 } else if (char == '/') { 56216 state = AUTHORITY; 56217 } else { 56218 url.username = base.username; 56219 url.password = base.password; 56220 url.host = base.host; 56221 url.port = base.port; 56222 state = PATH; 56223 continue; 56224 } break; 56225 56226 case SPECIAL_AUTHORITY_SLASHES: 56227 state = SPECIAL_AUTHORITY_IGNORE_SLASHES; 56228 if (char != '/' || buffer.charAt(pointer + 1) != '/') continue; 56229 pointer++; 56230 break; 56231 56232 case SPECIAL_AUTHORITY_IGNORE_SLASHES: 56233 if (char != '/' && char != '\\') { 56234 state = AUTHORITY; 56235 continue; 56236 } break; 56237 56238 case AUTHORITY: 56239 if (char == '@') { 56240 if (seenAt) buffer = '%40' + buffer; 56241 seenAt = true; 56242 bufferCodePoints = arrayFrom(buffer); 56243 for (var i = 0; i < bufferCodePoints.length; i++) { 56244 var codePoint = bufferCodePoints[i]; 56245 if (codePoint == ':' && !seenPasswordToken) { 56246 seenPasswordToken = true; 56247 continue; 56248 } 56249 var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); 56250 if (seenPasswordToken) url.password += encodedCodePoints; 56251 else url.username += encodedCodePoints; 56252 } 56253 buffer = ''; 56254 } else if ( 56255 char == EOF || char == '/' || char == '?' || char == '#' || 56256 (char == '\\' && isSpecial(url)) 56257 ) { 56258 if (seenAt && buffer == '') return INVALID_AUTHORITY; 56259 pointer -= arrayFrom(buffer).length + 1; 56260 buffer = ''; 56261 state = HOST; 56262 } else buffer += char; 56263 break; 56264 56265 case HOST: 56266 case HOSTNAME: 56267 if (stateOverride && url.scheme == 'file') { 56268 state = FILE_HOST; 56269 continue; 56270 } else if (char == ':' && !seenBracket) { 56271 if (buffer == '') return INVALID_HOST; 56272 failure = parseHost(url, buffer); 56273 if (failure) return failure; 56274 buffer = ''; 56275 state = PORT; 56276 if (stateOverride == HOSTNAME) return; 56277 } else if ( 56278 char == EOF || char == '/' || char == '?' || char == '#' || 56279 (char == '\\' && isSpecial(url)) 56280 ) { 56281 if (isSpecial(url) && buffer == '') return INVALID_HOST; 56282 if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return; 56283 failure = parseHost(url, buffer); 56284 if (failure) return failure; 56285 buffer = ''; 56286 state = PATH_START; 56287 if (stateOverride) return; 56288 continue; 56289 } else { 56290 if (char == '[') seenBracket = true; 56291 else if (char == ']') seenBracket = false; 56292 buffer += char; 56293 } break; 56294 56295 case PORT: 56296 if (DIGIT.test(char)) { 56297 buffer += char; 56298 } else if ( 56299 char == EOF || char == '/' || char == '?' || char == '#' || 56300 (char == '\\' && isSpecial(url)) || 56301 stateOverride 56302 ) { 56303 if (buffer != '') { 56304 var port = parseInt(buffer, 10); 56305 if (port > 0xFFFF) return INVALID_PORT; 56306 url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port; 56307 buffer = ''; 56308 } 56309 if (stateOverride) return; 56310 state = PATH_START; 56311 continue; 56312 } else return INVALID_PORT; 56313 break; 56314 56315 case FILE: 56316 url.scheme = 'file'; 56317 if (char == '/' || char == '\\') state = FILE_SLASH; 56318 else if (base && base.scheme == 'file') { 56319 if (char == EOF) { 56320 url.host = base.host; 56321 url.path = base.path.slice(); 56322 url.query = base.query; 56323 } else if (char == '?') { 56324 url.host = base.host; 56325 url.path = base.path.slice(); 56326 url.query = ''; 56327 state = QUERY; 56328 } else if (char == '#') { 56329 url.host = base.host; 56330 url.path = base.path.slice(); 56331 url.query = base.query; 56332 url.fragment = ''; 56333 state = FRAGMENT; 56334 } else { 56335 if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { 56336 url.host = base.host; 56337 url.path = base.path.slice(); 56338 shortenURLsPath(url); 56339 } 56340 state = PATH; 56341 continue; 56342 } 56343 } else { 56344 state = PATH; 56345 continue; 56346 } break; 56347 56348 case FILE_SLASH: 56349 if (char == '/' || char == '\\') { 56350 state = FILE_HOST; 56351 break; 56352 } 56353 if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { 56354 if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]); 56355 else url.host = base.host; 56356 } 56357 state = PATH; 56358 continue; 56359 56360 case FILE_HOST: 56361 if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') { 56362 if (!stateOverride && isWindowsDriveLetter(buffer)) { 56363 state = PATH; 56364 } else if (buffer == '') { 56365 url.host = ''; 56366 if (stateOverride) return; 56367 state = PATH_START; 56368 } else { 56369 failure = parseHost(url, buffer); 56370 if (failure) return failure; 56371 if (url.host == 'localhost') url.host = ''; 56372 if (stateOverride) return; 56373 buffer = ''; 56374 state = PATH_START; 56375 } continue; 56376 } else buffer += char; 56377 break; 56378 56379 case PATH_START: 56380 if (isSpecial(url)) { 56381 state = PATH; 56382 if (char != '/' && char != '\\') continue; 56383 } else if (!stateOverride && char == '?') { 56384 url.query = ''; 56385 state = QUERY; 56386 } else if (!stateOverride && char == '#') { 56387 url.fragment = ''; 56388 state = FRAGMENT; 56389 } else if (char != EOF) { 56390 state = PATH; 56391 if (char != '/') continue; 56392 } break; 56393 56394 case PATH: 56395 if ( 56396 char == EOF || char == '/' || 56397 (char == '\\' && isSpecial(url)) || 56398 (!stateOverride && (char == '?' || char == '#')) 56399 ) { 56400 if (isDoubleDot(buffer)) { 56401 shortenURLsPath(url); 56402 if (char != '/' && !(char == '\\' && isSpecial(url))) { 56403 url.path.push(''); 56404 } 56405 } else if (isSingleDot(buffer)) { 56406 if (char != '/' && !(char == '\\' && isSpecial(url))) { 56407 url.path.push(''); 56408 } 56409 } else { 56410 if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { 56411 if (url.host) url.host = ''; 56412 buffer = buffer.charAt(0) + ':'; // normalize windows drive letter 56413 } 56414 url.path.push(buffer); 56415 } 56416 buffer = ''; 56417 if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) { 56418 while (url.path.length > 1 && url.path[0] === '') { 56419 url.path.shift(); 56420 } 56421 } 56422 if (char == '?') { 56423 url.query = ''; 56424 state = QUERY; 56425 } else if (char == '#') { 56426 url.fragment = ''; 56427 state = FRAGMENT; 56428 } 56429 } else { 56430 buffer += percentEncode(char, pathPercentEncodeSet); 56431 } break; 56432 56433 case CANNOT_BE_A_BASE_URL_PATH: 56434 if (char == '?') { 56435 url.query = ''; 56436 state = QUERY; 56437 } else if (char == '#') { 56438 url.fragment = ''; 56439 state = FRAGMENT; 56440 } else if (char != EOF) { 56441 url.path[0] += percentEncode(char, C0ControlPercentEncodeSet); 56442 } break; 56443 56444 case QUERY: 56445 if (!stateOverride && char == '#') { 56446 url.fragment = ''; 56447 state = FRAGMENT; 56448 } else if (char != EOF) { 56449 if (char == "'" && isSpecial(url)) url.query += '%27'; 56450 else if (char == '#') url.query += '%23'; 56451 else url.query += percentEncode(char, C0ControlPercentEncodeSet); 56452 } break; 56453 56454 case FRAGMENT: 56455 if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet); 56456 break; 56457 } 56458 56459 pointer++; 56460 } 56461}; 56462 56463// `URL` constructor 56464// https://url.spec.whatwg.org/#url-class 56465var URLConstructor = function URL(url /* , base */) { 56466 var that = anInstance(this, URLConstructor, 'URL'); 56467 var base = arguments.length > 1 ? arguments[1] : undefined; 56468 var urlString = String(url); 56469 var state = setInternalState(that, { type: 'URL' }); 56470 var baseState, failure; 56471 if (base !== undefined) { 56472 if (base instanceof URLConstructor) baseState = getInternalURLState(base); 56473 else { 56474 failure = parseURL(baseState = {}, String(base)); 56475 if (failure) throw TypeError(failure); 56476 } 56477 } 56478 failure = parseURL(state, urlString, null, baseState); 56479 if (failure) throw TypeError(failure); 56480 var searchParams = state.searchParams = new URLSearchParams(); 56481 var searchParamsState = getInternalSearchParamsState(searchParams); 56482 searchParamsState.updateSearchParams(state.query); 56483 searchParamsState.updateURL = function () { 56484 state.query = String(searchParams) || null; 56485 }; 56486 if (!DESCRIPTORS) { 56487 that.href = serializeURL.call(that); 56488 that.origin = getOrigin.call(that); 56489 that.protocol = getProtocol.call(that); 56490 that.username = getUsername.call(that); 56491 that.password = getPassword.call(that); 56492 that.host = getHost.call(that); 56493 that.hostname = getHostname.call(that); 56494 that.port = getPort.call(that); 56495 that.pathname = getPathname.call(that); 56496 that.search = getSearch.call(that); 56497 that.searchParams = getSearchParams.call(that); 56498 that.hash = getHash.call(that); 56499 } 56500}; 56501 56502var URLPrototype = URLConstructor.prototype; 56503 56504var serializeURL = function () { 56505 var url = getInternalURLState(this); 56506 var scheme = url.scheme; 56507 var username = url.username; 56508 var password = url.password; 56509 var host = url.host; 56510 var port = url.port; 56511 var path = url.path; 56512 var query = url.query; 56513 var fragment = url.fragment; 56514 var output = scheme + ':'; 56515 if (host !== null) { 56516 output += '//'; 56517 if (includesCredentials(url)) { 56518 output += username + (password ? ':' + password : '') + '@'; 56519 } 56520 output += serializeHost(host); 56521 if (port !== null) output += ':' + port; 56522 } else if (scheme == 'file') output += '//'; 56523 output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; 56524 if (query !== null) output += '?' + query; 56525 if (fragment !== null) output += '#' + fragment; 56526 return output; 56527}; 56528 56529var getOrigin = function () { 56530 var url = getInternalURLState(this); 56531 var scheme = url.scheme; 56532 var port = url.port; 56533 if (scheme == 'blob') try { 56534 return new URL(scheme.path[0]).origin; 56535 } catch (error) { 56536 return 'null'; 56537 } 56538 if (scheme == 'file' || !isSpecial(url)) return 'null'; 56539 return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : ''); 56540}; 56541 56542var getProtocol = function () { 56543 return getInternalURLState(this).scheme + ':'; 56544}; 56545 56546var getUsername = function () { 56547 return getInternalURLState(this).username; 56548}; 56549 56550var getPassword = function () { 56551 return getInternalURLState(this).password; 56552}; 56553 56554var getHost = function () { 56555 var url = getInternalURLState(this); 56556 var host = url.host; 56557 var port = url.port; 56558 return host === null ? '' 56559 : port === null ? serializeHost(host) 56560 : serializeHost(host) + ':' + port; 56561}; 56562 56563var getHostname = function () { 56564 var host = getInternalURLState(this).host; 56565 return host === null ? '' : serializeHost(host); 56566}; 56567 56568var getPort = function () { 56569 var port = getInternalURLState(this).port; 56570 return port === null ? '' : String(port); 56571}; 56572 56573var getPathname = function () { 56574 var url = getInternalURLState(this); 56575 var path = url.path; 56576 return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; 56577}; 56578 56579var getSearch = function () { 56580 var query = getInternalURLState(this).query; 56581 return query ? '?' + query : ''; 56582}; 56583 56584var getSearchParams = function () { 56585 return getInternalURLState(this).searchParams; 56586}; 56587 56588var getHash = function () { 56589 var fragment = getInternalURLState(this).fragment; 56590 return fragment ? '#' + fragment : ''; 56591}; 56592 56593var accessorDescriptor = function (getter, setter) { 56594 return { get: getter, set: setter, configurable: true, enumerable: true }; 56595}; 56596 56597if (DESCRIPTORS) { 56598 defineProperties(URLPrototype, { 56599 // `URL.prototype.href` accessors pair 56600 // https://url.spec.whatwg.org/#dom-url-href 56601 href: accessorDescriptor(serializeURL, function (href) { 56602 var url = getInternalURLState(this); 56603 var urlString = String(href); 56604 var failure = parseURL(url, urlString); 56605 if (failure) throw TypeError(failure); 56606 getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); 56607 }), 56608 // `URL.prototype.origin` getter 56609 // https://url.spec.whatwg.org/#dom-url-origin 56610 origin: accessorDescriptor(getOrigin), 56611 // `URL.prototype.protocol` accessors pair 56612 // https://url.spec.whatwg.org/#dom-url-protocol 56613 protocol: accessorDescriptor(getProtocol, function (protocol) { 56614 var url = getInternalURLState(this); 56615 parseURL(url, String(protocol) + ':', SCHEME_START); 56616 }), 56617 // `URL.prototype.username` accessors pair 56618 // https://url.spec.whatwg.org/#dom-url-username 56619 username: accessorDescriptor(getUsername, function (username) { 56620 var url = getInternalURLState(this); 56621 var codePoints = arrayFrom(String(username)); 56622 if (cannotHaveUsernamePasswordPort(url)) return; 56623 url.username = ''; 56624 for (var i = 0; i < codePoints.length; i++) { 56625 url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); 56626 } 56627 }), 56628 // `URL.prototype.password` accessors pair 56629 // https://url.spec.whatwg.org/#dom-url-password 56630 password: accessorDescriptor(getPassword, function (password) { 56631 var url = getInternalURLState(this); 56632 var codePoints = arrayFrom(String(password)); 56633 if (cannotHaveUsernamePasswordPort(url)) return; 56634 url.password = ''; 56635 for (var i = 0; i < codePoints.length; i++) { 56636 url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); 56637 } 56638 }), 56639 // `URL.prototype.host` accessors pair 56640 // https://url.spec.whatwg.org/#dom-url-host 56641 host: accessorDescriptor(getHost, function (host) { 56642 var url = getInternalURLState(this); 56643 if (url.cannotBeABaseURL) return; 56644 parseURL(url, String(host), HOST); 56645 }), 56646 // `URL.prototype.hostname` accessors pair 56647 // https://url.spec.whatwg.org/#dom-url-hostname 56648 hostname: accessorDescriptor(getHostname, function (hostname) { 56649 var url = getInternalURLState(this); 56650 if (url.cannotBeABaseURL) return; 56651 parseURL(url, String(hostname), HOSTNAME); 56652 }), 56653 // `URL.prototype.port` accessors pair 56654 // https://url.spec.whatwg.org/#dom-url-port 56655 port: accessorDescriptor(getPort, function (port) { 56656 var url = getInternalURLState(this); 56657 if (cannotHaveUsernamePasswordPort(url)) return; 56658 port = String(port); 56659 if (port == '') url.port = null; 56660 else parseURL(url, port, PORT); 56661 }), 56662 // `URL.prototype.pathname` accessors pair 56663 // https://url.spec.whatwg.org/#dom-url-pathname 56664 pathname: accessorDescriptor(getPathname, function (pathname) { 56665 var url = getInternalURLState(this); 56666 if (url.cannotBeABaseURL) return; 56667 url.path = []; 56668 parseURL(url, pathname + '', PATH_START); 56669 }), 56670 // `URL.prototype.search` accessors pair 56671 // https://url.spec.whatwg.org/#dom-url-search 56672 search: accessorDescriptor(getSearch, function (search) { 56673 var url = getInternalURLState(this); 56674 search = String(search); 56675 if (search == '') { 56676 url.query = null; 56677 } else { 56678 if ('?' == search.charAt(0)) search = search.slice(1); 56679 url.query = ''; 56680 parseURL(url, search, QUERY); 56681 } 56682 getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); 56683 }), 56684 // `URL.prototype.searchParams` getter 56685 // https://url.spec.whatwg.org/#dom-url-searchparams 56686 searchParams: accessorDescriptor(getSearchParams), 56687 // `URL.prototype.hash` accessors pair 56688 // https://url.spec.whatwg.org/#dom-url-hash 56689 hash: accessorDescriptor(getHash, function (hash) { 56690 var url = getInternalURLState(this); 56691 hash = String(hash); 56692 if (hash == '') { 56693 url.fragment = null; 56694 return; 56695 } 56696 if ('#' == hash.charAt(0)) hash = hash.slice(1); 56697 url.fragment = ''; 56698 parseURL(url, hash, FRAGMENT); 56699 }) 56700 }); 56701} 56702 56703// `URL.prototype.toJSON` method 56704// https://url.spec.whatwg.org/#dom-url-tojson 56705redefine(URLPrototype, 'toJSON', function toJSON() { 56706 return serializeURL.call(this); 56707}, { enumerable: true }); 56708 56709// `URL.prototype.toString` method 56710// https://url.spec.whatwg.org/#URL-stringification-behavior 56711redefine(URLPrototype, 'toString', function toString() { 56712 return serializeURL.call(this); 56713}, { enumerable: true }); 56714 56715if (NativeURL) { 56716 var nativeCreateObjectURL = NativeURL.createObjectURL; 56717 var nativeRevokeObjectURL = NativeURL.revokeObjectURL; 56718 // `URL.createObjectURL` method 56719 // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL 56720 // eslint-disable-next-line no-unused-vars 56721 if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { 56722 return nativeCreateObjectURL.apply(NativeURL, arguments); 56723 }); 56724 // `URL.revokeObjectURL` method 56725 // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL 56726 // eslint-disable-next-line no-unused-vars 56727 if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { 56728 return nativeRevokeObjectURL.apply(NativeURL, arguments); 56729 }); 56730} 56731 56732setToStringTag(URLConstructor, 'URL'); 56733 56734$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, { 56735 URL: URLConstructor 56736}); 56737 56738 56739/***/ }), 56740
vendor: 22,563 bytes, lines 56741-57503
56741/***/ "./node_modules/crypto-js/core.js": 56742/*!****************************************!*\ 56743 !*** ./node_modules/crypto-js/core.js ***! 56744 \****************************************/ 56745/*! no static exports found */ 56746/***/ (function(module, exports, __webpack_require__) { 56747 56748;(function (root, factory) { 56749 if (true) { 56750 // CommonJS 56751 module.exports = exports = factory(); 56752 } 56753 else {} 56754}(this, function () { 56755 56756 /** 56757 * CryptoJS core components. 56758 */ 56759 var CryptoJS = CryptoJS || (function (Math, undefined) { 56760 /* 56761 * Local polyfil of Object.create 56762 */ 56763 var create = Object.create || (function () { 56764 function F() {}; 56765 56766 return function (obj) { 56767 var subtype; 56768 56769 F.prototype = obj; 56770 56771 subtype = new F(); 56772 56773 F.prototype = null; 56774 56775 return subtype; 56776 }; 56777 }()) 56778 56779 /** 56780 * CryptoJS namespace. 56781 */ 56782 var C = {}; 56783 56784 /** 56785 * Library namespace. 56786 */ 56787 var C_lib = C.lib = {}; 56788 56789 /** 56790 * Base object for prototypal inheritance. 56791 */ 56792 var Base = C_lib.Base = (function () { 56793 56794 56795 return { 56796 /** 56797 * Creates a new object that inherits from this object. 56798 * 56799 * @param {Object} overrides Properties to copy into the new object. 56800 * 56801 * @return {Object} The new object. 56802 * 56803 * @static 56804 * 56805 * @example 56806 * 56807 * var MyType = CryptoJS.lib.Base.extend({ 56808 * field: 'value', 56809 * 56810 * method: function () { 56811 * } 56812 * }); 56813 */ 56814 extend: function (overrides) { 56815 // Spawn 56816 var subtype = create(this); 56817 56818 // Augment 56819 if (overrides) { 56820 subtype.mixIn(overrides); 56821 } 56822 56823 // Create default initializer 56824 if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { 56825 subtype.init = function () { 56826 subtype.$super.init.apply(this, arguments); 56827 }; 56828 } 56829 56830 // Initializer's prototype is the subtype object 56831 subtype.init.prototype = subtype; 56832 56833 // Reference supertype 56834 subtype.$super = this; 56835 56836 return subtype; 56837 }, 56838 56839 /** 56840 * Extends this object and runs the init method. 56841 * Arguments to create() will be passed to init(). 56842 * 56843 * @return {Object} The new object. 56844 * 56845 * @static 56846 * 56847 * @example 56848 * 56849 * var instance = MyType.create(); 56850 */ 56851 create: function () { 56852 var instance = this.extend(); 56853 instance.init.apply(instance, arguments); 56854 56855 return instance; 56856 }, 56857 56858 /** 56859 * Initializes a newly created object. 56860 * Override this method to add some logic when your objects are created. 56861 * 56862 * @example 56863 * 56864 * var MyType = CryptoJS.lib.Base.extend({ 56865 * init: function () { 56866 * // ... 56867 * } 56868 * }); 56869 */ 56870 init: function () { 56871 }, 56872 56873 /** 56874 * Copies properties into this object. 56875 * 56876 * @param {Object} properties The properties to mix in. 56877 * 56878 * @example 56879 * 56880 * MyType.mixIn({ 56881 * field: 'value' 56882 * }); 56883 */ 56884 mixIn: function (properties) { 56885 for (var propertyName in properties) { 56886 if (properties.hasOwnProperty(propertyName)) { 56887 this[propertyName] = properties[propertyName]; 56888 } 56889 } 56890 56891 // IE won't copy toString using the loop above 56892 if (properties.hasOwnProperty('toString')) { 56893 this.toString = properties.toString; 56894 } 56895 }, 56896 56897 /** 56898 * Creates a copy of this object. 56899 * 56900 * @return {Object} The clone. 56901 * 56902 * @example 56903 * 56904 * var clone = instance.clone(); 56905 */ 56906 clone: function () { 56907 return this.init.prototype.extend(this); 56908 } 56909 }; 56910 }()); 56911 56912 /** 56913 * An array of 32-bit words. 56914 * 56915 * @property {Array} words The array of 32-bit words. 56916 * @property {number} sigBytes The number of significant bytes in this word array. 56917 */ 56918 var WordArray = C_lib.WordArray = Base.extend({ 56919 /** 56920 * Initializes a newly created word array. 56921 * 56922 * @param {Array} words (Optional) An array of 32-bit words. 56923 * @param {number} sigBytes (Optional) The number of significant bytes in the words. 56924 * 56925 * @example 56926 * 56927 * var wordArray = CryptoJS.lib.WordArray.create(); 56928 * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); 56929 * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); 56930 */ 56931 init: function (words, sigBytes) { 56932 words = this.words = words || []; 56933 56934 if (sigBytes != undefined) { 56935 this.sigBytes = sigBytes; 56936 } else { 56937 this.sigBytes = words.length * 4; 56938 } 56939 }, 56940 56941 /** 56942 * Converts this word array to a string. 56943 * 56944 * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex 56945 * 56946 * @return {string} The stringified word array. 56947 * 56948 * @example 56949 * 56950 * var string = wordArray + ''; 56951 * var string = wordArray.toString(); 56952 * var string = wordArray.toString(CryptoJS.enc.Utf8); 56953 */ 56954 toString: function (encoder) { 56955 return (encoder || Hex).stringify(this); 56956 }, 56957 56958 /** 56959 * Concatenates a word array to this word array. 56960 * 56961 * @param {WordArray} wordArray The word array to append. 56962 * 56963 * @return {WordArray} This word array. 56964 * 56965 * @example 56966 * 56967 * wordArray1.concat(wordArray2); 56968 */ 56969 concat: function (wordArray) { 56970 // Shortcuts 56971 var thisWords = this.words; 56972 var thatWords = wordArray.words; 56973 var thisSigBytes = this.sigBytes; 56974 var thatSigBytes = wordArray.sigBytes; 56975 56976 // Clamp excess bits 56977 this.clamp(); 56978 56979 // Concat 56980 if (thisSigBytes % 4) { 56981 // Copy one byte at a time 56982 for (var i = 0; i < thatSigBytes; i++) { 56983 var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 56984 thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); 56985 } 56986 } else { 56987 // Copy one word at a time 56988 for (var i = 0; i < thatSigBytes; i += 4) { 56989 thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; 56990 } 56991 } 56992 this.sigBytes += thatSigBytes; 56993 56994 // Chainable 56995 return this; 56996 }, 56997 56998 /** 56999 * Removes insignificant bits. 57000 * 57001 * @example 57002 * 57003 * wordArray.clamp(); 57004 */ 57005 clamp: function () { 57006 // Shortcuts 57007 var words = this.words; 57008 var sigBytes = this.sigBytes; 57009 57010 // Clamp 57011 words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); 57012 words.length = Math.ceil(sigBytes / 4); 57013 }, 57014 57015 /** 57016 * Creates a copy of this word array. 57017 * 57018 * @return {WordArray} The clone. 57019 * 57020 * @example 57021 * 57022 * var clone = wordArray.clone(); 57023 */ 57024 clone: function () { 57025 var clone = Base.clone.call(this); 57026 clone.words = this.words.slice(0); 57027 57028 return clone; 57029 }, 57030 57031 /** 57032 * Creates a word array filled with random bytes. 57033 * 57034 * @param {number} nBytes The number of random bytes to generate. 57035 * 57036 * @return {WordArray} The random word array. 57037 * 57038 * @static 57039 * 57040 * @example 57041 * 57042 * var wordArray = CryptoJS.lib.WordArray.random(16); 57043 */ 57044 random: function (nBytes) { 57045 var words = []; 57046 57047 var r = (function (m_w) { 57048 var m_w = m_w; 57049 var m_z = 0x3ade68b1; 57050 var mask = 0xffffffff; 57051 57052 return function () { 57053 m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask; 57054 m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask; 57055 var result = ((m_z << 0x10) + m_w) & mask; 57056 result /= 0x100000000; 57057 result += 0.5; 57058 return result * (Math.random() > .5 ? 1 : -1); 57059 } 57060 }); 57061 57062 for (var i = 0, rcache; i < nBytes; i += 4) { 57063 var _r = r((rcache || Math.random()) * 0x100000000); 57064 57065 rcache = _r() * 0x3ade67b7; 57066 words.push((_r() * 0x100000000) | 0); 57067 } 57068 57069 return new WordArray.init(words, nBytes); 57070 } 57071 }); 57072 57073 /** 57074 * Encoder namespace. 57075 */ 57076 var C_enc = C.enc = {}; 57077 57078 /** 57079 * Hex encoding strategy. 57080 */ 57081 var Hex = C_enc.Hex = { 57082 /** 57083 * Converts a word array to a hex string. 57084 * 57085 * @param {WordArray} wordArray The word array. 57086 * 57087 * @return {string} The hex string. 57088 * 57089 * @static 57090 * 57091 * @example 57092 * 57093 * var hexString = CryptoJS.enc.Hex.stringify(wordArray); 57094 */ 57095 stringify: function (wordArray) { 57096 // Shortcuts 57097 var words = wordArray.words; 57098 var sigBytes = wordArray.sigBytes; 57099 57100 // Convert 57101 var hexChars = []; 57102 for (var i = 0; i < sigBytes; i++) { 57103 var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 57104 hexChars.push((bite >>> 4).toString(16)); 57105 hexChars.push((bite & 0x0f).toString(16)); 57106 } 57107 57108 return hexChars.join(''); 57109 }, 57110 57111 /** 57112 * Converts a hex string to a word array. 57113 * 57114 * @param {string} hexStr The hex string. 57115 * 57116 * @return {WordArray} The word array. 57117 * 57118 * @static 57119 * 57120 * @example 57121 * 57122 * var wordArray = CryptoJS.enc.Hex.parse(hexString); 57123 */ 57124 parse: function (hexStr) { 57125 // Shortcut 57126 var hexStrLength = hexStr.length; 57127 57128 // Convert 57129 var words = []; 57130 for (var i = 0; i < hexStrLength; i += 2) { 57131 words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); 57132 } 57133 57134 return new WordArray.init(words, hexStrLength / 2); 57135 } 57136 }; 57137 57138 /** 57139 * Latin1 encoding strategy. 57140 */ 57141 var Latin1 = C_enc.Latin1 = { 57142 /** 57143 * Converts a word array to a Latin1 string. 57144 * 57145 * @param {WordArray} wordArray The word array. 57146 * 57147 * @return {string} The Latin1 string. 57148 * 57149 * @static 57150 * 57151 * @example 57152 * 57153 * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); 57154 */ 57155 stringify: function (wordArray) { 57156 // Shortcuts 57157 var words = wordArray.words; 57158 var sigBytes = wordArray.sigBytes; 57159 57160 // Convert 57161 var latin1Chars = []; 57162 for (var i = 0; i < sigBytes; i++) { 57163 var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 57164 latin1Chars.push(String.fromCharCode(bite)); 57165 } 57166 57167 return latin1Chars.join(''); 57168 }, 57169 57170 /** 57171 * Converts a Latin1 string to a word array. 57172 * 57173 * @param {string} latin1Str The Latin1 string. 57174 * 57175 * @return {WordArray} The word array. 57176 * 57177 * @static 57178 * 57179 * @example 57180 * 57181 * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); 57182 */ 57183 parse: function (latin1Str) { 57184 // Shortcut 57185 var latin1StrLength = latin1Str.length; 57186 57187 // Convert 57188 var words = []; 57189 for (var i = 0; i < latin1StrLength; i++) { 57190 words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); 57191 } 57192 57193 return new WordArray.init(words, latin1StrLength); 57194 } 57195 }; 57196 57197 /** 57198 * UTF-8 encoding strategy. 57199 */ 57200 var Utf8 = C_enc.Utf8 = { 57201 /** 57202 * Converts a word array to a UTF-8 string. 57203 * 57204 * @param {WordArray} wordArray The word array. 57205 * 57206 * @return {string} The UTF-8 string. 57207 * 57208 * @static 57209 * 57210 * @example 57211 * 57212 * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); 57213 */ 57214 stringify: function (wordArray) { 57215 try { 57216 return decodeURIComponent(escape(Latin1.stringify(wordArray))); 57217 } catch (e) { 57218 throw new Error('Malformed UTF-8 data'); 57219 } 57220 }, 57221 57222 /** 57223 * Converts a UTF-8 string to a word array. 57224 * 57225 * @param {string} utf8Str The UTF-8 string. 57226 * 57227 * @return {WordArray} The word array. 57228 * 57229 * @static 57230 * 57231 * @example 57232 * 57233 * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); 57234 */ 57235 parse: function (utf8Str) { 57236 return Latin1.parse(unescape(encodeURIComponent(utf8Str))); 57237 } 57238 }; 57239 57240 /** 57241 * Abstract buffered block algorithm template. 57242 * 57243 * The property blockSize must be implemented in a concrete subtype. 57244 * 57245 * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 57246 */ 57247 var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ 57248 /** 57249 * Resets this block algorithm's data buffer to its initial state. 57250 * 57251 * @example 57252 * 57253 * bufferedBlockAlgorithm.reset(); 57254 */ 57255 reset: function () { 57256 // Initial values 57257 this._data = new WordArray.init(); 57258 this._nDataBytes = 0; 57259 }, 57260 57261 /** 57262 * Adds new data to this block algorithm's buffer. 57263 * 57264 * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. 57265 * 57266 * @example 57267 * 57268 * bufferedBlockAlgorithm._append('data'); 57269 * bufferedBlockAlgorithm._append(wordArray); 57270 */ 57271 _append: function (data) { 57272 // Convert string to WordArray, else assume WordArray already 57273 if (typeof data == 'string') { 57274 data = Utf8.parse(data); 57275 } 57276 57277 // Append 57278 this._data.concat(data); 57279 this._nDataBytes += data.sigBytes; 57280 }, 57281 57282 /** 57283 * Processes available data blocks. 57284 * 57285 * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. 57286 * 57287 * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. 57288 * 57289 * @return {WordArray} The processed data. 57290 * 57291 * @example 57292 * 57293 * var processedData = bufferedBlockAlgorithm._process(); 57294 * var processedData = bufferedBlockAlgorithm._process(!!'flush'); 57295 */ 57296 _process: function (doFlush) { 57297 // Shortcuts 57298 var data = this._data; 57299 var dataWords = data.words; 57300 var dataSigBytes = data.sigBytes; 57301 var blockSize = this.blockSize; 57302 var blockSizeBytes = blockSize * 4; 57303 57304 // Count blocks ready 57305 var nBlocksReady = dataSigBytes / blockSizeBytes; 57306 if (doFlush) { 57307 // Round up to include partial blocks 57308 nBlocksReady = Math.ceil(nBlocksReady); 57309 } else { 57310 // Round down to include only full blocks, 57311 // less the number of blocks that must remain in the buffer 57312 nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); 57313 } 57314 57315 // Count words ready 57316 var nWordsReady = nBlocksReady * blockSize; 57317 57318 // Count bytes ready 57319 var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); 57320 57321 // Process blocks 57322 if (nWordsReady) { 57323 for (var offset = 0; offset < nWordsReady; offset += blockSize) { 57324 // Perform concrete-algorithm logic 57325 this._doProcessBlock(dataWords, offset); 57326 } 57327 57328 // Remove processed words 57329 var processedWords = dataWords.splice(0, nWordsReady); 57330 data.sigBytes -= nBytesReady; 57331 } 57332 57333 // Return processed words 57334 return new WordArray.init(processedWords, nBytesReady); 57335 }, 57336 57337 /** 57338 * Creates a copy of this object. 57339 * 57340 * @return {Object} The clone. 57341 * 57342 * @example 57343 * 57344 * var clone = bufferedBlockAlgorithm.clone(); 57345 */ 57346 clone: function () { 57347 var clone = Base.clone.call(this); 57348 clone._data = this._data.clone(); 57349 57350 return clone; 57351 }, 57352 57353 _minBufferSize: 0 57354 }); 57355 57356 /** 57357 * Abstract hasher template. 57358 * 57359 * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) 57360 */ 57361 var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ 57362 /** 57363 * Configuration options. 57364 */ 57365 cfg: Base.extend(), 57366 57367 /** 57368 * Initializes a newly created hasher. 57369 * 57370 * @param {Object} cfg (Optional) The configuration options to use for this hash computation. 57371 * 57372 * @example 57373 * 57374 * var hasher = CryptoJS.algo.SHA256.create(); 57375 */ 57376 init: function (cfg) { 57377 // Apply config defaults 57378 this.cfg = this.cfg.extend(cfg); 57379 57380 // Set initial values 57381 this.reset(); 57382 }, 57383 57384 /** 57385 * Resets this hasher to its initial state. 57386 * 57387 * @example 57388 * 57389 * hasher.reset(); 57390 */ 57391 reset: function () { 57392 // Reset data buffer 57393 BufferedBlockAlgorithm.reset.call(this); 57394 57395 // Perform concrete-hasher logic 57396 this._doReset(); 57397 }, 57398 57399 /** 57400 * Updates this hasher with a message. 57401 * 57402 * @param {WordArray|string} messageUpdate The message to append. 57403 * 57404 * @return {Hasher} This hasher. 57405 * 57406 * @example 57407 * 57408 * hasher.update('message'); 57409 * hasher.update(wordArray); 57410 */ 57411 update: function (messageUpdate) { 57412 // Append 57413 this._append(messageUpdate); 57414 57415 // Update the hash 57416 this._process(); 57417 57418 // Chainable 57419 return this; 57420 }, 57421 57422 /** 57423 * Finalizes the hash computation. 57424 * Note that the finalize operation is effectively a destructive, read-once operation. 57425 * 57426 * @param {WordArray|string} messageUpdate (Optional) A final message update. 57427 * 57428 * @return {WordArray} The hash. 57429 * 57430 * @example 57431 * 57432 * var hash = hasher.finalize(); 57433 * var hash = hasher.finalize('message'); 57434 * var hash = hasher.finalize(wordArray); 57435 */ 57436 finalize: function (messageUpdate) { 57437 // Final message update 57438 if (messageUpdate) { 57439 this._append(messageUpdate); 57440 } 57441 57442 // Perform concrete-hasher logic 57443 var hash = this._doFinalize(); 57444 57445 return hash; 57446 }, 57447 57448 blockSize: 512/32, 57449 57450 /** 57451 * Creates a shortcut function to a hasher's object interface. 57452 * 57453 * @param {Hasher} hasher The hasher to create a helper for. 57454 * 57455 * @return {Function} The shortcut function. 57456 * 57457 * @static 57458 * 57459 * @example 57460 * 57461 * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); 57462 */ 57463 _createHelper: function (hasher) { 57464 return function (message, cfg) { 57465 return new hasher.init(cfg).finalize(message); 57466 }; 57467 }, 57468 57469 /** 57470 * Creates a shortcut function to the HMAC's object interface. 57471 * 57472 * @param {Hasher} hasher The hasher to use in this HMAC helper. 57473 * 57474 * @return {Function} The shortcut function. 57475 * 57476 * @static 57477 * 57478 * @example 57479 * 57480 * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); 57481 */ 57482 _createHmacHelper: function (hasher) { 57483 return function (message, key) { 57484 return new C_algo.HMAC.init(hasher, key).finalize(message); 57485 }; 57486 } 57487 }); 57488 57489 /** 57490 * Algorithm namespace. 57491 */ 57492 var C_algo = C.algo = {}; 57493 57494 return C; 57495 }(Math)); 57496 57497 57498 return CryptoJS; 57499 57500})); 57501 57502/***/ }), 57503
vendor: 4,219 bytes, lines 57504-57641
57504/***/ "./node_modules/crypto-js/enc-base64.js": 57505/*!**********************************************!*\ 57506 !*** ./node_modules/crypto-js/enc-base64.js ***! 57507 \**********************************************/ 57508/*! no static exports found */ 57509/***/ (function(module, exports, __webpack_require__) { 57510 57511;(function (root, factory) { 57512 if (true) { 57513 // CommonJS 57514 module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); 57515 } 57516 else {} 57517}(this, function (CryptoJS) { 57518 57519 (function () { 57520 // Shortcuts 57521 var C = CryptoJS; 57522 var C_lib = C.lib; 57523 var WordArray = C_lib.WordArray; 57524 var C_enc = C.enc; 57525 57526 /** 57527 * Base64 encoding strategy. 57528 */ 57529 var Base64 = C_enc.Base64 = { 57530 /** 57531 * Converts a word array to a Base64 string. 57532 * 57533 * @param {WordArray} wordArray The word array. 57534 * 57535 * @return {string} The Base64 string. 57536 * 57537 * @static 57538 * 57539 * @example 57540 * 57541 * var base64String = CryptoJS.enc.Base64.stringify(wordArray); 57542 */ 57543 stringify: function (wordArray) { 57544 // Shortcuts 57545 var words = wordArray.words; 57546 var sigBytes = wordArray.sigBytes; 57547 var map = this._map; 57548 57549 // Clamp excess bits 57550 wordArray.clamp(); 57551 57552 // Convert 57553 var base64Chars = []; 57554 for (var i = 0; i < sigBytes; i += 3) { 57555 var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; 57556 var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; 57557 var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; 57558 57559 var triplet = (byte1 << 16) | (byte2 << 8) | byte3; 57560 57561 for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { 57562 base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); 57563 } 57564 } 57565 57566 // Add padding 57567 var paddingChar = map.charAt(64); 57568 if (paddingChar) { 57569 while (base64Chars.length % 4) { 57570 base64Chars.push(paddingChar); 57571 } 57572 } 57573 57574 return base64Chars.join(''); 57575 }, 57576 57577 /** 57578 * Converts a Base64 string to a word array. 57579 * 57580 * @param {string} base64Str The Base64 string. 57581 * 57582 * @return {WordArray} The word array. 57583 * 57584 * @static 57585 * 57586 * @example 57587 * 57588 * var wordArray = CryptoJS.enc.Base64.parse(base64String); 57589 */ 57590 parse: function (base64Str) { 57591 // Shortcuts 57592 var base64StrLength = base64Str.length; 57593 var map = this._map; 57594 var reverseMap = this._reverseMap; 57595 57596 if (!reverseMap) { 57597 reverseMap = this._reverseMap = []; 57598 for (var j = 0; j < map.length; j++) { 57599 reverseMap[map.charCodeAt(j)] = j; 57600 } 57601 } 57602 57603 // Ignore padding 57604 var paddingChar = map.charAt(64); 57605 if (paddingChar) { 57606 var paddingIndex = base64Str.indexOf(paddingChar); 57607 if (paddingIndex !== -1) { 57608 base64StrLength = paddingIndex; 57609 } 57610 } 57611 57612 // Convert 57613 return parseLoop(base64Str, base64StrLength, reverseMap); 57614 57615 }, 57616 57617 _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' 57618 }; 57619 57620 function parseLoop(base64Str, base64StrLength, reverseMap) { 57621 var words = []; 57622 var nBytes = 0; 57623 for (var i = 0; i < base64StrLength; i++) { 57624 if (i % 4) { 57625 var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); 57626 var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); 57627 words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); 57628 nBytes++; 57629 } 57630 } 57631 return WordArray.create(words, nBytes); 57632 } 57633 }()); 57634 57635 57636 return CryptoJS.enc.Base64; 57637 57638})); 57639 57640/***/ }), 57641
vendor: 703 bytes, lines 57642-57662
57642/***/ "./node_modules/crypto-js/hmac-sha256.js": 57643/*!***********************************************!*\ 57644 !*** ./node_modules/crypto-js/hmac-sha256.js ***! 57645 \***********************************************/ 57646/*! no static exports found */ 57647/***/ (function(module, exports, __webpack_require__) { 57648 57649;(function (root, factory, undef) { 57650 if (true) { 57651 // CommonJS 57652 module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js"), __webpack_require__(/*! ./sha256 */ "./node_modules/crypto-js/sha256.js"), __webpack_require__(/*! ./hmac */ "./node_modules/crypto-js/hmac.js")); 57653 } 57654 else {} 57655}(this, function (CryptoJS) { 57656 57657 return CryptoJS.HmacSHA256; 57658 57659})); 57660 57661/***/ }), 57662
vendor: 4,144 bytes, lines 57663-57808
57663/***/ "./node_modules/crypto-js/hmac.js": 57664/*!****************************************!*\ 57665 !*** ./node_modules/crypto-js/hmac.js ***! 57666 \****************************************/ 57667/*! no static exports found */ 57668/***/ (function(module, exports, __webpack_require__) { 57669 57670;(function (root, factory) { 57671 if (true) { 57672 // CommonJS 57673 module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); 57674 } 57675 else {} 57676}(this, function (CryptoJS) { 57677 57678 (function () { 57679 // Shortcuts 57680 var C = CryptoJS; 57681 var C_lib = C.lib; 57682 var Base = C_lib.Base; 57683 var C_enc = C.enc; 57684 var Utf8 = C_enc.Utf8; 57685 var C_algo = C.algo; 57686 57687 /** 57688 * HMAC algorithm. 57689 */ 57690 var HMAC = C_algo.HMAC = Base.extend({ 57691 /** 57692 * Initializes a newly created HMAC. 57693 * 57694 * @param {Hasher} hasher The hash algorithm to use. 57695 * @param {WordArray|string} key The secret key. 57696 * 57697 * @example 57698 * 57699 * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); 57700 */ 57701 init: function (hasher, key) { 57702 // Init hasher 57703 hasher = this._hasher = new hasher.init(); 57704 57705 // Convert string to WordArray, else assume WordArray already 57706 if (typeof key == 'string') { 57707 key = Utf8.parse(key); 57708 } 57709 57710 // Shortcuts 57711 var hasherBlockSize = hasher.blockSize; 57712 var hasherBlockSizeBytes = hasherBlockSize * 4; 57713 57714 // Allow arbitrary length keys 57715 if (key.sigBytes > hasherBlockSizeBytes) { 57716 key = hasher.finalize(key); 57717 } 57718 57719 // Clamp excess bits 57720 key.clamp(); 57721 57722 // Clone key for inner and outer pads 57723 var oKey = this._oKey = key.clone(); 57724 var iKey = this._iKey = key.clone(); 57725 57726 // Shortcuts 57727 var oKeyWords = oKey.words; 57728 var iKeyWords = iKey.words; 57729 57730 // XOR keys with pad constants 57731 for (var i = 0; i < hasherBlockSize; i++) { 57732 oKeyWords[i] ^= 0x5c5c5c5c; 57733 iKeyWords[i] ^= 0x36363636; 57734 } 57735 oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; 57736 57737 // Set initial values 57738 this.reset(); 57739 }, 57740 57741 /** 57742 * Resets this HMAC to its initial state. 57743 * 57744 * @example 57745 * 57746 * hmacHasher.reset(); 57747 */ 57748 reset: function () { 57749 // Shortcut 57750 var hasher = this._hasher; 57751 57752 // Reset 57753 hasher.reset(); 57754 hasher.update(this._iKey); 57755 }, 57756 57757 /** 57758 * Updates this HMAC with a message. 57759 * 57760 * @param {WordArray|string} messageUpdate The message to append. 57761 * 57762 * @return {HMAC} This HMAC instance. 57763 * 57764 * @example 57765 * 57766 * hmacHasher.update('message'); 57767 * hmacHasher.update(wordArray); 57768 */ 57769 update: function (messageUpdate) { 57770 this._hasher.update(messageUpdate); 57771 57772 // Chainable 57773 return this; 57774 }, 57775 57776 /** 57777 * Finalizes the HMAC computation. 57778 * Note that the finalize operation is effectively a destructive, read-once operation. 57779 * 57780 * @param {WordArray|string} messageUpdate (Optional) A final message update. 57781 * 57782 * @return {WordArray} The HMAC. 57783 * 57784 * @example 57785 * 57786 * var hmac = hmacHasher.finalize(); 57787 * var hmac = hmacHasher.finalize('message'); 57788 * var hmac = hmacHasher.finalize(wordArray); 57789 */ 57790 finalize: function (messageUpdate) { 57791 // Shortcut 57792 var hasher = this._hasher; 57793 57794 // Compute HMAC 57795 var innerHash = hasher.finalize(messageUpdate); 57796 hasher.reset(); 57797 var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); 57798 57799 return hmac; 57800 } 57801 }); 57802 }()); 57803 57804 57805})); 57806 57807/***/ }), 57808
vendor: 2,432 bytes, lines 57809-57887
57809/***/ "./node_modules/crypto-js/lib-typedarrays.js": 57810/*!***************************************************!*\ 57811 !*** ./node_modules/crypto-js/lib-typedarrays.js ***! 57812 \***************************************************/ 57813/*! no static exports found */ 57814/***/ (function(module, exports, __webpack_require__) { 57815 57816;(function (root, factory) { 57817 if (true) { 57818 // CommonJS 57819 module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); 57820 } 57821 else {} 57822}(this, function (CryptoJS) { 57823 57824 (function () { 57825 // Check if typed arrays are supported 57826 if (typeof ArrayBuffer != 'function') { 57827 return; 57828 } 57829 57830 // Shortcuts 57831 var C = CryptoJS; 57832 var C_lib = C.lib; 57833 var WordArray = C_lib.WordArray; 57834 57835 // Reference original init 57836 var superInit = WordArray.init; 57837 57838 // Augment WordArray.init to handle typed arrays 57839 var subInit = WordArray.init = function (typedArray) { 57840 // Convert buffers to uint8 57841 if (typedArray instanceof ArrayBuffer) { 57842 typedArray = new Uint8Array(typedArray); 57843 } 57844 57845 // Convert other array views to uint8 57846 if ( 57847 typedArray instanceof Int8Array || 57848 (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || 57849 typedArray instanceof Int16Array || 57850 typedArray instanceof Uint16Array || 57851 typedArray instanceof Int32Array || 57852 typedArray instanceof Uint32Array || 57853 typedArray instanceof Float32Array || 57854 typedArray instanceof Float64Array 57855 ) { 57856 typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); 57857 } 57858 57859 // Handle Uint8Array 57860 if (typedArray instanceof Uint8Array) { 57861 // Shortcut 57862 var typedArrayByteLength = typedArray.byteLength; 57863 57864 // Extract bytes 57865 var words = []; 57866 for (var i = 0; i < typedArrayByteLength; i++) { 57867 words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); 57868 } 57869 57870 // Initialize this word array 57871 superInit.call(this, words, typedArrayByteLength); 57872 } else { 57873 // Else call normal init 57874 superInit.apply(this, arguments); 57875 } 57876 }; 57877 57878 subInit.prototype = WordArray; 57879 }()); 57880 57881 57882 return CryptoJS.lib.WordArray; 57883 57884})); 57885 57886/***/ }), 57887
vendor: 5,706 bytes, lines 57888-58089
57888/***/ "./node_modules/crypto-js/sha256.js": 57889/*!******************************************!*\ 57890 !*** ./node_modules/crypto-js/sha256.js ***! 57891 \******************************************/ 57892/*! no static exports found */ 57893/***/ (function(module, exports, __webpack_require__) { 57894 57895;(function (root, factory) { 57896 if (true) { 57897 // CommonJS 57898 module.exports = exports = factory(__webpack_require__(/*! ./core */ "./node_modules/crypto-js/core.js")); 57899 } 57900 else {} 57901}(this, function (CryptoJS) { 57902 57903 (function (Math) { 57904 // Shortcuts 57905 var C = CryptoJS; 57906 var C_lib = C.lib; 57907 var WordArray = C_lib.WordArray; 57908 var Hasher = C_lib.Hasher; 57909 var C_algo = C.algo; 57910 57911 // Initialization and round constants tables 57912 var H = []; 57913 var K = []; 57914 57915 // Compute constants 57916 (function () { 57917 function isPrime(n) { 57918 var sqrtN = Math.sqrt(n); 57919 for (var factor = 2; factor <= sqrtN; factor++) { 57920 if (!(n % factor)) { 57921 return false; 57922 } 57923 } 57924 57925 return true; 57926 } 57927 57928 function getFractionalBits(n) { 57929 return ((n - (n | 0)) * 0x100000000) | 0; 57930 } 57931 57932 var n = 2; 57933 var nPrime = 0; 57934 while (nPrime < 64) { 57935 if (isPrime(n)) { 57936 if (nPrime < 8) { 57937 H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); 57938 } 57939 K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); 57940 57941 nPrime++; 57942 } 57943 57944 n++; 57945 } 57946 }()); 57947 57948 // Reusable object 57949 var W = []; 57950 57951 /** 57952 * SHA-256 hash algorithm. 57953 */ 57954 var SHA256 = C_algo.SHA256 = Hasher.extend({ 57955 _doReset: function () { 57956 this._hash = new WordArray.init(H.slice(0)); 57957 }, 57958 57959 _doProcessBlock: function (M, offset) { 57960 // Shortcut 57961 var H = this._hash.words; 57962 57963 // Working variables 57964 var a = H[0]; 57965 var b = H[1]; 57966 var c = H[2]; 57967 var d = H[3]; 57968 var e = H[4]; 57969 var f = H[5]; 57970 var g = H[6]; 57971 var h = H[7]; 57972 57973 // Computation 57974 for (var i = 0; i < 64; i++) { 57975 if (i < 16) { 57976 W[i] = M[offset + i] | 0; 57977 } else { 57978 var gamma0x = W[i - 15]; 57979 var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ 57980 ((gamma0x << 14) | (gamma0x >>> 18)) ^ 57981 (gamma0x >>> 3); 57982 57983 var gamma1x = W[i - 2]; 57984 var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ 57985 ((gamma1x << 13) | (gamma1x >>> 19)) ^ 57986 (gamma1x >>> 10); 57987 57988 W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; 57989 } 57990 57991 var ch = (e & f) ^ (~e & g); 57992 var maj = (a & b) ^ (a & c) ^ (b & c); 57993 57994 var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); 57995 var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); 57996 57997 var t1 = h + sigma1 + ch + K[i] + W[i]; 57998 var t2 = sigma0 + maj; 57999 58000 h = g; 58001 g = f; 58002 f = e; 58003 e = (d + t1) | 0; 58004 d = c; 58005 c = b; 58006 b = a; 58007 a = (t1 + t2) | 0; 58008 } 58009 58010 // Intermediate hash value 58011 H[0] = (H[0] + a) | 0; 58012 H[1] = (H[1] + b) | 0; 58013 H[2] = (H[2] + c) | 0; 58014 H[3] = (H[3] + d) | 0; 58015 H[4] = (H[4] + e) | 0; 58016 H[5] = (H[5] + f) | 0; 58017 H[6] = (H[6] + g) | 0; 58018 H[7] = (H[7] + h) | 0; 58019 }, 58020 58021 _doFinalize: function () { 58022 // Shortcuts 58023 var data = this._data; 58024 var dataWords = data.words; 58025 58026 var nBitsTotal = this._nDataBytes * 8; 58027 var nBitsLeft = data.sigBytes * 8; 58028 58029 // Add padding 58030 dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); 58031 dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); 58032 dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; 58033 data.sigBytes = dataWords.length * 4; 58034 58035 // Hash final blocks 58036 this._process(); 58037 58038 // Return final computed hash 58039 return this._hash; 58040 }, 58041 58042 clone: function () { 58043 var clone = Hasher.clone.call(this); 58044 clone._hash = this._hash.clone(); 58045 58046 return clone; 58047 } 58048 }); 58049 58050 /** 58051 * Shortcut function to the hasher's object interface. 58052 * 58053 * @param {WordArray|string} message The message to hash. 58054 * 58055 * @return {WordArray} The hash. 58056 * 58057 * @static 58058 * 58059 * @example 58060 * 58061 * var hash = CryptoJS.SHA256('message'); 58062 * var hash = CryptoJS.SHA256(wordArray); 58063 */ 58064 C.SHA256 = Hasher._createHelper(SHA256); 58065 58066 /** 58067 * Shortcut function to the HMAC's object interface. 58068 * 58069 * @param {WordArray|string} message The message to hash. 58070 * @param {WordArray|string} key The secret key. 58071 * 58072 * @return {WordArray} The HMAC. 58073 * 58074 * @static 58075 * 58076 * @example 58077 * 58078 * var hmac = CryptoJS.HmacSHA256(message, key); 58079 */ 58080 C.HmacSHA256 = Hasher._createHmacHelper(SHA256); 58081 }(Math)); 58082 58083 58084 return CryptoJS.SHA256; 58085 58086})); 58087 58088/***/ }), 58089
vendor: 52,028 bytes, lines 58090-59878
58090/***/ "./node_modules/dom7/dom7.esm.js": 58091/*!***************************************!*\ 58092 !*** ./node_modules/dom7/dom7.esm.js ***! 58093 \***************************************/ 58094/*! exports provided: default, $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width */ 58095/***/ (function(module, __webpack_exports__, __webpack_require__) { 58096 58097"use strict"; 58098__webpack_require__.r(__webpack_exports__); 58099/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$", function() { return $; }); 58100/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "add", function() { return add; }); 58101/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; }); 58102/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animate", function() { return animate; }); 58103/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationEnd", function() { return animationEnd; }); 58104/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "append", function() { return append; }); 58105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendTo", function() { return appendTo; }); 58106/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attr", function() { return attr; }); 58107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blur", function() { return blur; }); 58108/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "change", function() { return change; }); 58109/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "children", function() { return children; }); 58110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "click", function() { return click; }); 58111/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closest", function() { return closest; }); 58112/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return css; }); 58113/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "data", function() { return data; }); 58114/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dataset", function() { return dataset; }); 58115/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detach", function() { return detach; }); 58116/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "each", function() { return each; }); 58117/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); 58118/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "eq", function() { return eq; }); 58119/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; }); 58120/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; }); 58121/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focus", function() { return focus; }); 58122/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusin", function() { return focusin; }); 58123/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusout", function() { return focusout; }); 58124/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasClass", function() { return hasClass; }); 58125/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "height", function() { return height; }); 58126/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hide", function() { return hide; }); 58127/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "html", function() { return html; }); 58128/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "index", function() { return index; }); 58129/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertAfter", function() { return insertAfter; }); 58130/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertBefore", function() { return insertBefore; }); 58131/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "is", function() { return is; }); 58132/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keydown", function() { return keydown; }); 58133/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keypress", function() { return keypress; }); 58134/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyup", function() { return keyup; }); 58135/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mousedown", function() { return mousedown; }); 58136/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseenter", function() { return mouseenter; }); 58137/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseleave", function() { return mouseleave; }); 58138/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mousemove", function() { return mousemove; }); 58139/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseout", function() { return mouseout; }); 58140/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseover", function() { return mouseover; }); 58141/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseup", function() { return mouseup; }); 58142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "next", function() { return next; }); 58143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextAll", function() { return nextAll; }); 58144/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "off", function() { return off; }); 58145/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offset", function() { return offset; }); 58146/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "on", function() { return on; }); 58147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; }); 58148/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "outerHeight", function() { return outerHeight; }); 58149/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "outerWidth", function() { return outerWidth; }); 58150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parent", function() { return parent; }); 58151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parents", function() { return parents; }); 58152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prepend", function() { return prepend; }); 58153/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prependTo", function() { return prependTo; }); 58154/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prev", function() { return prev; }); 58155/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevAll", function() { return prevAll; }); 58156/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prop", function() { return prop; }); 58157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "remove", function() { return remove; }); 58158/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAttr", function() { return removeAttr; }); 58159/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeClass", function() { return removeClass; }); 58160/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeData", function() { return removeData; }); 58161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resize", function() { return resize; }); 58162/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scroll", function() { return scroll; }); 58163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollLeft", function() { return scrollLeft; }); 58164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollTo", function() { return scrollTo; }); 58165/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollTop", function() { return scrollTop; }); 58166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "show", function() { return show; }); 58167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "siblings", function() { return siblings; }); 58168/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stop", function() { return stop; }); 58169/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styles", function() { return styles; }); 58170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "submit", function() { return submit; }); 58171/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "text", function() { return text; }); 58172/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toggleClass", function() { return toggleClass; }); 58173/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "touchend", function() { return touchend; }); 58174/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "touchmove", function() { return touchmove; }); 58175/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "touchstart", function() { return touchstart; }); 58176/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transform", function() { return transform; }); 58177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return transition; }); 58178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transitionEnd", function() { return transitionEnd; }); 58179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return trigger; }); 58180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "val", function() { return val; }); 58181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "value", function() { return value; }); 58182/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "width", function() { return width; }); 58183/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 58184/** 58185 * Dom7 3.0.0-alpha.7 58186 * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API 58187 * https://framework7.io/docs/dom7.html 58188 * 58189 * Copyright 2020, Vladimir Kharlampidi 58190 * 58191 * Licensed under MIT 58192 * 58193 * Released on: July 14, 2020 58194 */ 58195 58196 58197function _inheritsLoose(subClass, superClass) { 58198 subClass.prototype = Object.create(superClass.prototype); 58199 subClass.prototype.constructor = subClass; 58200 subClass.__proto__ = superClass; 58201} 58202 58203function _getPrototypeOf(o) { 58204 _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { 58205 return o.__proto__ || Object.getPrototypeOf(o); 58206 }; 58207 return _getPrototypeOf(o); 58208} 58209 58210function _setPrototypeOf(o, p) { 58211 _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { 58212 o.__proto__ = p; 58213 return o; 58214 }; 58215 58216 return _setPrototypeOf(o, p); 58217} 58218 58219function _isNativeReflectConstruct() { 58220 if (typeof Reflect === "undefined" || !Reflect.construct) return false; 58221 if (Reflect.construct.sham) return false; 58222 if (typeof Proxy === "function") return true; 58223 58224 try { 58225 Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); 58226 return true; 58227 } catch (e) { 58228 return false; 58229 } 58230} 58231 58232function _construct(Parent, args, Class) { 58233 if (_isNativeReflectConstruct()) { 58234 _construct = Reflect.construct; 58235 } else { 58236 _construct = function _construct(Parent, args, Class) { 58237 var a = [null]; 58238 a.push.apply(a, args); 58239 var Constructor = Function.bind.apply(Parent, a); 58240 var instance = new Constructor(); 58241 if (Class) _setPrototypeOf(instance, Class.prototype); 58242 return instance; 58243 }; 58244 } 58245 58246 return _construct.apply(null, arguments); 58247} 58248 58249function _isNativeFunction(fn) { 58250 return Function.toString.call(fn).indexOf("[native code]") !== -1; 58251} 58252 58253function _wrapNativeSuper(Class) { 58254 var _cache = typeof Map === "function" ? new Map() : undefined; 58255 58256 _wrapNativeSuper = function _wrapNativeSuper(Class) { 58257 if (Class === null || !_isNativeFunction(Class)) return Class; 58258 58259 if (typeof Class !== "function") { 58260 throw new TypeError("Super expression must either be null or a function"); 58261 } 58262 58263 if (typeof _cache !== "undefined") { 58264 if (_cache.has(Class)) return _cache.get(Class); 58265 58266 _cache.set(Class, Wrapper); 58267 } 58268 58269 function Wrapper() { 58270 return _construct(Class, arguments, _getPrototypeOf(this).constructor); 58271 } 58272 58273 Wrapper.prototype = Object.create(Class.prototype, { 58274 constructor: { 58275 value: Wrapper, 58276 enumerable: false, 58277 writable: true, 58278 configurable: true 58279 } 58280 }); 58281 return _setPrototypeOf(Wrapper, Class); 58282 }; 58283 58284 return _wrapNativeSuper(Class); 58285} 58286 58287function _assertThisInitialized(self) { 58288 if (self === void 0) { 58289 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 58290 } 58291 58292 return self; 58293} 58294 58295/* eslint-disable no-proto */ 58296function makeReactive(obj) { 58297 var proto = obj.__proto__; 58298 Object.defineProperty(obj, '__proto__', { 58299 get: function get() { 58300 return proto; 58301 }, 58302 set: function set(value) { 58303 proto.__proto__ = value; 58304 } 58305 }); 58306} 58307 58308var Dom7 = /*#__PURE__*/function (_Array) { 58309 _inheritsLoose(Dom7, _Array); 58310 58311 function Dom7(items) { 58312 var _this; 58313 58314 _this = _Array.call.apply(_Array, [this].concat(items)) || this; 58315 makeReactive(_assertThisInitialized(_this)); 58316 return _this; 58317 } 58318 58319 return Dom7; 58320}( /*#__PURE__*/_wrapNativeSuper(Array)); 58321 58322function arrayFlat(arr) { 58323 if (arr === void 0) { 58324 arr = []; 58325 } 58326 58327 var res = []; 58328 arr.forEach(function (el) { 58329 if (Array.isArray(el)) { 58330 res.push.apply(res, arrayFlat(el)); 58331 } else { 58332 res.push(el); 58333 } 58334 }); 58335 return res; 58336} 58337function arrayFilter(arr, callback) { 58338 return Array.prototype.filter.call(arr, callback); 58339} 58340function arrayUnique(arr) { 58341 var uniqueArray = []; 58342 58343 for (var i = 0; i < arr.length; i += 1) { 58344 if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]); 58345 } 58346 58347 return uniqueArray; 58348} 58349function toCamelCase(string) { 58350 return string.toLowerCase().replace(/-(.)/g, function (match, group) { 58351 return group.toUpperCase(); 58352 }); 58353} 58354 58355function qsa(selector, context) { 58356 if (typeof selector !== 'string') { 58357 return [selector]; 58358 } 58359 58360 var a = []; 58361 var res = context.querySelectorAll(selector); 58362 58363 for (var i = 0; i < res.length; i += 1) { 58364 a.push(res[i]); 58365 } 58366 58367 return a; 58368} 58369 58370function $(selector, context) { 58371 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 58372 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 58373 var arr = []; 58374 58375 if (!context && selector instanceof Dom7) { 58376 return selector; 58377 } 58378 58379 if (!selector) { 58380 return new Dom7(arr); 58381 } 58382 58383 if (typeof selector === 'string') { 58384 var html = selector.trim(); 58385 58386 if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) { 58387 var toCreate = 'div'; 58388 if (html.indexOf('<li') === 0) toCreate = 'ul'; 58389 if (html.indexOf('<tr') === 0) toCreate = 'tbody'; 58390 if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr'; 58391 if (html.indexOf('<tbody') === 0) toCreate = 'table'; 58392 if (html.indexOf('<option') === 0) toCreate = 'select'; 58393 var tempParent = document.createElement(toCreate); 58394 tempParent.innerHTML = html; 58395 58396 for (var i = 0; i < tempParent.childNodes.length; i += 1) { 58397 arr.push(tempParent.childNodes[i]); 58398 } 58399 } else { 58400 arr = qsa(selector.trim(), context || document); 58401 } // arr = qsa(selector, document); 58402 58403 } else if (selector.nodeType || selector === window || selector === document) { 58404 arr.push(selector); 58405 } else if (Array.isArray(selector)) { 58406 if (selector instanceof Dom7) return selector; 58407 arr = selector; 58408 } 58409 58410 return new Dom7(arrayUnique(arr)); 58411} 58412 58413$.fn = Dom7.prototype; 58414 58415function addClass() { 58416 for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) { 58417 classes[_key] = arguments[_key]; 58418 } 58419 58420 var classNames = arrayFlat(classes.map(function (c) { 58421 return c.split(' '); 58422 })); 58423 this.forEach(function (el) { 58424 var _el$classList; 58425 58426 (_el$classList = el.classList).add.apply(_el$classList, classNames); 58427 }); 58428 return this; 58429} 58430 58431function removeClass() { 58432 for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 58433 classes[_key2] = arguments[_key2]; 58434 } 58435 58436 var classNames = arrayFlat(classes.map(function (c) { 58437 return c.split(' '); 58438 })); 58439 this.forEach(function (el) { 58440 var _el$classList2; 58441 58442 (_el$classList2 = el.classList).remove.apply(_el$classList2, classNames); 58443 }); 58444 return this; 58445} 58446 58447function toggleClass() { 58448 for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { 58449 classes[_key3] = arguments[_key3]; 58450 } 58451 58452 var classNames = arrayFlat(classes.map(function (c) { 58453 return c.split(' '); 58454 })); 58455 this.forEach(function (el) { 58456 classNames.forEach(function (className) { 58457 el.classList.toggle(className); 58458 }); 58459 }); 58460} 58461 58462function hasClass() { 58463 for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { 58464 classes[_key4] = arguments[_key4]; 58465 } 58466 58467 var classNames = arrayFlat(classes.map(function (c) { 58468 return c.split(' '); 58469 })); 58470 return arrayFilter(this, function (el) { 58471 return classNames.filter(function (className) { 58472 return el.classList.contains(className); 58473 }).length > 0; 58474 }).length > 0; 58475} 58476 58477function attr(attrs, value) { 58478 if (arguments.length === 1 && typeof attrs === 'string') { 58479 // Get attr 58480 if (this[0]) return this[0].getAttribute(attrs); 58481 return undefined; 58482 } // Set attrs 58483 58484 58485 for (var i = 0; i < this.length; i += 1) { 58486 if (arguments.length === 2) { 58487 // String 58488 this[i].setAttribute(attrs, value); 58489 } else { 58490 // Object 58491 for (var attrName in attrs) { 58492 this[i][attrName] = attrs[attrName]; 58493 this[i].setAttribute(attrName, attrs[attrName]); 58494 } 58495 } 58496 } 58497 58498 return this; 58499} 58500 58501function removeAttr(attr) { 58502 for (var i = 0; i < this.length; i += 1) { 58503 this[i].removeAttribute(attr); 58504 } 58505 58506 return this; 58507} 58508 58509function prop(props, value) { 58510 if (arguments.length === 1 && typeof props === 'string') { 58511 // Get prop 58512 if (this[0]) return this[0][props]; 58513 } else { 58514 // Set props 58515 for (var i = 0; i < this.length; i += 1) { 58516 if (arguments.length === 2) { 58517 // String 58518 this[i][props] = value; 58519 } else { 58520 // Object 58521 for (var propName in props) { 58522 this[i][propName] = props[propName]; 58523 } 58524 } 58525 } 58526 58527 return this; 58528 } 58529 58530 return this; 58531} 58532 58533function data(key, value) { 58534 var el; 58535 58536 if (typeof value === 'undefined') { 58537 el = this[0]; 58538 if (!el) return undefined; // Get value 58539 58540 if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) { 58541 return el.dom7ElementDataStorage[key]; 58542 } 58543 58544 var dataKey = el.getAttribute("data-" + key); 58545 58546 if (dataKey) { 58547 return dataKey; 58548 } 58549 58550 return undefined; 58551 } // Set value 58552 58553 58554 for (var i = 0; i < this.length; i += 1) { 58555 el = this[i]; 58556 if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {}; 58557 el.dom7ElementDataStorage[key] = value; 58558 } 58559 58560 return this; 58561} 58562 58563function removeData(key) { 58564 for (var i = 0; i < this.length; i += 1) { 58565 var el = this[i]; 58566 58567 if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { 58568 el.dom7ElementDataStorage[key] = null; 58569 delete el.dom7ElementDataStorage[key]; 58570 } 58571 } 58572} 58573 58574function dataset() { 58575 var el = this[0]; 58576 if (!el) return undefined; 58577 var dataset = {}; // eslint-disable-line 58578 58579 if (el.dataset) { 58580 for (var dataKey in el.dataset) { 58581 dataset[dataKey] = el.dataset[dataKey]; 58582 } 58583 } else { 58584 for (var i = 0; i < el.attributes.length; i += 1) { 58585 var _attr = el.attributes[i]; 58586 58587 if (_attr.name.indexOf('data-') >= 0) { 58588 dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value; 58589 } 58590 } 58591 } 58592 58593 for (var key in dataset) { 58594 if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1; 58595 } 58596 58597 return dataset; 58598} 58599 58600function val(value) { 58601 if (typeof value === 'undefined') { 58602 // get value 58603 var el = this[0]; 58604 if (!el) return undefined; 58605 58606 if (el.multiple && el.nodeName.toLowerCase() === 'select') { 58607 var values = []; 58608 58609 for (var i = 0; i < el.selectedOptions.length; i += 1) { 58610 values.push(el.selectedOptions[i].value); 58611 } 58612 58613 return values; 58614 } 58615 58616 return el.value; 58617 } // set value 58618 58619 58620 for (var _i = 0; _i < this.length; _i += 1) { 58621 var _el = this[_i]; 58622 58623 if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') { 58624 for (var j = 0; j < _el.options.length; j += 1) { 58625 _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0; 58626 } 58627 } else { 58628 _el.value = value; 58629 } 58630 } 58631 58632 return this; 58633} 58634 58635function value(value) { 58636 return this.val(value); 58637} 58638 58639function transform(transform) { 58640 for (var i = 0; i < this.length; i += 1) { 58641 this[i].style.transform = transform; 58642 } 58643 58644 return this; 58645} 58646 58647function transition(duration) { 58648 for (var i = 0; i < this.length; i += 1) { 58649 this[i].style.transition = typeof duration !== 'string' ? duration + "ms" : duration; 58650 } 58651 58652 return this; 58653} 58654 58655function on() { 58656 for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { 58657 args[_key5] = arguments[_key5]; 58658 } 58659 58660 var eventType = args[0], 58661 targetSelector = args[1], 58662 listener = args[2], 58663 capture = args[3]; 58664 58665 if (typeof args[1] === 'function') { 58666 eventType = args[0]; 58667 listener = args[1]; 58668 capture = args[2]; 58669 targetSelector = undefined; 58670 } 58671 58672 if (!capture) capture = false; 58673 58674 function handleLiveEvent(e) { 58675 var target = e.target; 58676 if (!target) return; 58677 var eventData = e.target.dom7EventData || []; 58678 58679 if (eventData.indexOf(e) < 0) { 58680 eventData.unshift(e); 58681 } 58682 58683 if ($(target).is(targetSelector)) listener.apply(target, eventData);else { 58684 var _parents = $(target).parents(); // eslint-disable-line 58685 58686 58687 for (var k = 0; k < _parents.length; k += 1) { 58688 if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData); 58689 } 58690 } 58691 } 58692 58693 function handleEvent(e) { 58694 var eventData = e && e.target ? e.target.dom7EventData || [] : []; 58695 58696 if (eventData.indexOf(e) < 0) { 58697 eventData.unshift(e); 58698 } 58699 58700 listener.apply(this, eventData); 58701 } 58702 58703 var events = eventType.split(' '); 58704 var j; 58705 58706 for (var i = 0; i < this.length; i += 1) { 58707 var el = this[i]; 58708 58709 if (!targetSelector) { 58710 for (j = 0; j < events.length; j += 1) { 58711 var event = events[j]; 58712 if (!el.dom7Listeners) el.dom7Listeners = {}; 58713 if (!el.dom7Listeners[event]) el.dom7Listeners[event] = []; 58714 el.dom7Listeners[event].push({ 58715 listener: listener, 58716 proxyListener: handleEvent 58717 }); 58718 el.addEventListener(event, handleEvent, capture); 58719 } 58720 } else { 58721 // Live events 58722 for (j = 0; j < events.length; j += 1) { 58723 var _event = events[j]; 58724 if (!el.dom7LiveListeners) el.dom7LiveListeners = {}; 58725 if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = []; 58726 58727 el.dom7LiveListeners[_event].push({ 58728 listener: listener, 58729 proxyListener: handleLiveEvent 58730 }); 58731 58732 el.addEventListener(_event, handleLiveEvent, capture); 58733 } 58734 } 58735 } 58736 58737 return this; 58738} 58739 58740function off() { 58741 for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { 58742 args[_key6] = arguments[_key6]; 58743 } 58744 58745 var eventType = args[0], 58746 targetSelector = args[1], 58747 listener = args[2], 58748 capture = args[3]; 58749 58750 if (typeof args[1] === 'function') { 58751 eventType = args[0]; 58752 listener = args[1]; 58753 capture = args[2]; 58754 targetSelector = undefined; 58755 } 58756 58757 if (!capture) capture = false; 58758 var events = eventType.split(' '); 58759 58760 for (var i = 0; i < events.length; i += 1) { 58761 var event = events[i]; 58762 58763 for (var j = 0; j < this.length; j += 1) { 58764 var el = this[j]; 58765 var handlers = void 0; 58766 58767 if (!targetSelector && el.dom7Listeners) { 58768 handlers = el.dom7Listeners[event]; 58769 } else if (targetSelector && el.dom7LiveListeners) { 58770 handlers = el.dom7LiveListeners[event]; 58771 } 58772 58773 if (handlers && handlers.length) { 58774 for (var k = handlers.length - 1; k >= 0; k -= 1) { 58775 var handler = handlers[k]; 58776 58777 if (listener && handler.listener === listener) { 58778 el.removeEventListener(event, handler.proxyListener, capture); 58779 handlers.splice(k, 1); 58780 } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { 58781 el.removeEventListener(event, handler.proxyListener, capture); 58782 handlers.splice(k, 1); 58783 } else if (!listener) { 58784 el.removeEventListener(event, handler.proxyListener, capture); 58785 handlers.splice(k, 1); 58786 } 58787 } 58788 } 58789 } 58790 } 58791 58792 return this; 58793} 58794 58795function once() { 58796 var dom = this; 58797 58798 for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { 58799 args[_key7] = arguments[_key7]; 58800 } 58801 58802 var eventName = args[0], 58803 targetSelector = args[1], 58804 listener = args[2], 58805 capture = args[3]; 58806 58807 if (typeof args[1] === 'function') { 58808 eventName = args[0]; 58809 listener = args[1]; 58810 capture = args[2]; 58811 targetSelector = undefined; 58812 } 58813 58814 function onceHandler() { 58815 for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { 58816 eventArgs[_key8] = arguments[_key8]; 58817 } 58818 58819 listener.apply(this, eventArgs); 58820 dom.off(eventName, targetSelector, onceHandler, capture); 58821 58822 if (onceHandler.dom7proxy) { 58823 delete onceHandler.dom7proxy; 58824 } 58825 } 58826 58827 onceHandler.dom7proxy = listener; 58828 return dom.on(eventName, targetSelector, onceHandler, capture); 58829} 58830 58831function trigger() { 58832 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 58833 58834 for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { 58835 args[_key9] = arguments[_key9]; 58836 } 58837 58838 var events = args[0].split(' '); 58839 var eventData = args[1]; 58840 58841 for (var i = 0; i < events.length; i += 1) { 58842 var event = events[i]; 58843 58844 for (var j = 0; j < this.length; j += 1) { 58845 var el = this[j]; 58846 58847 if (window.CustomEvent) { 58848 var evt = new window.CustomEvent(event, { 58849 detail: eventData, 58850 bubbles: true, 58851 cancelable: true 58852 }); 58853 el.dom7EventData = args.filter(function (data, dataIndex) { 58854 return dataIndex > 0; 58855 }); 58856 el.dispatchEvent(evt); 58857 el.dom7EventData = []; 58858 delete el.dom7EventData; 58859 } 58860 } 58861 } 58862 58863 return this; 58864} 58865 58866function transitionEnd(callback) { 58867 var dom = this; 58868 58869 function fireCallBack(e) { 58870 if (e.target !== this) return; 58871 callback.call(this, e); 58872 dom.off('transitionend', fireCallBack); 58873 } 58874 58875 if (callback) { 58876 dom.on('transitionend', fireCallBack); 58877 } 58878 58879 return this; 58880} 58881 58882function animationEnd(callback) { 58883 var dom = this; 58884 58885 function fireCallBack(e) { 58886 if (e.target !== this) return; 58887 callback.call(this, e); 58888 dom.off('animationend', fireCallBack); 58889 } 58890 58891 if (callback) { 58892 dom.on('animationend', fireCallBack); 58893 } 58894 58895 return this; 58896} 58897 58898function width() { 58899 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 58900 58901 if (this[0] === window) { 58902 return window.innerWidth; 58903 } 58904 58905 if (this.length > 0) { 58906 return parseFloat(this.css('width')); 58907 } 58908 58909 return null; 58910} 58911 58912function outerWidth(includeMargins) { 58913 if (this.length > 0) { 58914 if (includeMargins) { 58915 var _styles = this.styles(); 58916 58917 return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left')); 58918 } 58919 58920 return this[0].offsetWidth; 58921 } 58922 58923 return null; 58924} 58925 58926function height() { 58927 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 58928 58929 if (this[0] === window) { 58930 return window.innerHeight; 58931 } 58932 58933 if (this.length > 0) { 58934 return parseFloat(this.css('height')); 58935 } 58936 58937 return null; 58938} 58939 58940function outerHeight(includeMargins) { 58941 if (this.length > 0) { 58942 if (includeMargins) { 58943 var _styles2 = this.styles(); 58944 58945 return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom')); 58946 } 58947 58948 return this[0].offsetHeight; 58949 } 58950 58951 return null; 58952} 58953 58954function offset() { 58955 if (this.length > 0) { 58956 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 58957 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 58958 var el = this[0]; 58959 var box = el.getBoundingClientRect(); 58960 var body = document.body; 58961 var clientTop = el.clientTop || body.clientTop || 0; 58962 var clientLeft = el.clientLeft || body.clientLeft || 0; 58963 var scrollTop = el === window ? window.scrollY : el.scrollTop; 58964 var scrollLeft = el === window ? window.scrollX : el.scrollLeft; 58965 return { 58966 top: box.top + scrollTop - clientTop, 58967 left: box.left + scrollLeft - clientLeft 58968 }; 58969 } 58970 58971 return null; 58972} 58973 58974function hide() { 58975 for (var i = 0; i < this.length; i += 1) { 58976 this[i].style.display = 'none'; 58977 } 58978 58979 return this; 58980} 58981 58982function show() { 58983 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 58984 58985 for (var i = 0; i < this.length; i += 1) { 58986 var el = this[i]; 58987 58988 if (el.style.display === 'none') { 58989 el.style.display = ''; 58990 } 58991 58992 if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') { 58993 // Still not visible 58994 el.style.display = 'block'; 58995 } 58996 } 58997 58998 return this; 58999} 59000 59001function styles() { 59002 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 59003 if (this[0]) return window.getComputedStyle(this[0], null); 59004 return {}; 59005} 59006 59007function css(props, value) { 59008 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 59009 var i; 59010 59011 if (arguments.length === 1) { 59012 if (typeof props === 'string') { 59013 // .css('width') 59014 if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props); 59015 } else { 59016 // .css({ width: '100px' }) 59017 for (i = 0; i < this.length; i += 1) { 59018 for (var _prop in props) { 59019 this[i].style[_prop] = props[_prop]; 59020 } 59021 } 59022 59023 return this; 59024 } 59025 } 59026 59027 if (arguments.length === 2 && typeof props === 'string') { 59028 // .css('width', '100px') 59029 for (i = 0; i < this.length; i += 1) { 59030 this[i].style[props] = value; 59031 } 59032 59033 return this; 59034 } 59035 59036 return this; 59037} 59038 59039function each(callback) { 59040 if (!callback) return this; 59041 this.forEach(function (el, index) { 59042 callback.apply(el, [el, index]); 59043 }); 59044 return this; 59045} 59046 59047function filter(callback) { 59048 var result = arrayFilter(this, callback); 59049 return $(result); 59050} 59051 59052function html(html) { 59053 if (typeof html === 'undefined') { 59054 return this[0] ? this[0].innerHTML : null; 59055 } 59056 59057 for (var i = 0; i < this.length; i += 1) { 59058 this[i].innerHTML = html; 59059 } 59060 59061 return this; 59062} 59063 59064function text(text) { 59065 if (typeof text === 'undefined') { 59066 return this[0] ? this[0].textContent.trim() : null; 59067 } 59068 59069 for (var i = 0; i < this.length; i += 1) { 59070 this[i].textContent = text; 59071 } 59072 59073 return this; 59074} 59075 59076function is(selector) { 59077 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 59078 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 59079 var el = this[0]; 59080 var compareWith; 59081 var i; 59082 if (!el || typeof selector === 'undefined') return false; 59083 59084 if (typeof selector === 'string') { 59085 if (el.matches) return el.matches(selector); 59086 if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector); 59087 if (el.msMatchesSelector) return el.msMatchesSelector(selector); 59088 compareWith = $(selector); 59089 59090 for (i = 0; i < compareWith.length; i += 1) { 59091 if (compareWith[i] === el) return true; 59092 } 59093 59094 return false; 59095 } 59096 59097 if (selector === document) { 59098 return el === document; 59099 } 59100 59101 if (selector === window) { 59102 return el === window; 59103 } 59104 59105 if (selector.nodeType || selector instanceof Dom7) { 59106 compareWith = selector.nodeType ? [selector] : selector; 59107 59108 for (i = 0; i < compareWith.length; i += 1) { 59109 if (compareWith[i] === el) return true; 59110 } 59111 59112 return false; 59113 } 59114 59115 return false; 59116} 59117 59118function index() { 59119 var child = this[0]; 59120 var i; 59121 59122 if (child) { 59123 i = 0; // eslint-disable-next-line 59124 59125 while ((child = child.previousSibling) !== null) { 59126 if (child.nodeType === 1) i += 1; 59127 } 59128 59129 return i; 59130 } 59131 59132 return undefined; 59133} 59134 59135function eq(index) { 59136 if (typeof index === 'undefined') return this; 59137 var length = this.length; 59138 59139 if (index > length - 1) { 59140 return $([]); 59141 } 59142 59143 if (index < 0) { 59144 var returnIndex = length + index; 59145 if (returnIndex < 0) return $([]); 59146 return $([this[returnIndex]]); 59147 } 59148 59149 return $([this[index]]); 59150} 59151 59152function append() { 59153 var newChild; 59154 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 59155 59156 for (var k = 0; k < arguments.length; k += 1) { 59157 newChild = k < 0 || arguments.length <= k ? undefined : arguments[k]; 59158 59159 for (var i = 0; i < this.length; i += 1) { 59160 if (typeof newChild === 'string') { 59161 var tempDiv = document.createElement('div'); 59162 tempDiv.innerHTML = newChild; 59163 59164 while (tempDiv.firstChild) { 59165 this[i].appendChild(tempDiv.firstChild); 59166 } 59167 } else if (newChild instanceof Dom7) { 59168 for (var j = 0; j < newChild.length; j += 1) { 59169 this[i].appendChild(newChild[j]); 59170 } 59171 } else { 59172 this[i].appendChild(newChild); 59173 } 59174 } 59175 } 59176 59177 return this; 59178} 59179 59180function appendTo(parent) { 59181 $(parent).append(this); 59182 return this; 59183} 59184 59185function prepend(newChild) { 59186 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 59187 var i; 59188 var j; 59189 59190 for (i = 0; i < this.length; i += 1) { 59191 if (typeof newChild === 'string') { 59192 var tempDiv = document.createElement('div'); 59193 tempDiv.innerHTML = newChild; 59194 59195 for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { 59196 this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); 59197 } 59198 } else if (newChild instanceof Dom7) { 59199 for (j = 0; j < newChild.length; j += 1) { 59200 this[i].insertBefore(newChild[j], this[i].childNodes[0]); 59201 } 59202 } else { 59203 this[i].insertBefore(newChild, this[i].childNodes[0]); 59204 } 59205 } 59206 59207 return this; 59208} 59209 59210function prependTo(parent) { 59211 $(parent).prepend(this); 59212 return this; 59213} 59214 59215function insertBefore(selector) { 59216 var before = $(selector); 59217 59218 for (var i = 0; i < this.length; i += 1) { 59219 if (before.length === 1) { 59220 before[0].parentNode.insertBefore(this[i], before[0]); 59221 } else if (before.length > 1) { 59222 for (var j = 0; j < before.length; j += 1) { 59223 before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); 59224 } 59225 } 59226 } 59227} 59228 59229function insertAfter(selector) { 59230 var after = $(selector); 59231 59232 for (var i = 0; i < this.length; i += 1) { 59233 if (after.length === 1) { 59234 after[0].parentNode.insertBefore(this[i], after[0].nextSibling); 59235 } else if (after.length > 1) { 59236 for (var j = 0; j < after.length; j += 1) { 59237 after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); 59238 } 59239 } 59240 } 59241} 59242 59243function next(selector) { 59244 if (this.length > 0) { 59245 if (selector) { 59246 if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { 59247 return $([this[0].nextElementSibling]); 59248 } 59249 59250 return $([]); 59251 } 59252 59253 if (this[0].nextElementSibling) return $([this[0].nextElementSibling]); 59254 return $([]); 59255 } 59256 59257 return $([]); 59258} 59259 59260function nextAll(selector) { 59261 var nextEls = []; 59262 var el = this[0]; 59263 if (!el) return $([]); 59264 59265 while (el.nextElementSibling) { 59266 var _next = el.nextElementSibling; // eslint-disable-line 59267 59268 if (selector) { 59269 if ($(_next).is(selector)) nextEls.push(_next); 59270 } else nextEls.push(_next); 59271 59272 el = _next; 59273 } 59274 59275 return $(nextEls); 59276} 59277 59278function prev(selector) { 59279 if (this.length > 0) { 59280 var el = this[0]; 59281 59282 if (selector) { 59283 if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { 59284 return $([el.previousElementSibling]); 59285 } 59286 59287 return $([]); 59288 } 59289 59290 if (el.previousElementSibling) return $([el.previousElementSibling]); 59291 return $([]); 59292 } 59293 59294 return $([]); 59295} 59296 59297function prevAll(selector) { 59298 var prevEls = []; 59299 var el = this[0]; 59300 if (!el) return $([]); 59301 59302 while (el.previousElementSibling) { 59303 var _prev = el.previousElementSibling; // eslint-disable-line 59304 59305 if (selector) { 59306 if ($(_prev).is(selector)) prevEls.push(_prev); 59307 } else prevEls.push(_prev); 59308 59309 el = _prev; 59310 } 59311 59312 return $(prevEls); 59313} 59314 59315function siblings(selector) { 59316 return this.nextAll(selector).add(this.prevAll(selector)); 59317} 59318 59319function parent(selector) { 59320 var parents = []; // eslint-disable-line 59321 59322 for (var i = 0; i < this.length; i += 1) { 59323 if (this[i].parentNode !== null) { 59324 if (selector) { 59325 if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode); 59326 } else { 59327 parents.push(this[i].parentNode); 59328 } 59329 } 59330 } 59331 59332 return $(parents); 59333} 59334 59335function parents(selector) { 59336 var parents = []; // eslint-disable-line 59337 59338 for (var i = 0; i < this.length; i += 1) { 59339 var _parent = this[i].parentNode; // eslint-disable-line 59340 59341 while (_parent) { 59342 if (selector) { 59343 if ($(_parent).is(selector)) parents.push(_parent); 59344 } else { 59345 parents.push(_parent); 59346 } 59347 59348 _parent = _parent.parentNode; 59349 } 59350 } 59351 59352 return $(parents); 59353} 59354 59355function closest(selector) { 59356 var closest = this; // eslint-disable-line 59357 59358 if (typeof selector === 'undefined') { 59359 return $([]); 59360 } 59361 59362 if (!closest.is(selector)) { 59363 closest = closest.parents(selector).eq(0); 59364 } 59365 59366 return closest; 59367} 59368 59369function find(selector) { 59370 var foundElements = []; 59371 59372 for (var i = 0; i < this.length; i += 1) { 59373 var found = this[i].querySelectorAll(selector); 59374 59375 for (var j = 0; j < found.length; j += 1) { 59376 foundElements.push(found[j]); 59377 } 59378 } 59379 59380 return $(foundElements); 59381} 59382 59383function children(selector) { 59384 var children = []; // eslint-disable-line 59385 59386 for (var i = 0; i < this.length; i += 1) { 59387 var childNodes = this[i].children; 59388 59389 for (var j = 0; j < childNodes.length; j += 1) { 59390 if (!selector || $(childNodes[j]).is(selector)) { 59391 children.push(childNodes[j]); 59392 } 59393 } 59394 } 59395 59396 return $(children); 59397} 59398 59399function remove() { 59400 for (var i = 0; i < this.length; i += 1) { 59401 if (this[i].parentNode) this[i].parentNode.removeChild(this[i]); 59402 } 59403 59404 return this; 59405} 59406 59407function detach() { 59408 return this.remove(); 59409} 59410 59411function add() { 59412 var dom = this; 59413 var i; 59414 var j; 59415 59416 for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { 59417 els[_key10] = arguments[_key10]; 59418 } 59419 59420 for (i = 0; i < els.length; i += 1) { 59421 var toAdd = $(els[i]); 59422 59423 for (j = 0; j < toAdd.length; j += 1) { 59424 dom.push(toAdd[j]); 59425 } 59426 } 59427 59428 return dom; 59429} 59430 59431function empty() { 59432 for (var i = 0; i < this.length; i += 1) { 59433 var el = this[i]; 59434 59435 if (el.nodeType === 1) { 59436 for (var j = 0; j < el.childNodes.length; j += 1) { 59437 if (el.childNodes[j].parentNode) { 59438 el.childNodes[j].parentNode.removeChild(el.childNodes[j]); 59439 } 59440 } 59441 59442 el.textContent = ''; 59443 } 59444 } 59445 59446 return this; 59447} 59448 59449function scrollTo() { 59450 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 59451 59452 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 59453 args[_key] = arguments[_key]; 59454 } 59455 59456 var left = args[0], 59457 top = args[1], 59458 duration = args[2], 59459 easing = args[3], 59460 callback = args[4]; 59461 59462 if (args.length === 4 && typeof easing === 'function') { 59463 callback = easing; 59464 left = args[0]; 59465 top = args[1]; 59466 duration = args[2]; 59467 callback = args[3]; 59468 easing = args[4]; 59469 } 59470 59471 if (typeof easing === 'undefined') easing = 'swing'; 59472 return this.each(function animate() { 59473 var el = this; 59474 var currentTop; 59475 var currentLeft; 59476 var maxTop; 59477 var maxLeft; 59478 var newTop; 59479 var newLeft; 59480 var scrollTop; // eslint-disable-line 59481 59482 var scrollLeft; // eslint-disable-line 59483 59484 var animateTop = top > 0 || top === 0; 59485 var animateLeft = left > 0 || left === 0; 59486 59487 if (typeof easing === 'undefined') { 59488 easing = 'swing'; 59489 } 59490 59491 if (animateTop) { 59492 currentTop = el.scrollTop; 59493 59494 if (!duration) { 59495 el.scrollTop = top; 59496 } 59497 } 59498 59499 if (animateLeft) { 59500 currentLeft = el.scrollLeft; 59501 59502 if (!duration) { 59503 el.scrollLeft = left; 59504 } 59505 } 59506 59507 if (!duration) return; 59508 59509 if (animateTop) { 59510 maxTop = el.scrollHeight - el.offsetHeight; 59511 newTop = Math.max(Math.min(top, maxTop), 0); 59512 } 59513 59514 if (animateLeft) { 59515 maxLeft = el.scrollWidth - el.offsetWidth; 59516 newLeft = Math.max(Math.min(left, maxLeft), 0); 59517 } 59518 59519 var startTime = null; 59520 if (animateTop && newTop === currentTop) animateTop = false; 59521 if (animateLeft && newLeft === currentLeft) animateLeft = false; 59522 59523 function render(time) { 59524 if (time === void 0) { 59525 time = new Date().getTime(); 59526 } 59527 59528 if (startTime === null) { 59529 startTime = time; 59530 } 59531 59532 var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 59533 var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2; 59534 var done; 59535 if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop); 59536 if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft); 59537 59538 if (animateTop && newTop > currentTop && scrollTop >= newTop) { 59539 el.scrollTop = newTop; 59540 done = true; 59541 } 59542 59543 if (animateTop && newTop < currentTop && scrollTop <= newTop) { 59544 el.scrollTop = newTop; 59545 done = true; 59546 } 59547 59548 if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { 59549 el.scrollLeft = newLeft; 59550 done = true; 59551 } 59552 59553 if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { 59554 el.scrollLeft = newLeft; 59555 done = true; 59556 } 59557 59558 if (done) { 59559 if (callback) callback(); 59560 return; 59561 } 59562 59563 if (animateTop) el.scrollTop = scrollTop; 59564 if (animateLeft) el.scrollLeft = scrollLeft; 59565 window.requestAnimationFrame(render); 59566 } 59567 59568 window.requestAnimationFrame(render); 59569 }); 59570} // scrollTop(top, duration, easing, callback) { 59571 59572 59573function scrollTop() { 59574 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 59575 args[_key2] = arguments[_key2]; 59576 } 59577 59578 var top = args[0], 59579 duration = args[1], 59580 easing = args[2], 59581 callback = args[3]; 59582 59583 if (args.length === 3 && typeof easing === 'function') { 59584 top = args[0]; 59585 duration = args[1]; 59586 callback = args[2]; 59587 easing = args[3]; 59588 } 59589 59590 var dom = this; 59591 59592 if (typeof top === 'undefined') { 59593 if (dom.length > 0) return dom[0].scrollTop; 59594 return null; 59595 } 59596 59597 return dom.scrollTo(undefined, top, duration, easing, callback); 59598} 59599 59600function scrollLeft() { 59601 for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { 59602 args[_key3] = arguments[_key3]; 59603 } 59604 59605 var left = args[0], 59606 duration = args[1], 59607 easing = args[2], 59608 callback = args[3]; 59609 59610 if (args.length === 3 && typeof easing === 'function') { 59611 left = args[0]; 59612 duration = args[1]; 59613 callback = args[2]; 59614 easing = args[3]; 59615 } 59616 59617 var dom = this; 59618 59619 if (typeof left === 'undefined') { 59620 if (dom.length > 0) return dom[0].scrollLeft; 59621 return null; 59622 } 59623 59624 return dom.scrollTo(left, undefined, duration, easing, callback); 59625} 59626 59627function animate(initialProps, initialParams) { 59628 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 59629 var els = this; 59630 var a = { 59631 props: Object.assign({}, initialProps), 59632 params: Object.assign({ 59633 duration: 300, 59634 easing: 'swing' // or 'linear' 59635 59636 /* Callbacks 59637 begin(elements) 59638 complete(elements) 59639 progress(elements, complete, remaining, start, tweenValue) 59640 */ 59641 59642 }, initialParams), 59643 elements: els, 59644 animating: false, 59645 que: [], 59646 easingProgress: function easingProgress(easing, progress) { 59647 if (easing === 'swing') { 59648 return 0.5 - Math.cos(progress * Math.PI) / 2; 59649 } 59650 59651 if (typeof easing === 'function') { 59652 return easing(progress); 59653 } 59654 59655 return progress; 59656 }, 59657 stop: function stop() { 59658 if (a.frameId) { 59659 window.cancelAnimationFrame(a.frameId); 59660 } 59661 59662 a.animating = false; 59663 a.elements.each(function (el) { 59664 var element = el; 59665 delete element.dom7AnimateInstance; 59666 }); 59667 a.que = []; 59668 }, 59669 done: function done(complete) { 59670 a.animating = false; 59671 a.elements.each(function (el) { 59672 var element = el; 59673 delete element.dom7AnimateInstance; 59674 }); 59675 if (complete) complete(els); 59676 59677 if (a.que.length > 0) { 59678 var que = a.que.shift(); 59679 a.animate(que[0], que[1]); 59680 } 59681 }, 59682 animate: function animate(props, params) { 59683 if (a.animating) { 59684 a.que.push([props, params]); 59685 return a; 59686 } 59687 59688 var elements = []; // Define & Cache Initials & Units 59689 59690 a.elements.each(function (el, index) { 59691 var initialFullValue; 59692 var initialValue; 59693 var unit; 59694 var finalValue; 59695 var finalFullValue; 59696 if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a; 59697 elements[index] = { 59698 container: el 59699 }; 59700 Object.keys(props).forEach(function (prop) { 59701 initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); 59702 initialValue = parseFloat(initialFullValue); 59703 unit = initialFullValue.replace(initialValue, ''); 59704 finalValue = parseFloat(props[prop]); 59705 finalFullValue = props[prop] + unit; 59706 elements[index][prop] = { 59707 initialFullValue: initialFullValue, 59708 initialValue: initialValue, 59709 unit: unit, 59710 finalValue: finalValue, 59711 finalFullValue: finalFullValue, 59712 currentValue: initialValue 59713 }; 59714 }); 59715 }); 59716 var startTime = null; 59717 var time; 59718 var elementsDone = 0; 59719 var propsDone = 0; 59720 var done; 59721 var began = false; 59722 a.animating = true; 59723 59724 function render() { 59725 time = new Date().getTime(); 59726 var progress; 59727 var easeProgress; // let el; 59728 59729 if (!began) { 59730 began = true; 59731 if (params.begin) params.begin(els); 59732 } 59733 59734 if (startTime === null) { 59735 startTime = time; 59736 } 59737 59738 if (params.progress) { 59739 // eslint-disable-next-line 59740 params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime); 59741 } 59742 59743 elements.forEach(function (element) { 59744 var el = element; 59745 if (done || el.done) return; 59746 Object.keys(props).forEach(function (prop) { 59747 if (done || el.done) return; 59748 progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); 59749 easeProgress = a.easingProgress(params.easing, progress); 59750 var _el$prop = el[prop], 59751 initialValue = _el$prop.initialValue, 59752 finalValue = _el$prop.finalValue, 59753 unit = _el$prop.unit; 59754 el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue); 59755 var currentValue = el[prop].currentValue; 59756 59757 if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) { 59758 el.container.style[prop] = finalValue + unit; 59759 propsDone += 1; 59760 59761 if (propsDone === Object.keys(props).length) { 59762 el.done = true; 59763 elementsDone += 1; 59764 } 59765 59766 if (elementsDone === elements.length) { 59767 done = true; 59768 } 59769 } 59770 59771 if (done) { 59772 a.done(params.complete); 59773 return; 59774 } 59775 59776 el.container.style[prop] = currentValue + unit; 59777 }); 59778 }); 59779 if (done) return; // Then call 59780 59781 a.frameId = window.requestAnimationFrame(render); 59782 } 59783 59784 a.frameId = window.requestAnimationFrame(render); 59785 return a; 59786 } 59787 }; 59788 59789 if (a.elements.length === 0) { 59790 return els; 59791 } 59792 59793 var animateInstance; 59794 59795 for (var i = 0; i < a.elements.length; i += 1) { 59796 if (a.elements[i].dom7AnimateInstance) { 59797 animateInstance = a.elements[i].dom7AnimateInstance; 59798 } else a.elements[i].dom7AnimateInstance = a; 59799 } 59800 59801 if (!animateInstance) { 59802 animateInstance = a; 59803 } 59804 59805 if (initialProps === 'stop') { 59806 animateInstance.stop(); 59807 } else { 59808 animateInstance.animate(a.props, a.params); 59809 } 59810 59811 return els; 59812} 59813 59814function stop() { 59815 var els = this; 59816 59817 for (var i = 0; i < els.length; i += 1) { 59818 if (els[i].dom7AnimateInstance) { 59819 els[i].dom7AnimateInstance.stop(); 59820 } 59821 } 59822} 59823 59824var noTrigger = 'resize scroll'.split(' '); 59825 59826function shortcut(name) { 59827 function eventHandler() { 59828 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 59829 args[_key] = arguments[_key]; 59830 } 59831 59832 if (typeof args[0] === 'undefined') { 59833 for (var i = 0; i < this.length; i += 1) { 59834 if (noTrigger.indexOf(name) < 0) { 59835 if (name in this[i]) this[i][name]();else { 59836 $(this[i]).trigger(name); 59837 } 59838 } 59839 } 59840 59841 return this; 59842 } 59843 59844 return this.on.apply(this, [name].concat(args)); 59845 } 59846 59847 return eventHandler; 59848} 59849 59850var click = shortcut('click'); 59851var blur = shortcut('blur'); 59852var focus = shortcut('focus'); 59853var focusin = shortcut('focusin'); 59854var focusout = shortcut('focusout'); 59855var keyup = shortcut('keyup'); 59856var keydown = shortcut('keydown'); 59857var keypress = shortcut('keypress'); 59858var submit = shortcut('submit'); 59859var change = shortcut('change'); 59860var mousedown = shortcut('mousedown'); 59861var mousemove = shortcut('mousemove'); 59862var mouseup = shortcut('mouseup'); 59863var mouseenter = shortcut('mouseenter'); 59864var mouseleave = shortcut('mouseleave'); 59865var mouseout = shortcut('mouseout'); 59866var mouseover = shortcut('mouseover'); 59867var touchstart = shortcut('touchstart'); 59868var touchend = shortcut('touchend'); 59869var touchmove = shortcut('touchmove'); 59870var resize = shortcut('resize'); 59871var scroll = shortcut('scroll'); 59872 59873/* harmony default export */ __webpack_exports__["default"] = ($); 59874 59875 59876 59877/***/ }), 59878
vendor: 9,417 bytes, lines 59879-60226
59879/***/ "./node_modules/eventemitter3/index.js": 59880/*!*********************************************!*\ 59881 !*** ./node_modules/eventemitter3/index.js ***! 59882 \*********************************************/ 59883/*! no static exports found */ 59884/***/ (function(module, exports, __webpack_require__) { 59885 59886"use strict"; 59887 59888 59889var has = Object.prototype.hasOwnProperty 59890 , prefix = '~'; 59891 59892/** 59893 * Constructor to create a storage for our `EE` objects. 59894 * An `Events` instance is a plain object whose properties are event names. 59895 * 59896 * @constructor 59897 * @private 59898 */ 59899function Events() {} 59900 59901// 59902// We try to not inherit from `Object.prototype`. In some engines creating an 59903// instance in this way is faster than calling `Object.create(null)` directly. 59904// If `Object.create(null)` is not supported we prefix the event names with a 59905// character to make sure that the built-in object properties are not 59906// overridden or used as an attack vector. 59907// 59908if (Object.create) { 59909 Events.prototype = Object.create(null); 59910 59911 // 59912 // This hack is needed because the `__proto__` property is still inherited in 59913 // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5. 59914 // 59915 if (!new Events().__proto__) prefix = false; 59916} 59917 59918/** 59919 * Representation of a single event listener. 59920 * 59921 * @param {Function} fn The listener function. 59922 * @param {*} context The context to invoke the listener with. 59923 * @param {Boolean} [once=false] Specify if the listener is a one-time listener. 59924 * @constructor 59925 * @private 59926 */ 59927function EE(fn, context, once) { 59928 this.fn = fn; 59929 this.context = context; 59930 this.once = once || false; 59931} 59932 59933/** 59934 * Add a listener for a given event. 59935 * 59936 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. 59937 * @param {(String|Symbol)} event The event name. 59938 * @param {Function} fn The listener function. 59939 * @param {*} context The context to invoke the listener with. 59940 * @param {Boolean} once Specify if the listener is a one-time listener. 59941 * @returns {EventEmitter} 59942 * @private 59943 */ 59944function addListener(emitter, event, fn, context, once) { 59945 if (typeof fn !== 'function') { 59946 throw new TypeError('The listener must be a function'); 59947 } 59948 59949 var listener = new EE(fn, context || emitter, once) 59950 , evt = prefix ? prefix + event : event; 59951 59952 if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++; 59953 else if (!emitter._events[evt].fn) emitter._events[evt].push(listener); 59954 else emitter._events[evt] = [emitter._events[evt], listener]; 59955 59956 return emitter; 59957} 59958 59959/** 59960 * Clear event by name. 59961 * 59962 * @param {EventEmitter} emitter Reference to the `EventEmitter` instance. 59963 * @param {(String|Symbol)} evt The Event name. 59964 * @private 59965 */ 59966function clearEvent(emitter, evt) { 59967 if (--emitter._eventsCount === 0) emitter._events = new Events(); 59968 else delete emitter._events[evt]; 59969} 59970 59971/** 59972 * Minimal `EventEmitter` interface that is molded against the Node.js 59973 * `EventEmitter` interface. 59974 * 59975 * @constructor 59976 * @public 59977 */ 59978function EventEmitter() { 59979 this._events = new Events(); 59980 this._eventsCount = 0; 59981} 59982 59983/** 59984 * Return an array listing the events for which the emitter has registered 59985 * listeners. 59986 * 59987 * @returns {Array} 59988 * @public 59989 */ 59990EventEmitter.prototype.eventNames = function eventNames() { 59991 var names = [] 59992 , events 59993 , name; 59994 59995 if (this._eventsCount === 0) return names; 59996 59997 for (name in (events = this._events)) { 59998 if (has.call(events, name)) names.push(prefix ? name.slice(1) : name); 59999 } 60000 60001 if (Object.getOwnPropertySymbols) { 60002 return names.concat(Object.getOwnPropertySymbols(events)); 60003 } 60004 60005 return names; 60006}; 60007 60008/** 60009 * Return the listeners registered for a given event. 60010 * 60011 * @param {(String|Symbol)} event The event name. 60012 * @returns {Array} The registered listeners. 60013 * @public 60014 */ 60015EventEmitter.prototype.listeners = function listeners(event) { 60016 var evt = prefix ? prefix + event : event 60017 , handlers = this._events[evt]; 60018 60019 if (!handlers) return []; 60020 if (handlers.fn) return [handlers.fn]; 60021 60022 for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) { 60023 ee[i] = handlers[i].fn; 60024 } 60025 60026 return ee; 60027}; 60028 60029/** 60030 * Return the number of listeners listening to a given event. 60031 * 60032 * @param {(String|Symbol)} event The event name. 60033 * @returns {Number} The number of listeners. 60034 * @public 60035 */ 60036EventEmitter.prototype.listenerCount = function listenerCount(event) { 60037 var evt = prefix ? prefix + event : event 60038 , listeners = this._events[evt]; 60039 60040 if (!listeners) return 0; 60041 if (listeners.fn) return 1; 60042 return listeners.length; 60043}; 60044 60045/** 60046 * Calls each of the listeners registered for a given event. 60047 * 60048 * @param {(String|Symbol)} event The event name. 60049 * @returns {Boolean} `true` if the event had listeners, else `false`. 60050 * @public 60051 */ 60052EventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) { 60053 var evt = prefix ? prefix + event : event; 60054 60055 if (!this._events[evt]) return false; 60056 60057 var listeners = this._events[evt] 60058 , len = arguments.length 60059 , args 60060 , i; 60061 60062 if (listeners.fn) { 60063 if (listeners.once) this.removeListener(event, listeners.fn, undefined, true); 60064 60065 switch (len) { 60066 case 1: return listeners.fn.call(listeners.context), true; 60067 case 2: return listeners.fn.call(listeners.context, a1), true; 60068 case 3: return listeners.fn.call(listeners.context, a1, a2), true; 60069 case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true; 60070 case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true; 60071 case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true; 60072 } 60073 60074 for (i = 1, args = new Array(len -1); i < len; i++) { 60075 args[i - 1] = arguments[i]; 60076 } 60077 60078 listeners.fn.apply(listeners.context, args); 60079 } else { 60080 var length = listeners.length 60081 , j; 60082 60083 for (i = 0; i < length; i++) { 60084 if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true); 60085 60086 switch (len) { 60087 case 1: listeners[i].fn.call(listeners[i].context); break; 60088 case 2: listeners[i].fn.call(listeners[i].context, a1); break; 60089 case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break; 60090 case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break; 60091 default: 60092 if (!args) for (j = 1, args = new Array(len -1); j < len; j++) { 60093 args[j - 1] = arguments[j]; 60094 } 60095 60096 listeners[i].fn.apply(listeners[i].context, args); 60097 } 60098 } 60099 } 60100 60101 return true; 60102}; 60103 60104/** 60105 * Add a listener for a given event. 60106 * 60107 * @param {(String|Symbol)} event The event name. 60108 * @param {Function} fn The listener function. 60109 * @param {*} [context=this] The context to invoke the listener with. 60110 * @returns {EventEmitter} `this`. 60111 * @public 60112 */ 60113EventEmitter.prototype.on = function on(event, fn, context) { 60114 return addListener(this, event, fn, context, false); 60115}; 60116 60117/** 60118 * Add a one-time listener for a given event. 60119 * 60120 * @param {(String|Symbol)} event The event name. 60121 * @param {Function} fn The listener function. 60122 * @param {*} [context=this] The context to invoke the listener with. 60123 * @returns {EventEmitter} `this`. 60124 * @public 60125 */ 60126EventEmitter.prototype.once = function once(event, fn, context) { 60127 return addListener(this, event, fn, context, true); 60128}; 60129 60130/** 60131 * Remove the listeners of a given event. 60132 * 60133 * @param {(String|Symbol)} event The event name. 60134 * @param {Function} fn Only remove the listeners that match this function. 60135 * @param {*} context Only remove the listeners that have this context. 60136 * @param {Boolean} once Only remove one-time listeners. 60137 * @returns {EventEmitter} `this`. 60138 * @public 60139 */ 60140EventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) { 60141 var evt = prefix ? prefix + event : event; 60142 60143 if (!this._events[evt]) return this; 60144 if (!fn) { 60145 clearEvent(this, evt); 60146 return this; 60147 } 60148 60149 var listeners = this._events[evt]; 60150 60151 if (listeners.fn) { 60152 if ( 60153 listeners.fn === fn && 60154 (!once || listeners.once) && 60155 (!context || listeners.context === context) 60156 ) { 60157 clearEvent(this, evt); 60158 } 60159 } else { 60160 for (var i = 0, events = [], length = listeners.length; i < length; i++) { 60161 if ( 60162 listeners[i].fn !== fn || 60163 (once && !listeners[i].once) || 60164 (context && listeners[i].context !== context) 60165 ) { 60166 events.push(listeners[i]); 60167 } 60168 } 60169 60170 // 60171 // Reset the array, or remove it completely if we have no more listeners. 60172 // 60173 if (events.length) this._events[evt] = events.length === 1 ? events[0] : events; 60174 else clearEvent(this, evt); 60175 } 60176 60177 return this; 60178}; 60179 60180/** 60181 * Remove all listeners, or those of the specified event. 60182 * 60183 * @param {(String|Symbol)} [event] The event name. 60184 * @returns {EventEmitter} `this`. 60185 * @public 60186 */ 60187EventEmitter.prototype.removeAllListeners = function removeAllListeners(event) { 60188 var evt; 60189 60190 if (event) { 60191 evt = prefix ? prefix + event : event; 60192 if (this._events[evt]) clearEvent(this, evt); 60193 } else { 60194 this._events = new Events(); 60195 this._eventsCount = 0; 60196 } 60197 60198 return this; 60199}; 60200 60201// 60202// Alias methods names because people roll like that. 60203// 60204EventEmitter.prototype.off = EventEmitter.prototype.removeListener; 60205EventEmitter.prototype.addListener = EventEmitter.prototype.on; 60206 60207// 60208// Expose the prefix. 60209// 60210EventEmitter.prefixed = prefix; 60211 60212// 60213// Allow `EventEmitter` to be imported as module namespace. 60214// 60215EventEmitter.EventEmitter = EventEmitter; 60216 60217// 60218// Expose the module. 60219// 60220if (true) { 60221 module.exports = EventEmitter; 60222} 60223 60224 60225/***/ }), 60226
vendor: 2,319 bytes, lines 60227-60321
60227/***/ "./node_modules/ieee754/index.js": 60228/*!***************************************!*\ 60229 !*** ./node_modules/ieee754/index.js ***! 60230 \***************************************/ 60231/*! no static exports found */ 60232/***/ (function(module, exports) { 60233 60234exports.read = function (buffer, offset, isLE, mLen, nBytes) { 60235 var e, m 60236 var eLen = (nBytes * 8) - mLen - 1 60237 var eMax = (1 << eLen) - 1 60238 var eBias = eMax >> 1 60239 var nBits = -7 60240 var i = isLE ? (nBytes - 1) : 0 60241 var d = isLE ? -1 : 1 60242 var s = buffer[offset + i] 60243 60244 i += d 60245 60246 e = s & ((1 << (-nBits)) - 1) 60247 s >>= (-nBits) 60248 nBits += eLen 60249 for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} 60250 60251 m = e & ((1 << (-nBits)) - 1) 60252 e >>= (-nBits) 60253 nBits += mLen 60254 for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} 60255 60256 if (e === 0) { 60257 e = 1 - eBias 60258 } else if (e === eMax) { 60259 return m ? NaN : ((s ? -1 : 1) * Infinity) 60260 } else { 60261 m = m + Math.pow(2, mLen) 60262 e = e - eBias 60263 } 60264 return (s ? -1 : 1) * m * Math.pow(2, e - mLen) 60265} 60266 60267exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { 60268 var e, m, c 60269 var eLen = (nBytes * 8) - mLen - 1 60270 var eMax = (1 << eLen) - 1 60271 var eBias = eMax >> 1 60272 var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) 60273 var i = isLE ? 0 : (nBytes - 1) 60274 var d = isLE ? 1 : -1 60275 var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 60276 60277 value = Math.abs(value) 60278 60279 if (isNaN(value) || value === Infinity) { 60280 m = isNaN(value) ? 1 : 0 60281 e = eMax 60282 } else { 60283 e = Math.floor(Math.log(value) / Math.LN2) 60284 if (value * (c = Math.pow(2, -e)) < 1) { 60285 e-- 60286 c *= 2 60287 } 60288 if (e + eBias >= 1) { 60289 value += rt / c 60290 } else { 60291 value += rt * Math.pow(2, 1 - eBias) 60292 } 60293 if (value * c >= 2) { 60294 e++ 60295 c /= 2 60296 } 60297 60298 if (e + eBias >= eMax) { 60299 m = 0 60300 e = eMax 60301 } else if (e + eBias >= 1) { 60302 m = ((value * c) - 1) * Math.pow(2, mLen) 60303 e = e + eBias 60304 } else { 60305 m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) 60306 e = 0 60307 } 60308 } 60309 60310 for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} 60311 60312 e = (e << mLen) | m 60313 eLen += mLen 60314 for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} 60315 60316 buffer[offset + i - d] |= s * 128 60317} 60318 60319 60320/***/ }), 60321
vendor: 387 bytes, lines 60322-60337
60322/***/ "./node_modules/isarray/index.js": 60323/*!***************************************!*\ 60324 !*** ./node_modules/isarray/index.js ***! 60325 \***************************************/ 60326/*! no static exports found */ 60327/***/ (function(module, exports) { 60328 60329var toString = {}.toString; 60330 60331module.exports = Array.isArray || function (arr) { 60332 return toString.call(arr) == '[object Array]'; 60333}; 60334 60335 60336/***/ }), 60337
vendor: 546 bytes, lines 60338-60349
60338/***/ "./node_modules/isomorphic-unfetch/browser.js": 60339/*!****************************************************!*\ 60340 !*** ./node_modules/isomorphic-unfetch/browser.js ***! 60341 \****************************************************/ 60342/*! no static exports found */ 60343/***/ (function(module, exports, __webpack_require__) { 60344 60345module.exports = window.fetch || (window.fetch = __webpack_require__(/*! unfetch */ "./node_modules/unfetch/dist/unfetch.mjs").default || __webpack_require__(/*! unfetch */ "./node_modules/unfetch/dist/unfetch.mjs")); 60346 60347 60348/***/ }), 60349
vendor: 289,075 bytes, lines 60350-71242
60350/***/ "./node_modules/jquery/dist/jquery.js": 60351/*!********************************************!*\ 60352 !*** ./node_modules/jquery/dist/jquery.js ***! 60353 \********************************************/ 60354/*! no static exports found */ 60355/***/ (function(module, exports, __webpack_require__) { 60356 60357var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 60358 * jQuery JavaScript Library v3.6.0 60359 * https://jquery.com/ 60360 * 60361 * Includes Sizzle.js 60362 * https://sizzlejs.com/ 60363 * 60364 * Copyright OpenJS Foundation and other contributors 60365 * Released under the MIT license 60366 * https://jquery.org/license 60367 * 60368 * Date: 2021-03-02T17:08Z 60369 */ 60370( function( global, factory ) { 60371 60372 "use strict"; 60373 60374 if ( true && typeof module.exports === "object" ) { 60375 60376 // For CommonJS and CommonJS-like environments where a proper `window` 60377 // is present, execute the factory and get jQuery. 60378 // For environments that do not have a `window` with a `document` 60379 // (such as Node.js), expose a factory as module.exports. 60380 // This accentuates the need for the creation of a real `window`. 60381 // e.g. var jQuery = require("jquery")(window); 60382 // See ticket #14549 for more info. 60383 module.exports = global.document ? 60384 factory( global, true ) : 60385 function( w ) { 60386 if ( !w.document ) { 60387 throw new Error( "jQuery requires a window with a document" ); 60388 } 60389 return factory( w ); 60390 }; 60391 } else { 60392 factory( global ); 60393 } 60394 60395// Pass this if window is not defined yet 60396} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 60397 60398// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 60399// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 60400// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 60401// enough that all such attempts are guarded in a try block. 60402"use strict"; 60403 60404var arr = []; 60405 60406var getProto = Object.getPrototypeOf; 60407 60408var slice = arr.slice; 60409 60410var flat = arr.flat ? function( array ) { 60411 return arr.flat.call( array ); 60412} : function( array ) { 60413 return arr.concat.apply( [], array ); 60414}; 60415 60416 60417var push = arr.push; 60418 60419var indexOf = arr.indexOf; 60420 60421var class2type = {}; 60422 60423var toString = class2type.toString; 60424 60425var hasOwn = class2type.hasOwnProperty; 60426 60427var fnToString = hasOwn.toString; 60428 60429var ObjectFunctionString = fnToString.call( Object ); 60430 60431var support = {}; 60432 60433var isFunction = function isFunction( obj ) { 60434 60435 // Support: Chrome <=57, Firefox <=52 60436 // In some browsers, typeof returns "function" for HTML <object> elements 60437 // (i.e., `typeof document.createElement( "object" ) === "function"`). 60438 // We don't want to classify *any* DOM node as a function. 60439 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 60440 // Plus for old WebKit, typeof returns "function" for HTML collections 60441 // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) 60442 return typeof obj === "function" && typeof obj.nodeType !== "number" && 60443 typeof obj.item !== "function"; 60444 }; 60445 60446 60447var isWindow = function isWindow( obj ) { 60448 return obj != null && obj === obj.window; 60449 }; 60450 60451 60452var document = window.document; 60453 60454 60455 60456 var preservedScriptAttributes = { 60457 type: true, 60458 src: true, 60459 nonce: true, 60460 noModule: true 60461 }; 60462 60463 function DOMEval( code, node, doc ) { 60464 doc = doc || document; 60465 60466 var i, val, 60467 script = doc.createElement( "script" ); 60468 60469 script.text = code; 60470 if ( node ) { 60471 for ( i in preservedScriptAttributes ) { 60472 60473 // Support: Firefox 64+, Edge 18+ 60474 // Some browsers don't support the "nonce" property on scripts. 60475 // On the other hand, just using `getAttribute` is not enough as 60476 // the `nonce` attribute is reset to an empty string whenever it 60477 // becomes browsing-context connected. 60478 // See https://github.com/whatwg/html/issues/2369 60479 // See https://html.spec.whatwg.org/#nonce-attributes 60480 // The `node.getAttribute` check was added for the sake of 60481 // `jQuery.globalEval` so that it can fake a nonce-containing node 60482 // via an object. 60483 val = node[ i ] || node.getAttribute && node.getAttribute( i ); 60484 if ( val ) { 60485 script.setAttribute( i, val ); 60486 } 60487 } 60488 } 60489 doc.head.appendChild( script ).parentNode.removeChild( script ); 60490 } 60491 60492 60493function toType( obj ) { 60494 if ( obj == null ) { 60495 return obj + ""; 60496 } 60497 60498 // Support: Android <=2.3 only (functionish RegExp) 60499 return typeof obj === "object" || typeof obj === "function" ? 60500 class2type[ toString.call( obj ) ] || "object" : 60501 typeof obj; 60502} 60503/* global Symbol */ 60504// Defining this global in .eslintrc.json would create a danger of using the global 60505// unguarded in another place, it seems safer to define global only for this module 60506 60507 60508 60509var 60510 version = "3.6.0", 60511 60512 // Define a local copy of jQuery 60513 jQuery = function( selector, context ) { 60514 60515 // The jQuery object is actually just the init constructor 'enhanced' 60516 // Need init if jQuery is called (just allow error to be thrown if not included) 60517 return new jQuery.fn.init( selector, context ); 60518 }; 60519 60520jQuery.fn = jQuery.prototype = { 60521 60522 // The current version of jQuery being used 60523 jquery: version, 60524 60525 constructor: jQuery, 60526 60527 // The default length of a jQuery object is 0 60528 length: 0, 60529 60530 toArray: function() { 60531 return slice.call( this ); 60532 }, 60533 60534 // Get the Nth element in the matched element set OR 60535 // Get the whole matched element set as a clean array 60536 get: function( num ) { 60537 60538 // Return all the elements in a clean array 60539 if ( num == null ) { 60540 return slice.call( this ); 60541 } 60542 60543 // Return just the one element from the set 60544 return num < 0 ? this[ num + this.length ] : this[ num ]; 60545 }, 60546 60547 // Take an array of elements and push it onto the stack 60548 // (returning the new matched element set) 60549 pushStack: function( elems ) { 60550 60551 // Build a new jQuery matched element set 60552 var ret = jQuery.merge( this.constructor(), elems ); 60553 60554 // Add the old object onto the stack (as a reference) 60555 ret.prevObject = this; 60556 60557 // Return the newly-formed element set 60558 return ret; 60559 }, 60560 60561 // Execute a callback for every element in the matched set. 60562 each: function( callback ) { 60563 return jQuery.each( this, callback ); 60564 }, 60565 60566 map: function( callback ) { 60567 return this.pushStack( jQuery.map( this, function( elem, i ) { 60568 return callback.call( elem, i, elem ); 60569 } ) ); 60570 }, 60571 60572 slice: function() { 60573 return this.pushStack( slice.apply( this, arguments ) ); 60574 }, 60575 60576 first: function() { 60577 return this.eq( 0 ); 60578 }, 60579 60580 last: function() { 60581 return this.eq( -1 ); 60582 }, 60583 60584 even: function() { 60585 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 60586 return ( i + 1 ) % 2; 60587 } ) ); 60588 }, 60589 60590 odd: function() { 60591 return this.pushStack( jQuery.grep( this, function( _elem, i ) { 60592 return i % 2; 60593 } ) ); 60594 }, 60595 60596 eq: function( i ) { 60597 var len = this.length, 60598 j = +i + ( i < 0 ? len : 0 ); 60599 return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); 60600 }, 60601 60602 end: function() { 60603 return this.prevObject || this.constructor(); 60604 }, 60605 60606 // For internal use only. 60607 // Behaves like an Array's method, not like a jQuery method. 60608 push: push, 60609 sort: arr.sort, 60610 splice: arr.splice 60611}; 60612 60613jQuery.extend = jQuery.fn.extend = function() { 60614 var options, name, src, copy, copyIsArray, clone, 60615 target = arguments[ 0 ] || {}, 60616 i = 1, 60617 length = arguments.length, 60618 deep = false; 60619 60620 // Handle a deep copy situation 60621 if ( typeof target === "boolean" ) { 60622 deep = target; 60623 60624 // Skip the boolean and the target 60625 target = arguments[ i ] || {}; 60626 i++; 60627 } 60628 60629 // Handle case when target is a string or something (possible in deep copy) 60630 if ( typeof target !== "object" && !isFunction( target ) ) { 60631 target = {}; 60632 } 60633 60634 // Extend jQuery itself if only one argument is passed 60635 if ( i === length ) { 60636 target = this; 60637 i--; 60638 } 60639 60640 for ( ; i < length; i++ ) { 60641 60642 // Only deal with non-null/undefined values 60643 if ( ( options = arguments[ i ] ) != null ) { 60644 60645 // Extend the base object 60646 for ( name in options ) { 60647 copy = options[ name ]; 60648 60649 // Prevent Object.prototype pollution 60650 // Prevent never-ending loop 60651 if ( name === "__proto__" || target === copy ) { 60652 continue; 60653 } 60654 60655 // Recurse if we're merging plain objects or arrays 60656 if ( deep && copy && ( jQuery.isPlainObject( copy ) || 60657 ( copyIsArray = Array.isArray( copy ) ) ) ) { 60658 src = target[ name ]; 60659 60660 // Ensure proper type for the source value 60661 if ( copyIsArray && !Array.isArray( src ) ) { 60662 clone = []; 60663 } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { 60664 clone = {}; 60665 } else { 60666 clone = src; 60667 } 60668 copyIsArray = false; 60669 60670 // Never move original objects, clone them 60671 target[ name ] = jQuery.extend( deep, clone, copy ); 60672 60673 // Don't bring in undefined values 60674 } else if ( copy !== undefined ) { 60675 target[ name ] = copy; 60676 } 60677 } 60678 } 60679 } 60680 60681 // Return the modified object 60682 return target; 60683}; 60684 60685jQuery.extend( { 60686 60687 // Unique for each copy of jQuery on the page 60688 expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), 60689 60690 // Assume jQuery is ready without the ready module 60691 isReady: true, 60692 60693 error: function( msg ) { 60694 throw new Error( msg ); 60695 }, 60696 60697 noop: function() {}, 60698 60699 isPlainObject: function( obj ) { 60700 var proto, Ctor; 60701 60702 // Detect obvious negatives 60703 // Use toString instead of jQuery.type to catch host objects 60704 if ( !obj || toString.call( obj ) !== "[object Object]" ) { 60705 return false; 60706 } 60707 60708 proto = getProto( obj ); 60709 60710 // Objects with no prototype (e.g., `Object.create( null )`) are plain 60711 if ( !proto ) { 60712 return true; 60713 } 60714 60715 // Objects with prototype are plain iff they were constructed by a global Object function 60716 Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; 60717 return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; 60718 }, 60719 60720 isEmptyObject: function( obj ) { 60721 var name; 60722 60723 for ( name in obj ) { 60724 return false; 60725 } 60726 return true; 60727 }, 60728 60729 // Evaluates a script in a provided context; falls back to the global one 60730 // if not specified. 60731 globalEval: function( code, options, doc ) { 60732 DOMEval( code, { nonce: options && options.nonce }, doc ); 60733 }, 60734 60735 each: function( obj, callback ) { 60736 var length, i = 0; 60737 60738 if ( isArrayLike( obj ) ) { 60739 length = obj.length; 60740 for ( ; i < length; i++ ) { 60741 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 60742 break; 60743 } 60744 } 60745 } else { 60746 for ( i in obj ) { 60747 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 60748 break; 60749 } 60750 } 60751 } 60752 60753 return obj; 60754 }, 60755 60756 // results is for internal usage only 60757 makeArray: function( arr, results ) { 60758 var ret = results || []; 60759 60760 if ( arr != null ) { 60761 if ( isArrayLike( Object( arr ) ) ) { 60762 jQuery.merge( ret, 60763 typeof arr === "string" ? 60764 [ arr ] : arr 60765 ); 60766 } else { 60767 push.call( ret, arr ); 60768 } 60769 } 60770 60771 return ret; 60772 }, 60773 60774 inArray: function( elem, arr, i ) { 60775 return arr == null ? -1 : indexOf.call( arr, elem, i ); 60776 }, 60777 60778 // Support: Android <=4.0 only, PhantomJS 1 only 60779 // push.apply(_, arraylike) throws on ancient WebKit 60780 merge: function( first, second ) { 60781 var len = +second.length, 60782 j = 0, 60783 i = first.length; 60784 60785 for ( ; j < len; j++ ) { 60786 first[ i++ ] = second[ j ]; 60787 } 60788 60789 first.length = i; 60790 60791 return first; 60792 }, 60793 60794 grep: function( elems, callback, invert ) { 60795 var callbackInverse, 60796 matches = [], 60797 i = 0, 60798 length = elems.length, 60799 callbackExpect = !invert; 60800 60801 // Go through the array, only saving the items 60802 // that pass the validator function 60803 for ( ; i < length; i++ ) { 60804 callbackInverse = !callback( elems[ i ], i ); 60805 if ( callbackInverse !== callbackExpect ) { 60806 matches.push( elems[ i ] ); 60807 } 60808 } 60809 60810 return matches; 60811 }, 60812 60813 // arg is for internal usage only 60814 map: function( elems, callback, arg ) { 60815 var length, value, 60816 i = 0, 60817 ret = []; 60818 60819 // Go through the array, translating each of the items to their new values 60820 if ( isArrayLike( elems ) ) { 60821 length = elems.length; 60822 for ( ; i < length; i++ ) { 60823 value = callback( elems[ i ], i, arg ); 60824 60825 if ( value != null ) { 60826 ret.push( value ); 60827 } 60828 } 60829 60830 // Go through every key on the object, 60831 } else { 60832 for ( i in elems ) { 60833 value = callback( elems[ i ], i, arg ); 60834 60835 if ( value != null ) { 60836 ret.push( value ); 60837 } 60838 } 60839 } 60840 60841 // Flatten any nested arrays 60842 return flat( ret ); 60843 }, 60844 60845 // A global GUID counter for objects 60846 guid: 1, 60847 60848 // jQuery.support is not used in Core but other projects attach their 60849 // properties to it so it needs to exist. 60850 support: support 60851} ); 60852 60853if ( typeof Symbol === "function" ) { 60854 jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; 60855} 60856 60857// Populate the class2type map 60858jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), 60859 function( _i, name ) { 60860 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 60861 } ); 60862 60863function isArrayLike( obj ) { 60864 60865 // Support: real iOS 8.2 only (not reproducible in simulator) 60866 // `in` check used to prevent JIT error (gh-2145) 60867 // hasOwn isn't used here due to false negatives 60868 // regarding Nodelist length in IE 60869 var length = !!obj && "length" in obj && obj.length, 60870 type = toType( obj ); 60871 60872 if ( isFunction( obj ) || isWindow( obj ) ) { 60873 return false; 60874 } 60875 60876 return type === "array" || length === 0 || 60877 typeof length === "number" && length > 0 && ( length - 1 ) in obj; 60878} 60879var Sizzle = 60880/*! 60881 * Sizzle CSS Selector Engine v2.3.6 60882 * https://sizzlejs.com/ 60883 * 60884 * Copyright JS Foundation and other contributors 60885 * Released under the MIT license 60886 * https://js.foundation/ 60887 * 60888 * Date: 2021-02-16 60889 */ 60890( function( window ) { 60891var i, 60892 support, 60893 Expr, 60894 getText, 60895 isXML, 60896 tokenize, 60897 compile, 60898 select, 60899 outermostContext, 60900 sortInput, 60901 hasDuplicate, 60902 60903 // Local document vars 60904 setDocument, 60905 document, 60906 docElem, 60907 documentIsHTML, 60908 rbuggyQSA, 60909 rbuggyMatches, 60910 matches, 60911 contains, 60912 60913 // Instance-specific data 60914 expando = "sizzle" + 1 * new Date(), 60915 preferredDoc = window.document, 60916 dirruns = 0, 60917 done = 0, 60918 classCache = createCache(), 60919 tokenCache = createCache(), 60920 compilerCache = createCache(), 60921 nonnativeSelectorCache = createCache(), 60922 sortOrder = function( a, b ) { 60923 if ( a === b ) { 60924 hasDuplicate = true; 60925 } 60926 return 0; 60927 }, 60928 60929 // Instance methods 60930 hasOwn = ( {} ).hasOwnProperty, 60931 arr = [], 60932 pop = arr.pop, 60933 pushNative = arr.push, 60934 push = arr.push, 60935 slice = arr.slice, 60936 60937 // Use a stripped-down indexOf as it's faster than native 60938 // https://jsperf.com/thor-indexof-vs-for/5 60939 indexOf = function( list, elem ) { 60940 var i = 0, 60941 len = list.length; 60942 for ( ; i < len; i++ ) { 60943 if ( list[ i ] === elem ) { 60944 return i; 60945 } 60946 } 60947 return -1; 60948 }, 60949 60950 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + 60951 "ismap|loop|multiple|open|readonly|required|scoped", 60952 60953 // Regular expressions 60954 60955 // http://www.w3.org/TR/css3-selectors/#whitespace 60956 whitespace = "[\\x20\\t\\r\\n\\f]", 60957 60958 // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram 60959 identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + 60960 "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 60961 60962 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors 60963 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 60964 60965 // Operator (capture 2) 60966 "*([*^$|!~]?=)" + whitespace + 60967 60968 // "Attribute values must be CSS identifiers [capture 5] 60969 // or strings [capture 3 or capture 4]" 60970 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + 60971 whitespace + "*\\]", 60972 60973 pseudos = ":(" + identifier + ")(?:\\((" + 60974 60975 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 60976 // 1. quoted (capture 3; capture 4 or capture 5) 60977 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 60978 60979 // 2. simple (capture 6) 60980 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 60981 60982 // 3. anything else (capture 2) 60983 ".*" + 60984 ")\\)|)", 60985 60986 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 60987 rwhitespace = new RegExp( whitespace + "+", "g" ), 60988 rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + 60989 whitespace + "+$", "g" ), 60990 60991 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), 60992 rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + 60993 "*" ), 60994 rdescend = new RegExp( whitespace + "|>" ), 60995 60996 rpseudo = new RegExp( pseudos ), 60997 ridentifier = new RegExp( "^" + identifier + "$" ), 60998 60999 matchExpr = { 61000 "ID": new RegExp( "^#(" + identifier + ")" ), 61001 "CLASS": new RegExp( "^\\.(" + identifier + ")" ), 61002 "TAG": new RegExp( "^(" + identifier + "|[*])" ), 61003 "ATTR": new RegExp( "^" + attributes ), 61004 "PSEUDO": new RegExp( "^" + pseudos ), 61005 "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + 61006 whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + 61007 whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), 61008 "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), 61009 61010 // For use in libraries implementing .is() 61011 // We use this for POS matching in `select` 61012 "needsContext": new RegExp( "^" + whitespace + 61013 "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + 61014 "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) 61015 }, 61016 61017 rhtml = /HTML$/i, 61018 rinputs = /^(?:input|select|textarea|button)$/i, 61019 rheader = /^h\d$/i, 61020 61021 rnative = /^[^{]+\{\s*\[native \w/, 61022 61023 // Easily-parseable/retrievable ID or TAG or CLASS selectors 61024 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 61025 61026 rsibling = /[+~]/, 61027 61028 // CSS escapes 61029 // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters 61030 runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), 61031 funescape = function( escape, nonHex ) { 61032 var high = "0x" + escape.slice( 1 ) - 0x10000; 61033 61034 return nonHex ? 61035 61036 // Strip the backslash prefix from a non-hex escape sequence 61037 nonHex : 61038 61039 // Replace a hexadecimal escape sequence with the encoded Unicode code point 61040 // Support: IE <=11+ 61041 // For values outside the Basic Multilingual Plane (BMP), manually construct a 61042 // surrogate pair 61043 high < 0 ? 61044 String.fromCharCode( high + 0x10000 ) : 61045 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); 61046 }, 61047 61048 // CSS string/identifier serialization 61049 // https://drafts.csswg.org/cssom/#common-serializing-idioms 61050 rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 61051 fcssescape = function( ch, asCodePoint ) { 61052 if ( asCodePoint ) { 61053 61054 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 61055 if ( ch === "\0" ) { 61056 return "\uFFFD"; 61057 } 61058 61059 // Control characters and (dependent upon position) numbers get escaped as code points 61060 return ch.slice( 0, -1 ) + "\\" + 61061 ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; 61062 } 61063 61064 // Other potentially-special ASCII characters get backslash-escaped 61065 return "\\" + ch; 61066 }, 61067 61068 // Used for iframes 61069 // See setDocument() 61070 // Removing the function wrapper causes a "Permission Denied" 61071 // error in IE 61072 unloadHandler = function() { 61073 setDocument(); 61074 }, 61075 61076 inDisabledFieldset = addCombinator( 61077 function( elem ) { 61078 return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; 61079 }, 61080 { dir: "parentNode", next: "legend" } 61081 ); 61082 61083// Optimize for push.apply( _, NodeList ) 61084try { 61085 push.apply( 61086 ( arr = slice.call( preferredDoc.childNodes ) ), 61087 preferredDoc.childNodes 61088 ); 61089 61090 // Support: Android<4.0 61091 // Detect silently failing push.apply 61092 // eslint-disable-next-line no-unused-expressions 61093 arr[ preferredDoc.childNodes.length ].nodeType; 61094} catch ( e ) { 61095 push = { apply: arr.length ? 61096 61097 // Leverage slice if possible 61098 function( target, els ) { 61099 pushNative.apply( target, slice.call( els ) ); 61100 } : 61101 61102 // Support: IE<9 61103 // Otherwise append directly 61104 function( target, els ) { 61105 var j = target.length, 61106 i = 0; 61107 61108 // Can't trust NodeList.length 61109 while ( ( target[ j++ ] = els[ i++ ] ) ) {} 61110 target.length = j - 1; 61111 } 61112 }; 61113} 61114 61115function Sizzle( selector, context, results, seed ) { 61116 var m, i, elem, nid, match, groups, newSelector, 61117 newContext = context && context.ownerDocument, 61118 61119 // nodeType defaults to 9, since context defaults to document 61120 nodeType = context ? context.nodeType : 9; 61121 61122 results = results || []; 61123 61124 // Return early from calls with invalid selector or context 61125 if ( typeof selector !== "string" || !selector || 61126 nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { 61127 61128 return results; 61129 } 61130 61131 // Try to shortcut find operations (as opposed to filters) in HTML documents 61132 if ( !seed ) { 61133 setDocument( context ); 61134 context = context || document; 61135 61136 if ( documentIsHTML ) { 61137 61138 // If the selector is sufficiently simple, try using a "get*By*" DOM method 61139 // (excepting DocumentFragment context, where the methods don't exist) 61140 if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { 61141 61142 // ID selector 61143 if ( ( m = match[ 1 ] ) ) { 61144 61145 // Document context 61146 if ( nodeType === 9 ) { 61147 if ( ( elem = context.getElementById( m ) ) ) { 61148 61149 // Support: IE, Opera, Webkit 61150 // TODO: identify versions 61151 // getElementById can match elements by name instead of ID 61152 if ( elem.id === m ) { 61153 results.push( elem ); 61154 return results; 61155 } 61156 } else { 61157 return results; 61158 } 61159 61160 // Element context 61161 } else { 61162 61163 // Support: IE, Opera, Webkit 61164 // TODO: identify versions 61165 // getElementById can match elements by name instead of ID 61166 if ( newContext && ( elem = newContext.getElementById( m ) ) && 61167 contains( context, elem ) && 61168 elem.id === m ) { 61169 61170 results.push( elem ); 61171 return results; 61172 } 61173 } 61174 61175 // Type selector 61176 } else if ( match[ 2 ] ) { 61177 push.apply( results, context.getElementsByTagName( selector ) ); 61178 return results; 61179 61180 // Class selector 61181 } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && 61182 context.getElementsByClassName ) { 61183 61184 push.apply( results, context.getElementsByClassName( m ) ); 61185 return results; 61186 } 61187 } 61188 61189 // Take advantage of querySelectorAll 61190 if ( support.qsa && 61191 !nonnativeSelectorCache[ selector + " " ] && 61192 ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && 61193 61194 // Support: IE 8 only 61195 // Exclude object elements 61196 ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { 61197 61198 newSelector = selector; 61199 newContext = context; 61200 61201 // qSA considers elements outside a scoping root when evaluating child or 61202 // descendant combinators, which is not what we want. 61203 // In such cases, we work around the behavior by prefixing every selector in the 61204 // list with an ID selector referencing the scope context. 61205 // The technique has to be used as well when a leading combinator is used 61206 // as such selectors are not recognized by querySelectorAll. 61207 // Thanks to Andrew Dupont for this technique. 61208 if ( nodeType === 1 && 61209 ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { 61210 61211 // Expand context for sibling selectors 61212 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || 61213 context; 61214 61215 // We can use :scope instead of the ID hack if the browser 61216 // supports it & if we're not changing the context. 61217 if ( newContext !== context || !support.scope ) { 61218 61219 // Capture the context ID, setting it first if necessary 61220 if ( ( nid = context.getAttribute( "id" ) ) ) { 61221 nid = nid.replace( rcssescape, fcssescape ); 61222 } else { 61223 context.setAttribute( "id", ( nid = expando ) ); 61224 } 61225 } 61226 61227 // Prefix every selector in the list 61228 groups = tokenize( selector ); 61229 i = groups.length; 61230 while ( i-- ) { 61231 groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + 61232 toSelector( groups[ i ] ); 61233 } 61234 newSelector = groups.join( "," ); 61235 } 61236 61237 try { 61238 push.apply( results, 61239 newContext.querySelectorAll( newSelector ) 61240 ); 61241 return results; 61242 } catch ( qsaError ) { 61243 nonnativeSelectorCache( selector, true ); 61244 } finally { 61245 if ( nid === expando ) { 61246 context.removeAttribute( "id" ); 61247 } 61248 } 61249 } 61250 } 61251 } 61252 61253 // All others 61254 return select( selector.replace( rtrim, "$1" ), context, results, seed ); 61255} 61256 61257/** 61258 * Create key-value caches of limited size 61259 * @returns {function(string, object)} Returns the Object data after storing it on itself with 61260 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 61261 * deleting the oldest entry 61262 */ 61263function createCache() { 61264 var keys = []; 61265 61266 function cache( key, value ) { 61267 61268 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) 61269 if ( keys.push( key + " " ) > Expr.cacheLength ) { 61270 61271 // Only keep the most recent entries 61272 delete cache[ keys.shift() ]; 61273 } 61274 return ( cache[ key + " " ] = value ); 61275 } 61276 return cache; 61277} 61278 61279/** 61280 * Mark a function for special use by Sizzle 61281 * @param {Function} fn The function to mark 61282 */ 61283function markFunction( fn ) { 61284 fn[ expando ] = true; 61285 return fn; 61286} 61287 61288/** 61289 * Support testing using an element 61290 * @param {Function} fn Passed the created element and returns a boolean result 61291 */ 61292function assert( fn ) { 61293 var el = document.createElement( "fieldset" ); 61294 61295 try { 61296 return !!fn( el ); 61297 } catch ( e ) { 61298 return false; 61299 } finally { 61300 61301 // Remove from its parent by default 61302 if ( el.parentNode ) { 61303 el.parentNode.removeChild( el ); 61304 } 61305 61306 // release memory in IE 61307 el = null; 61308 } 61309} 61310 61311/** 61312 * Adds the same handler for all of the specified attrs 61313 * @param {String} attrs Pipe-separated list of attributes 61314 * @param {Function} handler The method that will be applied 61315 */ 61316function addHandle( attrs, handler ) { 61317 var arr = attrs.split( "|" ), 61318 i = arr.length; 61319 61320 while ( i-- ) { 61321 Expr.attrHandle[ arr[ i ] ] = handler; 61322 } 61323} 61324 61325/** 61326 * Checks document order of two siblings 61327 * @param {Element} a 61328 * @param {Element} b 61329 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b 61330 */ 61331function siblingCheck( a, b ) { 61332 var cur = b && a, 61333 diff = cur && a.nodeType === 1 && b.nodeType === 1 && 61334 a.sourceIndex - b.sourceIndex; 61335 61336 // Use IE sourceIndex if available on both nodes 61337 if ( diff ) { 61338 return diff; 61339 } 61340 61341 // Check if b follows a 61342 if ( cur ) { 61343 while ( ( cur = cur.nextSibling ) ) { 61344 if ( cur === b ) { 61345 return -1; 61346 } 61347 } 61348 } 61349 61350 return a ? 1 : -1; 61351} 61352 61353/** 61354 * Returns a function to use in pseudos for input types 61355 * @param {String} type 61356 */ 61357function createInputPseudo( type ) { 61358 return function( elem ) { 61359 var name = elem.nodeName.toLowerCase(); 61360 return name === "input" && elem.type === type; 61361 }; 61362} 61363 61364/** 61365 * Returns a function to use in pseudos for buttons 61366 * @param {String} type 61367 */ 61368function createButtonPseudo( type ) { 61369 return function( elem ) { 61370 var name = elem.nodeName.toLowerCase(); 61371 return ( name === "input" || name === "button" ) && elem.type === type; 61372 }; 61373} 61374 61375/** 61376 * Returns a function to use in pseudos for :enabled/:disabled 61377 * @param {Boolean} disabled true for :disabled; false for :enabled 61378 */ 61379function createDisabledPseudo( disabled ) { 61380 61381 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 61382 return function( elem ) { 61383 61384 // Only certain elements can match :enabled or :disabled 61385 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 61386 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 61387 if ( "form" in elem ) { 61388 61389 // Check for inherited disabledness on relevant non-disabled elements: 61390 // * listed form-associated elements in a disabled fieldset 61391 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 61392 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 61393 // * option elements in a disabled optgroup 61394 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 61395 // All such elements have a "form" property. 61396 if ( elem.parentNode && elem.disabled === false ) { 61397 61398 // Option elements defer to a parent optgroup if present 61399 if ( "label" in elem ) { 61400 if ( "label" in elem.parentNode ) { 61401 return elem.parentNode.disabled === disabled; 61402 } else { 61403 return elem.disabled === disabled; 61404 } 61405 } 61406 61407 // Support: IE 6 - 11 61408 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 61409 return elem.isDisabled === disabled || 61410 61411 // Where there is no isDisabled, check manually 61412 /* jshint -W018 */ 61413 elem.isDisabled !== !disabled && 61414 inDisabledFieldset( elem ) === disabled; 61415 } 61416 61417 return elem.disabled === disabled; 61418 61419 // Try to winnow out elements that can't be disabled before trusting the disabled property. 61420 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 61421 // even exist on them, let alone have a boolean value. 61422 } else if ( "label" in elem ) { 61423 return elem.disabled === disabled; 61424 } 61425 61426 // Remaining elements are neither :enabled nor :disabled 61427 return false; 61428 }; 61429} 61430 61431/** 61432 * Returns a function to use in pseudos for positionals 61433 * @param {Function} fn 61434 */ 61435function createPositionalPseudo( fn ) { 61436 return markFunction( function( argument ) { 61437 argument = +argument; 61438 return markFunction( function( seed, matches ) { 61439 var j, 61440 matchIndexes = fn( [], seed.length, argument ), 61441 i = matchIndexes.length; 61442 61443 // Match elements found at the specified indexes 61444 while ( i-- ) { 61445 if ( seed[ ( j = matchIndexes[ i ] ) ] ) { 61446 seed[ j ] = !( matches[ j ] = seed[ j ] ); 61447 } 61448 } 61449 } ); 61450 } ); 61451} 61452 61453/** 61454 * Checks a node for validity as a Sizzle context 61455 * @param {Element|Object=} context 61456 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 61457 */ 61458function testContext( context ) { 61459 return context && typeof context.getElementsByTagName !== "undefined" && context; 61460} 61461 61462// Expose support vars for convenience 61463support = Sizzle.support = {}; 61464 61465/** 61466 * Detects XML nodes 61467 * @param {Element|Object} elem An element or a document 61468 * @returns {Boolean} True iff elem is a non-HTML XML node 61469 */ 61470isXML = Sizzle.isXML = function( elem ) { 61471 var namespace = elem && elem.namespaceURI, 61472 docElem = elem && ( elem.ownerDocument || elem ).documentElement; 61473 61474 // Support: IE <=8 61475 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes 61476 // https://bugs.jquery.com/ticket/4833 61477 return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); 61478}; 61479 61480/** 61481 * Sets document-related variables once based on the current document 61482 * @param {Element|Object} [doc] An element or document object to use to set the document 61483 * @returns {Object} Returns the current document 61484 */ 61485setDocument = Sizzle.setDocument = function( node ) { 61486 var hasCompare, subWindow, 61487 doc = node ? node.ownerDocument || node : preferredDoc; 61488 61489 // Return early if doc is invalid or already selected 61490 // Support: IE 11+, Edge 17 - 18+ 61491 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61492 // two documents; shallow comparisons work. 61493 // eslint-disable-next-line eqeqeq 61494 if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { 61495 return document; 61496 } 61497 61498 // Update global variables 61499 document = doc; 61500 docElem = document.documentElement; 61501 documentIsHTML = !isXML( document ); 61502 61503 // Support: IE 9 - 11+, Edge 12 - 18+ 61504 // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) 61505 // Support: IE 11+, Edge 17 - 18+ 61506 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61507 // two documents; shallow comparisons work. 61508 // eslint-disable-next-line eqeqeq 61509 if ( preferredDoc != document && 61510 ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { 61511 61512 // Support: IE 11, Edge 61513 if ( subWindow.addEventListener ) { 61514 subWindow.addEventListener( "unload", unloadHandler, false ); 61515 61516 // Support: IE 9 - 10 only 61517 } else if ( subWindow.attachEvent ) { 61518 subWindow.attachEvent( "onunload", unloadHandler ); 61519 } 61520 } 61521 61522 // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, 61523 // Safari 4 - 5 only, Opera <=11.6 - 12.x only 61524 // IE/Edge & older browsers don't support the :scope pseudo-class. 61525 // Support: Safari 6.0 only 61526 // Safari 6.0 supports :scope but it's an alias of :root there. 61527 support.scope = assert( function( el ) { 61528 docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); 61529 return typeof el.querySelectorAll !== "undefined" && 61530 !el.querySelectorAll( ":scope fieldset div" ).length; 61531 } ); 61532 61533 /* Attributes 61534 ---------------------------------------------------------------------- */ 61535 61536 // Support: IE<8 61537 // Verify that getAttribute really returns attributes and not properties 61538 // (excepting IE8 booleans) 61539 support.attributes = assert( function( el ) { 61540 el.className = "i"; 61541 return !el.getAttribute( "className" ); 61542 } ); 61543 61544 /* getElement(s)By* 61545 ---------------------------------------------------------------------- */ 61546 61547 // Check if getElementsByTagName("*") returns only elements 61548 support.getElementsByTagName = assert( function( el ) { 61549 el.appendChild( document.createComment( "" ) ); 61550 return !el.getElementsByTagName( "*" ).length; 61551 } ); 61552 61553 // Support: IE<9 61554 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); 61555 61556 // Support: IE<10 61557 // Check if getElementById returns elements by name 61558 // The broken getElementById methods don't pick up programmatically-set names, 61559 // so use a roundabout getElementsByName test 61560 support.getById = assert( function( el ) { 61561 docElem.appendChild( el ).id = expando; 61562 return !document.getElementsByName || !document.getElementsByName( expando ).length; 61563 } ); 61564 61565 // ID filter and find 61566 if ( support.getById ) { 61567 Expr.filter[ "ID" ] = function( id ) { 61568 var attrId = id.replace( runescape, funescape ); 61569 return function( elem ) { 61570 return elem.getAttribute( "id" ) === attrId; 61571 }; 61572 }; 61573 Expr.find[ "ID" ] = function( id, context ) { 61574 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 61575 var elem = context.getElementById( id ); 61576 return elem ? [ elem ] : []; 61577 } 61578 }; 61579 } else { 61580 Expr.filter[ "ID" ] = function( id ) { 61581 var attrId = id.replace( runescape, funescape ); 61582 return function( elem ) { 61583 var node = typeof elem.getAttributeNode !== "undefined" && 61584 elem.getAttributeNode( "id" ); 61585 return node && node.value === attrId; 61586 }; 61587 }; 61588 61589 // Support: IE 6 - 7 only 61590 // getElementById is not reliable as a find shortcut 61591 Expr.find[ "ID" ] = function( id, context ) { 61592 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 61593 var node, i, elems, 61594 elem = context.getElementById( id ); 61595 61596 if ( elem ) { 61597 61598 // Verify the id attribute 61599 node = elem.getAttributeNode( "id" ); 61600 if ( node && node.value === id ) { 61601 return [ elem ]; 61602 } 61603 61604 // Fall back on getElementsByName 61605 elems = context.getElementsByName( id ); 61606 i = 0; 61607 while ( ( elem = elems[ i++ ] ) ) { 61608 node = elem.getAttributeNode( "id" ); 61609 if ( node && node.value === id ) { 61610 return [ elem ]; 61611 } 61612 } 61613 } 61614 61615 return []; 61616 } 61617 }; 61618 } 61619 61620 // Tag 61621 Expr.find[ "TAG" ] = support.getElementsByTagName ? 61622 function( tag, context ) { 61623 if ( typeof context.getElementsByTagName !== "undefined" ) { 61624 return context.getElementsByTagName( tag ); 61625 61626 // DocumentFragment nodes don't have gEBTN 61627 } else if ( support.qsa ) { 61628 return context.querySelectorAll( tag ); 61629 } 61630 } : 61631 61632 function( tag, context ) { 61633 var elem, 61634 tmp = [], 61635 i = 0, 61636 61637 // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too 61638 results = context.getElementsByTagName( tag ); 61639 61640 // Filter out possible comments 61641 if ( tag === "*" ) { 61642 while ( ( elem = results[ i++ ] ) ) { 61643 if ( elem.nodeType === 1 ) { 61644 tmp.push( elem ); 61645 } 61646 } 61647 61648 return tmp; 61649 } 61650 return results; 61651 }; 61652 61653 // Class 61654 Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { 61655 if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { 61656 return context.getElementsByClassName( className ); 61657 } 61658 }; 61659 61660 /* QSA/matchesSelector 61661 ---------------------------------------------------------------------- */ 61662 61663 // QSA and matchesSelector support 61664 61665 // matchesSelector(:active) reports false when true (IE9/Opera 11.5) 61666 rbuggyMatches = []; 61667 61668 // qSa(:focus) reports false when true (Chrome 21) 61669 // We allow this because of a bug in IE8/9 that throws an error 61670 // whenever `document.activeElement` is accessed on an iframe 61671 // So, we allow :focus to pass through QSA all the time to avoid the IE error 61672 // See https://bugs.jquery.com/ticket/13378 61673 rbuggyQSA = []; 61674 61675 if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { 61676 61677 // Build QSA regex 61678 // Regex strategy adopted from Diego Perini 61679 assert( function( el ) { 61680 61681 var input; 61682 61683 // Select is set to empty string on purpose 61684 // This is to test IE's treatment of not explicitly 61685 // setting a boolean content attribute, 61686 // since its presence should be enough 61687 // https://bugs.jquery.com/ticket/12359 61688 docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" + 61689 "<select id='" + expando + "-\r\\' msallowcapture=''>" + 61690 "<option selected=''></option></select>"; 61691 61692 // Support: IE8, Opera 11-12.16 61693 // Nothing should be selected when empty strings follow ^= or $= or *= 61694 // The test attribute must be unknown in Opera but "safe" for WinRT 61695 // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section 61696 if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { 61697 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); 61698 } 61699 61700 // Support: IE8 61701 // Boolean attributes and "value" are not treated correctly 61702 if ( !el.querySelectorAll( "[selected]" ).length ) { 61703 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); 61704 } 61705 61706 // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ 61707 if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { 61708 rbuggyQSA.push( "~=" ); 61709 } 61710 61711 // Support: IE 11+, Edge 15 - 18+ 61712 // IE 11/Edge don't find elements on a `[name='']` query in some cases. 61713 // Adding a temporary attribute to the document before the selection works 61714 // around the issue. 61715 // Interestingly, IE 10 & older don't seem to have the issue. 61716 input = document.createElement( "input" ); 61717 input.setAttribute( "name", "" ); 61718 el.appendChild( input ); 61719 if ( !el.querySelectorAll( "[name='']" ).length ) { 61720 rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + 61721 whitespace + "*(?:''|\"\")" ); 61722 } 61723 61724 // Webkit/Opera - :checked should return selected option elements 61725 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 61726 // IE8 throws error here and will not see later tests 61727 if ( !el.querySelectorAll( ":checked" ).length ) { 61728 rbuggyQSA.push( ":checked" ); 61729 } 61730 61731 // Support: Safari 8+, iOS 8+ 61732 // https://bugs.webkit.org/show_bug.cgi?id=136851 61733 // In-page `selector#id sibling-combinator selector` fails 61734 if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { 61735 rbuggyQSA.push( ".#.+[+~]" ); 61736 } 61737 61738 // Support: Firefox <=3.6 - 5 only 61739 // Old Firefox doesn't throw on a badly-escaped identifier. 61740 el.querySelectorAll( "\\\f" ); 61741 rbuggyQSA.push( "[\\r\\n\\f]" ); 61742 } ); 61743 61744 assert( function( el ) { 61745 el.innerHTML = "<a href='' disabled='disabled'></a>" + 61746 "<select disabled='disabled'><option/></select>"; 61747 61748 // Support: Windows 8 Native Apps 61749 // The type and name attributes are restricted during .innerHTML assignment 61750 var input = document.createElement( "input" ); 61751 input.setAttribute( "type", "hidden" ); 61752 el.appendChild( input ).setAttribute( "name", "D" ); 61753 61754 // Support: IE8 61755 // Enforce case-sensitivity of name attribute 61756 if ( el.querySelectorAll( "[name=d]" ).length ) { 61757 rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); 61758 } 61759 61760 // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) 61761 // IE8 throws error here and will not see later tests 61762 if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { 61763 rbuggyQSA.push( ":enabled", ":disabled" ); 61764 } 61765 61766 // Support: IE9-11+ 61767 // IE's :disabled selector does not pick up the children of disabled fieldsets 61768 docElem.appendChild( el ).disabled = true; 61769 if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { 61770 rbuggyQSA.push( ":enabled", ":disabled" ); 61771 } 61772 61773 // Support: Opera 10 - 11 only 61774 // Opera 10-11 does not throw on post-comma invalid pseudos 61775 el.querySelectorAll( "*,:x" ); 61776 rbuggyQSA.push( ",.*:" ); 61777 } ); 61778 } 61779 61780 if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || 61781 docElem.webkitMatchesSelector || 61782 docElem.mozMatchesSelector || 61783 docElem.oMatchesSelector || 61784 docElem.msMatchesSelector ) ) ) ) { 61785 61786 assert( function( el ) { 61787 61788 // Check to see if it's possible to do matchesSelector 61789 // on a disconnected node (IE 9) 61790 support.disconnectedMatch = matches.call( el, "*" ); 61791 61792 // This should fail with an exception 61793 // Gecko does not error, returns false instead 61794 matches.call( el, "[s!='']:x" ); 61795 rbuggyMatches.push( "!=", pseudos ); 61796 } ); 61797 } 61798 61799 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); 61800 rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); 61801 61802 /* Contains 61803 ---------------------------------------------------------------------- */ 61804 hasCompare = rnative.test( docElem.compareDocumentPosition ); 61805 61806 // Element contains another 61807 // Purposefully self-exclusive 61808 // As in, an element does not contain itself 61809 contains = hasCompare || rnative.test( docElem.contains ) ? 61810 function( a, b ) { 61811 var adown = a.nodeType === 9 ? a.documentElement : a, 61812 bup = b && b.parentNode; 61813 return a === bup || !!( bup && bup.nodeType === 1 && ( 61814 adown.contains ? 61815 adown.contains( bup ) : 61816 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 61817 ) ); 61818 } : 61819 function( a, b ) { 61820 if ( b ) { 61821 while ( ( b = b.parentNode ) ) { 61822 if ( b === a ) { 61823 return true; 61824 } 61825 } 61826 } 61827 return false; 61828 }; 61829 61830 /* Sorting 61831 ---------------------------------------------------------------------- */ 61832 61833 // Document order sorting 61834 sortOrder = hasCompare ? 61835 function( a, b ) { 61836 61837 // Flag for duplicate removal 61838 if ( a === b ) { 61839 hasDuplicate = true; 61840 return 0; 61841 } 61842 61843 // Sort on method existence if only one input has compareDocumentPosition 61844 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 61845 if ( compare ) { 61846 return compare; 61847 } 61848 61849 // Calculate position if both inputs belong to the same document 61850 // Support: IE 11+, Edge 17 - 18+ 61851 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61852 // two documents; shallow comparisons work. 61853 // eslint-disable-next-line eqeqeq 61854 compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? 61855 a.compareDocumentPosition( b ) : 61856 61857 // Otherwise we know they are disconnected 61858 1; 61859 61860 // Disconnected nodes 61861 if ( compare & 1 || 61862 ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { 61863 61864 // Choose the first element that is related to our preferred document 61865 // Support: IE 11+, Edge 17 - 18+ 61866 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61867 // two documents; shallow comparisons work. 61868 // eslint-disable-next-line eqeqeq 61869 if ( a == document || a.ownerDocument == preferredDoc && 61870 contains( preferredDoc, a ) ) { 61871 return -1; 61872 } 61873 61874 // Support: IE 11+, Edge 17 - 18+ 61875 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61876 // two documents; shallow comparisons work. 61877 // eslint-disable-next-line eqeqeq 61878 if ( b == document || b.ownerDocument == preferredDoc && 61879 contains( preferredDoc, b ) ) { 61880 return 1; 61881 } 61882 61883 // Maintain original order 61884 return sortInput ? 61885 ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 61886 0; 61887 } 61888 61889 return compare & 4 ? -1 : 1; 61890 } : 61891 function( a, b ) { 61892 61893 // Exit early if the nodes are identical 61894 if ( a === b ) { 61895 hasDuplicate = true; 61896 return 0; 61897 } 61898 61899 var cur, 61900 i = 0, 61901 aup = a.parentNode, 61902 bup = b.parentNode, 61903 ap = [ a ], 61904 bp = [ b ]; 61905 61906 // Parentless nodes are either documents or disconnected 61907 if ( !aup || !bup ) { 61908 61909 // Support: IE 11+, Edge 17 - 18+ 61910 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61911 // two documents; shallow comparisons work. 61912 /* eslint-disable eqeqeq */ 61913 return a == document ? -1 : 61914 b == document ? 1 : 61915 /* eslint-enable eqeqeq */ 61916 aup ? -1 : 61917 bup ? 1 : 61918 sortInput ? 61919 ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 61920 0; 61921 61922 // If the nodes are siblings, we can do a quick check 61923 } else if ( aup === bup ) { 61924 return siblingCheck( a, b ); 61925 } 61926 61927 // Otherwise we need full lists of their ancestors for comparison 61928 cur = a; 61929 while ( ( cur = cur.parentNode ) ) { 61930 ap.unshift( cur ); 61931 } 61932 cur = b; 61933 while ( ( cur = cur.parentNode ) ) { 61934 bp.unshift( cur ); 61935 } 61936 61937 // Walk down the tree looking for a discrepancy 61938 while ( ap[ i ] === bp[ i ] ) { 61939 i++; 61940 } 61941 61942 return i ? 61943 61944 // Do a sibling check if the nodes have a common ancestor 61945 siblingCheck( ap[ i ], bp[ i ] ) : 61946 61947 // Otherwise nodes in our document sort first 61948 // Support: IE 11+, Edge 17 - 18+ 61949 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61950 // two documents; shallow comparisons work. 61951 /* eslint-disable eqeqeq */ 61952 ap[ i ] == preferredDoc ? -1 : 61953 bp[ i ] == preferredDoc ? 1 : 61954 /* eslint-enable eqeqeq */ 61955 0; 61956 }; 61957 61958 return document; 61959}; 61960 61961Sizzle.matches = function( expr, elements ) { 61962 return Sizzle( expr, null, null, elements ); 61963}; 61964 61965Sizzle.matchesSelector = function( elem, expr ) { 61966 setDocument( elem ); 61967 61968 if ( support.matchesSelector && documentIsHTML && 61969 !nonnativeSelectorCache[ expr + " " ] && 61970 ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && 61971 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { 61972 61973 try { 61974 var ret = matches.call( elem, expr ); 61975 61976 // IE 9's matchesSelector returns false on disconnected nodes 61977 if ( ret || support.disconnectedMatch || 61978 61979 // As well, disconnected nodes are said to be in a document 61980 // fragment in IE 9 61981 elem.document && elem.document.nodeType !== 11 ) { 61982 return ret; 61983 } 61984 } catch ( e ) { 61985 nonnativeSelectorCache( expr, true ); 61986 } 61987 } 61988 61989 return Sizzle( expr, document, null, [ elem ] ).length > 0; 61990}; 61991 61992Sizzle.contains = function( context, elem ) { 61993 61994 // Set document vars if needed 61995 // Support: IE 11+, Edge 17 - 18+ 61996 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 61997 // two documents; shallow comparisons work. 61998 // eslint-disable-next-line eqeqeq 61999 if ( ( context.ownerDocument || context ) != document ) { 62000 setDocument( context ); 62001 } 62002 return contains( context, elem ); 62003}; 62004 62005Sizzle.attr = function( elem, name ) { 62006 62007 // Set document vars if needed 62008 // Support: IE 11+, Edge 17 - 18+ 62009 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 62010 // two documents; shallow comparisons work. 62011 // eslint-disable-next-line eqeqeq 62012 if ( ( elem.ownerDocument || elem ) != document ) { 62013 setDocument( elem ); 62014 } 62015 62016 var fn = Expr.attrHandle[ name.toLowerCase() ], 62017 62018 // Don't get fooled by Object.prototype properties (jQuery #13807) 62019 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? 62020 fn( elem, name, !documentIsHTML ) : 62021 undefined; 62022 62023 return val !== undefined ? 62024 val : 62025 support.attributes || !documentIsHTML ? 62026 elem.getAttribute( name ) : 62027 ( val = elem.getAttributeNode( name ) ) && val.specified ? 62028 val.value : 62029 null; 62030}; 62031 62032Sizzle.escape = function( sel ) { 62033 return ( sel + "" ).replace( rcssescape, fcssescape ); 62034}; 62035 62036Sizzle.error = function( msg ) { 62037 throw new Error( "Syntax error, unrecognized expression: " + msg ); 62038}; 62039 62040/** 62041 * Document sorting and removing duplicates 62042 * @param {ArrayLike} results 62043 */ 62044Sizzle.uniqueSort = function( results ) { 62045 var elem, 62046 duplicates = [], 62047 j = 0, 62048 i = 0; 62049 62050 // Unless we *know* we can detect duplicates, assume their presence 62051 hasDuplicate = !support.detectDuplicates; 62052 sortInput = !support.sortStable && results.slice( 0 ); 62053 results.sort( sortOrder ); 62054 62055 if ( hasDuplicate ) { 62056 while ( ( elem = results[ i++ ] ) ) { 62057 if ( elem === results[ i ] ) { 62058 j = duplicates.push( i ); 62059 } 62060 } 62061 while ( j-- ) { 62062 results.splice( duplicates[ j ], 1 ); 62063 } 62064 } 62065 62066 // Clear input after sorting to release objects 62067 // See https://github.com/jquery/sizzle/pull/225 62068 sortInput = null; 62069 62070 return results; 62071}; 62072 62073/** 62074 * Utility function for retrieving the text value of an array of DOM nodes 62075 * @param {Array|Element} elem 62076 */ 62077getText = Sizzle.getText = function( elem ) { 62078 var node, 62079 ret = "", 62080 i = 0, 62081 nodeType = elem.nodeType; 62082 62083 if ( !nodeType ) { 62084 62085 // If no nodeType, this is expected to be an array 62086 while ( ( node = elem[ i++ ] ) ) { 62087 62088 // Do not traverse comment nodes 62089 ret += getText( node ); 62090 } 62091 } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { 62092 62093 // Use textContent for elements 62094 // innerText usage removed for consistency of new lines (jQuery #11153) 62095 if ( typeof elem.textContent === "string" ) { 62096 return elem.textContent; 62097 } else { 62098 62099 // Traverse its children 62100 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 62101 ret += getText( elem ); 62102 } 62103 } 62104 } else if ( nodeType === 3 || nodeType === 4 ) { 62105 return elem.nodeValue; 62106 } 62107 62108 // Do not include comment or processing instruction nodes 62109 62110 return ret; 62111}; 62112 62113Expr = Sizzle.selectors = { 62114 62115 // Can be adjusted by the user 62116 cacheLength: 50, 62117 62118 createPseudo: markFunction, 62119 62120 match: matchExpr, 62121 62122 attrHandle: {}, 62123 62124 find: {}, 62125 62126 relative: { 62127 ">": { dir: "parentNode", first: true }, 62128 " ": { dir: "parentNode" }, 62129 "+": { dir: "previousSibling", first: true }, 62130 "~": { dir: "previousSibling" } 62131 }, 62132 62133 preFilter: { 62134 "ATTR": function( match ) { 62135 match[ 1 ] = match[ 1 ].replace( runescape, funescape ); 62136 62137 // Move the given value to match[3] whether quoted or unquoted 62138 match[ 3 ] = ( match[ 3 ] || match[ 4 ] || 62139 match[ 5 ] || "" ).replace( runescape, funescape ); 62140 62141 if ( match[ 2 ] === "~=" ) { 62142 match[ 3 ] = " " + match[ 3 ] + " "; 62143 } 62144 62145 return match.slice( 0, 4 ); 62146 }, 62147 62148 "CHILD": function( match ) { 62149 62150 /* matches from matchExpr["CHILD"] 62151 1 type (only|nth|...) 62152 2 what (child|of-type) 62153 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 62154 4 xn-component of xn+y argument ([+-]?\d*n|) 62155 5 sign of xn-component 62156 6 x of xn-component 62157 7 sign of y-component 62158 8 y of y-component 62159 */ 62160 match[ 1 ] = match[ 1 ].toLowerCase(); 62161 62162 if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { 62163 62164 // nth-* requires argument 62165 if ( !match[ 3 ] ) { 62166 Sizzle.error( match[ 0 ] ); 62167 } 62168 62169 // numeric x and y parameters for Expr.filter.CHILD 62170 // remember that false/true cast respectively to 0/1 62171 match[ 4 ] = +( match[ 4 ] ? 62172 match[ 5 ] + ( match[ 6 ] || 1 ) : 62173 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); 62174 match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); 62175 62176 // other types prohibit arguments 62177 } else if ( match[ 3 ] ) { 62178 Sizzle.error( match[ 0 ] ); 62179 } 62180 62181 return match; 62182 }, 62183 62184 "PSEUDO": function( match ) { 62185 var excess, 62186 unquoted = !match[ 6 ] && match[ 2 ]; 62187 62188 if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { 62189 return null; 62190 } 62191 62192 // Accept quoted arguments as-is 62193 if ( match[ 3 ] ) { 62194 match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; 62195 62196 // Strip excess characters from unquoted arguments 62197 } else if ( unquoted && rpseudo.test( unquoted ) && 62198 62199 // Get excess from tokenize (recursively) 62200 ( excess = tokenize( unquoted, true ) ) && 62201 62202 // advance to the next closing parenthesis 62203 ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { 62204 62205 // excess is a negative index 62206 match[ 0 ] = match[ 0 ].slice( 0, excess ); 62207 match[ 2 ] = unquoted.slice( 0, excess ); 62208 } 62209 62210 // Return only captures needed by the pseudo filter method (type and argument) 62211 return match.slice( 0, 3 ); 62212 } 62213 }, 62214 62215 filter: { 62216 62217 "TAG": function( nodeNameSelector ) { 62218 var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); 62219 return nodeNameSelector === "*" ? 62220 function() { 62221 return true; 62222 } : 62223 function( elem ) { 62224 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 62225 }; 62226 }, 62227 62228 "CLASS": function( className ) { 62229 var pattern = classCache[ className + " " ]; 62230 62231 return pattern || 62232 ( pattern = new RegExp( "(^|" + whitespace + 62233 ")" + className + "(" + whitespace + "|$)" ) ) && classCache( 62234 className, function( elem ) { 62235 return pattern.test( 62236 typeof elem.className === "string" && elem.className || 62237 typeof elem.getAttribute !== "undefined" && 62238 elem.getAttribute( "class" ) || 62239 "" 62240 ); 62241 } ); 62242 }, 62243 62244 "ATTR": function( name, operator, check ) { 62245 return function( elem ) { 62246 var result = Sizzle.attr( elem, name ); 62247 62248 if ( result == null ) { 62249 return operator === "!="; 62250 } 62251 if ( !operator ) { 62252 return true; 62253 } 62254 62255 result += ""; 62256 62257 /* eslint-disable max-len */ 62258 62259 return operator === "=" ? result === check : 62260 operator === "!=" ? result !== check : 62261 operator === "^=" ? check && result.indexOf( check ) === 0 : 62262 operator === "*=" ? check && result.indexOf( check ) > -1 : 62263 operator === "$=" ? check && result.slice( -check.length ) === check : 62264 operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : 62265 operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : 62266 false; 62267 /* eslint-enable max-len */ 62268 62269 }; 62270 }, 62271 62272 "CHILD": function( type, what, _argument, first, last ) { 62273 var simple = type.slice( 0, 3 ) !== "nth", 62274 forward = type.slice( -4 ) !== "last", 62275 ofType = what === "of-type"; 62276 62277 return first === 1 && last === 0 ? 62278 62279 // Shortcut for :nth-*(n) 62280 function( elem ) { 62281 return !!elem.parentNode; 62282 } : 62283 62284 function( elem, _context, xml ) { 62285 var cache, uniqueCache, outerCache, node, nodeIndex, start, 62286 dir = simple !== forward ? "nextSibling" : "previousSibling", 62287 parent = elem.parentNode, 62288 name = ofType && elem.nodeName.toLowerCase(), 62289 useCache = !xml && !ofType, 62290 diff = false; 62291 62292 if ( parent ) { 62293 62294 // :(first|last|only)-(child|of-type) 62295 if ( simple ) { 62296 while ( dir ) { 62297 node = elem; 62298 while ( ( node = node[ dir ] ) ) { 62299 if ( ofType ? 62300 node.nodeName.toLowerCase() === name : 62301 node.nodeType === 1 ) { 62302 62303 return false; 62304 } 62305 } 62306 62307 // Reverse direction for :only-* (if we haven't yet done so) 62308 start = dir = type === "only" && !start && "nextSibling"; 62309 } 62310 return true; 62311 } 62312 62313 start = [ forward ? parent.firstChild : parent.lastChild ]; 62314 62315 // non-xml :nth-child(...) stores cache data on `parent` 62316 if ( forward && useCache ) { 62317 62318 // Seek `elem` from a previously-cached index 62319 62320 // ...in a gzip-friendly way 62321 node = parent; 62322 outerCache = node[ expando ] || ( node[ expando ] = {} ); 62323 62324 // Support: IE <9 only 62325 // Defend against cloned attroperties (jQuery gh-1709) 62326 uniqueCache = outerCache[ node.uniqueID ] || 62327 ( outerCache[ node.uniqueID ] = {} ); 62328 62329 cache = uniqueCache[ type ] || []; 62330 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 62331 diff = nodeIndex && cache[ 2 ]; 62332 node = nodeIndex && parent.childNodes[ nodeIndex ]; 62333 62334 while ( ( node = ++nodeIndex && node && node[ dir ] || 62335 62336 // Fallback to seeking `elem` from the start 62337 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 62338 62339 // When found, cache indexes on `parent` and break 62340 if ( node.nodeType === 1 && ++diff && node === elem ) { 62341 uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; 62342 break; 62343 } 62344 } 62345 62346 } else { 62347 62348 // Use previously-cached element index if available 62349 if ( useCache ) { 62350 62351 // ...in a gzip-friendly way 62352 node = elem; 62353 outerCache = node[ expando ] || ( node[ expando ] = {} ); 62354 62355 // Support: IE <9 only 62356 // Defend against cloned attroperties (jQuery gh-1709) 62357 uniqueCache = outerCache[ node.uniqueID ] || 62358 ( outerCache[ node.uniqueID ] = {} ); 62359 62360 cache = uniqueCache[ type ] || []; 62361 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 62362 diff = nodeIndex; 62363 } 62364 62365 // xml :nth-child(...) 62366 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 62367 if ( diff === false ) { 62368 62369 // Use the same loop as above to seek `elem` from the start 62370 while ( ( node = ++nodeIndex && node && node[ dir ] || 62371 ( diff = nodeIndex = 0 ) || start.pop() ) ) { 62372 62373 if ( ( ofType ? 62374 node.nodeName.toLowerCase() === name : 62375 node.nodeType === 1 ) && 62376 ++diff ) { 62377 62378 // Cache the index of each encountered element 62379 if ( useCache ) { 62380 outerCache = node[ expando ] || 62381 ( node[ expando ] = {} ); 62382 62383 // Support: IE <9 only 62384 // Defend against cloned attroperties (jQuery gh-1709) 62385 uniqueCache = outerCache[ node.uniqueID ] || 62386 ( outerCache[ node.uniqueID ] = {} ); 62387 62388 uniqueCache[ type ] = [ dirruns, diff ]; 62389 } 62390 62391 if ( node === elem ) { 62392 break; 62393 } 62394 } 62395 } 62396 } 62397 } 62398 62399 // Incorporate the offset, then check against cycle size 62400 diff -= last; 62401 return diff === first || ( diff % first === 0 && diff / first >= 0 ); 62402 } 62403 }; 62404 }, 62405 62406 "PSEUDO": function( pseudo, argument ) { 62407 62408 // pseudo-class names are case-insensitive 62409 // http://www.w3.org/TR/selectors/#pseudo-classes 62410 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 62411 // Remember that setFilters inherits from pseudos 62412 var args, 62413 fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || 62414 Sizzle.error( "unsupported pseudo: " + pseudo ); 62415 62416 // The user may use createPseudo to indicate that 62417 // arguments are needed to create the filter function 62418 // just as Sizzle does 62419 if ( fn[ expando ] ) { 62420 return fn( argument ); 62421 } 62422 62423 // But maintain support for old signatures 62424 if ( fn.length > 1 ) { 62425 args = [ pseudo, pseudo, "", argument ]; 62426 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? 62427 markFunction( function( seed, matches ) { 62428 var idx, 62429 matched = fn( seed, argument ), 62430 i = matched.length; 62431 while ( i-- ) { 62432 idx = indexOf( seed, matched[ i ] ); 62433 seed[ idx ] = !( matches[ idx ] = matched[ i ] ); 62434 } 62435 } ) : 62436 function( elem ) { 62437 return fn( elem, 0, args ); 62438 }; 62439 } 62440 62441 return fn; 62442 } 62443 }, 62444 62445 pseudos: { 62446 62447 // Potentially complex pseudos 62448 "not": markFunction( function( selector ) { 62449 62450 // Trim the selector passed to compile 62451 // to avoid treating leading and trailing 62452 // spaces as combinators 62453 var input = [], 62454 results = [], 62455 matcher = compile( selector.replace( rtrim, "$1" ) ); 62456 62457 return matcher[ expando ] ? 62458 markFunction( function( seed, matches, _context, xml ) { 62459 var elem, 62460 unmatched = matcher( seed, null, xml, [] ), 62461 i = seed.length; 62462 62463 // Match elements unmatched by `matcher` 62464 while ( i-- ) { 62465 if ( ( elem = unmatched[ i ] ) ) { 62466 seed[ i ] = !( matches[ i ] = elem ); 62467 } 62468 } 62469 } ) : 62470 function( elem, _context, xml ) { 62471 input[ 0 ] = elem; 62472 matcher( input, null, xml, results ); 62473 62474 // Don't keep the element (issue #299) 62475 input[ 0 ] = null; 62476 return !results.pop(); 62477 }; 62478 } ), 62479 62480 "has": markFunction( function( selector ) { 62481 return function( elem ) { 62482 return Sizzle( selector, elem ).length > 0; 62483 }; 62484 } ), 62485 62486 "contains": markFunction( function( text ) { 62487 text = text.replace( runescape, funescape ); 62488 return function( elem ) { 62489 return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; 62490 }; 62491 } ), 62492 62493 // "Whether an element is represented by a :lang() selector 62494 // is based solely on the element's language value 62495 // being equal to the identifier C, 62496 // or beginning with the identifier C immediately followed by "-". 62497 // The matching of C against the element's language value is performed case-insensitively. 62498 // The identifier C does not have to be a valid language name." 62499 // http://www.w3.org/TR/selectors/#lang-pseudo 62500 "lang": markFunction( function( lang ) { 62501 62502 // lang value must be a valid identifier 62503 if ( !ridentifier.test( lang || "" ) ) { 62504 Sizzle.error( "unsupported lang: " + lang ); 62505 } 62506 lang = lang.replace( runescape, funescape ).toLowerCase(); 62507 return function( elem ) { 62508 var elemLang; 62509 do { 62510 if ( ( elemLang = documentIsHTML ? 62511 elem.lang : 62512 elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { 62513 62514 elemLang = elemLang.toLowerCase(); 62515 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; 62516 } 62517 } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); 62518 return false; 62519 }; 62520 } ), 62521 62522 // Miscellaneous 62523 "target": function( elem ) { 62524 var hash = window.location && window.location.hash; 62525 return hash && hash.slice( 1 ) === elem.id; 62526 }, 62527 62528 "root": function( elem ) { 62529 return elem === docElem; 62530 }, 62531 62532 "focus": function( elem ) { 62533 return elem === document.activeElement && 62534 ( !document.hasFocus || document.hasFocus() ) && 62535 !!( elem.type || elem.href || ~elem.tabIndex ); 62536 }, 62537 62538 // Boolean properties 62539 "enabled": createDisabledPseudo( false ), 62540 "disabled": createDisabledPseudo( true ), 62541 62542 "checked": function( elem ) { 62543 62544 // In CSS3, :checked should return both checked and selected elements 62545 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 62546 var nodeName = elem.nodeName.toLowerCase(); 62547 return ( nodeName === "input" && !!elem.checked ) || 62548 ( nodeName === "option" && !!elem.selected ); 62549 }, 62550 62551 "selected": function( elem ) { 62552 62553 // Accessing this property makes selected-by-default 62554 // options in Safari work properly 62555 if ( elem.parentNode ) { 62556 // eslint-disable-next-line no-unused-expressions 62557 elem.parentNode.selectedIndex; 62558 } 62559 62560 return elem.selected === true; 62561 }, 62562 62563 // Contents 62564 "empty": function( elem ) { 62565 62566 // http://www.w3.org/TR/selectors/#empty-pseudo 62567 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 62568 // but not by others (comment: 8; processing instruction: 7; etc.) 62569 // nodeType < 6 works because attributes (2) do not appear as children 62570 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 62571 if ( elem.nodeType < 6 ) { 62572 return false; 62573 } 62574 } 62575 return true; 62576 }, 62577 62578 "parent": function( elem ) { 62579 return !Expr.pseudos[ "empty" ]( elem ); 62580 }, 62581 62582 // Element/input types 62583 "header": function( elem ) { 62584 return rheader.test( elem.nodeName ); 62585 }, 62586 62587 "input": function( elem ) { 62588 return rinputs.test( elem.nodeName ); 62589 }, 62590 62591 "button": function( elem ) { 62592 var name = elem.nodeName.toLowerCase(); 62593 return name === "input" && elem.type === "button" || name === "button"; 62594 }, 62595 62596 "text": function( elem ) { 62597 var attr; 62598 return elem.nodeName.toLowerCase() === "input" && 62599 elem.type === "text" && 62600 62601 // Support: IE<8 62602 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" 62603 ( ( attr = elem.getAttribute( "type" ) ) == null || 62604 attr.toLowerCase() === "text" ); 62605 }, 62606 62607 // Position-in-collection 62608 "first": createPositionalPseudo( function() { 62609 return [ 0 ]; 62610 } ), 62611 62612 "last": createPositionalPseudo( function( _matchIndexes, length ) { 62613 return [ length - 1 ]; 62614 } ), 62615 62616 "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { 62617 return [ argument < 0 ? argument + length : argument ]; 62618 } ), 62619 62620 "even": createPositionalPseudo( function( matchIndexes, length ) { 62621 var i = 0; 62622 for ( ; i < length; i += 2 ) { 62623 matchIndexes.push( i ); 62624 } 62625 return matchIndexes; 62626 } ), 62627 62628 "odd": createPositionalPseudo( function( matchIndexes, length ) { 62629 var i = 1; 62630 for ( ; i < length; i += 2 ) { 62631 matchIndexes.push( i ); 62632 } 62633 return matchIndexes; 62634 } ), 62635 62636 "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { 62637 var i = argument < 0 ? 62638 argument + length : 62639 argument > length ? 62640 length : 62641 argument; 62642 for ( ; --i >= 0; ) { 62643 matchIndexes.push( i ); 62644 } 62645 return matchIndexes; 62646 } ), 62647 62648 "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { 62649 var i = argument < 0 ? argument + length : argument; 62650 for ( ; ++i < length; ) { 62651 matchIndexes.push( i ); 62652 } 62653 return matchIndexes; 62654 } ) 62655 } 62656}; 62657 62658Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; 62659 62660// Add button/input type pseudos 62661for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { 62662 Expr.pseudos[ i ] = createInputPseudo( i ); 62663} 62664for ( i in { submit: true, reset: true } ) { 62665 Expr.pseudos[ i ] = createButtonPseudo( i ); 62666} 62667 62668// Easy API for creating new setFilters 62669function setFilters() {} 62670setFilters.prototype = Expr.filters = Expr.pseudos; 62671Expr.setFilters = new setFilters(); 62672 62673tokenize = Sizzle.tokenize = function( selector, parseOnly ) { 62674 var matched, match, tokens, type, 62675 soFar, groups, preFilters, 62676 cached = tokenCache[ selector + " " ]; 62677 62678 if ( cached ) { 62679 return parseOnly ? 0 : cached.slice( 0 ); 62680 } 62681 62682 soFar = selector; 62683 groups = []; 62684 preFilters = Expr.preFilter; 62685 62686 while ( soFar ) { 62687 62688 // Comma and first run 62689 if ( !matched || ( match = rcomma.exec( soFar ) ) ) { 62690 if ( match ) { 62691 62692 // Don't consume trailing commas as valid 62693 soFar = soFar.slice( match[ 0 ].length ) || soFar; 62694 } 62695 groups.push( ( tokens = [] ) ); 62696 } 62697 62698 matched = false; 62699 62700 // Combinators 62701 if ( ( match = rcombinators.exec( soFar ) ) ) { 62702 matched = match.shift(); 62703 tokens.push( { 62704 value: matched, 62705 62706 // Cast descendant combinators to space 62707 type: match[ 0 ].replace( rtrim, " " ) 62708 } ); 62709 soFar = soFar.slice( matched.length ); 62710 } 62711 62712 // Filters 62713 for ( type in Expr.filter ) { 62714 if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || 62715 ( match = preFilters[ type ]( match ) ) ) ) { 62716 matched = match.shift(); 62717 tokens.push( { 62718 value: matched, 62719 type: type, 62720 matches: match 62721 } ); 62722 soFar = soFar.slice( matched.length ); 62723 } 62724 } 62725 62726 if ( !matched ) { 62727 break; 62728 } 62729 } 62730 62731 // Return the length of the invalid excess 62732 // if we're just parsing 62733 // Otherwise, throw an error or return tokens 62734 return parseOnly ? 62735 soFar.length : 62736 soFar ? 62737 Sizzle.error( selector ) : 62738 62739 // Cache the tokens 62740 tokenCache( selector, groups ).slice( 0 ); 62741}; 62742 62743function toSelector( tokens ) { 62744 var i = 0, 62745 len = tokens.length, 62746 selector = ""; 62747 for ( ; i < len; i++ ) { 62748 selector += tokens[ i ].value; 62749 } 62750 return selector; 62751} 62752 62753function addCombinator( matcher, combinator, base ) { 62754 var dir = combinator.dir, 62755 skip = combinator.next, 62756 key = skip || dir, 62757 checkNonElements = base && key === "parentNode", 62758 doneName = done++; 62759 62760 return combinator.first ? 62761 62762 // Check against closest ancestor/preceding element 62763 function( elem, context, xml ) { 62764 while ( ( elem = elem[ dir ] ) ) { 62765 if ( elem.nodeType === 1 || checkNonElements ) { 62766 return matcher( elem, context, xml ); 62767 } 62768 } 62769 return false; 62770 } : 62771 62772 // Check against all ancestor/preceding elements 62773 function( elem, context, xml ) { 62774 var oldCache, uniqueCache, outerCache, 62775 newCache = [ dirruns, doneName ]; 62776 62777 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 62778 if ( xml ) { 62779 while ( ( elem = elem[ dir ] ) ) { 62780 if ( elem.nodeType === 1 || checkNonElements ) { 62781 if ( matcher( elem, context, xml ) ) { 62782 return true; 62783 } 62784 } 62785 } 62786 } else { 62787 while ( ( elem = elem[ dir ] ) ) { 62788 if ( elem.nodeType === 1 || checkNonElements ) { 62789 outerCache = elem[ expando ] || ( elem[ expando ] = {} ); 62790 62791 // Support: IE <9 only 62792 // Defend against cloned attroperties (jQuery gh-1709) 62793 uniqueCache = outerCache[ elem.uniqueID ] || 62794 ( outerCache[ elem.uniqueID ] = {} ); 62795 62796 if ( skip && skip === elem.nodeName.toLowerCase() ) { 62797 elem = elem[ dir ] || elem; 62798 } else if ( ( oldCache = uniqueCache[ key ] ) && 62799 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { 62800 62801 // Assign to newCache so results back-propagate to previous elements 62802 return ( newCache[ 2 ] = oldCache[ 2 ] ); 62803 } else { 62804 62805 // Reuse newcache so results back-propagate to previous elements 62806 uniqueCache[ key ] = newCache; 62807 62808 // A match means we're done; a fail means we have to keep checking 62809 if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { 62810 return true; 62811 } 62812 } 62813 } 62814 } 62815 } 62816 return false; 62817 }; 62818} 62819 62820function elementMatcher( matchers ) { 62821 return matchers.length > 1 ? 62822 function( elem, context, xml ) { 62823 var i = matchers.length; 62824 while ( i-- ) { 62825 if ( !matchers[ i ]( elem, context, xml ) ) { 62826 return false; 62827 } 62828 } 62829 return true; 62830 } : 62831 matchers[ 0 ]; 62832} 62833 62834function multipleContexts( selector, contexts, results ) { 62835 var i = 0, 62836 len = contexts.length; 62837 for ( ; i < len; i++ ) { 62838 Sizzle( selector, contexts[ i ], results ); 62839 } 62840 return results; 62841} 62842 62843function condense( unmatched, map, filter, context, xml ) { 62844 var elem, 62845 newUnmatched = [], 62846 i = 0, 62847 len = unmatched.length, 62848 mapped = map != null; 62849 62850 for ( ; i < len; i++ ) { 62851 if ( ( elem = unmatched[ i ] ) ) { 62852 if ( !filter || filter( elem, context, xml ) ) { 62853 newUnmatched.push( elem ); 62854 if ( mapped ) { 62855 map.push( i ); 62856 } 62857 } 62858 } 62859 } 62860 62861 return newUnmatched; 62862} 62863 62864function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { 62865 if ( postFilter && !postFilter[ expando ] ) { 62866 postFilter = setMatcher( postFilter ); 62867 } 62868 if ( postFinder && !postFinder[ expando ] ) { 62869 postFinder = setMatcher( postFinder, postSelector ); 62870 } 62871 return markFunction( function( seed, results, context, xml ) { 62872 var temp, i, elem, 62873 preMap = [], 62874 postMap = [], 62875 preexisting = results.length, 62876 62877 // Get initial elements from seed or context 62878 elems = seed || multipleContexts( 62879 selector || "*", 62880 context.nodeType ? [ context ] : context, 62881 [] 62882 ), 62883 62884 // Prefilter to get matcher input, preserving a map for seed-results synchronization 62885 matcherIn = preFilter && ( seed || !selector ) ? 62886 condense( elems, preMap, preFilter, context, xml ) : 62887 elems, 62888 62889 matcherOut = matcher ? 62890 62891 // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, 62892 postFinder || ( seed ? preFilter : preexisting || postFilter ) ? 62893 62894 // ...intermediate processing is necessary 62895 [] : 62896 62897 // ...otherwise use results directly 62898 results : 62899 matcherIn; 62900 62901 // Find primary matches 62902 if ( matcher ) { 62903 matcher( matcherIn, matcherOut, context, xml ); 62904 } 62905 62906 // Apply postFilter 62907 if ( postFilter ) { 62908 temp = condense( matcherOut, postMap ); 62909 postFilter( temp, [], context, xml ); 62910 62911 // Un-match failing elements by moving them back to matcherIn 62912 i = temp.length; 62913 while ( i-- ) { 62914 if ( ( elem = temp[ i ] ) ) { 62915 matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); 62916 } 62917 } 62918 } 62919 62920 if ( seed ) { 62921 if ( postFinder || preFilter ) { 62922 if ( postFinder ) { 62923 62924 // Get the final matcherOut by condensing this intermediate into postFinder contexts 62925 temp = []; 62926 i = matcherOut.length; 62927 while ( i-- ) { 62928 if ( ( elem = matcherOut[ i ] ) ) { 62929 62930 // Restore matcherIn since elem is not yet a final match 62931 temp.push( ( matcherIn[ i ] = elem ) ); 62932 } 62933 } 62934 postFinder( null, ( matcherOut = [] ), temp, xml ); 62935 } 62936 62937 // Move matched elements from seed to results to keep them synchronized 62938 i = matcherOut.length; 62939 while ( i-- ) { 62940 if ( ( elem = matcherOut[ i ] ) && 62941 ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { 62942 62943 seed[ temp ] = !( results[ temp ] = elem ); 62944 } 62945 } 62946 } 62947 62948 // Add elements to results, through postFinder if defined 62949 } else { 62950 matcherOut = condense( 62951 matcherOut === results ? 62952 matcherOut.splice( preexisting, matcherOut.length ) : 62953 matcherOut 62954 ); 62955 if ( postFinder ) { 62956 postFinder( null, results, matcherOut, xml ); 62957 } else { 62958 push.apply( results, matcherOut ); 62959 } 62960 } 62961 } ); 62962} 62963 62964function matcherFromTokens( tokens ) { 62965 var checkContext, matcher, j, 62966 len = tokens.length, 62967 leadingRelative = Expr.relative[ tokens[ 0 ].type ], 62968 implicitRelative = leadingRelative || Expr.relative[ " " ], 62969 i = leadingRelative ? 1 : 0, 62970 62971 // The foundational matcher ensures that elements are reachable from top-level context(s) 62972 matchContext = addCombinator( function( elem ) { 62973 return elem === checkContext; 62974 }, implicitRelative, true ), 62975 matchAnyContext = addCombinator( function( elem ) { 62976 return indexOf( checkContext, elem ) > -1; 62977 }, implicitRelative, true ), 62978 matchers = [ function( elem, context, xml ) { 62979 var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( 62980 ( checkContext = context ).nodeType ? 62981 matchContext( elem, context, xml ) : 62982 matchAnyContext( elem, context, xml ) ); 62983 62984 // Avoid hanging onto element (issue #299) 62985 checkContext = null; 62986 return ret; 62987 } ]; 62988 62989 for ( ; i < len; i++ ) { 62990 if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { 62991 matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; 62992 } else { 62993 matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); 62994 62995 // Return special upon seeing a positional matcher 62996 if ( matcher[ expando ] ) { 62997 62998 // Find the next relative operator (if any) for proper handling 62999 j = ++i; 63000 for ( ; j < len; j++ ) { 63001 if ( Expr.relative[ tokens[ j ].type ] ) { 63002 break; 63003 } 63004 } 63005 return setMatcher( 63006 i > 1 && elementMatcher( matchers ), 63007 i > 1 && toSelector( 63008 63009 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 63010 tokens 63011 .slice( 0, i - 1 ) 63012 .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) 63013 ).replace( rtrim, "$1" ), 63014 matcher, 63015 i < j && matcherFromTokens( tokens.slice( i, j ) ), 63016 j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), 63017 j < len && toSelector( tokens ) 63018 ); 63019 } 63020 matchers.push( matcher ); 63021 } 63022 } 63023 63024 return elementMatcher( matchers ); 63025} 63026 63027function matcherFromGroupMatchers( elementMatchers, setMatchers ) { 63028 var bySet = setMatchers.length > 0, 63029 byElement = elementMatchers.length > 0, 63030 superMatcher = function( seed, context, xml, results, outermost ) { 63031 var elem, j, matcher, 63032 matchedCount = 0, 63033 i = "0", 63034 unmatched = seed && [], 63035 setMatched = [], 63036 contextBackup = outermostContext, 63037 63038 // We must always have either seed elements or outermost context 63039 elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), 63040 63041 // Use integer dirruns iff this is the outermost matcher 63042 dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), 63043 len = elems.length; 63044 63045 if ( outermost ) { 63046 63047 // Support: IE 11+, Edge 17 - 18+ 63048 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 63049 // two documents; shallow comparisons work. 63050 // eslint-disable-next-line eqeqeq 63051 outermostContext = context == document || context || outermost; 63052 } 63053 63054 // Add elements passing elementMatchers directly to results 63055 // Support: IE<9, Safari 63056 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id 63057 for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { 63058 if ( byElement && elem ) { 63059 j = 0; 63060 63061 // Support: IE 11+, Edge 17 - 18+ 63062 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 63063 // two documents; shallow comparisons work. 63064 // eslint-disable-next-line eqeqeq 63065 if ( !context && elem.ownerDocument != document ) { 63066 setDocument( elem ); 63067 xml = !documentIsHTML; 63068 } 63069 while ( ( matcher = elementMatchers[ j++ ] ) ) { 63070 if ( matcher( elem, context || document, xml ) ) { 63071 results.push( elem ); 63072 break; 63073 } 63074 } 63075 if ( outermost ) { 63076 dirruns = dirrunsUnique; 63077 } 63078 } 63079 63080 // Track unmatched elements for set filters 63081 if ( bySet ) { 63082 63083 // They will have gone through all possible matchers 63084 if ( ( elem = !matcher && elem ) ) { 63085 matchedCount--; 63086 } 63087 63088 // Lengthen the array for every element, matched or not 63089 if ( seed ) { 63090 unmatched.push( elem ); 63091 } 63092 } 63093 } 63094 63095 // `i` is now the count of elements visited above, and adding it to `matchedCount` 63096 // makes the latter nonnegative. 63097 matchedCount += i; 63098 63099 // Apply set filters to unmatched elements 63100 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 63101 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 63102 // no element matchers and no seed. 63103 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 63104 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 63105 // numerically zero. 63106 if ( bySet && i !== matchedCount ) { 63107 j = 0; 63108 while ( ( matcher = setMatchers[ j++ ] ) ) { 63109 matcher( unmatched, setMatched, context, xml ); 63110 } 63111 63112 if ( seed ) { 63113 63114 // Reintegrate element matches to eliminate the need for sorting 63115 if ( matchedCount > 0 ) { 63116 while ( i-- ) { 63117 if ( !( unmatched[ i ] || setMatched[ i ] ) ) { 63118 setMatched[ i ] = pop.call( results ); 63119 } 63120 } 63121 } 63122 63123 // Discard index placeholder values to get only actual matches 63124 setMatched = condense( setMatched ); 63125 } 63126 63127 // Add matches to results 63128 push.apply( results, setMatched ); 63129 63130 // Seedless set matches succeeding multiple successful matchers stipulate sorting 63131 if ( outermost && !seed && setMatched.length > 0 && 63132 ( matchedCount + setMatchers.length ) > 1 ) { 63133 63134 Sizzle.uniqueSort( results ); 63135 } 63136 } 63137 63138 // Override manipulation of globals by nested matchers 63139 if ( outermost ) { 63140 dirruns = dirrunsUnique; 63141 outermostContext = contextBackup; 63142 } 63143 63144 return unmatched; 63145 }; 63146 63147 return bySet ? 63148 markFunction( superMatcher ) : 63149 superMatcher; 63150} 63151 63152compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { 63153 var i, 63154 setMatchers = [], 63155 elementMatchers = [], 63156 cached = compilerCache[ selector + " " ]; 63157 63158 if ( !cached ) { 63159 63160 // Generate a function of recursive functions that can be used to check each element 63161 if ( !match ) { 63162 match = tokenize( selector ); 63163 } 63164 i = match.length; 63165 while ( i-- ) { 63166 cached = matcherFromTokens( match[ i ] ); 63167 if ( cached[ expando ] ) { 63168 setMatchers.push( cached ); 63169 } else { 63170 elementMatchers.push( cached ); 63171 } 63172 } 63173 63174 // Cache the compiled function 63175 cached = compilerCache( 63176 selector, 63177 matcherFromGroupMatchers( elementMatchers, setMatchers ) 63178 ); 63179 63180 // Save selector and tokenization 63181 cached.selector = selector; 63182 } 63183 return cached; 63184}; 63185 63186/** 63187 * A low-level selection function that works with Sizzle's compiled 63188 * selector functions 63189 * @param {String|Function} selector A selector or a pre-compiled 63190 * selector function built with Sizzle.compile 63191 * @param {Element} context 63192 * @param {Array} [results] 63193 * @param {Array} [seed] A set of elements to match against 63194 */ 63195select = Sizzle.select = function( selector, context, results, seed ) { 63196 var i, tokens, token, type, find, 63197 compiled = typeof selector === "function" && selector, 63198 match = !seed && tokenize( ( selector = compiled.selector || selector ) ); 63199 63200 results = results || []; 63201 63202 // Try to minimize operations if there is only one selector in the list and no seed 63203 // (the latter of which guarantees us context) 63204 if ( match.length === 1 ) { 63205 63206 // Reduce context if the leading compound selector is an ID 63207 tokens = match[ 0 ] = match[ 0 ].slice( 0 ); 63208 if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && 63209 context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { 63210 63211 context = ( Expr.find[ "ID" ]( token.matches[ 0 ] 63212 .replace( runescape, funescape ), context ) || [] )[ 0 ]; 63213 if ( !context ) { 63214 return results; 63215 63216 // Precompiled matchers will still verify ancestry, so step up a level 63217 } else if ( compiled ) { 63218 context = context.parentNode; 63219 } 63220 63221 selector = selector.slice( tokens.shift().value.length ); 63222 } 63223 63224 // Fetch a seed set for right-to-left matching 63225 i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; 63226 while ( i-- ) { 63227 token = tokens[ i ]; 63228 63229 // Abort if we hit a combinator 63230 if ( Expr.relative[ ( type = token.type ) ] ) { 63231 break; 63232 } 63233 if ( ( find = Expr.find[ type ] ) ) { 63234 63235 // Search, expanding context for leading sibling combinators 63236 if ( ( seed = find( 63237 token.matches[ 0 ].replace( runescape, funescape ), 63238 rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || 63239 context 63240 ) ) ) { 63241 63242 // If seed is empty or no tokens remain, we can return early 63243 tokens.splice( i, 1 ); 63244 selector = seed.length && toSelector( tokens ); 63245 if ( !selector ) { 63246 push.apply( results, seed ); 63247 return results; 63248 } 63249 63250 break; 63251 } 63252 } 63253 } 63254 } 63255 63256 // Compile and execute a filtering function if one is not provided 63257 // Provide `match` to avoid retokenization if we modified the selector above 63258 ( compiled || compile( selector, match ) )( 63259 seed, 63260 context, 63261 !documentIsHTML, 63262 results, 63263 !context || rsibling.test( selector ) && testContext( context.parentNode ) || context 63264 ); 63265 return results; 63266}; 63267 63268// One-time assignments 63269 63270// Sort stability 63271support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; 63272 63273// Support: Chrome 14-35+ 63274// Always assume duplicates if they aren't passed to the comparison function 63275support.detectDuplicates = !!hasDuplicate; 63276 63277// Initialize against the default document 63278setDocument(); 63279 63280// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) 63281// Detached nodes confoundingly follow *each other* 63282support.sortDetached = assert( function( el ) { 63283 63284 // Should return 1, but returns 4 (following) 63285 return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; 63286} ); 63287 63288// Support: IE<8 63289// Prevent attribute/property "interpolation" 63290// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx 63291if ( !assert( function( el ) { 63292 el.innerHTML = "<a href='#'></a>"; 63293 return el.firstChild.getAttribute( "href" ) === "#"; 63294} ) ) { 63295 addHandle( "type|href|height|width", function( elem, name, isXML ) { 63296 if ( !isXML ) { 63297 return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); 63298 } 63299 } ); 63300} 63301 63302// Support: IE<9 63303// Use defaultValue in place of getAttribute("value") 63304if ( !support.attributes || !assert( function( el ) { 63305 el.innerHTML = "<input/>"; 63306 el.firstChild.setAttribute( "value", "" ); 63307 return el.firstChild.getAttribute( "value" ) === ""; 63308} ) ) { 63309 addHandle( "value", function( elem, _name, isXML ) { 63310 if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { 63311 return elem.defaultValue; 63312 } 63313 } ); 63314} 63315 63316// Support: IE<9 63317// Use getAttributeNode to fetch booleans when getAttribute lies 63318if ( !assert( function( el ) { 63319 return el.getAttribute( "disabled" ) == null; 63320} ) ) { 63321 addHandle( booleans, function( elem, name, isXML ) { 63322 var val; 63323 if ( !isXML ) { 63324 return elem[ name ] === true ? name.toLowerCase() : 63325 ( val = elem.getAttributeNode( name ) ) && val.specified ? 63326 val.value : 63327 null; 63328 } 63329 } ); 63330} 63331 63332return Sizzle; 63333 63334} )( window ); 63335 63336 63337 63338jQuery.find = Sizzle; 63339jQuery.expr = Sizzle.selectors; 63340 63341// Deprecated 63342jQuery.expr[ ":" ] = jQuery.expr.pseudos; 63343jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 63344jQuery.text = Sizzle.getText; 63345jQuery.isXMLDoc = Sizzle.isXML; 63346jQuery.contains = Sizzle.contains; 63347jQuery.escapeSelector = Sizzle.escape; 63348 63349 63350 63351 63352var dir = function( elem, dir, until ) { 63353 var matched = [], 63354 truncate = until !== undefined; 63355 63356 while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 63357 if ( elem.nodeType === 1 ) { 63358 if ( truncate && jQuery( elem ).is( until ) ) { 63359 break; 63360 } 63361 matched.push( elem ); 63362 } 63363 } 63364 return matched; 63365}; 63366 63367 63368var siblings = function( n, elem ) { 63369 var matched = []; 63370 63371 for ( ; n; n = n.nextSibling ) { 63372 if ( n.nodeType === 1 && n !== elem ) { 63373 matched.push( n ); 63374 } 63375 } 63376 63377 return matched; 63378}; 63379 63380 63381var rneedsContext = jQuery.expr.match.needsContext; 63382 63383 63384 63385function nodeName( elem, name ) { 63386 63387 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 63388 63389} 63390var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 63391 63392 63393 63394// Implement the identical functionality for filter and not 63395function winnow( elements, qualifier, not ) { 63396 if ( isFunction( qualifier ) ) { 63397 return jQuery.grep( elements, function( elem, i ) { 63398 return !!qualifier.call( elem, i, elem ) !== not; 63399 } ); 63400 } 63401 63402 // Single element 63403 if ( qualifier.nodeType ) { 63404 return jQuery.grep( elements, function( elem ) { 63405 return ( elem === qualifier ) !== not; 63406 } ); 63407 } 63408 63409 // Arraylike of elements (jQuery, arguments, Array) 63410 if ( typeof qualifier !== "string" ) { 63411 return jQuery.grep( elements, function( elem ) { 63412 return ( indexOf.call( qualifier, elem ) > -1 ) !== not; 63413 } ); 63414 } 63415 63416 // Filtered directly for both simple and complex selectors 63417 return jQuery.filter( qualifier, elements, not ); 63418} 63419 63420jQuery.filter = function( expr, elems, not ) { 63421 var elem = elems[ 0 ]; 63422 63423 if ( not ) { 63424 expr = ":not(" + expr + ")"; 63425 } 63426 63427 if ( elems.length === 1 && elem.nodeType === 1 ) { 63428 return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; 63429 } 63430 63431 return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { 63432 return elem.nodeType === 1; 63433 } ) ); 63434}; 63435 63436jQuery.fn.extend( { 63437 find: function( selector ) { 63438 var i, ret, 63439 len = this.length, 63440 self = this; 63441 63442 if ( typeof selector !== "string" ) { 63443 return this.pushStack( jQuery( selector ).filter( function() { 63444 for ( i = 0; i < len; i++ ) { 63445 if ( jQuery.contains( self[ i ], this ) ) { 63446 return true; 63447 } 63448 } 63449 } ) ); 63450 } 63451 63452 ret = this.pushStack( [] ); 63453 63454 for ( i = 0; i < len; i++ ) { 63455 jQuery.find( selector, self[ i ], ret ); 63456 } 63457 63458 return len > 1 ? jQuery.uniqueSort( ret ) : ret; 63459 }, 63460 filter: function( selector ) { 63461 return this.pushStack( winnow( this, selector || [], false ) ); 63462 }, 63463 not: function( selector ) { 63464 return this.pushStack( winnow( this, selector || [], true ) ); 63465 }, 63466 is: function( selector ) { 63467 return !!winnow( 63468 this, 63469 63470 // If this is a positional/relative selector, check membership in the returned set 63471 // so $("p:first").is("p:last") won't return true for a doc with two "p". 63472 typeof selector === "string" && rneedsContext.test( selector ) ? 63473 jQuery( selector ) : 63474 selector || [], 63475 false 63476 ).length; 63477 } 63478} ); 63479 63480 63481// Initialize a jQuery object 63482 63483 63484// A central reference to the root jQuery(document) 63485var rootjQuery, 63486 63487 // A simple way to check for HTML strings 63488 // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 63489 // Strict HTML recognition (#11290: must start with <) 63490 // Shortcut simple #id case for speed 63491 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 63492 63493 init = jQuery.fn.init = function( selector, context, root ) { 63494 var match, elem; 63495 63496 // HANDLE: $(""), $(null), $(undefined), $(false) 63497 if ( !selector ) { 63498 return this; 63499 } 63500 63501 // Method init() accepts an alternate rootjQuery 63502 // so migrate can support jQuery.sub (gh-2101) 63503 root = root || rootjQuery; 63504 63505 // Handle HTML strings 63506 if ( typeof selector === "string" ) { 63507 if ( selector[ 0 ] === "<" && 63508 selector[ selector.length - 1 ] === ">" && 63509 selector.length >= 3 ) { 63510 63511 // Assume that strings that start and end with <> are HTML and skip the regex check 63512 match = [ null, selector, null ]; 63513 63514 } else { 63515 match = rquickExpr.exec( selector ); 63516 } 63517 63518 // Match html or make sure no context is specified for #id 63519 if ( match && ( match[ 1 ] || !context ) ) { 63520 63521 // HANDLE: $(html) -> $(array) 63522 if ( match[ 1 ] ) { 63523 context = context instanceof jQuery ? context[ 0 ] : context; 63524 63525 // Option to run scripts is true for back-compat 63526 // Intentionally let the error be thrown if parseHTML is not present 63527 jQuery.merge( this, jQuery.parseHTML( 63528 match[ 1 ], 63529 context && context.nodeType ? context.ownerDocument || context : document, 63530 true 63531 ) ); 63532 63533 // HANDLE: $(html, props) 63534 if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { 63535 for ( match in context ) { 63536 63537 // Properties of context are called as methods if possible 63538 if ( isFunction( this[ match ] ) ) { 63539 this[ match ]( context[ match ] ); 63540 63541 // ...and otherwise set as attributes 63542 } else { 63543 this.attr( match, context[ match ] ); 63544 } 63545 } 63546 } 63547 63548 return this; 63549 63550 // HANDLE: $(#id) 63551 } else { 63552 elem = document.getElementById( match[ 2 ] ); 63553 63554 if ( elem ) { 63555 63556 // Inject the element directly into the jQuery object 63557 this[ 0 ] = elem; 63558 this.length = 1; 63559 } 63560 return this; 63561 } 63562 63563 // HANDLE: $(expr, $(...)) 63564 } else if ( !context || context.jquery ) { 63565 return ( context || root ).find( selector ); 63566 63567 // HANDLE: $(expr, context) 63568 // (which is just equivalent to: $(context).find(expr) 63569 } else { 63570 return this.constructor( context ).find( selector ); 63571 } 63572 63573 // HANDLE: $(DOMElement) 63574 } else if ( selector.nodeType ) { 63575 this[ 0 ] = selector; 63576 this.length = 1; 63577 return this; 63578 63579 // HANDLE: $(function) 63580 // Shortcut for document ready 63581 } else if ( isFunction( selector ) ) { 63582 return root.ready !== undefined ? 63583 root.ready( selector ) : 63584 63585 // Execute immediately if ready is not present 63586 selector( jQuery ); 63587 } 63588 63589 return jQuery.makeArray( selector, this ); 63590 }; 63591 63592// Give the init function the jQuery prototype for later instantiation 63593init.prototype = jQuery.fn; 63594 63595// Initialize central reference 63596rootjQuery = jQuery( document ); 63597 63598 63599var rparentsprev = /^(?:parents|prev(?:Until|All))/, 63600 63601 // Methods guaranteed to produce a unique set when starting from a unique set 63602 guaranteedUnique = { 63603 children: true, 63604 contents: true, 63605 next: true, 63606 prev: true 63607 }; 63608 63609jQuery.fn.extend( { 63610 has: function( target ) { 63611 var targets = jQuery( target, this ), 63612 l = targets.length; 63613 63614 return this.filter( function() { 63615 var i = 0; 63616 for ( ; i < l; i++ ) { 63617 if ( jQuery.contains( this, targets[ i ] ) ) { 63618 return true; 63619 } 63620 } 63621 } ); 63622 }, 63623 63624 closest: function( selectors, context ) { 63625 var cur, 63626 i = 0, 63627 l = this.length, 63628 matched = [], 63629 targets = typeof selectors !== "string" && jQuery( selectors ); 63630 63631 // Positional selectors never match, since there's no _selection_ context 63632 if ( !rneedsContext.test( selectors ) ) { 63633 for ( ; i < l; i++ ) { 63634 for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { 63635 63636 // Always skip document fragments 63637 if ( cur.nodeType < 11 && ( targets ? 63638 targets.index( cur ) > -1 : 63639 63640 // Don't pass non-elements to Sizzle 63641 cur.nodeType === 1 && 63642 jQuery.find.matchesSelector( cur, selectors ) ) ) { 63643 63644 matched.push( cur ); 63645 break; 63646 } 63647 } 63648 } 63649 } 63650 63651 return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); 63652 }, 63653 63654 // Determine the position of an element within the set 63655 index: function( elem ) { 63656 63657 // No argument, return index in parent 63658 if ( !elem ) { 63659 return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; 63660 } 63661 63662 // Index in selector 63663 if ( typeof elem === "string" ) { 63664 return indexOf.call( jQuery( elem ), this[ 0 ] ); 63665 } 63666 63667 // Locate the position of the desired element 63668 return indexOf.call( this, 63669 63670 // If it receives a jQuery object, the first element is used 63671 elem.jquery ? elem[ 0 ] : elem 63672 ); 63673 }, 63674 63675 add: function( selector, context ) { 63676 return this.pushStack( 63677 jQuery.uniqueSort( 63678 jQuery.merge( this.get(), jQuery( selector, context ) ) 63679 ) 63680 ); 63681 }, 63682 63683 addBack: function( selector ) { 63684 return this.add( selector == null ? 63685 this.prevObject : this.prevObject.filter( selector ) 63686 ); 63687 } 63688} ); 63689 63690function sibling( cur, dir ) { 63691 while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} 63692 return cur; 63693} 63694 63695jQuery.each( { 63696 parent: function( elem ) { 63697 var parent = elem.parentNode; 63698 return parent && parent.nodeType !== 11 ? parent : null; 63699 }, 63700 parents: function( elem ) { 63701 return dir( elem, "parentNode" ); 63702 }, 63703 parentsUntil: function( elem, _i, until ) { 63704 return dir( elem, "parentNode", until ); 63705 }, 63706 next: function( elem ) { 63707 return sibling( elem, "nextSibling" ); 63708 }, 63709 prev: function( elem ) { 63710 return sibling( elem, "previousSibling" ); 63711 }, 63712 nextAll: function( elem ) { 63713 return dir( elem, "nextSibling" ); 63714 }, 63715 prevAll: function( elem ) { 63716 return dir( elem, "previousSibling" ); 63717 }, 63718 nextUntil: function( elem, _i, until ) { 63719 return dir( elem, "nextSibling", until ); 63720 }, 63721 prevUntil: function( elem, _i, until ) { 63722 return dir( elem, "previousSibling", until ); 63723 }, 63724 siblings: function( elem ) { 63725 return siblings( ( elem.parentNode || {} ).firstChild, elem ); 63726 }, 63727 children: function( elem ) { 63728 return siblings( elem.firstChild ); 63729 }, 63730 contents: function( elem ) { 63731 if ( elem.contentDocument != null && 63732 63733 // Support: IE 11+ 63734 // <object> elements with no `data` attribute has an object 63735 // `contentDocument` with a `null` prototype. 63736 getProto( elem.contentDocument ) ) { 63737 63738 return elem.contentDocument; 63739 } 63740 63741 // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 63742 // Treat the template element as a regular one in browsers that 63743 // don't support it. 63744 if ( nodeName( elem, "template" ) ) { 63745 elem = elem.content || elem; 63746 } 63747 63748 return jQuery.merge( [], elem.childNodes ); 63749 } 63750}, function( name, fn ) { 63751 jQuery.fn[ name ] = function( until, selector ) { 63752 var matched = jQuery.map( this, fn, until ); 63753 63754 if ( name.slice( -5 ) !== "Until" ) { 63755 selector = until; 63756 } 63757 63758 if ( selector && typeof selector === "string" ) { 63759 matched = jQuery.filter( selector, matched ); 63760 } 63761 63762 if ( this.length > 1 ) { 63763 63764 // Remove duplicates 63765 if ( !guaranteedUnique[ name ] ) { 63766 jQuery.uniqueSort( matched ); 63767 } 63768 63769 // Reverse order for parents* and prev-derivatives 63770 if ( rparentsprev.test( name ) ) { 63771 matched.reverse(); 63772 } 63773 } 63774 63775 return this.pushStack( matched ); 63776 }; 63777} ); 63778var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); 63779 63780 63781 63782// Convert String-formatted options into Object-formatted ones 63783function createOptions( options ) { 63784 var object = {}; 63785 jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { 63786 object[ flag ] = true; 63787 } ); 63788 return object; 63789} 63790 63791/* 63792 * Create a callback list using the following parameters: 63793 * 63794 * options: an optional list of space-separated options that will change how 63795 * the callback list behaves or a more traditional option object 63796 * 63797 * By default a callback list will act like an event callback list and can be 63798 * "fired" multiple times. 63799 * 63800 * Possible options: 63801 * 63802 * once: will ensure the callback list can only be fired once (like a Deferred) 63803 * 63804 * memory: will keep track of previous values and will call any callback added 63805 * after the list has been fired right away with the latest "memorized" 63806 * values (like a Deferred) 63807 * 63808 * unique: will ensure a callback can only be added once (no duplicate in the list) 63809 * 63810 * stopOnFalse: interrupt callings when a callback returns false 63811 * 63812 */ 63813jQuery.Callbacks = function( options ) { 63814 63815 // Convert options from String-formatted to Object-formatted if needed 63816 // (we check in cache first) 63817 options = typeof options === "string" ? 63818 createOptions( options ) : 63819 jQuery.extend( {}, options ); 63820 63821 var // Flag to know if list is currently firing 63822 firing, 63823 63824 // Last fire value for non-forgettable lists 63825 memory, 63826 63827 // Flag to know if list was already fired 63828 fired, 63829 63830 // Flag to prevent firing 63831 locked, 63832 63833 // Actual callback list 63834 list = [], 63835 63836 // Queue of execution data for repeatable lists 63837 queue = [], 63838 63839 // Index of currently firing callback (modified by add/remove as needed) 63840 firingIndex = -1, 63841 63842 // Fire callbacks 63843 fire = function() { 63844 63845 // Enforce single-firing 63846 locked = locked || options.once; 63847 63848 // Execute callbacks for all pending executions, 63849 // respecting firingIndex overrides and runtime changes 63850 fired = firing = true; 63851 for ( ; queue.length; firingIndex = -1 ) { 63852 memory = queue.shift(); 63853 while ( ++firingIndex < list.length ) { 63854 63855 // Run callback and check for early termination 63856 if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && 63857 options.stopOnFalse ) { 63858 63859 // Jump to end and forget the data so .add doesn't re-fire 63860 firingIndex = list.length; 63861 memory = false; 63862 } 63863 } 63864 } 63865 63866 // Forget the data if we're done with it 63867 if ( !options.memory ) { 63868 memory = false; 63869 } 63870 63871 firing = false; 63872 63873 // Clean up if we're done firing for good 63874 if ( locked ) { 63875 63876 // Keep an empty list if we have data for future add calls 63877 if ( memory ) { 63878 list = []; 63879 63880 // Otherwise, this object is spent 63881 } else { 63882 list = ""; 63883 } 63884 } 63885 }, 63886 63887 // Actual Callbacks object 63888 self = { 63889 63890 // Add a callback or a collection of callbacks to the list 63891 add: function() { 63892 if ( list ) { 63893 63894 // If we have memory from a past run, we should fire after adding 63895 if ( memory && !firing ) { 63896 firingIndex = list.length - 1; 63897 queue.push( memory ); 63898 } 63899 63900 ( function add( args ) { 63901 jQuery.each( args, function( _, arg ) { 63902 if ( isFunction( arg ) ) { 63903 if ( !options.unique || !self.has( arg ) ) { 63904 list.push( arg ); 63905 } 63906 } else if ( arg && arg.length && toType( arg ) !== "string" ) { 63907 63908 // Inspect recursively 63909 add( arg ); 63910 } 63911 } ); 63912 } )( arguments ); 63913 63914 if ( memory && !firing ) { 63915 fire(); 63916 } 63917 } 63918 return this; 63919 }, 63920 63921 // Remove a callback from the list 63922 remove: function() { 63923 jQuery.each( arguments, function( _, arg ) { 63924 var index; 63925 while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { 63926 list.splice( index, 1 ); 63927 63928 // Handle firing indexes 63929 if ( index <= firingIndex ) { 63930 firingIndex--; 63931 } 63932 } 63933 } ); 63934 return this; 63935 }, 63936 63937 // Check if a given callback is in the list. 63938 // If no argument is given, return whether or not list has callbacks attached. 63939 has: function( fn ) { 63940 return fn ? 63941 jQuery.inArray( fn, list ) > -1 : 63942 list.length > 0; 63943 }, 63944 63945 // Remove all callbacks from the list 63946 empty: function() { 63947 if ( list ) { 63948 list = []; 63949 } 63950 return this; 63951 }, 63952 63953 // Disable .fire and .add 63954 // Abort any current/pending executions 63955 // Clear all callbacks and values 63956 disable: function() { 63957 locked = queue = []; 63958 list = memory = ""; 63959 return this; 63960 }, 63961 disabled: function() { 63962 return !list; 63963 }, 63964 63965 // Disable .fire 63966 // Also disable .add unless we have memory (since it would have no effect) 63967 // Abort any pending executions 63968 lock: function() { 63969 locked = queue = []; 63970 if ( !memory && !firing ) { 63971 list = memory = ""; 63972 } 63973 return this; 63974 }, 63975 locked: function() { 63976 return !!locked; 63977 }, 63978 63979 // Call all callbacks with the given context and arguments 63980 fireWith: function( context, args ) { 63981 if ( !locked ) { 63982 args = args || []; 63983 args = [ context, args.slice ? args.slice() : args ]; 63984 queue.push( args ); 63985 if ( !firing ) { 63986 fire(); 63987 } 63988 } 63989 return this; 63990 }, 63991 63992 // Call all the callbacks with the given arguments 63993 fire: function() { 63994 self.fireWith( this, arguments ); 63995 return this; 63996 }, 63997 63998 // To know if the callbacks have already been called at least once 63999 fired: function() { 64000 return !!fired; 64001 } 64002 }; 64003 64004 return self; 64005}; 64006 64007 64008function Identity( v ) { 64009 return v; 64010} 64011function Thrower( ex ) { 64012 throw ex; 64013} 64014 64015function adoptValue( value, resolve, reject, noValue ) { 64016 var method; 64017 64018 try { 64019 64020 // Check for promise aspect first to privilege synchronous behavior 64021 if ( value && isFunction( ( method = value.promise ) ) ) { 64022 method.call( value ).done( resolve ).fail( reject ); 64023 64024 // Other thenables 64025 } else if ( value && isFunction( ( method = value.then ) ) ) { 64026 method.call( value, resolve, reject ); 64027 64028 // Other non-thenables 64029 } else { 64030 64031 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 64032 // * false: [ value ].slice( 0 ) => resolve( value ) 64033 // * true: [ value ].slice( 1 ) => resolve() 64034 resolve.apply( undefined, [ value ].slice( noValue ) ); 64035 } 64036 64037 // For Promises/A+, convert exceptions into rejections 64038 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 64039 // Deferred#then to conditionally suppress rejection. 64040 } catch ( value ) { 64041 64042 // Support: Android 4.0 only 64043 // Strict mode functions invoked without .call/.apply get global-object context 64044 reject.apply( undefined, [ value ] ); 64045 } 64046} 64047 64048jQuery.extend( { 64049 64050 Deferred: function( func ) { 64051 var tuples = [ 64052 64053 // action, add listener, callbacks, 64054 // ... .then handlers, argument index, [final state] 64055 [ "notify", "progress", jQuery.Callbacks( "memory" ), 64056 jQuery.Callbacks( "memory" ), 2 ], 64057 [ "resolve", "done", jQuery.Callbacks( "once memory" ), 64058 jQuery.Callbacks( "once memory" ), 0, "resolved" ], 64059 [ "reject", "fail", jQuery.Callbacks( "once memory" ), 64060 jQuery.Callbacks( "once memory" ), 1, "rejected" ] 64061 ], 64062 state = "pending", 64063 promise = { 64064 state: function() { 64065 return state; 64066 }, 64067 always: function() { 64068 deferred.done( arguments ).fail( arguments ); 64069 return this; 64070 }, 64071 "catch": function( fn ) { 64072 return promise.then( null, fn ); 64073 }, 64074 64075 // Keep pipe for back-compat 64076 pipe: function( /* fnDone, fnFail, fnProgress */ ) { 64077 var fns = arguments; 64078 64079 return jQuery.Deferred( function( newDefer ) { 64080 jQuery.each( tuples, function( _i, tuple ) { 64081 64082 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 64083 var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; 64084 64085 // deferred.progress(function() { bind to newDefer or newDefer.notify }) 64086 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 64087 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 64088 deferred[ tuple[ 1 ] ]( function() { 64089 var returned = fn && fn.apply( this, arguments ); 64090 if ( returned && isFunction( returned.promise ) ) { 64091 returned.promise() 64092 .progress( newDefer.notify ) 64093 .done( newDefer.resolve ) 64094 .fail( newDefer.reject ); 64095 } else { 64096 newDefer[ tuple[ 0 ] + "With" ]( 64097 this, 64098 fn ? [ returned ] : arguments 64099 ); 64100 } 64101 } ); 64102 } ); 64103 fns = null; 64104 } ).promise(); 64105 }, 64106 then: function( onFulfilled, onRejected, onProgress ) { 64107 var maxDepth = 0; 64108 function resolve( depth, deferred, handler, special ) { 64109 return function() { 64110 var that = this, 64111 args = arguments, 64112 mightThrow = function() { 64113 var returned, then; 64114 64115 // Support: Promises/A+ section 2.3.3.3.3 64116 // https://promisesaplus.com/#point-59 64117 // Ignore double-resolution attempts 64118 if ( depth < maxDepth ) { 64119 return; 64120 } 64121 64122 returned = handler.apply( that, args ); 64123 64124 // Support: Promises/A+ section 2.3.1 64125 // https://promisesaplus.com/#point-48 64126 if ( returned === deferred.promise() ) { 64127 throw new TypeError( "Thenable self-resolution" ); 64128 } 64129 64130 // Support: Promises/A+ sections 2.3.3.1, 3.5 64131 // https://promisesaplus.com/#point-54 64132 // https://promisesaplus.com/#point-75 64133 // Retrieve `then` only once 64134 then = returned && 64135 64136 // Support: Promises/A+ section 2.3.4 64137 // https://promisesaplus.com/#point-64 64138 // Only check objects and functions for thenability 64139 ( typeof returned === "object" || 64140 typeof returned === "function" ) && 64141 returned.then; 64142 64143 // Handle a returned thenable 64144 if ( isFunction( then ) ) { 64145 64146 // Special processors (notify) just wait for resolution 64147 if ( special ) { 64148 then.call( 64149 returned, 64150 resolve( maxDepth, deferred, Identity, special ), 64151 resolve( maxDepth, deferred, Thrower, special ) 64152 ); 64153 64154 // Normal processors (resolve) also hook into progress 64155 } else { 64156 64157 // ...and disregard older resolution values 64158 maxDepth++; 64159 64160 then.call( 64161 returned, 64162 resolve( maxDepth, deferred, Identity, special ), 64163 resolve( maxDepth, deferred, Thrower, special ), 64164 resolve( maxDepth, deferred, Identity, 64165 deferred.notifyWith ) 64166 ); 64167 } 64168 64169 // Handle all other returned values 64170 } else { 64171 64172 // Only substitute handlers pass on context 64173 // and multiple values (non-spec behavior) 64174 if ( handler !== Identity ) { 64175 that = undefined; 64176 args = [ returned ]; 64177 } 64178 64179 // Process the value(s) 64180 // Default process is resolve 64181 ( special || deferred.resolveWith )( that, args ); 64182 } 64183 }, 64184 64185 // Only normal processors (resolve) catch and reject exceptions 64186 process = special ? 64187 mightThrow : 64188 function() { 64189 try { 64190 mightThrow(); 64191 } catch ( e ) { 64192 64193 if ( jQuery.Deferred.exceptionHook ) { 64194 jQuery.Deferred.exceptionHook( e, 64195 process.stackTrace ); 64196 } 64197 64198 // Support: Promises/A+ section 2.3.3.3.4.1 64199 // https://promisesaplus.com/#point-61 64200 // Ignore post-resolution exceptions 64201 if ( depth + 1 >= maxDepth ) { 64202 64203 // Only substitute handlers pass on context 64204 // and multiple values (non-spec behavior) 64205 if ( handler !== Thrower ) { 64206 that = undefined; 64207 args = [ e ]; 64208 } 64209 64210 deferred.rejectWith( that, args ); 64211 } 64212 } 64213 }; 64214 64215 // Support: Promises/A+ section 2.3.3.3.1 64216 // https://promisesaplus.com/#point-57 64217 // Re-resolve promises immediately to dodge false rejection from 64218 // subsequent errors 64219 if ( depth ) { 64220 process(); 64221 } else { 64222 64223 // Call an optional hook to record the stack, in case of exception 64224 // since it's otherwise lost when execution goes async 64225 if ( jQuery.Deferred.getStackHook ) { 64226 process.stackTrace = jQuery.Deferred.getStackHook(); 64227 } 64228 window.setTimeout( process ); 64229 } 64230 }; 64231 } 64232 64233 return jQuery.Deferred( function( newDefer ) { 64234 64235 // progress_handlers.add( ... ) 64236 tuples[ 0 ][ 3 ].add( 64237 resolve( 64238 0, 64239 newDefer, 64240 isFunction( onProgress ) ? 64241 onProgress : 64242 Identity, 64243 newDefer.notifyWith 64244 ) 64245 ); 64246 64247 // fulfilled_handlers.add( ... ) 64248 tuples[ 1 ][ 3 ].add( 64249 resolve( 64250 0, 64251 newDefer, 64252 isFunction( onFulfilled ) ? 64253 onFulfilled : 64254 Identity 64255 ) 64256 ); 64257 64258 // rejected_handlers.add( ... ) 64259 tuples[ 2 ][ 3 ].add( 64260 resolve( 64261 0, 64262 newDefer, 64263 isFunction( onRejected ) ? 64264 onRejected : 64265 Thrower 64266 ) 64267 ); 64268 } ).promise(); 64269 }, 64270 64271 // Get a promise for this deferred 64272 // If obj is provided, the promise aspect is added to the object 64273 promise: function( obj ) { 64274 return obj != null ? jQuery.extend( obj, promise ) : promise; 64275 } 64276 }, 64277 deferred = {}; 64278 64279 // Add list-specific methods 64280 jQuery.each( tuples, function( i, tuple ) { 64281 var list = tuple[ 2 ], 64282 stateString = tuple[ 5 ]; 64283 64284 // promise.progress = list.add 64285 // promise.done = list.add 64286 // promise.fail = list.add 64287 promise[ tuple[ 1 ] ] = list.add; 64288 64289 // Handle state 64290 if ( stateString ) { 64291 list.add( 64292 function() { 64293 64294 // state = "resolved" (i.e., fulfilled) 64295 // state = "rejected" 64296 state = stateString; 64297 }, 64298 64299 // rejected_callbacks.disable 64300 // fulfilled_callbacks.disable 64301 tuples[ 3 - i ][ 2 ].disable, 64302 64303 // rejected_handlers.disable 64304 // fulfilled_handlers.disable 64305 tuples[ 3 - i ][ 3 ].disable, 64306 64307 // progress_callbacks.lock 64308 tuples[ 0 ][ 2 ].lock, 64309 64310 // progress_handlers.lock 64311 tuples[ 0 ][ 3 ].lock 64312 ); 64313 } 64314 64315 // progress_handlers.fire 64316 // fulfilled_handlers.fire 64317 // rejected_handlers.fire 64318 list.add( tuple[ 3 ].fire ); 64319 64320 // deferred.notify = function() { deferred.notifyWith(...) } 64321 // deferred.resolve = function() { deferred.resolveWith(...) } 64322 // deferred.reject = function() { deferred.rejectWith(...) } 64323 deferred[ tuple[ 0 ] ] = function() { 64324 deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); 64325 return this; 64326 }; 64327 64328 // deferred.notifyWith = list.fireWith 64329 // deferred.resolveWith = list.fireWith 64330 // deferred.rejectWith = list.fireWith 64331 deferred[ tuple[ 0 ] + "With" ] = list.fireWith; 64332 } ); 64333 64334 // Make the deferred a promise 64335 promise.promise( deferred ); 64336 64337 // Call given func if any 64338 if ( func ) { 64339 func.call( deferred, deferred ); 64340 } 64341 64342 // All done! 64343 return deferred; 64344 }, 64345 64346 // Deferred helper 64347 when: function( singleValue ) { 64348 var 64349 64350 // count of uncompleted subordinates 64351 remaining = arguments.length, 64352 64353 // count of unprocessed arguments 64354 i = remaining, 64355 64356 // subordinate fulfillment data 64357 resolveContexts = Array( i ), 64358 resolveValues = slice.call( arguments ), 64359 64360 // the primary Deferred 64361 primary = jQuery.Deferred(), 64362 64363 // subordinate callback factory 64364 updateFunc = function( i ) { 64365 return function( value ) { 64366 resolveContexts[ i ] = this; 64367 resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; 64368 if ( !( --remaining ) ) { 64369 primary.resolveWith( resolveContexts, resolveValues ); 64370 } 64371 }; 64372 }; 64373 64374 // Single- and empty arguments are adopted like Promise.resolve 64375 if ( remaining <= 1 ) { 64376 adoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject, 64377 !remaining ); 64378 64379 // Use .then() to unwrap secondary thenables (cf. gh-3000) 64380 if ( primary.state() === "pending" || 64381 isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { 64382 64383 return primary.then(); 64384 } 64385 } 64386 64387 // Multiple arguments are aggregated like Promise.all array elements 64388 while ( i-- ) { 64389 adoptValue( resolveValues[ i ], updateFunc( i ), primary.reject ); 64390 } 64391 64392 return primary.promise(); 64393 } 64394} ); 64395 64396 64397// These usually indicate a programmer mistake during development, 64398// warn about them ASAP rather than swallowing them by default. 64399var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 64400 64401jQuery.Deferred.exceptionHook = function( error, stack ) { 64402 64403 // Support: IE 8 - 9 only 64404 // Console exists when dev tools are open, which can happen at any time 64405 if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 64406 window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); 64407 } 64408}; 64409 64410 64411 64412 64413jQuery.readyException = function( error ) { 64414 window.setTimeout( function() { 64415 throw error; 64416 } ); 64417}; 64418 64419 64420 64421 64422// The deferred used on DOM ready 64423var readyList = jQuery.Deferred(); 64424 64425jQuery.fn.ready = function( fn ) { 64426 64427 readyList 64428 .then( fn ) 64429 64430 // Wrap jQuery.readyException in a function so that the lookup 64431 // happens at the time of error handling instead of callback 64432 // registration. 64433 .catch( function( error ) { 64434 jQuery.readyException( error ); 64435 } ); 64436 64437 return this; 64438}; 64439 64440jQuery.extend( { 64441 64442 // Is the DOM ready to be used? Set to true once it occurs. 64443 isReady: false, 64444 64445 // A counter to track how many items to wait for before 64446 // the ready event fires. See #6781 64447 readyWait: 1, 64448 64449 // Handle when the DOM is ready 64450 ready: function( wait ) { 64451 64452 // Abort if there are pending holds or we're already ready 64453 if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { 64454 return; 64455 } 64456 64457 // Remember that the DOM is ready 64458 jQuery.isReady = true; 64459 64460 // If a normal DOM Ready event fired, decrement, and wait if need be 64461 if ( wait !== true && --jQuery.readyWait > 0 ) { 64462 return; 64463 } 64464 64465 // If there are functions bound, to execute 64466 readyList.resolveWith( document, [ jQuery ] ); 64467 } 64468} ); 64469 64470jQuery.ready.then = readyList.then; 64471 64472// The ready event handler and self cleanup method 64473function completed() { 64474 document.removeEventListener( "DOMContentLoaded", completed ); 64475 window.removeEventListener( "load", completed ); 64476 jQuery.ready(); 64477} 64478 64479// Catch cases where $(document).ready() is called 64480// after the browser event has already occurred. 64481// Support: IE <=9 - 10 only 64482// Older IE sometimes signals "interactive" too soon 64483if ( document.readyState === "complete" || 64484 ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { 64485 64486 // Handle it asynchronously to allow scripts the opportunity to delay ready 64487 window.setTimeout( jQuery.ready ); 64488 64489} else { 64490 64491 // Use the handy event callback 64492 document.addEventListener( "DOMContentLoaded", completed ); 64493 64494 // A fallback to window.onload, that will always work 64495 window.addEventListener( "load", completed ); 64496} 64497 64498 64499 64500 64501// Multifunctional method to get and set values of a collection 64502// The value/s can optionally be executed if it's a function 64503var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 64504 var i = 0, 64505 len = elems.length, 64506 bulk = key == null; 64507 64508 // Sets many values 64509 if ( toType( key ) === "object" ) { 64510 chainable = true; 64511 for ( i in key ) { 64512 access( elems, fn, i, key[ i ], true, emptyGet, raw ); 64513 } 64514 64515 // Sets one value 64516 } else if ( value !== undefined ) { 64517 chainable = true; 64518 64519 if ( !isFunction( value ) ) { 64520 raw = true; 64521 } 64522 64523 if ( bulk ) { 64524 64525 // Bulk operations run against the entire set 64526 if ( raw ) { 64527 fn.call( elems, value ); 64528 fn = null; 64529 64530 // ...except when executing function values 64531 } else { 64532 bulk = fn; 64533 fn = function( elem, _key, value ) { 64534 return bulk.call( jQuery( elem ), value ); 64535 }; 64536 } 64537 } 64538 64539 if ( fn ) { 64540 for ( ; i < len; i++ ) { 64541 fn( 64542 elems[ i ], key, raw ? 64543 value : 64544 value.call( elems[ i ], i, fn( elems[ i ], key ) ) 64545 ); 64546 } 64547 } 64548 } 64549 64550 if ( chainable ) { 64551 return elems; 64552 } 64553 64554 // Gets 64555 if ( bulk ) { 64556 return fn.call( elems ); 64557 } 64558 64559 return len ? fn( elems[ 0 ], key ) : emptyGet; 64560}; 64561 64562 64563// Matches dashed string for camelizing 64564var rmsPrefix = /^-ms-/, 64565 rdashAlpha = /-([a-z])/g; 64566 64567// Used by camelCase as callback to replace() 64568function fcamelCase( _all, letter ) { 64569 return letter.toUpperCase(); 64570} 64571 64572// Convert dashed to camelCase; used by the css and data modules 64573// Support: IE <=9 - 11, Edge 12 - 15 64574// Microsoft forgot to hump their vendor prefix (#9572) 64575function camelCase( string ) { 64576 return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); 64577} 64578var acceptData = function( owner ) { 64579 64580 // Accepts only: 64581 // - Node 64582 // - Node.ELEMENT_NODE 64583 // - Node.DOCUMENT_NODE 64584 // - Object 64585 // - Any 64586 return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 64587}; 64588 64589 64590 64591 64592function Data() { 64593 this.expando = jQuery.expando + Data.uid++; 64594} 64595 64596Data.uid = 1; 64597 64598Data.prototype = { 64599 64600 cache: function( owner ) { 64601 64602 // Check if the owner object already has a cache 64603 var value = owner[ this.expando ]; 64604 64605 // If not, create one 64606 if ( !value ) { 64607 value = {}; 64608 64609 // We can accept data for non-element nodes in modern browsers, 64610 // but we should not, see #8335. 64611 // Always return an empty object. 64612 if ( acceptData( owner ) ) { 64613 64614 // If it is a node unlikely to be stringify-ed or looped over 64615 // use plain assignment 64616 if ( owner.nodeType ) { 64617 owner[ this.expando ] = value; 64618 64619 // Otherwise secure it in a non-enumerable property 64620 // configurable must be true to allow the property to be 64621 // deleted when data is removed 64622 } else { 64623 Object.defineProperty( owner, this.expando, { 64624 value: value, 64625 configurable: true 64626 } ); 64627 } 64628 } 64629 } 64630 64631 return value; 64632 }, 64633 set: function( owner, data, value ) { 64634 var prop, 64635 cache = this.cache( owner ); 64636 64637 // Handle: [ owner, key, value ] args 64638 // Always use camelCase key (gh-2257) 64639 if ( typeof data === "string" ) { 64640 cache[ camelCase( data ) ] = value; 64641 64642 // Handle: [ owner, { properties } ] args 64643 } else { 64644 64645 // Copy the properties one-by-one to the cache object 64646 for ( prop in data ) { 64647 cache[ camelCase( prop ) ] = data[ prop ]; 64648 } 64649 } 64650 return cache; 64651 }, 64652 get: function( owner, key ) { 64653 return key === undefined ? 64654 this.cache( owner ) : 64655 64656 // Always use camelCase key (gh-2257) 64657 owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; 64658 }, 64659 access: function( owner, key, value ) { 64660 64661 // In cases where either: 64662 // 64663 // 1. No key was specified 64664 // 2. A string key was specified, but no value provided 64665 // 64666 // Take the "read" path and allow the get method to determine 64667 // which value to return, respectively either: 64668 // 64669 // 1. The entire cache object 64670 // 2. The data stored at the key 64671 // 64672 if ( key === undefined || 64673 ( ( key && typeof key === "string" ) && value === undefined ) ) { 64674 64675 return this.get( owner, key ); 64676 } 64677 64678 // When the key is not a string, or both a key and value 64679 // are specified, set or extend (existing objects) with either: 64680 // 64681 // 1. An object of properties 64682 // 2. A key and value 64683 // 64684 this.set( owner, key, value ); 64685 64686 // Since the "set" path can have two possible entry points 64687 // return the expected data based on which path was taken[*] 64688 return value !== undefined ? value : key; 64689 }, 64690 remove: function( owner, key ) { 64691 var i, 64692 cache = owner[ this.expando ]; 64693 64694 if ( cache === undefined ) { 64695 return; 64696 } 64697 64698 if ( key !== undefined ) { 64699 64700 // Support array or space separated string of keys 64701 if ( Array.isArray( key ) ) { 64702 64703 // If key is an array of keys... 64704 // We always set camelCase keys, so remove that. 64705 key = key.map( camelCase ); 64706 } else { 64707 key = camelCase( key ); 64708 64709 // If a key with the spaces exists, use it. 64710 // Otherwise, create an array by matching non-whitespace 64711 key = key in cache ? 64712 [ key ] : 64713 ( key.match( rnothtmlwhite ) || [] ); 64714 } 64715 64716 i = key.length; 64717 64718 while ( i-- ) { 64719 delete cache[ key[ i ] ]; 64720 } 64721 } 64722 64723 // Remove the expando if there's no more data 64724 if ( key === undefined || jQuery.isEmptyObject( cache ) ) { 64725 64726 // Support: Chrome <=35 - 45 64727 // Webkit & Blink performance suffers when deleting properties 64728 // from DOM nodes, so set to undefined instead 64729 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 64730 if ( owner.nodeType ) { 64731 owner[ this.expando ] = undefined; 64732 } else { 64733 delete owner[ this.expando ]; 64734 } 64735 } 64736 }, 64737 hasData: function( owner ) { 64738 var cache = owner[ this.expando ]; 64739 return cache !== undefined && !jQuery.isEmptyObject( cache ); 64740 } 64741}; 64742var dataPriv = new Data(); 64743 64744var dataUser = new Data(); 64745 64746 64747 64748// Implementation Summary 64749// 64750// 1. Enforce API surface and semantic compatibility with 1.9.x branch 64751// 2. Improve the module's maintainability by reducing the storage 64752// paths to a single mechanism. 64753// 3. Use the same single mechanism to support "private" and "user" data. 64754// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 64755// 5. Avoid exposing implementation details on user objects (eg. expando properties) 64756// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 64757 64758var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 64759 rmultiDash = /[A-Z]/g; 64760 64761function getData( data ) { 64762 if ( data === "true" ) { 64763 return true; 64764 } 64765 64766 if ( data === "false" ) { 64767 return false; 64768 } 64769 64770 if ( data === "null" ) { 64771 return null; 64772 } 64773 64774 // Only convert to a number if it doesn't change the string 64775 if ( data === +data + "" ) { 64776 return +data; 64777 } 64778 64779 if ( rbrace.test( data ) ) { 64780 return JSON.parse( data ); 64781 } 64782 64783 return data; 64784} 64785 64786function dataAttr( elem, key, data ) { 64787 var name; 64788 64789 // If nothing was found internally, try to fetch any 64790 // data from the HTML5 data-* attribute 64791 if ( data === undefined && elem.nodeType === 1 ) { 64792 name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); 64793 data = elem.getAttribute( name ); 64794 64795 if ( typeof data === "string" ) { 64796 try { 64797 data = getData( data ); 64798 } catch ( e ) {} 64799 64800 // Make sure we set the data so it isn't changed later 64801 dataUser.set( elem, key, data ); 64802 } else { 64803 data = undefined; 64804 } 64805 } 64806 return data; 64807} 64808 64809jQuery.extend( { 64810 hasData: function( elem ) { 64811 return dataUser.hasData( elem ) || dataPriv.hasData( elem ); 64812 }, 64813 64814 data: function( elem, name, data ) { 64815 return dataUser.access( elem, name, data ); 64816 }, 64817 64818 removeData: function( elem, name ) { 64819 dataUser.remove( elem, name ); 64820 }, 64821 64822 // TODO: Now that all calls to _data and _removeData have been replaced 64823 // with direct calls to dataPriv methods, these can be deprecated. 64824 _data: function( elem, name, data ) { 64825 return dataPriv.access( elem, name, data ); 64826 }, 64827 64828 _removeData: function( elem, name ) { 64829 dataPriv.remove( elem, name ); 64830 } 64831} ); 64832 64833jQuery.fn.extend( { 64834 data: function( key, value ) { 64835 var i, name, data, 64836 elem = this[ 0 ], 64837 attrs = elem && elem.attributes; 64838 64839 // Gets all values 64840 if ( key === undefined ) { 64841 if ( this.length ) { 64842 data = dataUser.get( elem ); 64843 64844 if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { 64845 i = attrs.length; 64846 while ( i-- ) { 64847 64848 // Support: IE 11 only 64849 // The attrs elements can be null (#14894) 64850 if ( attrs[ i ] ) { 64851 name = attrs[ i ].name; 64852 if ( name.indexOf( "data-" ) === 0 ) { 64853 name = camelCase( name.slice( 5 ) ); 64854 dataAttr( elem, name, data[ name ] ); 64855 } 64856 } 64857 } 64858 dataPriv.set( elem, "hasDataAttrs", true ); 64859 } 64860 } 64861 64862 return data; 64863 } 64864 64865 // Sets multiple values 64866 if ( typeof key === "object" ) { 64867 return this.each( function() { 64868 dataUser.set( this, key ); 64869 } ); 64870 } 64871 64872 return access( this, function( value ) { 64873 var data; 64874 64875 // The calling jQuery object (element matches) is not empty 64876 // (and therefore has an element appears at this[ 0 ]) and the 64877 // `value` parameter was not undefined. An empty jQuery object 64878 // will result in `undefined` for elem = this[ 0 ] which will 64879 // throw an exception if an attempt to read a data cache is made. 64880 if ( elem && value === undefined ) { 64881 64882 // Attempt to get data from the cache 64883 // The key will always be camelCased in Data 64884 data = dataUser.get( elem, key ); 64885 if ( data !== undefined ) { 64886 return data; 64887 } 64888 64889 // Attempt to "discover" the data in 64890 // HTML5 custom data-* attrs 64891 data = dataAttr( elem, key ); 64892 if ( data !== undefined ) { 64893 return data; 64894 } 64895 64896 // We tried really hard, but the data doesn't exist. 64897 return; 64898 } 64899 64900 // Set the data... 64901 this.each( function() { 64902 64903 // We always store the camelCased key 64904 dataUser.set( this, key, value ); 64905 } ); 64906 }, null, value, arguments.length > 1, null, true ); 64907 }, 64908 64909 removeData: function( key ) { 64910 return this.each( function() { 64911 dataUser.remove( this, key ); 64912 } ); 64913 } 64914} ); 64915 64916 64917jQuery.extend( { 64918 queue: function( elem, type, data ) { 64919 var queue; 64920 64921 if ( elem ) { 64922 type = ( type || "fx" ) + "queue"; 64923 queue = dataPriv.get( elem, type ); 64924 64925 // Speed up dequeue by getting out quickly if this is just a lookup 64926 if ( data ) { 64927 if ( !queue || Array.isArray( data ) ) { 64928 queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); 64929 } else { 64930 queue.push( data ); 64931 } 64932 } 64933 return queue || []; 64934 } 64935 }, 64936 64937 dequeue: function( elem, type ) { 64938 type = type || "fx"; 64939 64940 var queue = jQuery.queue( elem, type ), 64941 startLength = queue.length, 64942 fn = queue.shift(), 64943 hooks = jQuery._queueHooks( elem, type ), 64944 next = function() { 64945 jQuery.dequeue( elem, type ); 64946 }; 64947 64948 // If the fx queue is dequeued, always remove the progress sentinel 64949 if ( fn === "inprogress" ) { 64950 fn = queue.shift(); 64951 startLength--; 64952 } 64953 64954 if ( fn ) { 64955 64956 // Add a progress sentinel to prevent the fx queue from being 64957 // automatically dequeued 64958 if ( type === "fx" ) { 64959 queue.unshift( "inprogress" ); 64960 } 64961 64962 // Clear up the last queue stop function 64963 delete hooks.stop; 64964 fn.call( elem, next, hooks ); 64965 } 64966 64967 if ( !startLength && hooks ) { 64968 hooks.empty.fire(); 64969 } 64970 }, 64971 64972 // Not public - generate a queueHooks object, or return the current one 64973 _queueHooks: function( elem, type ) { 64974 var key = type + "queueHooks"; 64975 return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { 64976 empty: jQuery.Callbacks( "once memory" ).add( function() { 64977 dataPriv.remove( elem, [ type + "queue", key ] ); 64978 } ) 64979 } ); 64980 } 64981} ); 64982 64983jQuery.fn.extend( { 64984 queue: function( type, data ) { 64985 var setter = 2; 64986 64987 if ( typeof type !== "string" ) { 64988 data = type; 64989 type = "fx"; 64990 setter--; 64991 } 64992 64993 if ( arguments.length < setter ) { 64994 return jQuery.queue( this[ 0 ], type ); 64995 } 64996 64997 return data === undefined ? 64998 this : 64999 this.each( function() { 65000 var queue = jQuery.queue( this, type, data ); 65001 65002 // Ensure a hooks for this queue 65003 jQuery._queueHooks( this, type ); 65004 65005 if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { 65006 jQuery.dequeue( this, type ); 65007 } 65008 } ); 65009 }, 65010 dequeue: function( type ) { 65011 return this.each( function() { 65012 jQuery.dequeue( this, type ); 65013 } ); 65014 }, 65015 clearQueue: function( type ) { 65016 return this.queue( type || "fx", [] ); 65017 }, 65018 65019 // Get a promise resolved when queues of a certain type 65020 // are emptied (fx is the type by default) 65021 promise: function( type, obj ) { 65022 var tmp, 65023 count = 1, 65024 defer = jQuery.Deferred(), 65025 elements = this, 65026 i = this.length, 65027 resolve = function() { 65028 if ( !( --count ) ) { 65029 defer.resolveWith( elements, [ elements ] ); 65030 } 65031 }; 65032 65033 if ( typeof type !== "string" ) { 65034 obj = type; 65035 type = undefined; 65036 } 65037 type = type || "fx"; 65038 65039 while ( i-- ) { 65040 tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); 65041 if ( tmp && tmp.empty ) { 65042 count++; 65043 tmp.empty.add( resolve ); 65044 } 65045 } 65046 resolve(); 65047 return defer.promise( obj ); 65048 } 65049} ); 65050var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 65051 65052var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 65053 65054 65055var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; 65056 65057var documentElement = document.documentElement; 65058 65059 65060 65061 var isAttached = function( elem ) { 65062 return jQuery.contains( elem.ownerDocument, elem ); 65063 }, 65064 composed = { composed: true }; 65065 65066 // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only 65067 // Check attachment across shadow DOM boundaries when possible (gh-3504) 65068 // Support: iOS 10.0-10.2 only 65069 // Early iOS 10 versions support `attachShadow` but not `getRootNode`, 65070 // leading to errors. We need to check for `getRootNode`. 65071 if ( documentElement.getRootNode ) { 65072 isAttached = function( elem ) { 65073 return jQuery.contains( elem.ownerDocument, elem ) || 65074 elem.getRootNode( composed ) === elem.ownerDocument; 65075 }; 65076 } 65077var isHiddenWithinTree = function( elem, el ) { 65078 65079 // isHiddenWithinTree might be called from jQuery#filter function; 65080 // in that case, element will be second argument 65081 elem = el || elem; 65082 65083 // Inline style trumps all 65084 return elem.style.display === "none" || 65085 elem.style.display === "" && 65086 65087 // Otherwise, check computed style 65088 // Support: Firefox <=43 - 45 65089 // Disconnected elements can have computed display: none, so first confirm that elem is 65090 // in the document. 65091 isAttached( elem ) && 65092 65093 jQuery.css( elem, "display" ) === "none"; 65094 }; 65095 65096 65097 65098function adjustCSS( elem, prop, valueParts, tween ) { 65099 var adjusted, scale, 65100 maxIterations = 20, 65101 currentValue = tween ? 65102 function() { 65103 return tween.cur(); 65104 } : 65105 function() { 65106 return jQuery.css( elem, prop, "" ); 65107 }, 65108 initial = currentValue(), 65109 unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), 65110 65111 // Starting value computation is required for potential unit mismatches 65112 initialInUnit = elem.nodeType && 65113 ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && 65114 rcssNum.exec( jQuery.css( elem, prop ) ); 65115 65116 if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { 65117 65118 // Support: Firefox <=54 65119 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 65120 initial = initial / 2; 65121 65122 // Trust units reported by jQuery.css 65123 unit = unit || initialInUnit[ 3 ]; 65124 65125 // Iteratively approximate from a nonzero starting point 65126 initialInUnit = +initial || 1; 65127 65128 while ( maxIterations-- ) { 65129 65130 // Evaluate and update our best guess (doubling guesses that zero out). 65131 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 65132 jQuery.style( elem, prop, initialInUnit + unit ); 65133 if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { 65134 maxIterations = 0; 65135 } 65136 initialInUnit = initialInUnit / scale; 65137 65138 } 65139 65140 initialInUnit = initialInUnit * 2; 65141 jQuery.style( elem, prop, initialInUnit + unit ); 65142 65143 // Make sure we update the tween properties later on 65144 valueParts = valueParts || []; 65145 } 65146 65147 if ( valueParts ) { 65148 initialInUnit = +initialInUnit || +initial || 0; 65149 65150 // Apply relative offset (+=/-=) if specified 65151 adjusted = valueParts[ 1 ] ? 65152 initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : 65153 +valueParts[ 2 ]; 65154 if ( tween ) { 65155 tween.unit = unit; 65156 tween.start = initialInUnit; 65157 tween.end = adjusted; 65158 } 65159 } 65160 return adjusted; 65161} 65162 65163 65164var defaultDisplayMap = {}; 65165 65166function getDefaultDisplay( elem ) { 65167 var temp, 65168 doc = elem.ownerDocument, 65169 nodeName = elem.nodeName, 65170 display = defaultDisplayMap[ nodeName ]; 65171 65172 if ( display ) { 65173 return display; 65174 } 65175 65176 temp = doc.body.appendChild( doc.createElement( nodeName ) ); 65177 display = jQuery.css( temp, "display" ); 65178 65179 temp.parentNode.removeChild( temp ); 65180 65181 if ( display === "none" ) { 65182 display = "block"; 65183 } 65184 defaultDisplayMap[ nodeName ] = display; 65185 65186 return display; 65187} 65188 65189function showHide( elements, show ) { 65190 var display, elem, 65191 values = [], 65192 index = 0, 65193 length = elements.length; 65194 65195 // Determine new display value for elements that need to change 65196 for ( ; index < length; index++ ) { 65197 elem = elements[ index ]; 65198 if ( !elem.style ) { 65199 continue; 65200 } 65201 65202 display = elem.style.display; 65203 if ( show ) { 65204 65205 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 65206 // check is required in this first loop unless we have a nonempty display value (either 65207 // inline or about-to-be-restored) 65208 if ( display === "none" ) { 65209 values[ index ] = dataPriv.get( elem, "display" ) || null; 65210 if ( !values[ index ] ) { 65211 elem.style.display = ""; 65212 } 65213 } 65214 if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { 65215 values[ index ] = getDefaultDisplay( elem ); 65216 } 65217 } else { 65218 if ( display !== "none" ) { 65219 values[ index ] = "none"; 65220 65221 // Remember what we're overwriting 65222 dataPriv.set( elem, "display", display ); 65223 } 65224 } 65225 } 65226 65227 // Set the display of the elements in a second loop to avoid constant reflow 65228 for ( index = 0; index < length; index++ ) { 65229 if ( values[ index ] != null ) { 65230 elements[ index ].style.display = values[ index ]; 65231 } 65232 } 65233 65234 return elements; 65235} 65236 65237jQuery.fn.extend( { 65238 show: function() { 65239 return showHide( this, true ); 65240 }, 65241 hide: function() { 65242 return showHide( this ); 65243 }, 65244 toggle: function( state ) { 65245 if ( typeof state === "boolean" ) { 65246 return state ? this.show() : this.hide(); 65247 } 65248 65249 return this.each( function() { 65250 if ( isHiddenWithinTree( this ) ) { 65251 jQuery( this ).show(); 65252 } else { 65253 jQuery( this ).hide(); 65254 } 65255 } ); 65256 } 65257} ); 65258var rcheckableType = ( /^(?:checkbox|radio)$/i ); 65259 65260var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); 65261 65262var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); 65263 65264 65265 65266( function() { 65267 var fragment = document.createDocumentFragment(), 65268 div = fragment.appendChild( document.createElement( "div" ) ), 65269 input = document.createElement( "input" ); 65270 65271 // Support: Android 4.0 - 4.3 only 65272 // Check state lost if the name is set (#11217) 65273 // Support: Windows Web Apps (WWA) 65274 // `name` and `type` must use .setAttribute for WWA (#14901) 65275 input.setAttribute( "type", "radio" ); 65276 input.setAttribute( "checked", "checked" ); 65277 input.setAttribute( "name", "t" ); 65278 65279 div.appendChild( input ); 65280 65281 // Support: Android <=4.1 only 65282 // Older WebKit doesn't clone checked state correctly in fragments 65283 support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 65284 65285 // Support: IE <=11 only 65286 // Make sure textarea (and checkbox) defaultValue is properly cloned 65287 div.innerHTML = "<textarea>x</textarea>"; 65288 support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 65289 65290 // Support: IE <=9 only 65291 // IE <=9 replaces <option> tags with their contents when inserted outside of 65292 // the select element. 65293 div.innerHTML = "<option></option>"; 65294 support.option = !!div.lastChild; 65295} )(); 65296 65297 65298// We have to close these tags to support XHTML (#13200) 65299var wrapMap = { 65300 65301 // XHTML parsers do not magically insert elements in the 65302 // same way that tag soup parsers do. So we cannot shorten 65303 // this by omitting <tbody> or other required elements. 65304 thead: [ 1, "<table>", "</table>" ], 65305 col: [ 2, "<table><colgroup>", "</colgroup></table>" ], 65306 tr: [ 2, "<table><tbody>", "</tbody></table>" ], 65307 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], 65308 65309 _default: [ 0, "", "" ] 65310}; 65311 65312wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 65313wrapMap.th = wrapMap.td; 65314 65315// Support: IE <=9 only 65316if ( !support.option ) { 65317 wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ]; 65318} 65319 65320 65321function getAll( context, tag ) { 65322 65323 // Support: IE <=9 - 11 only 65324 // Use typeof to avoid zero-argument method invocation on host objects (#15151) 65325 var ret; 65326 65327 if ( typeof context.getElementsByTagName !== "undefined" ) { 65328 ret = context.getElementsByTagName( tag || "*" ); 65329 65330 } else if ( typeof context.querySelectorAll !== "undefined" ) { 65331 ret = context.querySelectorAll( tag || "*" ); 65332 65333 } else { 65334 ret = []; 65335 } 65336 65337 if ( tag === undefined || tag && nodeName( context, tag ) ) { 65338 return jQuery.merge( [ context ], ret ); 65339 } 65340 65341 return ret; 65342} 65343 65344 65345// Mark scripts as having already been evaluated 65346function setGlobalEval( elems, refElements ) { 65347 var i = 0, 65348 l = elems.length; 65349 65350 for ( ; i < l; i++ ) { 65351 dataPriv.set( 65352 elems[ i ], 65353 "globalEval", 65354 !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 65355 ); 65356 } 65357} 65358 65359 65360var rhtml = /<|&#?\w+;/; 65361 65362function buildFragment( elems, context, scripts, selection, ignored ) { 65363 var elem, tmp, tag, wrap, attached, j, 65364 fragment = context.createDocumentFragment(), 65365 nodes = [], 65366 i = 0, 65367 l = elems.length; 65368 65369 for ( ; i < l; i++ ) { 65370 elem = elems[ i ]; 65371 65372 if ( elem || elem === 0 ) { 65373 65374 // Add nodes directly 65375 if ( toType( elem ) === "object" ) { 65376 65377 // Support: Android <=4.0 only, PhantomJS 1 only 65378 // push.apply(_, arraylike) throws on ancient WebKit 65379 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); 65380 65381 // Convert non-html into a text node 65382 } else if ( !rhtml.test( elem ) ) { 65383 nodes.push( context.createTextNode( elem ) ); 65384 65385 // Convert html into DOM nodes 65386 } else { 65387 tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); 65388 65389 // Deserialize a standard representation 65390 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); 65391 wrap = wrapMap[ tag ] || wrapMap._default; 65392 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; 65393 65394 // Descend through wrappers to the right content 65395 j = wrap[ 0 ]; 65396 while ( j-- ) { 65397 tmp = tmp.lastChild; 65398 } 65399 65400 // Support: Android <=4.0 only, PhantomJS 1 only 65401 // push.apply(_, arraylike) throws on ancient WebKit 65402 jQuery.merge( nodes, tmp.childNodes ); 65403 65404 // Remember the top-level container 65405 tmp = fragment.firstChild; 65406 65407 // Ensure the created nodes are orphaned (#12392) 65408 tmp.textContent = ""; 65409 } 65410 } 65411 } 65412 65413 // Remove wrapper from fragment 65414 fragment.textContent = ""; 65415 65416 i = 0; 65417 while ( ( elem = nodes[ i++ ] ) ) { 65418 65419 // Skip elements already in the context collection (trac-4087) 65420 if ( selection && jQuery.inArray( elem, selection ) > -1 ) { 65421 if ( ignored ) { 65422 ignored.push( elem ); 65423 } 65424 continue; 65425 } 65426 65427 attached = isAttached( elem ); 65428 65429 // Append to fragment 65430 tmp = getAll( fragment.appendChild( elem ), "script" ); 65431 65432 // Preserve script evaluation history 65433 if ( attached ) { 65434 setGlobalEval( tmp ); 65435 } 65436 65437 // Capture executables 65438 if ( scripts ) { 65439 j = 0; 65440 while ( ( elem = tmp[ j++ ] ) ) { 65441 if ( rscriptType.test( elem.type || "" ) ) { 65442 scripts.push( elem ); 65443 } 65444 } 65445 } 65446 } 65447 65448 return fragment; 65449} 65450 65451 65452var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 65453 65454function returnTrue() { 65455 return true; 65456} 65457 65458function returnFalse() { 65459 return false; 65460} 65461 65462// Support: IE <=9 - 11+ 65463// focus() and blur() are asynchronous, except when they are no-op. 65464// So expect focus to be synchronous when the element is already active, 65465// and blur to be synchronous when the element is not already active. 65466// (focus and blur are always synchronous in other supported browsers, 65467// this just defines when we can count on it). 65468function expectSync( elem, type ) { 65469 return ( elem === safeActiveElement() ) === ( type === "focus" ); 65470} 65471 65472// Support: IE <=9 only 65473// Accessing document.activeElement can throw unexpectedly 65474// https://bugs.jquery.com/ticket/13393 65475function safeActiveElement() { 65476 try { 65477 return document.activeElement; 65478 } catch ( err ) { } 65479} 65480 65481function on( elem, types, selector, data, fn, one ) { 65482 var origFn, type; 65483 65484 // Types can be a map of types/handlers 65485 if ( typeof types === "object" ) { 65486 65487 // ( types-Object, selector, data ) 65488 if ( typeof selector !== "string" ) { 65489 65490 // ( types-Object, data ) 65491 data = data || selector; 65492 selector = undefined; 65493 } 65494 for ( type in types ) { 65495 on( elem, type, selector, data, types[ type ], one ); 65496 } 65497 return elem; 65498 } 65499 65500 if ( data == null && fn == null ) { 65501 65502 // ( types, fn ) 65503 fn = selector; 65504 data = selector = undefined; 65505 } else if ( fn == null ) { 65506 if ( typeof selector === "string" ) { 65507 65508 // ( types, selector, fn ) 65509 fn = data; 65510 data = undefined; 65511 } else { 65512 65513 // ( types, data, fn ) 65514 fn = data; 65515 data = selector; 65516 selector = undefined; 65517 } 65518 } 65519 if ( fn === false ) { 65520 fn = returnFalse; 65521 } else if ( !fn ) { 65522 return elem; 65523 } 65524 65525 if ( one === 1 ) { 65526 origFn = fn; 65527 fn = function( event ) { 65528 65529 // Can use an empty set, since event contains the info 65530 jQuery().off( event ); 65531 return origFn.apply( this, arguments ); 65532 }; 65533 65534 // Use same guid so caller can remove using origFn 65535 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); 65536 } 65537 return elem.each( function() { 65538 jQuery.event.add( this, types, fn, data, selector ); 65539 } ); 65540} 65541 65542/* 65543 * Helper functions for managing events -- not part of the public interface. 65544 * Props to Dean Edwards' addEvent library for many of the ideas. 65545 */ 65546jQuery.event = { 65547 65548 global: {}, 65549 65550 add: function( elem, types, handler, data, selector ) { 65551 65552 var handleObjIn, eventHandle, tmp, 65553 events, t, handleObj, 65554 special, handlers, type, namespaces, origType, 65555 elemData = dataPriv.get( elem ); 65556 65557 // Only attach events to objects that accept data 65558 if ( !acceptData( elem ) ) { 65559 return; 65560 } 65561 65562 // Caller can pass in an object of custom data in lieu of the handler 65563 if ( handler.handler ) { 65564 handleObjIn = handler; 65565 handler = handleObjIn.handler; 65566 selector = handleObjIn.selector; 65567 } 65568 65569 // Ensure that invalid selectors throw exceptions at attach time 65570 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 65571 if ( selector ) { 65572 jQuery.find.matchesSelector( documentElement, selector ); 65573 } 65574 65575 // Make sure that the handler has a unique ID, used to find/remove it later 65576 if ( !handler.guid ) { 65577 handler.guid = jQuery.guid++; 65578 } 65579 65580 // Init the element's event structure and main handler, if this is the first 65581 if ( !( events = elemData.events ) ) { 65582 events = elemData.events = Object.create( null ); 65583 } 65584 if ( !( eventHandle = elemData.handle ) ) { 65585 eventHandle = elemData.handle = function( e ) { 65586 65587 // Discard the second event of a jQuery.event.trigger() and 65588 // when an event is called after a page has unloaded 65589 return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? 65590 jQuery.event.dispatch.apply( elem, arguments ) : undefined; 65591 }; 65592 } 65593 65594 // Handle multiple events separated by a space 65595 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 65596 t = types.length; 65597 while ( t-- ) { 65598 tmp = rtypenamespace.exec( types[ t ] ) || []; 65599 type = origType = tmp[ 1 ]; 65600 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 65601 65602 // There *must* be a type, no attaching namespace-only handlers 65603 if ( !type ) { 65604 continue; 65605 } 65606 65607 // If event changes its type, use the special event handlers for the changed type 65608 special = jQuery.event.special[ type ] || {}; 65609 65610 // If selector defined, determine special event api type, otherwise given type 65611 type = ( selector ? special.delegateType : special.bindType ) || type; 65612 65613 // Update special based on newly reset type 65614 special = jQuery.event.special[ type ] || {}; 65615 65616 // handleObj is passed to all event handlers 65617 handleObj = jQuery.extend( { 65618 type: type, 65619 origType: origType, 65620 data: data, 65621 handler: handler, 65622 guid: handler.guid, 65623 selector: selector, 65624 needsContext: selector && jQuery.expr.match.needsContext.test( selector ), 65625 namespace: namespaces.join( "." ) 65626 }, handleObjIn ); 65627 65628 // Init the event handler queue if we're the first 65629 if ( !( handlers = events[ type ] ) ) { 65630 handlers = events[ type ] = []; 65631 handlers.delegateCount = 0; 65632 65633 // Only use addEventListener if the special events handler returns false 65634 if ( !special.setup || 65635 special.setup.call( elem, data, namespaces, eventHandle ) === false ) { 65636 65637 if ( elem.addEventListener ) { 65638 elem.addEventListener( type, eventHandle ); 65639 } 65640 } 65641 } 65642 65643 if ( special.add ) { 65644 special.add.call( elem, handleObj ); 65645 65646 if ( !handleObj.handler.guid ) { 65647 handleObj.handler.guid = handler.guid; 65648 } 65649 } 65650 65651 // Add to the element's handler list, delegates in front 65652 if ( selector ) { 65653 handlers.splice( handlers.delegateCount++, 0, handleObj ); 65654 } else { 65655 handlers.push( handleObj ); 65656 } 65657 65658 // Keep track of which events have ever been used, for event optimization 65659 jQuery.event.global[ type ] = true; 65660 } 65661 65662 }, 65663 65664 // Detach an event or set of events from an element 65665 remove: function( elem, types, handler, selector, mappedTypes ) { 65666 65667 var j, origCount, tmp, 65668 events, t, handleObj, 65669 special, handlers, type, namespaces, origType, 65670 elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); 65671 65672 if ( !elemData || !( events = elemData.events ) ) { 65673 return; 65674 } 65675 65676 // Once for each type.namespace in types; type may be omitted 65677 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 65678 t = types.length; 65679 while ( t-- ) { 65680 tmp = rtypenamespace.exec( types[ t ] ) || []; 65681 type = origType = tmp[ 1 ]; 65682 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 65683 65684 // Unbind all events (on this namespace, if provided) for the element 65685 if ( !type ) { 65686 for ( type in events ) { 65687 jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); 65688 } 65689 continue; 65690 } 65691 65692 special = jQuery.event.special[ type ] || {}; 65693 type = ( selector ? special.delegateType : special.bindType ) || type; 65694 handlers = events[ type ] || []; 65695 tmp = tmp[ 2 ] && 65696 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); 65697 65698 // Remove matching events 65699 origCount = j = handlers.length; 65700 while ( j-- ) { 65701 handleObj = handlers[ j ]; 65702 65703 if ( ( mappedTypes || origType === handleObj.origType ) && 65704 ( !handler || handler.guid === handleObj.guid ) && 65705 ( !tmp || tmp.test( handleObj.namespace ) ) && 65706 ( !selector || selector === handleObj.selector || 65707 selector === "**" && handleObj.selector ) ) { 65708 handlers.splice( j, 1 ); 65709 65710 if ( handleObj.selector ) { 65711 handlers.delegateCount--; 65712 } 65713 if ( special.remove ) { 65714 special.remove.call( elem, handleObj ); 65715 } 65716 } 65717 } 65718 65719 // Remove generic event handler if we removed something and no more handlers exist 65720 // (avoids potential for endless recursion during removal of special event handlers) 65721 if ( origCount && !handlers.length ) { 65722 if ( !special.teardown || 65723 special.teardown.call( elem, namespaces, elemData.handle ) === false ) { 65724 65725 jQuery.removeEvent( elem, type, elemData.handle ); 65726 } 65727 65728 delete events[ type ]; 65729 } 65730 } 65731 65732 // Remove data and the expando if it's no longer used 65733 if ( jQuery.isEmptyObject( events ) ) { 65734 dataPriv.remove( elem, "handle events" ); 65735 } 65736 }, 65737 65738 dispatch: function( nativeEvent ) { 65739 65740 var i, j, ret, matched, handleObj, handlerQueue, 65741 args = new Array( arguments.length ), 65742 65743 // Make a writable jQuery.Event from the native event object 65744 event = jQuery.event.fix( nativeEvent ), 65745 65746 handlers = ( 65747 dataPriv.get( this, "events" ) || Object.create( null ) 65748 )[ event.type ] || [], 65749 special = jQuery.event.special[ event.type ] || {}; 65750 65751 // Use the fix-ed jQuery.Event rather than the (read-only) native event 65752 args[ 0 ] = event; 65753 65754 for ( i = 1; i < arguments.length; i++ ) { 65755 args[ i ] = arguments[ i ]; 65756 } 65757 65758 event.delegateTarget = this; 65759 65760 // Call the preDispatch hook for the mapped type, and let it bail if desired 65761 if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { 65762 return; 65763 } 65764 65765 // Determine handlers 65766 handlerQueue = jQuery.event.handlers.call( this, event, handlers ); 65767 65768 // Run delegates first; they may want to stop propagation beneath us 65769 i = 0; 65770 while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { 65771 event.currentTarget = matched.elem; 65772 65773 j = 0; 65774 while ( ( handleObj = matched.handlers[ j++ ] ) && 65775 !event.isImmediatePropagationStopped() ) { 65776 65777 // If the event is namespaced, then each handler is only invoked if it is 65778 // specially universal or its namespaces are a superset of the event's. 65779 if ( !event.rnamespace || handleObj.namespace === false || 65780 event.rnamespace.test( handleObj.namespace ) ) { 65781 65782 event.handleObj = handleObj; 65783 event.data = handleObj.data; 65784 65785 ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || 65786 handleObj.handler ).apply( matched.elem, args ); 65787 65788 if ( ret !== undefined ) { 65789 if ( ( event.result = ret ) === false ) { 65790 event.preventDefault(); 65791 event.stopPropagation(); 65792 } 65793 } 65794 } 65795 } 65796 } 65797 65798 // Call the postDispatch hook for the mapped type 65799 if ( special.postDispatch ) { 65800 special.postDispatch.call( this, event ); 65801 } 65802 65803 return event.result; 65804 }, 65805 65806 handlers: function( event, handlers ) { 65807 var i, handleObj, sel, matchedHandlers, matchedSelectors, 65808 handlerQueue = [], 65809 delegateCount = handlers.delegateCount, 65810 cur = event.target; 65811 65812 // Find delegate handlers 65813 if ( delegateCount && 65814 65815 // Support: IE <=9 65816 // Black-hole SVG <use> instance trees (trac-13180) 65817 cur.nodeType && 65818 65819 // Support: Firefox <=42 65820 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 65821 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 65822 // Support: IE 11 only 65823 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 65824 !( event.type === "click" && event.button >= 1 ) ) { 65825 65826 for ( ; cur !== this; cur = cur.parentNode || this ) { 65827 65828 // Don't check non-elements (#13208) 65829 // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) 65830 if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { 65831 matchedHandlers = []; 65832 matchedSelectors = {}; 65833 for ( i = 0; i < delegateCount; i++ ) { 65834 handleObj = handlers[ i ]; 65835 65836 // Don't conflict with Object.prototype properties (#13203) 65837 sel = handleObj.selector + " "; 65838 65839 if ( matchedSelectors[ sel ] === undefined ) { 65840 matchedSelectors[ sel ] = handleObj.needsContext ? 65841 jQuery( sel, this ).index( cur ) > -1 : 65842 jQuery.find( sel, this, null, [ cur ] ).length; 65843 } 65844 if ( matchedSelectors[ sel ] ) { 65845 matchedHandlers.push( handleObj ); 65846 } 65847 } 65848 if ( matchedHandlers.length ) { 65849 handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); 65850 } 65851 } 65852 } 65853 } 65854 65855 // Add the remaining (directly-bound) handlers 65856 cur = this; 65857 if ( delegateCount < handlers.length ) { 65858 handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); 65859 } 65860 65861 return handlerQueue; 65862 }, 65863 65864 addProp: function( name, hook ) { 65865 Object.defineProperty( jQuery.Event.prototype, name, { 65866 enumerable: true, 65867 configurable: true, 65868 65869 get: isFunction( hook ) ? 65870 function() { 65871 if ( this.originalEvent ) { 65872 return hook( this.originalEvent ); 65873 } 65874 } : 65875 function() { 65876 if ( this.originalEvent ) { 65877 return this.originalEvent[ name ]; 65878 } 65879 }, 65880 65881 set: function( value ) { 65882 Object.defineProperty( this, name, { 65883 enumerable: true, 65884 configurable: true, 65885 writable: true, 65886 value: value 65887 } ); 65888 } 65889 } ); 65890 }, 65891 65892 fix: function( originalEvent ) { 65893 return originalEvent[ jQuery.expando ] ? 65894 originalEvent : 65895 new jQuery.Event( originalEvent ); 65896 }, 65897 65898 special: { 65899 load: { 65900 65901 // Prevent triggered image.load events from bubbling to window.load 65902 noBubble: true 65903 }, 65904 click: { 65905 65906 // Utilize native event to ensure correct state for checkable inputs 65907 setup: function( data ) { 65908 65909 // For mutual compressibility with _default, replace `this` access with a local var. 65910 // `|| data` is dead code meant only to preserve the variable through minification. 65911 var el = this || data; 65912 65913 // Claim the first handler 65914 if ( rcheckableType.test( el.type ) && 65915 el.click && nodeName( el, "input" ) ) { 65916 65917 // dataPriv.set( el, "click", ... ) 65918 leverageNative( el, "click", returnTrue ); 65919 } 65920 65921 // Return false to allow normal processing in the caller 65922 return false; 65923 }, 65924 trigger: function( data ) { 65925 65926 // For mutual compressibility with _default, replace `this` access with a local var. 65927 // `|| data` is dead code meant only to preserve the variable through minification. 65928 var el = this || data; 65929 65930 // Force setup before triggering a click 65931 if ( rcheckableType.test( el.type ) && 65932 el.click && nodeName( el, "input" ) ) { 65933 65934 leverageNative( el, "click" ); 65935 } 65936 65937 // Return non-false to allow normal event-path propagation 65938 return true; 65939 }, 65940 65941 // For cross-browser consistency, suppress native .click() on links 65942 // Also prevent it if we're currently inside a leveraged native-event stack 65943 _default: function( event ) { 65944 var target = event.target; 65945 return rcheckableType.test( target.type ) && 65946 target.click && nodeName( target, "input" ) && 65947 dataPriv.get( target, "click" ) || 65948 nodeName( target, "a" ); 65949 } 65950 }, 65951 65952 beforeunload: { 65953 postDispatch: function( event ) { 65954 65955 // Support: Firefox 20+ 65956 // Firefox doesn't alert if the returnValue field is not set. 65957 if ( event.result !== undefined && event.originalEvent ) { 65958 event.originalEvent.returnValue = event.result; 65959 } 65960 } 65961 } 65962 } 65963}; 65964 65965// Ensure the presence of an event listener that handles manually-triggered 65966// synthetic events by interrupting progress until reinvoked in response to 65967// *native* events that it fires directly, ensuring that state changes have 65968// already occurred before other listeners are invoked. 65969function leverageNative( el, type, expectSync ) { 65970 65971 // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add 65972 if ( !expectSync ) { 65973 if ( dataPriv.get( el, type ) === undefined ) { 65974 jQuery.event.add( el, type, returnTrue ); 65975 } 65976 return; 65977 } 65978 65979 // Register the controller as a special universal handler for all event namespaces 65980 dataPriv.set( el, type, false ); 65981 jQuery.event.add( el, type, { 65982 namespace: false, 65983 handler: function( event ) { 65984 var notAsync, result, 65985 saved = dataPriv.get( this, type ); 65986 65987 if ( ( event.isTrigger & 1 ) && this[ type ] ) { 65988 65989 // Interrupt processing of the outer synthetic .trigger()ed event 65990 // Saved data should be false in such cases, but might be a leftover capture object 65991 // from an async native handler (gh-4350) 65992 if ( !saved.length ) { 65993 65994 // Store arguments for use when handling the inner native event 65995 // There will always be at least one argument (an event object), so this array 65996 // will not be confused with a leftover capture object. 65997 saved = slice.call( arguments ); 65998 dataPriv.set( this, type, saved ); 65999 66000 // Trigger the native event and capture its result 66001 // Support: IE <=9 - 11+ 66002 // focus() and blur() are asynchronous 66003 notAsync = expectSync( this, type ); 66004 this[ type ](); 66005 result = dataPriv.get( this, type ); 66006 if ( saved !== result || notAsync ) { 66007 dataPriv.set( this, type, false ); 66008 } else { 66009 result = {}; 66010 } 66011 if ( saved !== result ) { 66012 66013 // Cancel the outer synthetic event 66014 event.stopImmediatePropagation(); 66015 event.preventDefault(); 66016 66017 // Support: Chrome 86+ 66018 // In Chrome, if an element having a focusout handler is blurred by 66019 // clicking outside of it, it invokes the handler synchronously. If 66020 // that handler calls `.remove()` on the element, the data is cleared, 66021 // leaving `result` undefined. We need to guard against this. 66022 return result && result.value; 66023 } 66024 66025 // If this is an inner synthetic event for an event with a bubbling surrogate 66026 // (focus or blur), assume that the surrogate already propagated from triggering the 66027 // native event and prevent that from happening again here. 66028 // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the 66029 // bubbling surrogate propagates *after* the non-bubbling base), but that seems 66030 // less bad than duplication. 66031 } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { 66032 event.stopPropagation(); 66033 } 66034 66035 // If this is a native event triggered above, everything is now in order 66036 // Fire an inner synthetic event with the original arguments 66037 } else if ( saved.length ) { 66038 66039 // ...and capture the result 66040 dataPriv.set( this, type, { 66041 value: jQuery.event.trigger( 66042 66043 // Support: IE <=9 - 11+ 66044 // Extend with the prototype to reset the above stopImmediatePropagation() 66045 jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), 66046 saved.slice( 1 ), 66047 this 66048 ) 66049 } ); 66050 66051 // Abort handling of the native event 66052 event.stopImmediatePropagation(); 66053 } 66054 } 66055 } ); 66056} 66057 66058jQuery.removeEvent = function( elem, type, handle ) { 66059 66060 // This "if" is needed for plain objects 66061 if ( elem.removeEventListener ) { 66062 elem.removeEventListener( type, handle ); 66063 } 66064}; 66065 66066jQuery.Event = function( src, props ) { 66067 66068 // Allow instantiation without the 'new' keyword 66069 if ( !( this instanceof jQuery.Event ) ) { 66070 return new jQuery.Event( src, props ); 66071 } 66072 66073 // Event object 66074 if ( src && src.type ) { 66075 this.originalEvent = src; 66076 this.type = src.type; 66077 66078 // Events bubbling up the document may have been marked as prevented 66079 // by a handler lower down the tree; reflect the correct value. 66080 this.isDefaultPrevented = src.defaultPrevented || 66081 src.defaultPrevented === undefined && 66082 66083 // Support: Android <=2.3 only 66084 src.returnValue === false ? 66085 returnTrue : 66086 returnFalse; 66087 66088 // Create target properties 66089 // Support: Safari <=6 - 7 only 66090 // Target should not be a text node (#504, #13143) 66091 this.target = ( src.target && src.target.nodeType === 3 ) ? 66092 src.target.parentNode : 66093 src.target; 66094 66095 this.currentTarget = src.currentTarget; 66096 this.relatedTarget = src.relatedTarget; 66097 66098 // Event type 66099 } else { 66100 this.type = src; 66101 } 66102 66103 // Put explicitly provided properties onto the event object 66104 if ( props ) { 66105 jQuery.extend( this, props ); 66106 } 66107 66108 // Create a timestamp if incoming event doesn't have one 66109 this.timeStamp = src && src.timeStamp || Date.now(); 66110 66111 // Mark it as fixed 66112 this[ jQuery.expando ] = true; 66113}; 66114 66115// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 66116// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 66117jQuery.Event.prototype = { 66118 constructor: jQuery.Event, 66119 isDefaultPrevented: returnFalse, 66120 isPropagationStopped: returnFalse, 66121 isImmediatePropagationStopped: returnFalse, 66122 isSimulated: false, 66123 66124 preventDefault: function() { 66125 var e = this.originalEvent; 66126 66127 this.isDefaultPrevented = returnTrue; 66128 66129 if ( e && !this.isSimulated ) { 66130 e.preventDefault(); 66131 } 66132 }, 66133 stopPropagation: function() { 66134 var e = this.originalEvent; 66135 66136 this.isPropagationStopped = returnTrue; 66137 66138 if ( e && !this.isSimulated ) { 66139 e.stopPropagation(); 66140 } 66141 }, 66142 stopImmediatePropagation: function() { 66143 var e = this.originalEvent; 66144 66145 this.isImmediatePropagationStopped = returnTrue; 66146 66147 if ( e && !this.isSimulated ) { 66148 e.stopImmediatePropagation(); 66149 } 66150 66151 this.stopPropagation(); 66152 } 66153}; 66154 66155// Includes all common event props including KeyEvent and MouseEvent specific props 66156jQuery.each( { 66157 altKey: true, 66158 bubbles: true, 66159 cancelable: true, 66160 changedTouches: true, 66161 ctrlKey: true, 66162 detail: true, 66163 eventPhase: true, 66164 metaKey: true, 66165 pageX: true, 66166 pageY: true, 66167 shiftKey: true, 66168 view: true, 66169 "char": true, 66170 code: true, 66171 charCode: true, 66172 key: true, 66173 keyCode: true, 66174 button: true, 66175 buttons: true, 66176 clientX: true, 66177 clientY: true, 66178 offsetX: true, 66179 offsetY: true, 66180 pointerId: true, 66181 pointerType: true, 66182 screenX: true, 66183 screenY: true, 66184 targetTouches: true, 66185 toElement: true, 66186 touches: true, 66187 which: true 66188}, jQuery.event.addProp ); 66189 66190jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { 66191 jQuery.event.special[ type ] = { 66192 66193 // Utilize native event if possible so blur/focus sequence is correct 66194 setup: function() { 66195 66196 // Claim the first handler 66197 // dataPriv.set( this, "focus", ... ) 66198 // dataPriv.set( this, "blur", ... ) 66199 leverageNative( this, type, expectSync ); 66200 66201 // Return false to allow normal processing in the caller 66202 return false; 66203 }, 66204 trigger: function() { 66205 66206 // Force setup before trigger 66207 leverageNative( this, type ); 66208 66209 // Return non-false to allow normal event-path propagation 66210 return true; 66211 }, 66212 66213 // Suppress native focus or blur as it's already being fired 66214 // in leverageNative. 66215 _default: function() { 66216 return true; 66217 }, 66218 66219 delegateType: delegateType 66220 }; 66221} ); 66222 66223// Create mouseenter/leave events using mouseover/out and event-time checks 66224// so that event delegation works in jQuery. 66225// Do the same for pointerenter/pointerleave and pointerover/pointerout 66226// 66227// Support: Safari 7 only 66228// Safari sends mouseenter too often; see: 66229// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 66230// for the description of the bug (it existed in older Chrome versions as well). 66231jQuery.each( { 66232 mouseenter: "mouseover", 66233 mouseleave: "mouseout", 66234 pointerenter: "pointerover", 66235 pointerleave: "pointerout" 66236}, function( orig, fix ) { 66237 jQuery.event.special[ orig ] = { 66238 delegateType: fix, 66239 bindType: fix, 66240 66241 handle: function( event ) { 66242 var ret, 66243 target = this, 66244 related = event.relatedTarget, 66245 handleObj = event.handleObj; 66246 66247 // For mouseenter/leave call the handler if related is outside the target. 66248 // NB: No relatedTarget if the mouse left/entered the browser window 66249 if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { 66250 event.type = handleObj.origType; 66251 ret = handleObj.handler.apply( this, arguments ); 66252 event.type = fix; 66253 } 66254 return ret; 66255 } 66256 }; 66257} ); 66258 66259jQuery.fn.extend( { 66260 66261 on: function( types, selector, data, fn ) { 66262 return on( this, types, selector, data, fn ); 66263 }, 66264 one: function( types, selector, data, fn ) { 66265 return on( this, types, selector, data, fn, 1 ); 66266 }, 66267 off: function( types, selector, fn ) { 66268 var handleObj, type; 66269 if ( types && types.preventDefault && types.handleObj ) { 66270 66271 // ( event ) dispatched jQuery.Event 66272 handleObj = types.handleObj; 66273 jQuery( types.delegateTarget ).off( 66274 handleObj.namespace ? 66275 handleObj.origType + "." + handleObj.namespace : 66276 handleObj.origType, 66277 handleObj.selector, 66278 handleObj.handler 66279 ); 66280 return this; 66281 } 66282 if ( typeof types === "object" ) { 66283 66284 // ( types-object [, selector] ) 66285 for ( type in types ) { 66286 this.off( type, selector, types[ type ] ); 66287 } 66288 return this; 66289 } 66290 if ( selector === false || typeof selector === "function" ) { 66291 66292 // ( types [, fn] ) 66293 fn = selector; 66294 selector = undefined; 66295 } 66296 if ( fn === false ) { 66297 fn = returnFalse; 66298 } 66299 return this.each( function() { 66300 jQuery.event.remove( this, types, fn, selector ); 66301 } ); 66302 } 66303} ); 66304 66305 66306var 66307 66308 // Support: IE <=10 - 11, Edge 12 - 13 only 66309 // In IE/Edge using regex groups here causes severe slowdowns. 66310 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 66311 rnoInnerhtml = /<script|<style|<link/i, 66312 66313 // checked="checked" or checked 66314 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 66315 rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 66316 66317// Prefer a tbody over its parent table for containing new rows 66318function manipulationTarget( elem, content ) { 66319 if ( nodeName( elem, "table" ) && 66320 nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { 66321 66322 return jQuery( elem ).children( "tbody" )[ 0 ] || elem; 66323 } 66324 66325 return elem; 66326} 66327 66328// Replace/restore the type attribute of script elements for safe DOM manipulation 66329function disableScript( elem ) { 66330 elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; 66331 return elem; 66332} 66333function restoreScript( elem ) { 66334 if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { 66335 elem.type = elem.type.slice( 5 ); 66336 } else { 66337 elem.removeAttribute( "type" ); 66338 } 66339 66340 return elem; 66341} 66342 66343function cloneCopyEvent( src, dest ) { 66344 var i, l, type, pdataOld, udataOld, udataCur, events; 66345 66346 if ( dest.nodeType !== 1 ) { 66347 return; 66348 } 66349 66350 // 1. Copy private data: events, handlers, etc. 66351 if ( dataPriv.hasData( src ) ) { 66352 pdataOld = dataPriv.get( src ); 66353 events = pdataOld.events; 66354 66355 if ( events ) { 66356 dataPriv.remove( dest, "handle events" ); 66357 66358 for ( type in events ) { 66359 for ( i = 0, l = events[ type ].length; i < l; i++ ) { 66360 jQuery.event.add( dest, type, events[ type ][ i ] ); 66361 } 66362 } 66363 } 66364 } 66365 66366 // 2. Copy user data 66367 if ( dataUser.hasData( src ) ) { 66368 udataOld = dataUser.access( src ); 66369 udataCur = jQuery.extend( {}, udataOld ); 66370 66371 dataUser.set( dest, udataCur ); 66372 } 66373} 66374 66375// Fix IE bugs, see support tests 66376function fixInput( src, dest ) { 66377 var nodeName = dest.nodeName.toLowerCase(); 66378 66379 // Fails to persist the checked state of a cloned checkbox or radio button. 66380 if ( nodeName === "input" && rcheckableType.test( src.type ) ) { 66381 dest.checked = src.checked; 66382 66383 // Fails to return the selected option to the default selected state when cloning options 66384 } else if ( nodeName === "input" || nodeName === "textarea" ) { 66385 dest.defaultValue = src.defaultValue; 66386 } 66387} 66388 66389function domManip( collection, args, callback, ignored ) { 66390 66391 // Flatten any nested arrays 66392 args = flat( args ); 66393 66394 var fragment, first, scripts, hasScripts, node, doc, 66395 i = 0, 66396 l = collection.length, 66397 iNoClone = l - 1, 66398 value = args[ 0 ], 66399 valueIsFunction = isFunction( value ); 66400 66401 // We can't cloneNode fragments that contain checked, in WebKit 66402 if ( valueIsFunction || 66403 ( l > 1 && typeof value === "string" && 66404 !support.checkClone && rchecked.test( value ) ) ) { 66405 return collection.each( function( index ) { 66406 var self = collection.eq( index ); 66407 if ( valueIsFunction ) { 66408 args[ 0 ] = value.call( this, index, self.html() ); 66409 } 66410 domManip( self, args, callback, ignored ); 66411 } ); 66412 } 66413 66414 if ( l ) { 66415 fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); 66416 first = fragment.firstChild; 66417 66418 if ( fragment.childNodes.length === 1 ) { 66419 fragment = first; 66420 } 66421 66422 // Require either new content or an interest in ignored elements to invoke the callback 66423 if ( first || ignored ) { 66424 scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); 66425 hasScripts = scripts.length; 66426 66427 // Use the original fragment for the last item 66428 // instead of the first because it can end up 66429 // being emptied incorrectly in certain situations (#8070). 66430 for ( ; i < l; i++ ) { 66431 node = fragment; 66432 66433 if ( i !== iNoClone ) { 66434 node = jQuery.clone( node, true, true ); 66435 66436 // Keep references to cloned scripts for later restoration 66437 if ( hasScripts ) { 66438 66439 // Support: Android <=4.0 only, PhantomJS 1 only 66440 // push.apply(_, arraylike) throws on ancient WebKit 66441 jQuery.merge( scripts, getAll( node, "script" ) ); 66442 } 66443 } 66444 66445 callback.call( collection[ i ], node, i ); 66446 } 66447 66448 if ( hasScripts ) { 66449 doc = scripts[ scripts.length - 1 ].ownerDocument; 66450 66451 // Reenable scripts 66452 jQuery.map( scripts, restoreScript ); 66453 66454 // Evaluate executable scripts on first document insertion 66455 for ( i = 0; i < hasScripts; i++ ) { 66456 node = scripts[ i ]; 66457 if ( rscriptType.test( node.type || "" ) && 66458 !dataPriv.access( node, "globalEval" ) && 66459 jQuery.contains( doc, node ) ) { 66460 66461 if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { 66462 66463 // Optional AJAX dependency, but won't run scripts if not present 66464 if ( jQuery._evalUrl && !node.noModule ) { 66465 jQuery._evalUrl( node.src, { 66466 nonce: node.nonce || node.getAttribute( "nonce" ) 66467 }, doc ); 66468 } 66469 } else { 66470 DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); 66471 } 66472 } 66473 } 66474 } 66475 } 66476 } 66477 66478 return collection; 66479} 66480 66481function remove( elem, selector, keepData ) { 66482 var node, 66483 nodes = selector ? jQuery.filter( selector, elem ) : elem, 66484 i = 0; 66485 66486 for ( ; ( node = nodes[ i ] ) != null; i++ ) { 66487 if ( !keepData && node.nodeType === 1 ) { 66488 jQuery.cleanData( getAll( node ) ); 66489 } 66490 66491 if ( node.parentNode ) { 66492 if ( keepData && isAttached( node ) ) { 66493 setGlobalEval( getAll( node, "script" ) ); 66494 } 66495 node.parentNode.removeChild( node ); 66496 } 66497 } 66498 66499 return elem; 66500} 66501 66502jQuery.extend( { 66503 htmlPrefilter: function( html ) { 66504 return html; 66505 }, 66506 66507 clone: function( elem, dataAndEvents, deepDataAndEvents ) { 66508 var i, l, srcElements, destElements, 66509 clone = elem.cloneNode( true ), 66510 inPage = isAttached( elem ); 66511 66512 // Fix IE cloning issues 66513 if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && 66514 !jQuery.isXMLDoc( elem ) ) { 66515 66516 // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 66517 destElements = getAll( clone ); 66518 srcElements = getAll( elem ); 66519 66520 for ( i = 0, l = srcElements.length; i < l; i++ ) { 66521 fixInput( srcElements[ i ], destElements[ i ] ); 66522 } 66523 } 66524 66525 // Copy the events from the original to the clone 66526 if ( dataAndEvents ) { 66527 if ( deepDataAndEvents ) { 66528 srcElements = srcElements || getAll( elem ); 66529 destElements = destElements || getAll( clone ); 66530 66531 for ( i = 0, l = srcElements.length; i < l; i++ ) { 66532 cloneCopyEvent( srcElements[ i ], destElements[ i ] ); 66533 } 66534 } else { 66535 cloneCopyEvent( elem, clone ); 66536 } 66537 } 66538 66539 // Preserve script evaluation history 66540 destElements = getAll( clone, "script" ); 66541 if ( destElements.length > 0 ) { 66542 setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); 66543 } 66544 66545 // Return the cloned set 66546 return clone; 66547 }, 66548 66549 cleanData: function( elems ) { 66550 var data, elem, type, 66551 special = jQuery.event.special, 66552 i = 0; 66553 66554 for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { 66555 if ( acceptData( elem ) ) { 66556 if ( ( data = elem[ dataPriv.expando ] ) ) { 66557 if ( data.events ) { 66558 for ( type in data.events ) { 66559 if ( special[ type ] ) { 66560 jQuery.event.remove( elem, type ); 66561 66562 // This is a shortcut to avoid jQuery.event.remove's overhead 66563 } else { 66564 jQuery.removeEvent( elem, type, data.handle ); 66565 } 66566 } 66567 } 66568 66569 // Support: Chrome <=35 - 45+ 66570 // Assign undefined instead of using delete, see Data#remove 66571 elem[ dataPriv.expando ] = undefined; 66572 } 66573 if ( elem[ dataUser.expando ] ) { 66574 66575 // Support: Chrome <=35 - 45+ 66576 // Assign undefined instead of using delete, see Data#remove 66577 elem[ dataUser.expando ] = undefined; 66578 } 66579 } 66580 } 66581 } 66582} ); 66583 66584jQuery.fn.extend( { 66585 detach: function( selector ) { 66586 return remove( this, selector, true ); 66587 }, 66588 66589 remove: function( selector ) { 66590 return remove( this, selector ); 66591 }, 66592 66593 text: function( value ) { 66594 return access( this, function( value ) { 66595 return value === undefined ? 66596 jQuery.text( this ) : 66597 this.empty().each( function() { 66598 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 66599 this.textContent = value; 66600 } 66601 } ); 66602 }, null, value, arguments.length ); 66603 }, 66604 66605 append: function() { 66606 return domManip( this, arguments, function( elem ) { 66607 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 66608 var target = manipulationTarget( this, elem ); 66609 target.appendChild( elem ); 66610 } 66611 } ); 66612 }, 66613 66614 prepend: function() { 66615 return domManip( this, arguments, function( elem ) { 66616 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 66617 var target = manipulationTarget( this, elem ); 66618 target.insertBefore( elem, target.firstChild ); 66619 } 66620 } ); 66621 }, 66622 66623 before: function() { 66624 return domManip( this, arguments, function( elem ) { 66625 if ( this.parentNode ) { 66626 this.parentNode.insertBefore( elem, this ); 66627 } 66628 } ); 66629 }, 66630 66631 after: function() { 66632 return domManip( this, arguments, function( elem ) { 66633 if ( this.parentNode ) { 66634 this.parentNode.insertBefore( elem, this.nextSibling ); 66635 } 66636 } ); 66637 }, 66638 66639 empty: function() { 66640 var elem, 66641 i = 0; 66642 66643 for ( ; ( elem = this[ i ] ) != null; i++ ) { 66644 if ( elem.nodeType === 1 ) { 66645 66646 // Prevent memory leaks 66647 jQuery.cleanData( getAll( elem, false ) ); 66648 66649 // Remove any remaining nodes 66650 elem.textContent = ""; 66651 } 66652 } 66653 66654 return this; 66655 }, 66656 66657 clone: function( dataAndEvents, deepDataAndEvents ) { 66658 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 66659 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 66660 66661 return this.map( function() { 66662 return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); 66663 } ); 66664 }, 66665 66666 html: function( value ) { 66667 return access( this, function( value ) { 66668 var elem = this[ 0 ] || {}, 66669 i = 0, 66670 l = this.length; 66671 66672 if ( value === undefined && elem.nodeType === 1 ) { 66673 return elem.innerHTML; 66674 } 66675 66676 // See if we can take a shortcut and just use innerHTML 66677 if ( typeof value === "string" && !rnoInnerhtml.test( value ) && 66678 !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { 66679 66680 value = jQuery.htmlPrefilter( value ); 66681 66682 try { 66683 for ( ; i < l; i++ ) { 66684 elem = this[ i ] || {}; 66685 66686 // Remove element nodes and prevent memory leaks 66687 if ( elem.nodeType === 1 ) { 66688 jQuery.cleanData( getAll( elem, false ) ); 66689 elem.innerHTML = value; 66690 } 66691 } 66692 66693 elem = 0; 66694 66695 // If using innerHTML throws an exception, use the fallback method 66696 } catch ( e ) {} 66697 } 66698 66699 if ( elem ) { 66700 this.empty().append( value ); 66701 } 66702 }, null, value, arguments.length ); 66703 }, 66704 66705 replaceWith: function() { 66706 var ignored = []; 66707 66708 // Make the changes, replacing each non-ignored context element with the new content 66709 return domManip( this, arguments, function( elem ) { 66710 var parent = this.parentNode; 66711 66712 if ( jQuery.inArray( this, ignored ) < 0 ) { 66713 jQuery.cleanData( getAll( this ) ); 66714 if ( parent ) { 66715 parent.replaceChild( elem, this ); 66716 } 66717 } 66718 66719 // Force callback invocation 66720 }, ignored ); 66721 } 66722} ); 66723 66724jQuery.each( { 66725 appendTo: "append", 66726 prependTo: "prepend", 66727 insertBefore: "before", 66728 insertAfter: "after", 66729 replaceAll: "replaceWith" 66730}, function( name, original ) { 66731 jQuery.fn[ name ] = function( selector ) { 66732 var elems, 66733 ret = [], 66734 insert = jQuery( selector ), 66735 last = insert.length - 1, 66736 i = 0; 66737 66738 for ( ; i <= last; i++ ) { 66739 elems = i === last ? this : this.clone( true ); 66740 jQuery( insert[ i ] )[ original ]( elems ); 66741 66742 // Support: Android <=4.0 only, PhantomJS 1 only 66743 // .get() because push.apply(_, arraylike) throws on ancient WebKit 66744 push.apply( ret, elems.get() ); 66745 } 66746 66747 return this.pushStack( ret ); 66748 }; 66749} ); 66750var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 66751 66752var getStyles = function( elem ) { 66753 66754 // Support: IE <=11 only, Firefox <=30 (#15098, #14150) 66755 // IE throws on elements created in popups 66756 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 66757 var view = elem.ownerDocument.defaultView; 66758 66759 if ( !view || !view.opener ) { 66760 view = window; 66761 } 66762 66763 return view.getComputedStyle( elem ); 66764 }; 66765 66766var swap = function( elem, options, callback ) { 66767 var ret, name, 66768 old = {}; 66769 66770 // Remember the old values, and insert the new ones 66771 for ( name in options ) { 66772 old[ name ] = elem.style[ name ]; 66773 elem.style[ name ] = options[ name ]; 66774 } 66775 66776 ret = callback.call( elem ); 66777 66778 // Revert the old values 66779 for ( name in options ) { 66780 elem.style[ name ] = old[ name ]; 66781 } 66782 66783 return ret; 66784}; 66785 66786 66787var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); 66788 66789 66790 66791( function() { 66792 66793 // Executing both pixelPosition & boxSizingReliable tests require only one layout 66794 // so they're executed at the same time to save the second computation. 66795 function computeStyleTests() { 66796 66797 // This is a singleton, we need to execute it only once 66798 if ( !div ) { 66799 return; 66800 } 66801 66802 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + 66803 "margin-top:1px;padding:0;border:0"; 66804 div.style.cssText = 66805 "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + 66806 "margin:auto;border:1px;padding:1px;" + 66807 "width:60%;top:1%"; 66808 documentElement.appendChild( container ).appendChild( div ); 66809 66810 var divStyle = window.getComputedStyle( div ); 66811 pixelPositionVal = divStyle.top !== "1%"; 66812 66813 // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 66814 reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; 66815 66816 // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 66817 // Some styles come back with percentage values, even though they shouldn't 66818 div.style.right = "60%"; 66819 pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; 66820 66821 // Support: IE 9 - 11 only 66822 // Detect misreporting of content dimensions for box-sizing:border-box elements 66823 boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; 66824 66825 // Support: IE 9 only 66826 // Detect overflow:scroll screwiness (gh-3699) 66827 // Support: Chrome <=64 66828 // Don't get tricked when zoom affects offsetWidth (gh-4029) 66829 div.style.position = "absolute"; 66830 scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; 66831 66832 documentElement.removeChild( container ); 66833 66834 // Nullify the div so it wouldn't be stored in the memory and 66835 // it will also be a sign that checks already performed 66836 div = null; 66837 } 66838 66839 function roundPixelMeasures( measure ) { 66840 return Math.round( parseFloat( measure ) ); 66841 } 66842 66843 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, 66844 reliableTrDimensionsVal, reliableMarginLeftVal, 66845 container = document.createElement( "div" ), 66846 div = document.createElement( "div" ); 66847 66848 // Finish early in limited (non-browser) environments 66849 if ( !div.style ) { 66850 return; 66851 } 66852 66853 // Support: IE <=9 - 11 only 66854 // Style of cloned element affects source element cloned (#8908) 66855 div.style.backgroundClip = "content-box"; 66856 div.cloneNode( true ).style.backgroundClip = ""; 66857 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 66858 66859 jQuery.extend( support, { 66860 boxSizingReliable: function() { 66861 computeStyleTests(); 66862 return boxSizingReliableVal; 66863 }, 66864 pixelBoxStyles: function() { 66865 computeStyleTests(); 66866 return pixelBoxStylesVal; 66867 }, 66868 pixelPosition: function() { 66869 computeStyleTests(); 66870 return pixelPositionVal; 66871 }, 66872 reliableMarginLeft: function() { 66873 computeStyleTests(); 66874 return reliableMarginLeftVal; 66875 }, 66876 scrollboxSize: function() { 66877 computeStyleTests(); 66878 return scrollboxSizeVal; 66879 }, 66880 66881 // Support: IE 9 - 11+, Edge 15 - 18+ 66882 // IE/Edge misreport `getComputedStyle` of table rows with width/height 66883 // set in CSS while `offset*` properties report correct values. 66884 // Behavior in IE 9 is more subtle than in newer versions & it passes 66885 // some versions of this test; make sure not to make it pass there! 66886 // 66887 // Support: Firefox 70+ 66888 // Only Firefox includes border widths 66889 // in computed dimensions. (gh-4529) 66890 reliableTrDimensions: function() { 66891 var table, tr, trChild, trStyle; 66892 if ( reliableTrDimensionsVal == null ) { 66893 table = document.createElement( "table" ); 66894 tr = document.createElement( "tr" ); 66895 trChild = document.createElement( "div" ); 66896 66897 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 66898 tr.style.cssText = "border:1px solid"; 66899 66900 // Support: Chrome 86+ 66901 // Height set through cssText does not get applied. 66902 // Computed height then comes back as 0. 66903 tr.style.height = "1px"; 66904 trChild.style.height = "9px"; 66905 66906 // Support: Android 8 Chrome 86+ 66907 // In our bodyBackground.html iframe, 66908 // display for all div elements is set to "inline", 66909 // which causes a problem only in Android 8 Chrome 86. 66910 // Ensuring the div is display: block 66911 // gets around this issue. 66912 trChild.style.display = "block"; 66913 66914 documentElement 66915 .appendChild( table ) 66916 .appendChild( tr ) 66917 .appendChild( trChild ); 66918 66919 trStyle = window.getComputedStyle( tr ); 66920 reliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) + 66921 parseInt( trStyle.borderTopWidth, 10 ) + 66922 parseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight; 66923 66924 documentElement.removeChild( table ); 66925 } 66926 return reliableTrDimensionsVal; 66927 } 66928 } ); 66929} )(); 66930 66931 66932function curCSS( elem, name, computed ) { 66933 var width, minWidth, maxWidth, ret, 66934 66935 // Support: Firefox 51+ 66936 // Retrieving style before computed somehow 66937 // fixes an issue with getting wrong values 66938 // on detached elements 66939 style = elem.style; 66940 66941 computed = computed || getStyles( elem ); 66942 66943 // getPropertyValue is needed for: 66944 // .css('filter') (IE 9 only, #12537) 66945 // .css('--customProperty) (#3144) 66946 if ( computed ) { 66947 ret = computed.getPropertyValue( name ) || computed[ name ]; 66948 66949 if ( ret === "" && !isAttached( elem ) ) { 66950 ret = jQuery.style( elem, name ); 66951 } 66952 66953 // A tribute to the "awesome hack by Dean Edwards" 66954 // Android Browser returns percentage for some values, 66955 // but width seems to be reliably pixels. 66956 // This is against the CSSOM draft spec: 66957 // https://drafts.csswg.org/cssom/#resolved-values 66958 if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { 66959 66960 // Remember the original values 66961 width = style.width; 66962 minWidth = style.minWidth; 66963 maxWidth = style.maxWidth; 66964 66965 // Put in the new values to get a computed value out 66966 style.minWidth = style.maxWidth = style.width = ret; 66967 ret = computed.width; 66968 66969 // Revert the changed values 66970 style.width = width; 66971 style.minWidth = minWidth; 66972 style.maxWidth = maxWidth; 66973 } 66974 } 66975 66976 return ret !== undefined ? 66977 66978 // Support: IE <=9 - 11 only 66979 // IE returns zIndex value as an integer. 66980 ret + "" : 66981 ret; 66982} 66983 66984 66985function addGetHookIf( conditionFn, hookFn ) { 66986 66987 // Define the hook, we'll check on the first run if it's really needed. 66988 return { 66989 get: function() { 66990 if ( conditionFn() ) { 66991 66992 // Hook not needed (or it's not possible to use it due 66993 // to missing dependency), remove it. 66994 delete this.get; 66995 return; 66996 } 66997 66998 // Hook needed; redefine it so that the support test is not executed again. 66999 return ( this.get = hookFn ).apply( this, arguments ); 67000 } 67001 }; 67002} 67003 67004 67005var cssPrefixes = [ "Webkit", "Moz", "ms" ], 67006 emptyStyle = document.createElement( "div" ).style, 67007 vendorProps = {}; 67008 67009// Return a vendor-prefixed property or undefined 67010function vendorPropName( name ) { 67011 67012 // Check for vendor prefixed names 67013 var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), 67014 i = cssPrefixes.length; 67015 67016 while ( i-- ) { 67017 name = cssPrefixes[ i ] + capName; 67018 if ( name in emptyStyle ) { 67019 return name; 67020 } 67021 } 67022} 67023 67024// Return a potentially-mapped jQuery.cssProps or vendor prefixed property 67025function finalPropName( name ) { 67026 var final = jQuery.cssProps[ name ] || vendorProps[ name ]; 67027 67028 if ( final ) { 67029 return final; 67030 } 67031 if ( name in emptyStyle ) { 67032 return name; 67033 } 67034 return vendorProps[ name ] = vendorPropName( name ) || name; 67035} 67036 67037 67038var 67039 67040 // Swappable if display is none or starts with table 67041 // except "table", "table-cell", or "table-caption" 67042 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 67043 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 67044 rcustomProp = /^--/, 67045 cssShow = { position: "absolute", visibility: "hidden", display: "block" }, 67046 cssNormalTransform = { 67047 letterSpacing: "0", 67048 fontWeight: "400" 67049 }; 67050 67051function setPositiveNumber( _elem, value, subtract ) { 67052 67053 // Any relative (+/-) values have already been 67054 // normalized at this point 67055 var matches = rcssNum.exec( value ); 67056 return matches ? 67057 67058 // Guard against undefined "subtract", e.g., when used as in cssHooks 67059 Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : 67060 value; 67061} 67062 67063function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { 67064 var i = dimension === "width" ? 1 : 0, 67065 extra = 0, 67066 delta = 0; 67067 67068 // Adjustment may not be necessary 67069 if ( box === ( isBorderBox ? "border" : "content" ) ) { 67070 return 0; 67071 } 67072 67073 for ( ; i < 4; i += 2 ) { 67074 67075 // Both box models exclude margin 67076 if ( box === "margin" ) { 67077 delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); 67078 } 67079 67080 // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 67081 if ( !isBorderBox ) { 67082 67083 // Add padding 67084 delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 67085 67086 // For "border" or "margin", add border 67087 if ( box !== "padding" ) { 67088 delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 67089 67090 // But still keep track of it otherwise 67091 } else { 67092 extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 67093 } 67094 67095 // If we get here with a border-box (content + padding + border), we're seeking "content" or 67096 // "padding" or "margin" 67097 } else { 67098 67099 // For "content", subtract padding 67100 if ( box === "content" ) { 67101 delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 67102 } 67103 67104 // For "content" or "padding", subtract border 67105 if ( box !== "margin" ) { 67106 delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 67107 } 67108 } 67109 } 67110 67111 // Account for positive content-box scroll gutter when requested by providing computedVal 67112 if ( !isBorderBox && computedVal >= 0 ) { 67113 67114 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 67115 // Assuming integer scroll gutter, subtract the rest and round down 67116 delta += Math.max( 0, Math.ceil( 67117 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 67118 computedVal - 67119 delta - 67120 extra - 67121 0.5 67122 67123 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 67124 // Use an explicit zero to avoid NaN (gh-3964) 67125 ) ) || 0; 67126 } 67127 67128 return delta; 67129} 67130 67131function getWidthOrHeight( elem, dimension, extra ) { 67132 67133 // Start with computed style 67134 var styles = getStyles( elem ), 67135 67136 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). 67137 // Fake content-box until we know it's needed to know the true value. 67138 boxSizingNeeded = !support.boxSizingReliable() || extra, 67139 isBorderBox = boxSizingNeeded && 67140 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 67141 valueIsBorderBox = isBorderBox, 67142 67143 val = curCSS( elem, dimension, styles ), 67144 offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); 67145 67146 // Support: Firefox <=54 67147 // Return a confounding non-pixel value or feign ignorance, as appropriate. 67148 if ( rnumnonpx.test( val ) ) { 67149 if ( !extra ) { 67150 return val; 67151 } 67152 val = "auto"; 67153 } 67154 67155 67156 // Support: IE 9 - 11 only 67157 // Use offsetWidth/offsetHeight for when box sizing is unreliable. 67158 // In those cases, the computed value can be trusted to be border-box. 67159 if ( ( !support.boxSizingReliable() && isBorderBox || 67160 67161 // Support: IE 10 - 11+, Edge 15 - 18+ 67162 // IE/Edge misreport `getComputedStyle` of table rows with width/height 67163 // set in CSS while `offset*` properties report correct values. 67164 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 67165 !support.reliableTrDimensions() && nodeName( elem, "tr" ) || 67166 67167 // Fall back to offsetWidth/offsetHeight when value is "auto" 67168 // This happens for inline elements with no explicit setting (gh-3571) 67169 val === "auto" || 67170 67171 // Support: Android <=4.1 - 4.3 only 67172 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 67173 !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && 67174 67175 // Make sure the element is visible & connected 67176 elem.getClientRects().length ) { 67177 67178 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; 67179 67180 // Where available, offsetWidth/offsetHeight approximate border box dimensions. 67181 // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the 67182 // retrieved value as a content box dimension. 67183 valueIsBorderBox = offsetProp in elem; 67184 if ( valueIsBorderBox ) { 67185 val = elem[ offsetProp ]; 67186 } 67187 } 67188 67189 // Normalize "" and auto 67190 val = parseFloat( val ) || 0; 67191 67192 // Adjust for the element's box model 67193 return ( val + 67194 boxModelAdjustment( 67195 elem, 67196 dimension, 67197 extra || ( isBorderBox ? "border" : "content" ), 67198 valueIsBorderBox, 67199 styles, 67200 67201 // Provide the current computed size to request scroll gutter calculation (gh-3589) 67202 val 67203 ) 67204 ) + "px"; 67205} 67206 67207jQuery.extend( { 67208 67209 // Add in style property hooks for overriding the default 67210 // behavior of getting and setting a style property 67211 cssHooks: { 67212 opacity: { 67213 get: function( elem, computed ) { 67214 if ( computed ) { 67215 67216 // We should always get a number back from opacity 67217 var ret = curCSS( elem, "opacity" ); 67218 return ret === "" ? "1" : ret; 67219 } 67220 } 67221 } 67222 }, 67223 67224 // Don't automatically add "px" to these possibly-unitless properties 67225 cssNumber: { 67226 "animationIterationCount": true, 67227 "columnCount": true, 67228 "fillOpacity": true, 67229 "flexGrow": true, 67230 "flexShrink": true, 67231 "fontWeight": true, 67232 "gridArea": true, 67233 "gridColumn": true, 67234 "gridColumnEnd": true, 67235 "gridColumnStart": true, 67236 "gridRow": true, 67237 "gridRowEnd": true, 67238 "gridRowStart": true, 67239 "lineHeight": true, 67240 "opacity": true, 67241 "order": true, 67242 "orphans": true, 67243 "widows": true, 67244 "zIndex": true, 67245 "zoom": true 67246 }, 67247 67248 // Add in properties whose names you wish to fix before 67249 // setting or getting the value 67250 cssProps: {}, 67251 67252 // Get and set the style property on a DOM Node 67253 style: function( elem, name, value, extra ) { 67254 67255 // Don't set styles on text and comment nodes 67256 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { 67257 return; 67258 } 67259 67260 // Make sure that we're working with the right name 67261 var ret, type, hooks, 67262 origName = camelCase( name ), 67263 isCustomProp = rcustomProp.test( name ), 67264 style = elem.style; 67265 67266 // Make sure that we're working with the right name. We don't 67267 // want to query the value if it is a CSS custom property 67268 // since they are user-defined. 67269 if ( !isCustomProp ) { 67270 name = finalPropName( origName ); 67271 } 67272 67273 // Gets hook for the prefixed version, then unprefixed version 67274 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 67275 67276 // Check if we're setting a value 67277 if ( value !== undefined ) { 67278 type = typeof value; 67279 67280 // Convert "+=" or "-=" to relative numbers (#7345) 67281 if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { 67282 value = adjustCSS( elem, name, ret ); 67283 67284 // Fixes bug #9237 67285 type = "number"; 67286 } 67287 67288 // Make sure that null and NaN values aren't set (#7116) 67289 if ( value == null || value !== value ) { 67290 return; 67291 } 67292 67293 // If a number was passed in, add the unit (except for certain CSS properties) 67294 // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append 67295 // "px" to a few hardcoded values. 67296 if ( type === "number" && !isCustomProp ) { 67297 value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); 67298 } 67299 67300 // background-* props affect original clone's values 67301 if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { 67302 style[ name ] = "inherit"; 67303 } 67304 67305 // If a hook was provided, use that value, otherwise just set the specified value 67306 if ( !hooks || !( "set" in hooks ) || 67307 ( value = hooks.set( elem, value, extra ) ) !== undefined ) { 67308 67309 if ( isCustomProp ) { 67310 style.setProperty( name, value ); 67311 } else { 67312 style[ name ] = value; 67313 } 67314 } 67315 67316 } else { 67317 67318 // If a hook was provided get the non-computed value from there 67319 if ( hooks && "get" in hooks && 67320 ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { 67321 67322 return ret; 67323 } 67324 67325 // Otherwise just get the value from the style object 67326 return style[ name ]; 67327 } 67328 }, 67329 67330 css: function( elem, name, extra, styles ) { 67331 var val, num, hooks, 67332 origName = camelCase( name ), 67333 isCustomProp = rcustomProp.test( name ); 67334 67335 // Make sure that we're working with the right name. We don't 67336 // want to modify the value if it is a CSS custom property 67337 // since they are user-defined. 67338 if ( !isCustomProp ) { 67339 name = finalPropName( origName ); 67340 } 67341 67342 // Try prefixed name followed by the unprefixed name 67343 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 67344 67345 // If a hook was provided get the computed value from there 67346 if ( hooks && "get" in hooks ) { 67347 val = hooks.get( elem, true, extra ); 67348 } 67349 67350 // Otherwise, if a way to get the computed value exists, use that 67351 if ( val === undefined ) { 67352 val = curCSS( elem, name, styles ); 67353 } 67354 67355 // Convert "normal" to computed value 67356 if ( val === "normal" && name in cssNormalTransform ) { 67357 val = cssNormalTransform[ name ]; 67358 } 67359 67360 // Make numeric if forced or a qualifier was provided and val looks numeric 67361 if ( extra === "" || extra ) { 67362 num = parseFloat( val ); 67363 return extra === true || isFinite( num ) ? num || 0 : val; 67364 } 67365 67366 return val; 67367 } 67368} ); 67369 67370jQuery.each( [ "height", "width" ], function( _i, dimension ) { 67371 jQuery.cssHooks[ dimension ] = { 67372 get: function( elem, computed, extra ) { 67373 if ( computed ) { 67374 67375 // Certain elements can have dimension info if we invisibly show them 67376 // but it must have a current display style that would benefit 67377 return rdisplayswap.test( jQuery.css( elem, "display" ) ) && 67378 67379 // Support: Safari 8+ 67380 // Table columns in Safari have non-zero offsetWidth & zero 67381 // getBoundingClientRect().width unless display is changed. 67382 // Support: IE <=11 only 67383 // Running getBoundingClientRect on a disconnected node 67384 // in IE throws an error. 67385 ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? 67386 swap( elem, cssShow, function() { 67387 return getWidthOrHeight( elem, dimension, extra ); 67388 } ) : 67389 getWidthOrHeight( elem, dimension, extra ); 67390 } 67391 }, 67392 67393 set: function( elem, value, extra ) { 67394 var matches, 67395 styles = getStyles( elem ), 67396 67397 // Only read styles.position if the test has a chance to fail 67398 // to avoid forcing a reflow. 67399 scrollboxSizeBuggy = !support.scrollboxSize() && 67400 styles.position === "absolute", 67401 67402 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) 67403 boxSizingNeeded = scrollboxSizeBuggy || extra, 67404 isBorderBox = boxSizingNeeded && 67405 jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 67406 subtract = extra ? 67407 boxModelAdjustment( 67408 elem, 67409 dimension, 67410 extra, 67411 isBorderBox, 67412 styles 67413 ) : 67414 0; 67415 67416 // Account for unreliable border-box dimensions by comparing offset* to computed and 67417 // faking a content-box to get border and padding (gh-3699) 67418 if ( isBorderBox && scrollboxSizeBuggy ) { 67419 subtract -= Math.ceil( 67420 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 67421 parseFloat( styles[ dimension ] ) - 67422 boxModelAdjustment( elem, dimension, "border", false, styles ) - 67423 0.5 67424 ); 67425 } 67426 67427 // Convert to pixels if value adjustment is needed 67428 if ( subtract && ( matches = rcssNum.exec( value ) ) && 67429 ( matches[ 3 ] || "px" ) !== "px" ) { 67430 67431 elem.style[ dimension ] = value; 67432 value = jQuery.css( elem, dimension ); 67433 } 67434 67435 return setPositiveNumber( elem, value, subtract ); 67436 } 67437 }; 67438} ); 67439 67440jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, 67441 function( elem, computed ) { 67442 if ( computed ) { 67443 return ( parseFloat( curCSS( elem, "marginLeft" ) ) || 67444 elem.getBoundingClientRect().left - 67445 swap( elem, { marginLeft: 0 }, function() { 67446 return elem.getBoundingClientRect().left; 67447 } ) 67448 ) + "px"; 67449 } 67450 } 67451); 67452 67453// These hooks are used by animate to expand properties 67454jQuery.each( { 67455 margin: "", 67456 padding: "", 67457 border: "Width" 67458}, function( prefix, suffix ) { 67459 jQuery.cssHooks[ prefix + suffix ] = { 67460 expand: function( value ) { 67461 var i = 0, 67462 expanded = {}, 67463 67464 // Assumes a single number if not a string 67465 parts = typeof value === "string" ? value.split( " " ) : [ value ]; 67466 67467 for ( ; i < 4; i++ ) { 67468 expanded[ prefix + cssExpand[ i ] + suffix ] = 67469 parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; 67470 } 67471 67472 return expanded; 67473 } 67474 }; 67475 67476 if ( prefix !== "margin" ) { 67477 jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; 67478 } 67479} ); 67480 67481jQuery.fn.extend( { 67482 css: function( name, value ) { 67483 return access( this, function( elem, name, value ) { 67484 var styles, len, 67485 map = {}, 67486 i = 0; 67487 67488 if ( Array.isArray( name ) ) { 67489 styles = getStyles( elem ); 67490 len = name.length; 67491 67492 for ( ; i < len; i++ ) { 67493 map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); 67494 } 67495 67496 return map; 67497 } 67498 67499 return value !== undefined ? 67500 jQuery.style( elem, name, value ) : 67501 jQuery.css( elem, name ); 67502 }, name, value, arguments.length > 1 ); 67503 } 67504} ); 67505 67506 67507function Tween( elem, options, prop, end, easing ) { 67508 return new Tween.prototype.init( elem, options, prop, end, easing ); 67509} 67510jQuery.Tween = Tween; 67511 67512Tween.prototype = { 67513 constructor: Tween, 67514 init: function( elem, options, prop, end, easing, unit ) { 67515 this.elem = elem; 67516 this.prop = prop; 67517 this.easing = easing || jQuery.easing._default; 67518 this.options = options; 67519 this.start = this.now = this.cur(); 67520 this.end = end; 67521 this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); 67522 }, 67523 cur: function() { 67524 var hooks = Tween.propHooks[ this.prop ]; 67525 67526 return hooks && hooks.get ? 67527 hooks.get( this ) : 67528 Tween.propHooks._default.get( this ); 67529 }, 67530 run: function( percent ) { 67531 var eased, 67532 hooks = Tween.propHooks[ this.prop ]; 67533 67534 if ( this.options.duration ) { 67535 this.pos = eased = jQuery.easing[ this.easing ]( 67536 percent, this.options.duration * percent, 0, 1, this.options.duration 67537 ); 67538 } else { 67539 this.pos = eased = percent; 67540 } 67541 this.now = ( this.end - this.start ) * eased + this.start; 67542 67543 if ( this.options.step ) { 67544 this.options.step.call( this.elem, this.now, this ); 67545 } 67546 67547 if ( hooks && hooks.set ) { 67548 hooks.set( this ); 67549 } else { 67550 Tween.propHooks._default.set( this ); 67551 } 67552 return this; 67553 } 67554}; 67555 67556Tween.prototype.init.prototype = Tween.prototype; 67557 67558Tween.propHooks = { 67559 _default: { 67560 get: function( tween ) { 67561 var result; 67562 67563 // Use a property on the element directly when it is not a DOM element, 67564 // or when there is no matching style property that exists. 67565 if ( tween.elem.nodeType !== 1 || 67566 tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { 67567 return tween.elem[ tween.prop ]; 67568 } 67569 67570 // Passing an empty string as a 3rd parameter to .css will automatically 67571 // attempt a parseFloat and fallback to a string if the parse fails. 67572 // Simple values such as "10px" are parsed to Float; 67573 // complex values such as "rotate(1rad)" are returned as-is. 67574 result = jQuery.css( tween.elem, tween.prop, "" ); 67575 67576 // Empty strings, null, undefined and "auto" are converted to 0. 67577 return !result || result === "auto" ? 0 : result; 67578 }, 67579 set: function( tween ) { 67580 67581 // Use step hook for back compat. 67582 // Use cssHook if its there. 67583 // Use .style if available and use plain properties where available. 67584 if ( jQuery.fx.step[ tween.prop ] ) { 67585 jQuery.fx.step[ tween.prop ]( tween ); 67586 } else if ( tween.elem.nodeType === 1 && ( 67587 jQuery.cssHooks[ tween.prop ] || 67588 tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { 67589 jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); 67590 } else { 67591 tween.elem[ tween.prop ] = tween.now; 67592 } 67593 } 67594 } 67595}; 67596 67597// Support: IE <=9 only 67598// Panic based approach to setting things on disconnected nodes 67599Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 67600 set: function( tween ) { 67601 if ( tween.elem.nodeType && tween.elem.parentNode ) { 67602 tween.elem[ tween.prop ] = tween.now; 67603 } 67604 } 67605}; 67606 67607jQuery.easing = { 67608 linear: function( p ) { 67609 return p; 67610 }, 67611 swing: function( p ) { 67612 return 0.5 - Math.cos( p * Math.PI ) / 2; 67613 }, 67614 _default: "swing" 67615}; 67616 67617jQuery.fx = Tween.prototype.init; 67618 67619// Back compat <1.8 extension point 67620jQuery.fx.step = {}; 67621 67622 67623 67624 67625var 67626 fxNow, inProgress, 67627 rfxtypes = /^(?:toggle|show|hide)$/, 67628 rrun = /queueHooks$/; 67629 67630function schedule() { 67631 if ( inProgress ) { 67632 if ( document.hidden === false && window.requestAnimationFrame ) { 67633 window.requestAnimationFrame( schedule ); 67634 } else { 67635 window.setTimeout( schedule, jQuery.fx.interval ); 67636 } 67637 67638 jQuery.fx.tick(); 67639 } 67640} 67641 67642// Animations created synchronously will run synchronously 67643function createFxNow() { 67644 window.setTimeout( function() { 67645 fxNow = undefined; 67646 } ); 67647 return ( fxNow = Date.now() ); 67648} 67649 67650// Generate parameters to create a standard animation 67651function genFx( type, includeWidth ) { 67652 var which, 67653 i = 0, 67654 attrs = { height: type }; 67655 67656 // If we include width, step value is 1 to do all cssExpand values, 67657 // otherwise step value is 2 to skip over Left and Right 67658 includeWidth = includeWidth ? 1 : 0; 67659 for ( ; i < 4; i += 2 - includeWidth ) { 67660 which = cssExpand[ i ]; 67661 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; 67662 } 67663 67664 if ( includeWidth ) { 67665 attrs.opacity = attrs.width = type; 67666 } 67667 67668 return attrs; 67669} 67670 67671function createTween( value, prop, animation ) { 67672 var tween, 67673 collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), 67674 index = 0, 67675 length = collection.length; 67676 for ( ; index < length; index++ ) { 67677 if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { 67678 67679 // We're done with this property 67680 return tween; 67681 } 67682 } 67683} 67684 67685function defaultPrefilter( elem, props, opts ) { 67686 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, 67687 isBox = "width" in props || "height" in props, 67688 anim = this, 67689 orig = {}, 67690 style = elem.style, 67691 hidden = elem.nodeType && isHiddenWithinTree( elem ), 67692 dataShow = dataPriv.get( elem, "fxshow" ); 67693 67694 // Queue-skipping animations hijack the fx hooks 67695 if ( !opts.queue ) { 67696 hooks = jQuery._queueHooks( elem, "fx" ); 67697 if ( hooks.unqueued == null ) { 67698 hooks.unqueued = 0; 67699 oldfire = hooks.empty.fire; 67700 hooks.empty.fire = function() { 67701 if ( !hooks.unqueued ) { 67702 oldfire(); 67703 } 67704 }; 67705 } 67706 hooks.unqueued++; 67707 67708 anim.always( function() { 67709 67710 // Ensure the complete handler is called before this completes 67711 anim.always( function() { 67712 hooks.unqueued--; 67713 if ( !jQuery.queue( elem, "fx" ).length ) { 67714 hooks.empty.fire(); 67715 } 67716 } ); 67717 } ); 67718 } 67719 67720 // Detect show/hide animations 67721 for ( prop in props ) { 67722 value = props[ prop ]; 67723 if ( rfxtypes.test( value ) ) { 67724 delete props[ prop ]; 67725 toggle = toggle || value === "toggle"; 67726 if ( value === ( hidden ? "hide" : "show" ) ) { 67727 67728 // Pretend to be hidden if this is a "show" and 67729 // there is still data from a stopped show/hide 67730 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { 67731 hidden = true; 67732 67733 // Ignore all other no-op show/hide data 67734 } else { 67735 continue; 67736 } 67737 } 67738 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); 67739 } 67740 } 67741 67742 // Bail out if this is a no-op like .hide().hide() 67743 propTween = !jQuery.isEmptyObject( props ); 67744 if ( !propTween && jQuery.isEmptyObject( orig ) ) { 67745 return; 67746 } 67747 67748 // Restrict "overflow" and "display" styles during box animations 67749 if ( isBox && elem.nodeType === 1 ) { 67750 67751 // Support: IE <=9 - 11, Edge 12 - 15 67752 // Record all 3 overflow attributes because IE does not infer the shorthand 67753 // from identically-valued overflowX and overflowY and Edge just mirrors 67754 // the overflowX value there. 67755 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; 67756 67757 // Identify a display type, preferring old show/hide data over the CSS cascade 67758 restoreDisplay = dataShow && dataShow.display; 67759 if ( restoreDisplay == null ) { 67760 restoreDisplay = dataPriv.get( elem, "display" ); 67761 } 67762 display = jQuery.css( elem, "display" ); 67763 if ( display === "none" ) { 67764 if ( restoreDisplay ) { 67765 display = restoreDisplay; 67766 } else { 67767 67768 // Get nonempty value(s) by temporarily forcing visibility 67769 showHide( [ elem ], true ); 67770 restoreDisplay = elem.style.display || restoreDisplay; 67771 display = jQuery.css( elem, "display" ); 67772 showHide( [ elem ] ); 67773 } 67774 } 67775 67776 // Animate inline elements as inline-block 67777 if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { 67778 if ( jQuery.css( elem, "float" ) === "none" ) { 67779 67780 // Restore the original display value at the end of pure show/hide animations 67781 if ( !propTween ) { 67782 anim.done( function() { 67783 style.display = restoreDisplay; 67784 } ); 67785 if ( restoreDisplay == null ) { 67786 display = style.display; 67787 restoreDisplay = display === "none" ? "" : display; 67788 } 67789 } 67790 style.display = "inline-block"; 67791 } 67792 } 67793 } 67794 67795 if ( opts.overflow ) { 67796 style.overflow = "hidden"; 67797 anim.always( function() { 67798 style.overflow = opts.overflow[ 0 ]; 67799 style.overflowX = opts.overflow[ 1 ]; 67800 style.overflowY = opts.overflow[ 2 ]; 67801 } ); 67802 } 67803 67804 // Implement show/hide animations 67805 propTween = false; 67806 for ( prop in orig ) { 67807 67808 // General show/hide setup for this element animation 67809 if ( !propTween ) { 67810 if ( dataShow ) { 67811 if ( "hidden" in dataShow ) { 67812 hidden = dataShow.hidden; 67813 } 67814 } else { 67815 dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); 67816 } 67817 67818 // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 67819 if ( toggle ) { 67820 dataShow.hidden = !hidden; 67821 } 67822 67823 // Show elements before animating them 67824 if ( hidden ) { 67825 showHide( [ elem ], true ); 67826 } 67827 67828 /* eslint-disable no-loop-func */ 67829 67830 anim.done( function() { 67831 67832 /* eslint-enable no-loop-func */ 67833 67834 // The final step of a "hide" animation is actually hiding the element 67835 if ( !hidden ) { 67836 showHide( [ elem ] ); 67837 } 67838 dataPriv.remove( elem, "fxshow" ); 67839 for ( prop in orig ) { 67840 jQuery.style( elem, prop, orig[ prop ] ); 67841 } 67842 } ); 67843 } 67844 67845 // Per-property setup 67846 propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); 67847 if ( !( prop in dataShow ) ) { 67848 dataShow[ prop ] = propTween.start; 67849 if ( hidden ) { 67850 propTween.end = propTween.start; 67851 propTween.start = 0; 67852 } 67853 } 67854 } 67855} 67856 67857function propFilter( props, specialEasing ) { 67858 var index, name, easing, value, hooks; 67859 67860 // camelCase, specialEasing and expand cssHook pass 67861 for ( index in props ) { 67862 name = camelCase( index ); 67863 easing = specialEasing[ name ]; 67864 value = props[ index ]; 67865 if ( Array.isArray( value ) ) { 67866 easing = value[ 1 ]; 67867 value = props[ index ] = value[ 0 ]; 67868 } 67869 67870 if ( index !== name ) { 67871 props[ name ] = value; 67872 delete props[ index ]; 67873 } 67874 67875 hooks = jQuery.cssHooks[ name ]; 67876 if ( hooks && "expand" in hooks ) { 67877 value = hooks.expand( value ); 67878 delete props[ name ]; 67879 67880 // Not quite $.extend, this won't overwrite existing keys. 67881 // Reusing 'index' because we have the correct "name" 67882 for ( index in value ) { 67883 if ( !( index in props ) ) { 67884 props[ index ] = value[ index ]; 67885 specialEasing[ index ] = easing; 67886 } 67887 } 67888 } else { 67889 specialEasing[ name ] = easing; 67890 } 67891 } 67892} 67893 67894function Animation( elem, properties, options ) { 67895 var result, 67896 stopped, 67897 index = 0, 67898 length = Animation.prefilters.length, 67899 deferred = jQuery.Deferred().always( function() { 67900 67901 // Don't match elem in the :animated selector 67902 delete tick.elem; 67903 } ), 67904 tick = function() { 67905 if ( stopped ) { 67906 return false; 67907 } 67908 var currentTime = fxNow || createFxNow(), 67909 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), 67910 67911 // Support: Android 2.3 only 67912 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) 67913 temp = remaining / animation.duration || 0, 67914 percent = 1 - temp, 67915 index = 0, 67916 length = animation.tweens.length; 67917 67918 for ( ; index < length; index++ ) { 67919 animation.tweens[ index ].run( percent ); 67920 } 67921 67922 deferred.notifyWith( elem, [ animation, percent, remaining ] ); 67923 67924 // If there's more to do, yield 67925 if ( percent < 1 && length ) { 67926 return remaining; 67927 } 67928 67929 // If this was an empty animation, synthesize a final progress notification 67930 if ( !length ) { 67931 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 67932 } 67933 67934 // Resolve the animation and report its conclusion 67935 deferred.resolveWith( elem, [ animation ] ); 67936 return false; 67937 }, 67938 animation = deferred.promise( { 67939 elem: elem, 67940 props: jQuery.extend( {}, properties ), 67941 opts: jQuery.extend( true, { 67942 specialEasing: {}, 67943 easing: jQuery.easing._default 67944 }, options ), 67945 originalProperties: properties, 67946 originalOptions: options, 67947 startTime: fxNow || createFxNow(), 67948 duration: options.duration, 67949 tweens: [], 67950 createTween: function( prop, end ) { 67951 var tween = jQuery.Tween( elem, animation.opts, prop, end, 67952 animation.opts.specialEasing[ prop ] || animation.opts.easing ); 67953 animation.tweens.push( tween ); 67954 return tween; 67955 }, 67956 stop: function( gotoEnd ) { 67957 var index = 0, 67958 67959 // If we are going to the end, we want to run all the tweens 67960 // otherwise we skip this part 67961 length = gotoEnd ? animation.tweens.length : 0; 67962 if ( stopped ) { 67963 return this; 67964 } 67965 stopped = true; 67966 for ( ; index < length; index++ ) { 67967 animation.tweens[ index ].run( 1 ); 67968 } 67969 67970 // Resolve when we played the last frame; otherwise, reject 67971 if ( gotoEnd ) { 67972 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 67973 deferred.resolveWith( elem, [ animation, gotoEnd ] ); 67974 } else { 67975 deferred.rejectWith( elem, [ animation, gotoEnd ] ); 67976 } 67977 return this; 67978 } 67979 } ), 67980 props = animation.props; 67981 67982 propFilter( props, animation.opts.specialEasing ); 67983 67984 for ( ; index < length; index++ ) { 67985 result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); 67986 if ( result ) { 67987 if ( isFunction( result.stop ) ) { 67988 jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = 67989 result.stop.bind( result ); 67990 } 67991 return result; 67992 } 67993 } 67994 67995 jQuery.map( props, createTween, animation ); 67996 67997 if ( isFunction( animation.opts.start ) ) { 67998 animation.opts.start.call( elem, animation ); 67999 } 68000 68001 // Attach callbacks from options 68002 animation 68003 .progress( animation.opts.progress ) 68004 .done( animation.opts.done, animation.opts.complete ) 68005 .fail( animation.opts.fail ) 68006 .always( animation.opts.always ); 68007 68008 jQuery.fx.timer( 68009 jQuery.extend( tick, { 68010 elem: elem, 68011 anim: animation, 68012 queue: animation.opts.queue 68013 } ) 68014 ); 68015 68016 return animation; 68017} 68018 68019jQuery.Animation = jQuery.extend( Animation, { 68020 68021 tweeners: { 68022 "*": [ function( prop, value ) { 68023 var tween = this.createTween( prop, value ); 68024 adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); 68025 return tween; 68026 } ] 68027 }, 68028 68029 tweener: function( props, callback ) { 68030 if ( isFunction( props ) ) { 68031 callback = props; 68032 props = [ "*" ]; 68033 } else { 68034 props = props.match( rnothtmlwhite ); 68035 } 68036 68037 var prop, 68038 index = 0, 68039 length = props.length; 68040 68041 for ( ; index < length; index++ ) { 68042 prop = props[ index ]; 68043 Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; 68044 Animation.tweeners[ prop ].unshift( callback ); 68045 } 68046 }, 68047 68048 prefilters: [ defaultPrefilter ], 68049 68050 prefilter: function( callback, prepend ) { 68051 if ( prepend ) { 68052 Animation.prefilters.unshift( callback ); 68053 } else { 68054 Animation.prefilters.push( callback ); 68055 } 68056 } 68057} ); 68058 68059jQuery.speed = function( speed, easing, fn ) { 68060 var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { 68061 complete: fn || !fn && easing || 68062 isFunction( speed ) && speed, 68063 duration: speed, 68064 easing: fn && easing || easing && !isFunction( easing ) && easing 68065 }; 68066 68067 // Go to the end state if fx are off 68068 if ( jQuery.fx.off ) { 68069 opt.duration = 0; 68070 68071 } else { 68072 if ( typeof opt.duration !== "number" ) { 68073 if ( opt.duration in jQuery.fx.speeds ) { 68074 opt.duration = jQuery.fx.speeds[ opt.duration ]; 68075 68076 } else { 68077 opt.duration = jQuery.fx.speeds._default; 68078 } 68079 } 68080 } 68081 68082 // Normalize opt.queue - true/undefined/null -> "fx" 68083 if ( opt.queue == null || opt.queue === true ) { 68084 opt.queue = "fx"; 68085 } 68086 68087 // Queueing 68088 opt.old = opt.complete; 68089 68090 opt.complete = function() { 68091 if ( isFunction( opt.old ) ) { 68092 opt.old.call( this ); 68093 } 68094 68095 if ( opt.queue ) { 68096 jQuery.dequeue( this, opt.queue ); 68097 } 68098 }; 68099 68100 return opt; 68101}; 68102 68103jQuery.fn.extend( { 68104 fadeTo: function( speed, to, easing, callback ) { 68105 68106 // Show any hidden elements after setting opacity to 0 68107 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() 68108 68109 // Animate to the value specified 68110 .end().animate( { opacity: to }, speed, easing, callback ); 68111 }, 68112 animate: function( prop, speed, easing, callback ) { 68113 var empty = jQuery.isEmptyObject( prop ), 68114 optall = jQuery.speed( speed, easing, callback ), 68115 doAnimation = function() { 68116 68117 // Operate on a copy of prop so per-property easing won't be lost 68118 var anim = Animation( this, jQuery.extend( {}, prop ), optall ); 68119 68120 // Empty animations, or finishing resolves immediately 68121 if ( empty || dataPriv.get( this, "finish" ) ) { 68122 anim.stop( true ); 68123 } 68124 }; 68125 68126 doAnimation.finish = doAnimation; 68127 68128 return empty || optall.queue === false ? 68129 this.each( doAnimation ) : 68130 this.queue( optall.queue, doAnimation ); 68131 }, 68132 stop: function( type, clearQueue, gotoEnd ) { 68133 var stopQueue = function( hooks ) { 68134 var stop = hooks.stop; 68135 delete hooks.stop; 68136 stop( gotoEnd ); 68137 }; 68138 68139 if ( typeof type !== "string" ) { 68140 gotoEnd = clearQueue; 68141 clearQueue = type; 68142 type = undefined; 68143 } 68144 if ( clearQueue ) { 68145 this.queue( type || "fx", [] ); 68146 } 68147 68148 return this.each( function() { 68149 var dequeue = true, 68150 index = type != null && type + "queueHooks", 68151 timers = jQuery.timers, 68152 data = dataPriv.get( this ); 68153 68154 if ( index ) { 68155 if ( data[ index ] && data[ index ].stop ) { 68156 stopQueue( data[ index ] ); 68157 } 68158 } else { 68159 for ( index in data ) { 68160 if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { 68161 stopQueue( data[ index ] ); 68162 } 68163 } 68164 } 68165 68166 for ( index = timers.length; index--; ) { 68167 if ( timers[ index ].elem === this && 68168 ( type == null || timers[ index ].queue === type ) ) { 68169 68170 timers[ index ].anim.stop( gotoEnd ); 68171 dequeue = false; 68172 timers.splice( index, 1 ); 68173 } 68174 } 68175 68176 // Start the next in the queue if the last step wasn't forced. 68177 // Timers currently will call their complete callbacks, which 68178 // will dequeue but only if they were gotoEnd. 68179 if ( dequeue || !gotoEnd ) { 68180 jQuery.dequeue( this, type ); 68181 } 68182 } ); 68183 }, 68184 finish: function( type ) { 68185 if ( type !== false ) { 68186 type = type || "fx"; 68187 } 68188 return this.each( function() { 68189 var index, 68190 data = dataPriv.get( this ), 68191 queue = data[ type + "queue" ], 68192 hooks = data[ type + "queueHooks" ], 68193 timers = jQuery.timers, 68194 length = queue ? queue.length : 0; 68195 68196 // Enable finishing flag on private data 68197 data.finish = true; 68198 68199 // Empty the queue first 68200 jQuery.queue( this, type, [] ); 68201 68202 if ( hooks && hooks.stop ) { 68203 hooks.stop.call( this, true ); 68204 } 68205 68206 // Look for any active animations, and finish them 68207 for ( index = timers.length; index--; ) { 68208 if ( timers[ index ].elem === this && timers[ index ].queue === type ) { 68209 timers[ index ].anim.stop( true ); 68210 timers.splice( index, 1 ); 68211 } 68212 } 68213 68214 // Look for any animations in the old queue and finish them 68215 for ( index = 0; index < length; index++ ) { 68216 if ( queue[ index ] && queue[ index ].finish ) { 68217 queue[ index ].finish.call( this ); 68218 } 68219 } 68220 68221 // Turn off finishing flag 68222 delete data.finish; 68223 } ); 68224 } 68225} ); 68226 68227jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { 68228 var cssFn = jQuery.fn[ name ]; 68229 jQuery.fn[ name ] = function( speed, easing, callback ) { 68230 return speed == null || typeof speed === "boolean" ? 68231 cssFn.apply( this, arguments ) : 68232 this.animate( genFx( name, true ), speed, easing, callback ); 68233 }; 68234} ); 68235 68236// Generate shortcuts for custom animations 68237jQuery.each( { 68238 slideDown: genFx( "show" ), 68239 slideUp: genFx( "hide" ), 68240 slideToggle: genFx( "toggle" ), 68241 fadeIn: { opacity: "show" }, 68242 fadeOut: { opacity: "hide" }, 68243 fadeToggle: { opacity: "toggle" } 68244}, function( name, props ) { 68245 jQuery.fn[ name ] = function( speed, easing, callback ) { 68246 return this.animate( props, speed, easing, callback ); 68247 }; 68248} ); 68249 68250jQuery.timers = []; 68251jQuery.fx.tick = function() { 68252 var timer, 68253 i = 0, 68254 timers = jQuery.timers; 68255 68256 fxNow = Date.now(); 68257 68258 for ( ; i < timers.length; i++ ) { 68259 timer = timers[ i ]; 68260 68261 // Run the timer and safely remove it when done (allowing for external removal) 68262 if ( !timer() && timers[ i ] === timer ) { 68263 timers.splice( i--, 1 ); 68264 } 68265 } 68266 68267 if ( !timers.length ) { 68268 jQuery.fx.stop(); 68269 } 68270 fxNow = undefined; 68271}; 68272 68273jQuery.fx.timer = function( timer ) { 68274 jQuery.timers.push( timer ); 68275 jQuery.fx.start(); 68276}; 68277 68278jQuery.fx.interval = 13; 68279jQuery.fx.start = function() { 68280 if ( inProgress ) { 68281 return; 68282 } 68283 68284 inProgress = true; 68285 schedule(); 68286}; 68287 68288jQuery.fx.stop = function() { 68289 inProgress = null; 68290}; 68291 68292jQuery.fx.speeds = { 68293 slow: 600, 68294 fast: 200, 68295 68296 // Default speed 68297 _default: 400 68298}; 68299 68300 68301// Based off of the plugin by Clint Helfers, with permission. 68302// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 68303jQuery.fn.delay = function( time, type ) { 68304 time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 68305 type = type || "fx"; 68306 68307 return this.queue( type, function( next, hooks ) { 68308 var timeout = window.setTimeout( next, time ); 68309 hooks.stop = function() { 68310 window.clearTimeout( timeout ); 68311 }; 68312 } ); 68313}; 68314 68315 68316( function() { 68317 var input = document.createElement( "input" ), 68318 select = document.createElement( "select" ), 68319 opt = select.appendChild( document.createElement( "option" ) ); 68320 68321 input.type = "checkbox"; 68322 68323 // Support: Android <=4.3 only 68324 // Default value for a checkbox should be "on" 68325 support.checkOn = input.value !== ""; 68326 68327 // Support: IE <=11 only 68328 // Must access selectedIndex to make default options select 68329 support.optSelected = opt.selected; 68330 68331 // Support: IE <=11 only 68332 // An input loses its value after becoming a radio 68333 input = document.createElement( "input" ); 68334 input.value = "t"; 68335 input.type = "radio"; 68336 support.radioValue = input.value === "t"; 68337} )(); 68338 68339 68340var boolHook, 68341 attrHandle = jQuery.expr.attrHandle; 68342 68343jQuery.fn.extend( { 68344 attr: function( name, value ) { 68345 return access( this, jQuery.attr, name, value, arguments.length > 1 ); 68346 }, 68347 68348 removeAttr: function( name ) { 68349 return this.each( function() { 68350 jQuery.removeAttr( this, name ); 68351 } ); 68352 } 68353} ); 68354 68355jQuery.extend( { 68356 attr: function( elem, name, value ) { 68357 var ret, hooks, 68358 nType = elem.nodeType; 68359 68360 // Don't get/set attributes on text, comment and attribute nodes 68361 if ( nType === 3 || nType === 8 || nType === 2 ) { 68362 return; 68363 } 68364 68365 // Fallback to prop when attributes are not supported 68366 if ( typeof elem.getAttribute === "undefined" ) { 68367 return jQuery.prop( elem, name, value ); 68368 } 68369 68370 // Attribute hooks are determined by the lowercase version 68371 // Grab necessary hook if one is defined 68372 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 68373 hooks = jQuery.attrHooks[ name.toLowerCase() ] || 68374 ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); 68375 } 68376 68377 if ( value !== undefined ) { 68378 if ( value === null ) { 68379 jQuery.removeAttr( elem, name ); 68380 return; 68381 } 68382 68383 if ( hooks && "set" in hooks && 68384 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 68385 return ret; 68386 } 68387 68388 elem.setAttribute( name, value + "" ); 68389 return value; 68390 } 68391 68392 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 68393 return ret; 68394 } 68395 68396 ret = jQuery.find.attr( elem, name ); 68397 68398 // Non-existent attributes return null, we normalize to undefined 68399 return ret == null ? undefined : ret; 68400 }, 68401 68402 attrHooks: { 68403 type: { 68404 set: function( elem, value ) { 68405 if ( !support.radioValue && value === "radio" && 68406 nodeName( elem, "input" ) ) { 68407 var val = elem.value; 68408 elem.setAttribute( "type", value ); 68409 if ( val ) { 68410 elem.value = val; 68411 } 68412 return value; 68413 } 68414 } 68415 } 68416 }, 68417 68418 removeAttr: function( elem, value ) { 68419 var name, 68420 i = 0, 68421 68422 // Attribute names can contain non-HTML whitespace characters 68423 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 68424 attrNames = value && value.match( rnothtmlwhite ); 68425 68426 if ( attrNames && elem.nodeType === 1 ) { 68427 while ( ( name = attrNames[ i++ ] ) ) { 68428 elem.removeAttribute( name ); 68429 } 68430 } 68431 } 68432} ); 68433 68434// Hooks for boolean attributes 68435boolHook = { 68436 set: function( elem, value, name ) { 68437 if ( value === false ) { 68438 68439 // Remove boolean attributes when set to false 68440 jQuery.removeAttr( elem, name ); 68441 } else { 68442 elem.setAttribute( name, name ); 68443 } 68444 return name; 68445 } 68446}; 68447 68448jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { 68449 var getter = attrHandle[ name ] || jQuery.find.attr; 68450 68451 attrHandle[ name ] = function( elem, name, isXML ) { 68452 var ret, handle, 68453 lowercaseName = name.toLowerCase(); 68454 68455 if ( !isXML ) { 68456 68457 // Avoid an infinite loop by temporarily removing this function from the getter 68458 handle = attrHandle[ lowercaseName ]; 68459 attrHandle[ lowercaseName ] = ret; 68460 ret = getter( elem, name, isXML ) != null ? 68461 lowercaseName : 68462 null; 68463 attrHandle[ lowercaseName ] = handle; 68464 } 68465 return ret; 68466 }; 68467} ); 68468 68469 68470 68471 68472var rfocusable = /^(?:input|select|textarea|button)$/i, 68473 rclickable = /^(?:a|area)$/i; 68474 68475jQuery.fn.extend( { 68476 prop: function( name, value ) { 68477 return access( this, jQuery.prop, name, value, arguments.length > 1 ); 68478 }, 68479 68480 removeProp: function( name ) { 68481 return this.each( function() { 68482 delete this[ jQuery.propFix[ name ] || name ]; 68483 } ); 68484 } 68485} ); 68486 68487jQuery.extend( { 68488 prop: function( elem, name, value ) { 68489 var ret, hooks, 68490 nType = elem.nodeType; 68491 68492 // Don't get/set properties on text, comment and attribute nodes 68493 if ( nType === 3 || nType === 8 || nType === 2 ) { 68494 return; 68495 } 68496 68497 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 68498 68499 // Fix name and attach hooks 68500 name = jQuery.propFix[ name ] || name; 68501 hooks = jQuery.propHooks[ name ]; 68502 } 68503 68504 if ( value !== undefined ) { 68505 if ( hooks && "set" in hooks && 68506 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 68507 return ret; 68508 } 68509 68510 return ( elem[ name ] = value ); 68511 } 68512 68513 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 68514 return ret; 68515 } 68516 68517 return elem[ name ]; 68518 }, 68519 68520 propHooks: { 68521 tabIndex: { 68522 get: function( elem ) { 68523 68524 // Support: IE <=9 - 11 only 68525 // elem.tabIndex doesn't always return the 68526 // correct value when it hasn't been explicitly set 68527 // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 68528 // Use proper attribute retrieval(#12072) 68529 var tabindex = jQuery.find.attr( elem, "tabindex" ); 68530 68531 if ( tabindex ) { 68532 return parseInt( tabindex, 10 ); 68533 } 68534 68535 if ( 68536 rfocusable.test( elem.nodeName ) || 68537 rclickable.test( elem.nodeName ) && 68538 elem.href 68539 ) { 68540 return 0; 68541 } 68542 68543 return -1; 68544 } 68545 } 68546 }, 68547 68548 propFix: { 68549 "for": "htmlFor", 68550 "class": "className" 68551 } 68552} ); 68553 68554// Support: IE <=11 only 68555// Accessing the selectedIndex property 68556// forces the browser to respect setting selected 68557// on the option 68558// The getter ensures a default option is selected 68559// when in an optgroup 68560// eslint rule "no-unused-expressions" is disabled for this code 68561// since it considers such accessions noop 68562if ( !support.optSelected ) { 68563 jQuery.propHooks.selected = { 68564 get: function( elem ) { 68565 68566 /* eslint no-unused-expressions: "off" */ 68567 68568 var parent = elem.parentNode; 68569 if ( parent && parent.parentNode ) { 68570 parent.parentNode.selectedIndex; 68571 } 68572 return null; 68573 }, 68574 set: function( elem ) { 68575 68576 /* eslint no-unused-expressions: "off" */ 68577 68578 var parent = elem.parentNode; 68579 if ( parent ) { 68580 parent.selectedIndex; 68581 68582 if ( parent.parentNode ) { 68583 parent.parentNode.selectedIndex; 68584 } 68585 } 68586 } 68587 }; 68588} 68589 68590jQuery.each( [ 68591 "tabIndex", 68592 "readOnly", 68593 "maxLength", 68594 "cellSpacing", 68595 "cellPadding", 68596 "rowSpan", 68597 "colSpan", 68598 "useMap", 68599 "frameBorder", 68600 "contentEditable" 68601], function() { 68602 jQuery.propFix[ this.toLowerCase() ] = this; 68603} ); 68604 68605 68606 68607 68608 // Strip and collapse whitespace according to HTML spec 68609 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 68610 function stripAndCollapse( value ) { 68611 var tokens = value.match( rnothtmlwhite ) || []; 68612 return tokens.join( " " ); 68613 } 68614 68615 68616function getClass( elem ) { 68617 return elem.getAttribute && elem.getAttribute( "class" ) || ""; 68618} 68619 68620function classesToArray( value ) { 68621 if ( Array.isArray( value ) ) { 68622 return value; 68623 } 68624 if ( typeof value === "string" ) { 68625 return value.match( rnothtmlwhite ) || []; 68626 } 68627 return []; 68628} 68629 68630jQuery.fn.extend( { 68631 addClass: function( value ) { 68632 var classes, elem, cur, curValue, clazz, j, finalValue, 68633 i = 0; 68634 68635 if ( isFunction( value ) ) { 68636 return this.each( function( j ) { 68637 jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); 68638 } ); 68639 } 68640 68641 classes = classesToArray( value ); 68642 68643 if ( classes.length ) { 68644 while ( ( elem = this[ i++ ] ) ) { 68645 curValue = getClass( elem ); 68646 cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 68647 68648 if ( cur ) { 68649 j = 0; 68650 while ( ( clazz = classes[ j++ ] ) ) { 68651 if ( cur.indexOf( " " + clazz + " " ) < 0 ) { 68652 cur += clazz + " "; 68653 } 68654 } 68655 68656 // Only assign if different to avoid unneeded rendering. 68657 finalValue = stripAndCollapse( cur ); 68658 if ( curValue !== finalValue ) { 68659 elem.setAttribute( "class", finalValue ); 68660 } 68661 } 68662 } 68663 } 68664 68665 return this; 68666 }, 68667 68668 removeClass: function( value ) { 68669 var classes, elem, cur, curValue, clazz, j, finalValue, 68670 i = 0; 68671 68672 if ( isFunction( value ) ) { 68673 return this.each( function( j ) { 68674 jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); 68675 } ); 68676 } 68677 68678 if ( !arguments.length ) { 68679 return this.attr( "class", "" ); 68680 } 68681 68682 classes = classesToArray( value ); 68683 68684 if ( classes.length ) { 68685 while ( ( elem = this[ i++ ] ) ) { 68686 curValue = getClass( elem ); 68687 68688 // This expression is here for better compressibility (see addClass) 68689 cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 68690 68691 if ( cur ) { 68692 j = 0; 68693 while ( ( clazz = classes[ j++ ] ) ) { 68694 68695 // Remove *all* instances 68696 while ( cur.indexOf( " " + clazz + " " ) > -1 ) { 68697 cur = cur.replace( " " + clazz + " ", " " ); 68698 } 68699 } 68700 68701 // Only assign if different to avoid unneeded rendering. 68702 finalValue = stripAndCollapse( cur ); 68703 if ( curValue !== finalValue ) { 68704 elem.setAttribute( "class", finalValue ); 68705 } 68706 } 68707 } 68708 } 68709 68710 return this; 68711 }, 68712 68713 toggleClass: function( value, stateVal ) { 68714 var type = typeof value, 68715 isValidValue = type === "string" || Array.isArray( value ); 68716 68717 if ( typeof stateVal === "boolean" && isValidValue ) { 68718 return stateVal ? this.addClass( value ) : this.removeClass( value ); 68719 } 68720 68721 if ( isFunction( value ) ) { 68722 return this.each( function( i ) { 68723 jQuery( this ).toggleClass( 68724 value.call( this, i, getClass( this ), stateVal ), 68725 stateVal 68726 ); 68727 } ); 68728 } 68729 68730 return this.each( function() { 68731 var className, i, self, classNames; 68732 68733 if ( isValidValue ) { 68734 68735 // Toggle individual class names 68736 i = 0; 68737 self = jQuery( this ); 68738 classNames = classesToArray( value ); 68739 68740 while ( ( className = classNames[ i++ ] ) ) { 68741 68742 // Check each className given, space separated list 68743 if ( self.hasClass( className ) ) { 68744 self.removeClass( className ); 68745 } else { 68746 self.addClass( className ); 68747 } 68748 } 68749 68750 // Toggle whole class name 68751 } else if ( value === undefined || type === "boolean" ) { 68752 className = getClass( this ); 68753 if ( className ) { 68754 68755 // Store className if set 68756 dataPriv.set( this, "__className__", className ); 68757 } 68758 68759 // If the element has a class name or if we're passed `false`, 68760 // then remove the whole classname (if there was one, the above saved it). 68761 // Otherwise bring back whatever was previously saved (if anything), 68762 // falling back to the empty string if nothing was stored. 68763 if ( this.setAttribute ) { 68764 this.setAttribute( "class", 68765 className || value === false ? 68766 "" : 68767 dataPriv.get( this, "__className__" ) || "" 68768 ); 68769 } 68770 } 68771 } ); 68772 }, 68773 68774 hasClass: function( selector ) { 68775 var className, elem, 68776 i = 0; 68777 68778 className = " " + selector + " "; 68779 while ( ( elem = this[ i++ ] ) ) { 68780 if ( elem.nodeType === 1 && 68781 ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { 68782 return true; 68783 } 68784 } 68785 68786 return false; 68787 } 68788} ); 68789 68790 68791 68792 68793var rreturn = /\r/g; 68794 68795jQuery.fn.extend( { 68796 val: function( value ) { 68797 var hooks, ret, valueIsFunction, 68798 elem = this[ 0 ]; 68799 68800 if ( !arguments.length ) { 68801 if ( elem ) { 68802 hooks = jQuery.valHooks[ elem.type ] || 68803 jQuery.valHooks[ elem.nodeName.toLowerCase() ]; 68804 68805 if ( hooks && 68806 "get" in hooks && 68807 ( ret = hooks.get( elem, "value" ) ) !== undefined 68808 ) { 68809 return ret; 68810 } 68811 68812 ret = elem.value; 68813 68814 // Handle most common string cases 68815 if ( typeof ret === "string" ) { 68816 return ret.replace( rreturn, "" ); 68817 } 68818 68819 // Handle cases where value is null/undef or number 68820 return ret == null ? "" : ret; 68821 } 68822 68823 return; 68824 } 68825 68826 valueIsFunction = isFunction( value ); 68827 68828 return this.each( function( i ) { 68829 var val; 68830 68831 if ( this.nodeType !== 1 ) { 68832 return; 68833 } 68834 68835 if ( valueIsFunction ) { 68836 val = value.call( this, i, jQuery( this ).val() ); 68837 } else { 68838 val = value; 68839 } 68840 68841 // Treat null/undefined as ""; convert numbers to string 68842 if ( val == null ) { 68843 val = ""; 68844 68845 } else if ( typeof val === "number" ) { 68846 val += ""; 68847 68848 } else if ( Array.isArray( val ) ) { 68849 val = jQuery.map( val, function( value ) { 68850 return value == null ? "" : value + ""; 68851 } ); 68852 } 68853 68854 hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; 68855 68856 // If set returns undefined, fall back to normal setting 68857 if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { 68858 this.value = val; 68859 } 68860 } ); 68861 } 68862} ); 68863 68864jQuery.extend( { 68865 valHooks: { 68866 option: { 68867 get: function( elem ) { 68868 68869 var val = jQuery.find.attr( elem, "value" ); 68870 return val != null ? 68871 val : 68872 68873 // Support: IE <=10 - 11 only 68874 // option.text throws exceptions (#14686, #14858) 68875 // Strip and collapse whitespace 68876 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 68877 stripAndCollapse( jQuery.text( elem ) ); 68878 } 68879 }, 68880 select: { 68881 get: function( elem ) { 68882 var value, option, i, 68883 options = elem.options, 68884 index = elem.selectedIndex, 68885 one = elem.type === "select-one", 68886 values = one ? null : [], 68887 max = one ? index + 1 : options.length; 68888 68889 if ( index < 0 ) { 68890 i = max; 68891 68892 } else { 68893 i = one ? index : 0; 68894 } 68895 68896 // Loop through all the selected options 68897 for ( ; i < max; i++ ) { 68898 option = options[ i ]; 68899 68900 // Support: IE <=9 only 68901 // IE8-9 doesn't update selected after form reset (#2551) 68902 if ( ( option.selected || i === index ) && 68903 68904 // Don't return options that are disabled or in a disabled optgroup 68905 !option.disabled && 68906 ( !option.parentNode.disabled || 68907 !nodeName( option.parentNode, "optgroup" ) ) ) { 68908 68909 // Get the specific value for the option 68910 value = jQuery( option ).val(); 68911 68912 // We don't need an array for one selects 68913 if ( one ) { 68914 return value; 68915 } 68916 68917 // Multi-Selects return an array 68918 values.push( value ); 68919 } 68920 } 68921 68922 return values; 68923 }, 68924 68925 set: function( elem, value ) { 68926 var optionSet, option, 68927 options = elem.options, 68928 values = jQuery.makeArray( value ), 68929 i = options.length; 68930 68931 while ( i-- ) { 68932 option = options[ i ]; 68933 68934 /* eslint-disable no-cond-assign */ 68935 68936 if ( option.selected = 68937 jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 68938 ) { 68939 optionSet = true; 68940 } 68941 68942 /* eslint-enable no-cond-assign */ 68943 } 68944 68945 // Force browsers to behave consistently when non-matching value is set 68946 if ( !optionSet ) { 68947 elem.selectedIndex = -1; 68948 } 68949 return values; 68950 } 68951 } 68952 } 68953} ); 68954 68955// Radios and checkboxes getter/setter 68956jQuery.each( [ "radio", "checkbox" ], function() { 68957 jQuery.valHooks[ this ] = { 68958 set: function( elem, value ) { 68959 if ( Array.isArray( value ) ) { 68960 return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); 68961 } 68962 } 68963 }; 68964 if ( !support.checkOn ) { 68965 jQuery.valHooks[ this ].get = function( elem ) { 68966 return elem.getAttribute( "value" ) === null ? "on" : elem.value; 68967 }; 68968 } 68969} ); 68970 68971 68972 68973 68974// Return jQuery for attributes-only inclusion 68975 68976 68977support.focusin = "onfocusin" in window; 68978 68979 68980var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 68981 stopPropagationCallback = function( e ) { 68982 e.stopPropagation(); 68983 }; 68984 68985jQuery.extend( jQuery.event, { 68986 68987 trigger: function( event, data, elem, onlyHandlers ) { 68988 68989 var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, 68990 eventPath = [ elem || document ], 68991 type = hasOwn.call( event, "type" ) ? event.type : event, 68992 namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; 68993 68994 cur = lastElement = tmp = elem = elem || document; 68995 68996 // Don't do events on text and comment nodes 68997 if ( elem.nodeType === 3 || elem.nodeType === 8 ) { 68998 return; 68999 } 69000 69001 // focus/blur morphs to focusin/out; ensure we're not firing them right now 69002 if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { 69003 return; 69004 } 69005 69006 if ( type.indexOf( "." ) > -1 ) { 69007 69008 // Namespaced trigger; create a regexp to match event type in handle() 69009 namespaces = type.split( "." ); 69010 type = namespaces.shift(); 69011 namespaces.sort(); 69012 } 69013 ontype = type.indexOf( ":" ) < 0 && "on" + type; 69014 69015 // Caller can pass in a jQuery.Event object, Object, or just an event type string 69016 event = event[ jQuery.expando ] ? 69017 event : 69018 new jQuery.Event( type, typeof event === "object" && event ); 69019 69020 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 69021 event.isTrigger = onlyHandlers ? 2 : 3; 69022 event.namespace = namespaces.join( "." ); 69023 event.rnamespace = event.namespace ? 69024 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : 69025 null; 69026 69027 // Clean up the event in case it is being reused 69028 event.result = undefined; 69029 if ( !event.target ) { 69030 event.target = elem; 69031 } 69032 69033 // Clone any incoming data and prepend the event, creating the handler arg list 69034 data = data == null ? 69035 [ event ] : 69036 jQuery.makeArray( data, [ event ] ); 69037 69038 // Allow special events to draw outside the lines 69039 special = jQuery.event.special[ type ] || {}; 69040 if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { 69041 return; 69042 } 69043 69044 // Determine event propagation path in advance, per W3C events spec (#9951) 69045 // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) 69046 if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { 69047 69048 bubbleType = special.delegateType || type; 69049 if ( !rfocusMorph.test( bubbleType + type ) ) { 69050 cur = cur.parentNode; 69051 } 69052 for ( ; cur; cur = cur.parentNode ) { 69053 eventPath.push( cur ); 69054 tmp = cur; 69055 } 69056 69057 // Only add window if we got to document (e.g., not plain obj or detached DOM) 69058 if ( tmp === ( elem.ownerDocument || document ) ) { 69059 eventPath.push( tmp.defaultView || tmp.parentWindow || window ); 69060 } 69061 } 69062 69063 // Fire handlers on the event path 69064 i = 0; 69065 while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { 69066 lastElement = cur; 69067 event.type = i > 1 ? 69068 bubbleType : 69069 special.bindType || type; 69070 69071 // jQuery handler 69072 handle = ( dataPriv.get( cur, "events" ) || Object.create( null ) )[ event.type ] && 69073 dataPriv.get( cur, "handle" ); 69074 if ( handle ) { 69075 handle.apply( cur, data ); 69076 } 69077 69078 // Native handler 69079 handle = ontype && cur[ ontype ]; 69080 if ( handle && handle.apply && acceptData( cur ) ) { 69081 event.result = handle.apply( cur, data ); 69082 if ( event.result === false ) { 69083 event.preventDefault(); 69084 } 69085 } 69086 } 69087 event.type = type; 69088 69089 // If nobody prevented the default action, do it now 69090 if ( !onlyHandlers && !event.isDefaultPrevented() ) { 69091 69092 if ( ( !special._default || 69093 special._default.apply( eventPath.pop(), data ) === false ) && 69094 acceptData( elem ) ) { 69095 69096 // Call a native DOM method on the target with the same name as the event. 69097 // Don't do default actions on window, that's where global variables be (#6170) 69098 if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { 69099 69100 // Don't re-trigger an onFOO event when we call its FOO() method 69101 tmp = elem[ ontype ]; 69102 69103 if ( tmp ) { 69104 elem[ ontype ] = null; 69105 } 69106 69107 // Prevent re-triggering of the same event, since we already bubbled it above 69108 jQuery.event.triggered = type; 69109 69110 if ( event.isPropagationStopped() ) { 69111 lastElement.addEventListener( type, stopPropagationCallback ); 69112 } 69113 69114 elem[ type ](); 69115 69116 if ( event.isPropagationStopped() ) { 69117 lastElement.removeEventListener( type, stopPropagationCallback ); 69118 } 69119 69120 jQuery.event.triggered = undefined; 69121 69122 if ( tmp ) { 69123 elem[ ontype ] = tmp; 69124 } 69125 } 69126 } 69127 } 69128 69129 return event.result; 69130 }, 69131 69132 // Piggyback on a donor event to simulate a different one 69133 // Used only for `focus(in | out)` events 69134 simulate: function( type, elem, event ) { 69135 var e = jQuery.extend( 69136 new jQuery.Event(), 69137 event, 69138 { 69139 type: type, 69140 isSimulated: true 69141 } 69142 ); 69143 69144 jQuery.event.trigger( e, null, elem ); 69145 } 69146 69147} ); 69148 69149jQuery.fn.extend( { 69150 69151 trigger: function( type, data ) { 69152 return this.each( function() { 69153 jQuery.event.trigger( type, data, this ); 69154 } ); 69155 }, 69156 triggerHandler: function( type, data ) { 69157 var elem = this[ 0 ]; 69158 if ( elem ) { 69159 return jQuery.event.trigger( type, data, elem, true ); 69160 } 69161 } 69162} ); 69163 69164 69165// Support: Firefox <=44 69166// Firefox doesn't have focus(in | out) events 69167// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 69168// 69169// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 69170// focus(in | out) events fire after focus & blur events, 69171// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 69172// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 69173if ( !support.focusin ) { 69174 jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { 69175 69176 // Attach a single capturing handler on the document while someone wants focusin/focusout 69177 var handler = function( event ) { 69178 jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); 69179 }; 69180 69181 jQuery.event.special[ fix ] = { 69182 setup: function() { 69183 69184 // Handle: regular nodes (via `this.ownerDocument`), window 69185 // (via `this.document`) & document (via `this`). 69186 var doc = this.ownerDocument || this.document || this, 69187 attaches = dataPriv.access( doc, fix ); 69188 69189 if ( !attaches ) { 69190 doc.addEventListener( orig, handler, true ); 69191 } 69192 dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); 69193 }, 69194 teardown: function() { 69195 var doc = this.ownerDocument || this.document || this, 69196 attaches = dataPriv.access( doc, fix ) - 1; 69197 69198 if ( !attaches ) { 69199 doc.removeEventListener( orig, handler, true ); 69200 dataPriv.remove( doc, fix ); 69201 69202 } else { 69203 dataPriv.access( doc, fix, attaches ); 69204 } 69205 } 69206 }; 69207 } ); 69208} 69209var location = window.location; 69210 69211var nonce = { guid: Date.now() }; 69212 69213var rquery = ( /\?/ ); 69214 69215 69216 69217// Cross-browser xml parsing 69218jQuery.parseXML = function( data ) { 69219 var xml, parserErrorElem; 69220 if ( !data || typeof data !== "string" ) { 69221 return null; 69222 } 69223 69224 // Support: IE 9 - 11 only 69225 // IE throws on parseFromString with invalid input. 69226 try { 69227 xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 69228 } catch ( e ) {} 69229 69230 parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ]; 69231 if ( !xml || parserErrorElem ) { 69232 jQuery.error( "Invalid XML: " + ( 69233 parserErrorElem ? 69234 jQuery.map( parserErrorElem.childNodes, function( el ) { 69235 return el.textContent; 69236 } ).join( "\n" ) : 69237 data 69238 ) ); 69239 } 69240 return xml; 69241}; 69242 69243 69244var 69245 rbracket = /\[\]$/, 69246 rCRLF = /\r?\n/g, 69247 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 69248 rsubmittable = /^(?:input|select|textarea|keygen)/i; 69249 69250function buildParams( prefix, obj, traditional, add ) { 69251 var name; 69252 69253 if ( Array.isArray( obj ) ) { 69254 69255 // Serialize array item. 69256 jQuery.each( obj, function( i, v ) { 69257 if ( traditional || rbracket.test( prefix ) ) { 69258 69259 // Treat each array item as a scalar. 69260 add( prefix, v ); 69261 69262 } else { 69263 69264 // Item is non-scalar (array or object), encode its numeric index. 69265 buildParams( 69266 prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", 69267 v, 69268 traditional, 69269 add 69270 ); 69271 } 69272 } ); 69273 69274 } else if ( !traditional && toType( obj ) === "object" ) { 69275 69276 // Serialize object item. 69277 for ( name in obj ) { 69278 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 69279 } 69280 69281 } else { 69282 69283 // Serialize scalar item. 69284 add( prefix, obj ); 69285 } 69286} 69287 69288// Serialize an array of form elements or a set of 69289// key/values into a query string 69290jQuery.param = function( a, traditional ) { 69291 var prefix, 69292 s = [], 69293 add = function( key, valueOrFunction ) { 69294 69295 // If value is a function, invoke it and use its return value 69296 var value = isFunction( valueOrFunction ) ? 69297 valueOrFunction() : 69298 valueOrFunction; 69299 69300 s[ s.length ] = encodeURIComponent( key ) + "=" + 69301 encodeURIComponent( value == null ? "" : value ); 69302 }; 69303 69304 if ( a == null ) { 69305 return ""; 69306 } 69307 69308 // If an array was passed in, assume that it is an array of form elements. 69309 if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { 69310 69311 // Serialize the form elements 69312 jQuery.each( a, function() { 69313 add( this.name, this.value ); 69314 } ); 69315 69316 } else { 69317 69318 // If traditional, encode the "old" way (the way 1.3.2 or older 69319 // did it), otherwise encode params recursively. 69320 for ( prefix in a ) { 69321 buildParams( prefix, a[ prefix ], traditional, add ); 69322 } 69323 } 69324 69325 // Return the resulting serialization 69326 return s.join( "&" ); 69327}; 69328 69329jQuery.fn.extend( { 69330 serialize: function() { 69331 return jQuery.param( this.serializeArray() ); 69332 }, 69333 serializeArray: function() { 69334 return this.map( function() { 69335 69336 // Can add propHook for "elements" to filter or add form elements 69337 var elements = jQuery.prop( this, "elements" ); 69338 return elements ? jQuery.makeArray( elements ) : this; 69339 } ).filter( function() { 69340 var type = this.type; 69341 69342 // Use .is( ":disabled" ) so that fieldset[disabled] works 69343 return this.name && !jQuery( this ).is( ":disabled" ) && 69344 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && 69345 ( this.checked || !rcheckableType.test( type ) ); 69346 } ).map( function( _i, elem ) { 69347 var val = jQuery( this ).val(); 69348 69349 if ( val == null ) { 69350 return null; 69351 } 69352 69353 if ( Array.isArray( val ) ) { 69354 return jQuery.map( val, function( val ) { 69355 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 69356 } ); 69357 } 69358 69359 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 69360 } ).get(); 69361 } 69362} ); 69363 69364 69365var 69366 r20 = /%20/g, 69367 rhash = /#.*$/, 69368 rantiCache = /([?&])_=[^&]*/, 69369 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 69370 69371 // #7653, #8125, #8152: local protocol detection 69372 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 69373 rnoContent = /^(?:GET|HEAD)$/, 69374 rprotocol = /^\/\//, 69375 69376 /* Prefilters 69377 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 69378 * 2) These are called: 69379 * - BEFORE asking for a transport 69380 * - AFTER param serialization (s.data is a string if s.processData is true) 69381 * 3) key is the dataType 69382 * 4) the catchall symbol "*" can be used 69383 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 69384 */ 69385 prefilters = {}, 69386 69387 /* Transports bindings 69388 * 1) key is the dataType 69389 * 2) the catchall symbol "*" can be used 69390 * 3) selection will start with transport dataType and THEN go to "*" if needed 69391 */ 69392 transports = {}, 69393 69394 // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression 69395 allTypes = "*/".concat( "*" ), 69396 69397 // Anchor tag for parsing the document origin 69398 originAnchor = document.createElement( "a" ); 69399 69400originAnchor.href = location.href; 69401 69402// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 69403function addToPrefiltersOrTransports( structure ) { 69404 69405 // dataTypeExpression is optional and defaults to "*" 69406 return function( dataTypeExpression, func ) { 69407 69408 if ( typeof dataTypeExpression !== "string" ) { 69409 func = dataTypeExpression; 69410 dataTypeExpression = "*"; 69411 } 69412 69413 var dataType, 69414 i = 0, 69415 dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; 69416 69417 if ( isFunction( func ) ) { 69418 69419 // For each dataType in the dataTypeExpression 69420 while ( ( dataType = dataTypes[ i++ ] ) ) { 69421 69422 // Prepend if requested 69423 if ( dataType[ 0 ] === "+" ) { 69424 dataType = dataType.slice( 1 ) || "*"; 69425 ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); 69426 69427 // Otherwise append 69428 } else { 69429 ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); 69430 } 69431 } 69432 } 69433 }; 69434} 69435 69436// Base inspection function for prefilters and transports 69437function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { 69438 69439 var inspected = {}, 69440 seekingTransport = ( structure === transports ); 69441 69442 function inspect( dataType ) { 69443 var selected; 69444 inspected[ dataType ] = true; 69445 jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { 69446 var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); 69447 if ( typeof dataTypeOrTransport === "string" && 69448 !seekingTransport && !inspected[ dataTypeOrTransport ] ) { 69449 69450 options.dataTypes.unshift( dataTypeOrTransport ); 69451 inspect( dataTypeOrTransport ); 69452 return false; 69453 } else if ( seekingTransport ) { 69454 return !( selected = dataTypeOrTransport ); 69455 } 69456 } ); 69457 return selected; 69458 } 69459 69460 return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); 69461} 69462 69463// A special extend for ajax options 69464// that takes "flat" options (not to be deep extended) 69465// Fixes #9887 69466function ajaxExtend( target, src ) { 69467 var key, deep, 69468 flatOptions = jQuery.ajaxSettings.flatOptions || {}; 69469 69470 for ( key in src ) { 69471 if ( src[ key ] !== undefined ) { 69472 ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; 69473 } 69474 } 69475 if ( deep ) { 69476 jQuery.extend( true, target, deep ); 69477 } 69478 69479 return target; 69480} 69481 69482/* Handles responses to an ajax request: 69483 * - finds the right dataType (mediates between content-type and expected dataType) 69484 * - returns the corresponding response 69485 */ 69486function ajaxHandleResponses( s, jqXHR, responses ) { 69487 69488 var ct, type, finalDataType, firstDataType, 69489 contents = s.contents, 69490 dataTypes = s.dataTypes; 69491 69492 // Remove auto dataType and get content-type in the process 69493 while ( dataTypes[ 0 ] === "*" ) { 69494 dataTypes.shift(); 69495 if ( ct === undefined ) { 69496 ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); 69497 } 69498 } 69499 69500 // Check if we're dealing with a known content-type 69501 if ( ct ) { 69502 for ( type in contents ) { 69503 if ( contents[ type ] && contents[ type ].test( ct ) ) { 69504 dataTypes.unshift( type ); 69505 break; 69506 } 69507 } 69508 } 69509 69510 // Check to see if we have a response for the expected dataType 69511 if ( dataTypes[ 0 ] in responses ) { 69512 finalDataType = dataTypes[ 0 ]; 69513 } else { 69514 69515 // Try convertible dataTypes 69516 for ( type in responses ) { 69517 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { 69518 finalDataType = type; 69519 break; 69520 } 69521 if ( !firstDataType ) { 69522 firstDataType = type; 69523 } 69524 } 69525 69526 // Or just use first one 69527 finalDataType = finalDataType || firstDataType; 69528 } 69529 69530 // If we found a dataType 69531 // We add the dataType to the list if needed 69532 // and return the corresponding response 69533 if ( finalDataType ) { 69534 if ( finalDataType !== dataTypes[ 0 ] ) { 69535 dataTypes.unshift( finalDataType ); 69536 } 69537 return responses[ finalDataType ]; 69538 } 69539} 69540 69541/* Chain conversions given the request and the original response 69542 * Also sets the responseXXX fields on the jqXHR instance 69543 */ 69544function ajaxConvert( s, response, jqXHR, isSuccess ) { 69545 var conv2, current, conv, tmp, prev, 69546 converters = {}, 69547 69548 // Work with a copy of dataTypes in case we need to modify it for conversion 69549 dataTypes = s.dataTypes.slice(); 69550 69551 // Create converters map with lowercased keys 69552 if ( dataTypes[ 1 ] ) { 69553 for ( conv in s.converters ) { 69554 converters[ conv.toLowerCase() ] = s.converters[ conv ]; 69555 } 69556 } 69557 69558 current = dataTypes.shift(); 69559 69560 // Convert to each sequential dataType 69561 while ( current ) { 69562 69563 if ( s.responseFields[ current ] ) { 69564 jqXHR[ s.responseFields[ current ] ] = response; 69565 } 69566 69567 // Apply the dataFilter if provided 69568 if ( !prev && isSuccess && s.dataFilter ) { 69569 response = s.dataFilter( response, s.dataType ); 69570 } 69571 69572 prev = current; 69573 current = dataTypes.shift(); 69574 69575 if ( current ) { 69576 69577 // There's only work to do if current dataType is non-auto 69578 if ( current === "*" ) { 69579 69580 current = prev; 69581 69582 // Convert response if prev dataType is non-auto and differs from current 69583 } else if ( prev !== "*" && prev !== current ) { 69584 69585 // Seek a direct converter 69586 conv = converters[ prev + " " + current ] || converters[ "* " + current ]; 69587 69588 // If none found, seek a pair 69589 if ( !conv ) { 69590 for ( conv2 in converters ) { 69591 69592 // If conv2 outputs current 69593 tmp = conv2.split( " " ); 69594 if ( tmp[ 1 ] === current ) { 69595 69596 // If prev can be converted to accepted input 69597 conv = converters[ prev + " " + tmp[ 0 ] ] || 69598 converters[ "* " + tmp[ 0 ] ]; 69599 if ( conv ) { 69600 69601 // Condense equivalence converters 69602 if ( conv === true ) { 69603 conv = converters[ conv2 ]; 69604 69605 // Otherwise, insert the intermediate dataType 69606 } else if ( converters[ conv2 ] !== true ) { 69607 current = tmp[ 0 ]; 69608 dataTypes.unshift( tmp[ 1 ] ); 69609 } 69610 break; 69611 } 69612 } 69613 } 69614 } 69615 69616 // Apply converter (if not an equivalence) 69617 if ( conv !== true ) { 69618 69619 // Unless errors are allowed to bubble, catch and return them 69620 if ( conv && s.throws ) { 69621 response = conv( response ); 69622 } else { 69623 try { 69624 response = conv( response ); 69625 } catch ( e ) { 69626 return { 69627 state: "parsererror", 69628 error: conv ? e : "No conversion from " + prev + " to " + current 69629 }; 69630 } 69631 } 69632 } 69633 } 69634 } 69635 } 69636 69637 return { state: "success", data: response }; 69638} 69639 69640jQuery.extend( { 69641 69642 // Counter for holding the number of active queries 69643 active: 0, 69644 69645 // Last-Modified header cache for next request 69646 lastModified: {}, 69647 etag: {}, 69648 69649 ajaxSettings: { 69650 url: location.href, 69651 type: "GET", 69652 isLocal: rlocalProtocol.test( location.protocol ), 69653 global: true, 69654 processData: true, 69655 async: true, 69656 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 69657 69658 /* 69659 timeout: 0, 69660 data: null, 69661 dataType: null, 69662 username: null, 69663 password: null, 69664 cache: null, 69665 throws: false, 69666 traditional: false, 69667 headers: {}, 69668 */ 69669 69670 accepts: { 69671 "*": allTypes, 69672 text: "text/plain", 69673 html: "text/html", 69674 xml: "application/xml, text/xml", 69675 json: "application/json, text/javascript" 69676 }, 69677 69678 contents: { 69679 xml: /\bxml\b/, 69680 html: /\bhtml/, 69681 json: /\bjson\b/ 69682 }, 69683 69684 responseFields: { 69685 xml: "responseXML", 69686 text: "responseText", 69687 json: "responseJSON" 69688 }, 69689 69690 // Data converters 69691 // Keys separate source (or catchall "*") and destination types with a single space 69692 converters: { 69693 69694 // Convert anything to text 69695 "* text": String, 69696 69697 // Text to html (true = no transformation) 69698 "text html": true, 69699 69700 // Evaluate text as a json expression 69701 "text json": JSON.parse, 69702 69703 // Parse text as xml 69704 "text xml": jQuery.parseXML 69705 }, 69706 69707 // For options that shouldn't be deep extended: 69708 // you can add your own custom options here if 69709 // and when you create one that shouldn't be 69710 // deep extended (see ajaxExtend) 69711 flatOptions: { 69712 url: true, 69713 context: true 69714 } 69715 }, 69716 69717 // Creates a full fledged settings object into target 69718 // with both ajaxSettings and settings fields. 69719 // If target is omitted, writes into ajaxSettings. 69720 ajaxSetup: function( target, settings ) { 69721 return settings ? 69722 69723 // Building a settings object 69724 ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : 69725 69726 // Extending ajaxSettings 69727 ajaxExtend( jQuery.ajaxSettings, target ); 69728 }, 69729 69730 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), 69731 ajaxTransport: addToPrefiltersOrTransports( transports ), 69732 69733 // Main method 69734 ajax: function( url, options ) { 69735 69736 // If url is an object, simulate pre-1.5 signature 69737 if ( typeof url === "object" ) { 69738 options = url; 69739 url = undefined; 69740 } 69741 69742 // Force options to be an object 69743 options = options || {}; 69744 69745 var transport, 69746 69747 // URL without anti-cache param 69748 cacheURL, 69749 69750 // Response headers 69751 responseHeadersString, 69752 responseHeaders, 69753 69754 // timeout handle 69755 timeoutTimer, 69756 69757 // Url cleanup var 69758 urlAnchor, 69759 69760 // Request state (becomes false upon send and true upon completion) 69761 completed, 69762 69763 // To know if global events are to be dispatched 69764 fireGlobals, 69765 69766 // Loop variable 69767 i, 69768 69769 // uncached part of the url 69770 uncached, 69771 69772 // Create the final options object 69773 s = jQuery.ajaxSetup( {}, options ), 69774 69775 // Callbacks context 69776 callbackContext = s.context || s, 69777 69778 // Context for global events is callbackContext if it is a DOM node or jQuery collection 69779 globalEventContext = s.context && 69780 ( callbackContext.nodeType || callbackContext.jquery ) ? 69781 jQuery( callbackContext ) : 69782 jQuery.event, 69783 69784 // Deferreds 69785 deferred = jQuery.Deferred(), 69786 completeDeferred = jQuery.Callbacks( "once memory" ), 69787 69788 // Status-dependent callbacks 69789 statusCode = s.statusCode || {}, 69790 69791 // Headers (they are sent all at once) 69792 requestHeaders = {}, 69793 requestHeadersNames = {}, 69794 69795 // Default abort message 69796 strAbort = "canceled", 69797 69798 // Fake xhr 69799 jqXHR = { 69800 readyState: 0, 69801 69802 // Builds headers hashtable if needed 69803 getResponseHeader: function( key ) { 69804 var match; 69805 if ( completed ) { 69806 if ( !responseHeaders ) { 69807 responseHeaders = {}; 69808 while ( ( match = rheaders.exec( responseHeadersString ) ) ) { 69809 responseHeaders[ match[ 1 ].toLowerCase() + " " ] = 69810 ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) 69811 .concat( match[ 2 ] ); 69812 } 69813 } 69814 match = responseHeaders[ key.toLowerCase() + " " ]; 69815 } 69816 return match == null ? null : match.join( ", " ); 69817 }, 69818 69819 // Raw string 69820 getAllResponseHeaders: function() { 69821 return completed ? responseHeadersString : null; 69822 }, 69823 69824 // Caches the header 69825 setRequestHeader: function( name, value ) { 69826 if ( completed == null ) { 69827 name = requestHeadersNames[ name.toLowerCase() ] = 69828 requestHeadersNames[ name.toLowerCase() ] || name; 69829 requestHeaders[ name ] = value; 69830 } 69831 return this; 69832 }, 69833 69834 // Overrides response content-type header 69835 overrideMimeType: function( type ) { 69836 if ( completed == null ) { 69837 s.mimeType = type; 69838 } 69839 return this; 69840 }, 69841 69842 // Status-dependent callbacks 69843 statusCode: function( map ) { 69844 var code; 69845 if ( map ) { 69846 if ( completed ) { 69847 69848 // Execute the appropriate callbacks 69849 jqXHR.always( map[ jqXHR.status ] ); 69850 } else { 69851 69852 // Lazy-add the new callbacks in a way that preserves old ones 69853 for ( code in map ) { 69854 statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; 69855 } 69856 } 69857 } 69858 return this; 69859 }, 69860 69861 // Cancel the request 69862 abort: function( statusText ) { 69863 var finalText = statusText || strAbort; 69864 if ( transport ) { 69865 transport.abort( finalText ); 69866 } 69867 done( 0, finalText ); 69868 return this; 69869 } 69870 }; 69871 69872 // Attach deferreds 69873 deferred.promise( jqXHR ); 69874 69875 // Add protocol if not provided (prefilters might expect it) 69876 // Handle falsy url in the settings object (#10093: consistency with old signature) 69877 // We also use the url parameter if available 69878 s.url = ( ( url || s.url || location.href ) + "" ) 69879 .replace( rprotocol, location.protocol + "//" ); 69880 69881 // Alias method option to type as per ticket #12004 69882 s.type = options.method || options.type || s.method || s.type; 69883 69884 // Extract dataTypes list 69885 s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; 69886 69887 // A cross-domain request is in order when the origin doesn't match the current origin. 69888 if ( s.crossDomain == null ) { 69889 urlAnchor = document.createElement( "a" ); 69890 69891 // Support: IE <=8 - 11, Edge 12 - 15 69892 // IE throws exception on accessing the href property if url is malformed, 69893 // e.g. http://example.com:80x/ 69894 try { 69895 urlAnchor.href = s.url; 69896 69897 // Support: IE <=8 - 11 only 69898 // Anchor's host property isn't correctly set when s.url is relative 69899 urlAnchor.href = urlAnchor.href; 69900 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== 69901 urlAnchor.protocol + "//" + urlAnchor.host; 69902 } catch ( e ) { 69903 69904 // If there is an error parsing the URL, assume it is crossDomain, 69905 // it can be rejected by the transport if it is invalid 69906 s.crossDomain = true; 69907 } 69908 } 69909 69910 // Convert data if not already a string 69911 if ( s.data && s.processData && typeof s.data !== "string" ) { 69912 s.data = jQuery.param( s.data, s.traditional ); 69913 } 69914 69915 // Apply prefilters 69916 inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); 69917 69918 // If request was aborted inside a prefilter, stop there 69919 if ( completed ) { 69920 return jqXHR; 69921 } 69922 69923 // We can fire global events as of now if asked to 69924 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) 69925 fireGlobals = jQuery.event && s.global; 69926 69927 // Watch for a new set of requests 69928 if ( fireGlobals && jQuery.active++ === 0 ) { 69929 jQuery.event.trigger( "ajaxStart" ); 69930 } 69931 69932 // Uppercase the type 69933 s.type = s.type.toUpperCase(); 69934 69935 // Determine if request has content 69936 s.hasContent = !rnoContent.test( s.type ); 69937 69938 // Save the URL in case we're toying with the If-Modified-Since 69939 // and/or If-None-Match header later on 69940 // Remove hash to simplify url manipulation 69941 cacheURL = s.url.replace( rhash, "" ); 69942 69943 // More options handling for requests with no content 69944 if ( !s.hasContent ) { 69945 69946 // Remember the hash so we can put it back 69947 uncached = s.url.slice( cacheURL.length ); 69948 69949 // If data is available and should be processed, append data to url 69950 if ( s.data && ( s.processData || typeof s.data === "string" ) ) { 69951 cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; 69952 69953 // #9682: remove data so that it's not used in an eventual retry 69954 delete s.data; 69955 } 69956 69957 // Add or update anti-cache param if needed 69958 if ( s.cache === false ) { 69959 cacheURL = cacheURL.replace( rantiCache, "$1" ); 69960 uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + 69961 uncached; 69962 } 69963 69964 // Put hash and anti-cache on the URL that will be requested (gh-1732) 69965 s.url = cacheURL + uncached; 69966 69967 // Change '%20' to '+' if this is encoded form body content (gh-2658) 69968 } else if ( s.data && s.processData && 69969 ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { 69970 s.data = s.data.replace( r20, "+" ); 69971 } 69972 69973 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 69974 if ( s.ifModified ) { 69975 if ( jQuery.lastModified[ cacheURL ] ) { 69976 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); 69977 } 69978 if ( jQuery.etag[ cacheURL ] ) { 69979 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); 69980 } 69981 } 69982 69983 // Set the correct header, if data is being sent 69984 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 69985 jqXHR.setRequestHeader( "Content-Type", s.contentType ); 69986 } 69987 69988 // Set the Accepts header for the server, depending on the dataType 69989 jqXHR.setRequestHeader( 69990 "Accept", 69991 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? 69992 s.accepts[ s.dataTypes[ 0 ] ] + 69993 ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : 69994 s.accepts[ "*" ] 69995 ); 69996 69997 // Check for headers option 69998 for ( i in s.headers ) { 69999 jqXHR.setRequestHeader( i, s.headers[ i ] ); 70000 } 70001 70002 // Allow custom headers/mimetypes and early abort 70003 if ( s.beforeSend && 70004 ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { 70005 70006 // Abort if not done already and return 70007 return jqXHR.abort(); 70008 } 70009 70010 // Aborting is no longer a cancellation 70011 strAbort = "abort"; 70012 70013 // Install callbacks on deferreds 70014 completeDeferred.add( s.complete ); 70015 jqXHR.done( s.success ); 70016 jqXHR.fail( s.error ); 70017 70018 // Get transport 70019 transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); 70020 70021 // If no transport, we auto-abort 70022 if ( !transport ) { 70023 done( -1, "No Transport" ); 70024 } else { 70025 jqXHR.readyState = 1; 70026 70027 // Send global event 70028 if ( fireGlobals ) { 70029 globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); 70030 } 70031 70032 // If request was aborted inside ajaxSend, stop there 70033 if ( completed ) { 70034 return jqXHR; 70035 } 70036 70037 // Timeout 70038 if ( s.async && s.timeout > 0 ) { 70039 timeoutTimer = window.setTimeout( function() { 70040 jqXHR.abort( "timeout" ); 70041 }, s.timeout ); 70042 } 70043 70044 try { 70045 completed = false; 70046 transport.send( requestHeaders, done ); 70047 } catch ( e ) { 70048 70049 // Rethrow post-completion exceptions 70050 if ( completed ) { 70051 throw e; 70052 } 70053 70054 // Propagate others as results 70055 done( -1, e ); 70056 } 70057 } 70058 70059 // Callback for when everything is done 70060 function done( status, nativeStatusText, responses, headers ) { 70061 var isSuccess, success, error, response, modified, 70062 statusText = nativeStatusText; 70063 70064 // Ignore repeat invocations 70065 if ( completed ) { 70066 return; 70067 } 70068 70069 completed = true; 70070 70071 // Clear timeout if it exists 70072 if ( timeoutTimer ) { 70073 window.clearTimeout( timeoutTimer ); 70074 } 70075 70076 // Dereference transport for early garbage collection 70077 // (no matter how long the jqXHR object will be used) 70078 transport = undefined; 70079 70080 // Cache response headers 70081 responseHeadersString = headers || ""; 70082 70083 // Set readyState 70084 jqXHR.readyState = status > 0 ? 4 : 0; 70085 70086 // Determine if successful 70087 isSuccess = status >= 200 && status < 300 || status === 304; 70088 70089 // Get response data 70090 if ( responses ) { 70091 response = ajaxHandleResponses( s, jqXHR, responses ); 70092 } 70093 70094 // Use a noop converter for missing script but not if jsonp 70095 if ( !isSuccess && 70096 jQuery.inArray( "script", s.dataTypes ) > -1 && 70097 jQuery.inArray( "json", s.dataTypes ) < 0 ) { 70098 s.converters[ "text script" ] = function() {}; 70099 } 70100 70101 // Convert no matter what (that way responseXXX fields are always set) 70102 response = ajaxConvert( s, response, jqXHR, isSuccess ); 70103 70104 // If successful, handle type chaining 70105 if ( isSuccess ) { 70106 70107 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 70108 if ( s.ifModified ) { 70109 modified = jqXHR.getResponseHeader( "Last-Modified" ); 70110 if ( modified ) { 70111 jQuery.lastModified[ cacheURL ] = modified; 70112 } 70113 modified = jqXHR.getResponseHeader( "etag" ); 70114 if ( modified ) { 70115 jQuery.etag[ cacheURL ] = modified; 70116 } 70117 } 70118 70119 // if no content 70120 if ( status === 204 || s.type === "HEAD" ) { 70121 statusText = "nocontent"; 70122 70123 // if not modified 70124 } else if ( status === 304 ) { 70125 statusText = "notmodified"; 70126 70127 // If we have data, let's convert it 70128 } else { 70129 statusText = response.state; 70130 success = response.data; 70131 error = response.error; 70132 isSuccess = !error; 70133 } 70134 } else { 70135 70136 // Extract error from statusText and normalize for non-aborts 70137 error = statusText; 70138 if ( status || !statusText ) { 70139 statusText = "error"; 70140 if ( status < 0 ) { 70141 status = 0; 70142 } 70143 } 70144 } 70145 70146 // Set data for the fake xhr object 70147 jqXHR.status = status; 70148 jqXHR.statusText = ( nativeStatusText || statusText ) + ""; 70149 70150 // Success/Error 70151 if ( isSuccess ) { 70152 deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); 70153 } else { 70154 deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); 70155 } 70156 70157 // Status-dependent callbacks 70158 jqXHR.statusCode( statusCode ); 70159 statusCode = undefined; 70160 70161 if ( fireGlobals ) { 70162 globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", 70163 [ jqXHR, s, isSuccess ? success : error ] ); 70164 } 70165 70166 // Complete 70167 completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); 70168 70169 if ( fireGlobals ) { 70170 globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); 70171 70172 // Handle the global AJAX counter 70173 if ( !( --jQuery.active ) ) { 70174 jQuery.event.trigger( "ajaxStop" ); 70175 } 70176 } 70177 } 70178 70179 return jqXHR; 70180 }, 70181 70182 getJSON: function( url, data, callback ) { 70183 return jQuery.get( url, data, callback, "json" ); 70184 }, 70185 70186 getScript: function( url, callback ) { 70187 return jQuery.get( url, undefined, callback, "script" ); 70188 } 70189} ); 70190 70191jQuery.each( [ "get", "post" ], function( _i, method ) { 70192 jQuery[ method ] = function( url, data, callback, type ) { 70193 70194 // Shift arguments if data argument was omitted 70195 if ( isFunction( data ) ) { 70196 type = type || callback; 70197 callback = data; 70198 data = undefined; 70199 } 70200 70201 // The url can be an options object (which then must have .url) 70202 return jQuery.ajax( jQuery.extend( { 70203 url: url, 70204 type: method, 70205 dataType: type, 70206 data: data, 70207 success: callback 70208 }, jQuery.isPlainObject( url ) && url ) ); 70209 }; 70210} ); 70211 70212jQuery.ajaxPrefilter( function( s ) { 70213 var i; 70214 for ( i in s.headers ) { 70215 if ( i.toLowerCase() === "content-type" ) { 70216 s.contentType = s.headers[ i ] || ""; 70217 } 70218 } 70219} ); 70220 70221 70222jQuery._evalUrl = function( url, options, doc ) { 70223 return jQuery.ajax( { 70224 url: url, 70225 70226 // Make this explicit, since user can override this through ajaxSetup (#11264) 70227 type: "GET", 70228 dataType: "script", 70229 cache: true, 70230 async: false, 70231 global: false, 70232 70233 // Only evaluate the response if it is successful (gh-4126) 70234 // dataFilter is not invoked for failure responses, so using it instead 70235 // of the default converter is kludgy but it works. 70236 converters: { 70237 "text script": function() {} 70238 }, 70239 dataFilter: function( response ) { 70240 jQuery.globalEval( response, options, doc ); 70241 } 70242 } ); 70243}; 70244 70245 70246jQuery.fn.extend( { 70247 wrapAll: function( html ) { 70248 var wrap; 70249 70250 if ( this[ 0 ] ) { 70251 if ( isFunction( html ) ) { 70252 html = html.call( this[ 0 ] ); 70253 } 70254 70255 // The elements to wrap the target around 70256 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); 70257 70258 if ( this[ 0 ].parentNode ) { 70259 wrap.insertBefore( this[ 0 ] ); 70260 } 70261 70262 wrap.map( function() { 70263 var elem = this; 70264 70265 while ( elem.firstElementChild ) { 70266 elem = elem.firstElementChild; 70267 } 70268 70269 return elem; 70270 } ).append( this ); 70271 } 70272 70273 return this; 70274 }, 70275 70276 wrapInner: function( html ) { 70277 if ( isFunction( html ) ) { 70278 return this.each( function( i ) { 70279 jQuery( this ).wrapInner( html.call( this, i ) ); 70280 } ); 70281 } 70282 70283 return this.each( function() { 70284 var self = jQuery( this ), 70285 contents = self.contents(); 70286 70287 if ( contents.length ) { 70288 contents.wrapAll( html ); 70289 70290 } else { 70291 self.append( html ); 70292 } 70293 } ); 70294 }, 70295 70296 wrap: function( html ) { 70297 var htmlIsFunction = isFunction( html ); 70298 70299 return this.each( function( i ) { 70300 jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); 70301 } ); 70302 }, 70303 70304 unwrap: function( selector ) { 70305 this.parent( selector ).not( "body" ).each( function() { 70306 jQuery( this ).replaceWith( this.childNodes ); 70307 } ); 70308 return this; 70309 } 70310} ); 70311 70312 70313jQuery.expr.pseudos.hidden = function( elem ) { 70314 return !jQuery.expr.pseudos.visible( elem ); 70315}; 70316jQuery.expr.pseudos.visible = function( elem ) { 70317 return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 70318}; 70319 70320 70321 70322 70323jQuery.ajaxSettings.xhr = function() { 70324 try { 70325 return new window.XMLHttpRequest(); 70326 } catch ( e ) {} 70327}; 70328 70329var xhrSuccessStatus = { 70330 70331 // File protocol always yields status code 0, assume 200 70332 0: 200, 70333 70334 // Support: IE <=9 only 70335 // #1450: sometimes IE returns 1223 when it should be 204 70336 1223: 204 70337 }, 70338 xhrSupported = jQuery.ajaxSettings.xhr(); 70339 70340support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); 70341support.ajax = xhrSupported = !!xhrSupported; 70342 70343jQuery.ajaxTransport( function( options ) { 70344 var callback, errorCallback; 70345 70346 // Cross domain only allowed if supported through XMLHttpRequest 70347 if ( support.cors || xhrSupported && !options.crossDomain ) { 70348 return { 70349 send: function( headers, complete ) { 70350 var i, 70351 xhr = options.xhr(); 70352 70353 xhr.open( 70354 options.type, 70355 options.url, 70356 options.async, 70357 options.username, 70358 options.password 70359 ); 70360 70361 // Apply custom fields if provided 70362 if ( options.xhrFields ) { 70363 for ( i in options.xhrFields ) { 70364 xhr[ i ] = options.xhrFields[ i ]; 70365 } 70366 } 70367 70368 // Override mime type if needed 70369 if ( options.mimeType && xhr.overrideMimeType ) { 70370 xhr.overrideMimeType( options.mimeType ); 70371 } 70372 70373 // X-Requested-With header 70374 // For cross-domain requests, seeing as conditions for a preflight are 70375 // akin to a jigsaw puzzle, we simply never set it to be sure. 70376 // (it can always be set on a per-request basis or even using ajaxSetup) 70377 // For same-domain requests, won't change header if already provided. 70378 if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { 70379 headers[ "X-Requested-With" ] = "XMLHttpRequest"; 70380 } 70381 70382 // Set headers 70383 for ( i in headers ) { 70384 xhr.setRequestHeader( i, headers[ i ] ); 70385 } 70386 70387 // Callback 70388 callback = function( type ) { 70389 return function() { 70390 if ( callback ) { 70391 callback = errorCallback = xhr.onload = 70392 xhr.onerror = xhr.onabort = xhr.ontimeout = 70393 xhr.onreadystatechange = null; 70394 70395 if ( type === "abort" ) { 70396 xhr.abort(); 70397 } else if ( type === "error" ) { 70398 70399 // Support: IE <=9 only 70400 // On a manual native abort, IE9 throws 70401 // errors on any property access that is not readyState 70402 if ( typeof xhr.status !== "number" ) { 70403 complete( 0, "error" ); 70404 } else { 70405 complete( 70406 70407 // File: protocol always yields status 0; see #8605, #14207 70408 xhr.status, 70409 xhr.statusText 70410 ); 70411 } 70412 } else { 70413 complete( 70414 xhrSuccessStatus[ xhr.status ] || xhr.status, 70415 xhr.statusText, 70416 70417 // Support: IE <=9 only 70418 // IE9 has no XHR2 but throws on binary (trac-11426) 70419 // For XHR2 non-text, let the caller handle it (gh-2498) 70420 ( xhr.responseType || "text" ) !== "text" || 70421 typeof xhr.responseText !== "string" ? 70422 { binary: xhr.response } : 70423 { text: xhr.responseText }, 70424 xhr.getAllResponseHeaders() 70425 ); 70426 } 70427 } 70428 }; 70429 }; 70430 70431 // Listen to events 70432 xhr.onload = callback(); 70433 errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); 70434 70435 // Support: IE 9 only 70436 // Use onreadystatechange to replace onabort 70437 // to handle uncaught aborts 70438 if ( xhr.onabort !== undefined ) { 70439 xhr.onabort = errorCallback; 70440 } else { 70441 xhr.onreadystatechange = function() { 70442 70443 // Check readyState before timeout as it changes 70444 if ( xhr.readyState === 4 ) { 70445 70446 // Allow onerror to be called first, 70447 // but that will not handle a native abort 70448 // Also, save errorCallback to a variable 70449 // as xhr.onerror cannot be accessed 70450 window.setTimeout( function() { 70451 if ( callback ) { 70452 errorCallback(); 70453 } 70454 } ); 70455 } 70456 }; 70457 } 70458 70459 // Create the abort callback 70460 callback = callback( "abort" ); 70461 70462 try { 70463 70464 // Do send the request (this may raise an exception) 70465 xhr.send( options.hasContent && options.data || null ); 70466 } catch ( e ) { 70467 70468 // #14683: Only rethrow if this hasn't been notified as an error yet 70469 if ( callback ) { 70470 throw e; 70471 } 70472 } 70473 }, 70474 70475 abort: function() { 70476 if ( callback ) { 70477 callback(); 70478 } 70479 } 70480 }; 70481 } 70482} ); 70483 70484 70485 70486 70487// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 70488jQuery.ajaxPrefilter( function( s ) { 70489 if ( s.crossDomain ) { 70490 s.contents.script = false; 70491 } 70492} ); 70493 70494// Install script dataType 70495jQuery.ajaxSetup( { 70496 accepts: { 70497 script: "text/javascript, application/javascript, " + 70498 "application/ecmascript, application/x-ecmascript" 70499 }, 70500 contents: { 70501 script: /\b(?:java|ecma)script\b/ 70502 }, 70503 converters: { 70504 "text script": function( text ) { 70505 jQuery.globalEval( text ); 70506 return text; 70507 } 70508 } 70509} ); 70510 70511// Handle cache's special case and crossDomain 70512jQuery.ajaxPrefilter( "script", function( s ) { 70513 if ( s.cache === undefined ) { 70514 s.cache = false; 70515 } 70516 if ( s.crossDomain ) { 70517 s.type = "GET"; 70518 } 70519} ); 70520 70521// Bind script tag hack transport 70522jQuery.ajaxTransport( "script", function( s ) { 70523 70524 // This transport only deals with cross domain or forced-by-attrs requests 70525 if ( s.crossDomain || s.scriptAttrs ) { 70526 var script, callback; 70527 return { 70528 send: function( _, complete ) { 70529 script = jQuery( "<script>" ) 70530 .attr( s.scriptAttrs || {} ) 70531 .prop( { charset: s.scriptCharset, src: s.url } ) 70532 .on( "load error", callback = function( evt ) { 70533 script.remove(); 70534 callback = null; 70535 if ( evt ) { 70536 complete( evt.type === "error" ? 404 : 200, evt.type ); 70537 } 70538 } ); 70539 70540 // Use native DOM manipulation to avoid our domManip AJAX trickery 70541 document.head.appendChild( script[ 0 ] ); 70542 }, 70543 abort: function() { 70544 if ( callback ) { 70545 callback(); 70546 } 70547 } 70548 }; 70549 } 70550} ); 70551 70552 70553 70554 70555var oldCallbacks = [], 70556 rjsonp = /(=)\?(?=&|$)|\?\?/; 70557 70558// Default jsonp settings 70559jQuery.ajaxSetup( { 70560 jsonp: "callback", 70561 jsonpCallback: function() { 70562 var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); 70563 this[ callback ] = true; 70564 return callback; 70565 } 70566} ); 70567 70568// Detect, normalize options and install callbacks for jsonp requests 70569jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { 70570 70571 var callbackName, overwritten, responseContainer, 70572 jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? 70573 "url" : 70574 typeof s.data === "string" && 70575 ( s.contentType || "" ) 70576 .indexOf( "application/x-www-form-urlencoded" ) === 0 && 70577 rjsonp.test( s.data ) && "data" 70578 ); 70579 70580 // Handle iff the expected data type is "jsonp" or we have a parameter to set 70581 if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { 70582 70583 // Get callback name, remembering preexisting value associated with it 70584 callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? 70585 s.jsonpCallback() : 70586 s.jsonpCallback; 70587 70588 // Insert callback into url or form data 70589 if ( jsonProp ) { 70590 s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); 70591 } else if ( s.jsonp !== false ) { 70592 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; 70593 } 70594 70595 // Use data converter to retrieve json after script execution 70596 s.converters[ "script json" ] = function() { 70597 if ( !responseContainer ) { 70598 jQuery.error( callbackName + " was not called" ); 70599 } 70600 return responseContainer[ 0 ]; 70601 }; 70602 70603 // Force json dataType 70604 s.dataTypes[ 0 ] = "json"; 70605 70606 // Install callback 70607 overwritten = window[ callbackName ]; 70608 window[ callbackName ] = function() { 70609 responseContainer = arguments; 70610 }; 70611 70612 // Clean-up function (fires after converters) 70613 jqXHR.always( function() { 70614 70615 // If previous value didn't exist - remove it 70616 if ( overwritten === undefined ) { 70617 jQuery( window ).removeProp( callbackName ); 70618 70619 // Otherwise restore preexisting value 70620 } else { 70621 window[ callbackName ] = overwritten; 70622 } 70623 70624 // Save back as free 70625 if ( s[ callbackName ] ) { 70626 70627 // Make sure that re-using the options doesn't screw things around 70628 s.jsonpCallback = originalSettings.jsonpCallback; 70629 70630 // Save the callback name for future use 70631 oldCallbacks.push( callbackName ); 70632 } 70633 70634 // Call if it was a function and we have a response 70635 if ( responseContainer && isFunction( overwritten ) ) { 70636 overwritten( responseContainer[ 0 ] ); 70637 } 70638 70639 responseContainer = overwritten = undefined; 70640 } ); 70641 70642 // Delegate to script 70643 return "script"; 70644 } 70645} ); 70646 70647 70648 70649 70650// Support: Safari 8 only 70651// In Safari 8 documents created via document.implementation.createHTMLDocument 70652// collapse sibling forms: the second one becomes a child of the first one. 70653// Because of that, this security measure has to be disabled in Safari 8. 70654// https://bugs.webkit.org/show_bug.cgi?id=137337 70655support.createHTMLDocument = ( function() { 70656 var body = document.implementation.createHTMLDocument( "" ).body; 70657 body.innerHTML = "<form></form><form></form>"; 70658 return body.childNodes.length === 2; 70659} )(); 70660 70661 70662// Argument "data" should be string of html 70663// context (optional): If specified, the fragment will be created in this context, 70664// defaults to document 70665// keepScripts (optional): If true, will include scripts passed in the html string 70666jQuery.parseHTML = function( data, context, keepScripts ) { 70667 if ( typeof data !== "string" ) { 70668 return []; 70669 } 70670 if ( typeof context === "boolean" ) { 70671 keepScripts = context; 70672 context = false; 70673 } 70674 70675 var base, parsed, scripts; 70676 70677 if ( !context ) { 70678 70679 // Stop scripts or inline event handlers from being executed immediately 70680 // by using document.implementation 70681 if ( support.createHTMLDocument ) { 70682 context = document.implementation.createHTMLDocument( "" ); 70683 70684 // Set the base href for the created document 70685 // so any parsed elements with URLs 70686 // are based on the document's URL (gh-2965) 70687 base = context.createElement( "base" ); 70688 base.href = document.location.href; 70689 context.head.appendChild( base ); 70690 } else { 70691 context = document; 70692 } 70693 } 70694 70695 parsed = rsingleTag.exec( data ); 70696 scripts = !keepScripts && []; 70697 70698 // Single tag 70699 if ( parsed ) { 70700 return [ context.createElement( parsed[ 1 ] ) ]; 70701 } 70702 70703 parsed = buildFragment( [ data ], context, scripts ); 70704 70705 if ( scripts && scripts.length ) { 70706 jQuery( scripts ).remove(); 70707 } 70708 70709 return jQuery.merge( [], parsed.childNodes ); 70710}; 70711 70712 70713/** 70714 * Load a url into a page 70715 */ 70716jQuery.fn.load = function( url, params, callback ) { 70717 var selector, type, response, 70718 self = this, 70719 off = url.indexOf( " " ); 70720 70721 if ( off > -1 ) { 70722 selector = stripAndCollapse( url.slice( off ) ); 70723 url = url.slice( 0, off ); 70724 } 70725 70726 // If it's a function 70727 if ( isFunction( params ) ) { 70728 70729 // We assume that it's the callback 70730 callback = params; 70731 params = undefined; 70732 70733 // Otherwise, build a param string 70734 } else if ( params && typeof params === "object" ) { 70735 type = "POST"; 70736 } 70737 70738 // If we have elements to modify, make the request 70739 if ( self.length > 0 ) { 70740 jQuery.ajax( { 70741 url: url, 70742 70743 // If "type" variable is undefined, then "GET" method will be used. 70744 // Make value of this field explicit since 70745 // user can override it through ajaxSetup method 70746 type: type || "GET", 70747 dataType: "html", 70748 data: params 70749 } ).done( function( responseText ) { 70750 70751 // Save response for use in complete callback 70752 response = arguments; 70753 70754 self.html( selector ? 70755 70756 // If a selector was specified, locate the right elements in a dummy div 70757 // Exclude scripts to avoid IE 'Permission Denied' errors 70758 jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : 70759 70760 // Otherwise use the full result 70761 responseText ); 70762 70763 // If the request succeeds, this function gets "data", "status", "jqXHR" 70764 // but they are ignored because response was set above. 70765 // If it fails, this function gets "jqXHR", "status", "error" 70766 } ).always( callback && function( jqXHR, status ) { 70767 self.each( function() { 70768 callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); 70769 } ); 70770 } ); 70771 } 70772 70773 return this; 70774}; 70775 70776 70777 70778 70779jQuery.expr.pseudos.animated = function( elem ) { 70780 return jQuery.grep( jQuery.timers, function( fn ) { 70781 return elem === fn.elem; 70782 } ).length; 70783}; 70784 70785 70786 70787 70788jQuery.offset = { 70789 setOffset: function( elem, options, i ) { 70790 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 70791 position = jQuery.css( elem, "position" ), 70792 curElem = jQuery( elem ), 70793 props = {}; 70794 70795 // Set position first, in-case top/left are set even on static elem 70796 if ( position === "static" ) { 70797 elem.style.position = "relative"; 70798 } 70799 70800 curOffset = curElem.offset(); 70801 curCSSTop = jQuery.css( elem, "top" ); 70802 curCSSLeft = jQuery.css( elem, "left" ); 70803 calculatePosition = ( position === "absolute" || position === "fixed" ) && 70804 ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; 70805 70806 // Need to be able to calculate position if either 70807 // top or left is auto and position is either absolute or fixed 70808 if ( calculatePosition ) { 70809 curPosition = curElem.position(); 70810 curTop = curPosition.top; 70811 curLeft = curPosition.left; 70812 70813 } else { 70814 curTop = parseFloat( curCSSTop ) || 0; 70815 curLeft = parseFloat( curCSSLeft ) || 0; 70816 } 70817 70818 if ( isFunction( options ) ) { 70819 70820 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 70821 options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); 70822 } 70823 70824 if ( options.top != null ) { 70825 props.top = ( options.top - curOffset.top ) + curTop; 70826 } 70827 if ( options.left != null ) { 70828 props.left = ( options.left - curOffset.left ) + curLeft; 70829 } 70830 70831 if ( "using" in options ) { 70832 options.using.call( elem, props ); 70833 70834 } else { 70835 curElem.css( props ); 70836 } 70837 } 70838}; 70839 70840jQuery.fn.extend( { 70841 70842 // offset() relates an element's border box to the document origin 70843 offset: function( options ) { 70844 70845 // Preserve chaining for setter 70846 if ( arguments.length ) { 70847 return options === undefined ? 70848 this : 70849 this.each( function( i ) { 70850 jQuery.offset.setOffset( this, options, i ); 70851 } ); 70852 } 70853 70854 var rect, win, 70855 elem = this[ 0 ]; 70856 70857 if ( !elem ) { 70858 return; 70859 } 70860 70861 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 70862 // Support: IE <=11 only 70863 // Running getBoundingClientRect on a 70864 // disconnected node in IE throws an error 70865 if ( !elem.getClientRects().length ) { 70866 return { top: 0, left: 0 }; 70867 } 70868 70869 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 70870 rect = elem.getBoundingClientRect(); 70871 win = elem.ownerDocument.defaultView; 70872 return { 70873 top: rect.top + win.pageYOffset, 70874 left: rect.left + win.pageXOffset 70875 }; 70876 }, 70877 70878 // position() relates an element's margin box to its offset parent's padding box 70879 // This corresponds to the behavior of CSS absolute positioning 70880 position: function() { 70881 if ( !this[ 0 ] ) { 70882 return; 70883 } 70884 70885 var offsetParent, offset, doc, 70886 elem = this[ 0 ], 70887 parentOffset = { top: 0, left: 0 }; 70888 70889 // position:fixed elements are offset from the viewport, which itself always has zero offset 70890 if ( jQuery.css( elem, "position" ) === "fixed" ) { 70891 70892 // Assume position:fixed implies availability of getBoundingClientRect 70893 offset = elem.getBoundingClientRect(); 70894 70895 } else { 70896 offset = this.offset(); 70897 70898 // Account for the *real* offset parent, which can be the document or its root element 70899 // when a statically positioned element is identified 70900 doc = elem.ownerDocument; 70901 offsetParent = elem.offsetParent || doc.documentElement; 70902 while ( offsetParent && 70903 ( offsetParent === doc.body || offsetParent === doc.documentElement ) && 70904 jQuery.css( offsetParent, "position" ) === "static" ) { 70905 70906 offsetParent = offsetParent.parentNode; 70907 } 70908 if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { 70909 70910 // Incorporate borders into its offset, since they are outside its content origin 70911 parentOffset = jQuery( offsetParent ).offset(); 70912 parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); 70913 parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); 70914 } 70915 } 70916 70917 // Subtract parent offsets and element margins 70918 return { 70919 top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), 70920 left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) 70921 }; 70922 }, 70923 70924 // This method will return documentElement in the following cases: 70925 // 1) For the element inside the iframe without offsetParent, this method will return 70926 // documentElement of the parent window 70927 // 2) For the hidden or detached element 70928 // 3) For body or html element, i.e. in case of the html node - it will return itself 70929 // 70930 // but those exceptions were never presented as a real life use-cases 70931 // and might be considered as more preferable results. 70932 // 70933 // This logic, however, is not guaranteed and can change at any point in the future 70934 offsetParent: function() { 70935 return this.map( function() { 70936 var offsetParent = this.offsetParent; 70937 70938 while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { 70939 offsetParent = offsetParent.offsetParent; 70940 } 70941 70942 return offsetParent || documentElement; 70943 } ); 70944 } 70945} ); 70946 70947// Create scrollLeft and scrollTop methods 70948jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { 70949 var top = "pageYOffset" === prop; 70950 70951 jQuery.fn[ method ] = function( val ) { 70952 return access( this, function( elem, method, val ) { 70953 70954 // Coalesce documents and windows 70955 var win; 70956 if ( isWindow( elem ) ) { 70957 win = elem; 70958 } else if ( elem.nodeType === 9 ) { 70959 win = elem.defaultView; 70960 } 70961 70962 if ( val === undefined ) { 70963 return win ? win[ prop ] : elem[ method ]; 70964 } 70965 70966 if ( win ) { 70967 win.scrollTo( 70968 !top ? val : win.pageXOffset, 70969 top ? val : win.pageYOffset 70970 ); 70971 70972 } else { 70973 elem[ method ] = val; 70974 } 70975 }, method, val, arguments.length ); 70976 }; 70977} ); 70978 70979// Support: Safari <=7 - 9.1, Chrome <=37 - 49 70980// Add the top/left cssHooks using jQuery.fn.position 70981// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 70982// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 70983// getComputedStyle returns percent when specified for top/left/bottom/right; 70984// rather than make the css module depend on the offset module, just check for it here 70985jQuery.each( [ "top", "left" ], function( _i, prop ) { 70986 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, 70987 function( elem, computed ) { 70988 if ( computed ) { 70989 computed = curCSS( elem, prop ); 70990 70991 // If curCSS returns percentage, fallback to offset 70992 return rnumnonpx.test( computed ) ? 70993 jQuery( elem ).position()[ prop ] + "px" : 70994 computed; 70995 } 70996 } 70997 ); 70998} ); 70999 71000 71001// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 71002jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 71003 jQuery.each( { 71004 padding: "inner" + name, 71005 content: type, 71006 "": "outer" + name 71007 }, function( defaultExtra, funcName ) { 71008 71009 // Margin is only for outerHeight, outerWidth 71010 jQuery.fn[ funcName ] = function( margin, value ) { 71011 var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 71012 extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 71013 71014 return access( this, function( elem, type, value ) { 71015 var doc; 71016 71017 if ( isWindow( elem ) ) { 71018 71019 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 71020 return funcName.indexOf( "outer" ) === 0 ? 71021 elem[ "inner" + name ] : 71022 elem.document.documentElement[ "client" + name ]; 71023 } 71024 71025 // Get document width or height 71026 if ( elem.nodeType === 9 ) { 71027 doc = elem.documentElement; 71028 71029 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 71030 // whichever is greatest 71031 return Math.max( 71032 elem.body[ "scroll" + name ], doc[ "scroll" + name ], 71033 elem.body[ "offset" + name ], doc[ "offset" + name ], 71034 doc[ "client" + name ] 71035 ); 71036 } 71037 71038 return value === undefined ? 71039 71040 // Get width or height on the element, requesting but not forcing parseFloat 71041 jQuery.css( elem, type, extra ) : 71042 71043 // Set width or height on the element 71044 jQuery.style( elem, type, value, extra ); 71045 }, type, chainable ? margin : undefined, chainable ); 71046 }; 71047 } ); 71048} ); 71049 71050 71051jQuery.each( [ 71052 "ajaxStart", 71053 "ajaxStop", 71054 "ajaxComplete", 71055 "ajaxError", 71056 "ajaxSuccess", 71057 "ajaxSend" 71058], function( _i, type ) { 71059 jQuery.fn[ type ] = function( fn ) { 71060 return this.on( type, fn ); 71061 }; 71062} ); 71063 71064 71065 71066 71067jQuery.fn.extend( { 71068 71069 bind: function( types, data, fn ) { 71070 return this.on( types, null, data, fn ); 71071 }, 71072 unbind: function( types, fn ) { 71073 return this.off( types, null, fn ); 71074 }, 71075 71076 delegate: function( selector, types, data, fn ) { 71077 return this.on( types, selector, data, fn ); 71078 }, 71079 undelegate: function( selector, types, fn ) { 71080 71081 // ( namespace ) or ( selector, types [, fn] ) 71082 return arguments.length === 1 ? 71083 this.off( selector, "**" ) : 71084 this.off( types, selector || "**", fn ); 71085 }, 71086 71087 hover: function( fnOver, fnOut ) { 71088 return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 71089 } 71090} ); 71091 71092jQuery.each( 71093 ( "blur focus focusin focusout resize scroll click dblclick " + 71094 "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 71095 "change select submit keydown keypress keyup contextmenu" ).split( " " ), 71096 function( _i, name ) { 71097 71098 // Handle event binding 71099 jQuery.fn[ name ] = function( data, fn ) { 71100 return arguments.length > 0 ? 71101 this.on( name, null, data, fn ) : 71102 this.trigger( name ); 71103 }; 71104 } 71105); 71106 71107 71108 71109 71110// Support: Android <=4.0 only 71111// Make sure we trim BOM and NBSP 71112var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 71113 71114// Bind a function to a context, optionally partially applying any 71115// arguments. 71116// jQuery.proxy is deprecated to promote standards (specifically Function#bind) 71117// However, it is not slated for removal any time soon 71118jQuery.proxy = function( fn, context ) { 71119 var tmp, args, proxy; 71120 71121 if ( typeof context === "string" ) { 71122 tmp = fn[ context ]; 71123 context = fn; 71124 fn = tmp; 71125 } 71126 71127 // Quick check to determine if target is callable, in the spec 71128 // this throws a TypeError, but we will just return undefined. 71129 if ( !isFunction( fn ) ) { 71130 return undefined; 71131 } 71132 71133 // Simulated bind 71134 args = slice.call( arguments, 2 ); 71135 proxy = function() { 71136 return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); 71137 }; 71138 71139 // Set the guid of unique handler to the same of original handler, so it can be removed 71140 proxy.guid = fn.guid = fn.guid || jQuery.guid++; 71141 71142 return proxy; 71143}; 71144 71145jQuery.holdReady = function( hold ) { 71146 if ( hold ) { 71147 jQuery.readyWait++; 71148 } else { 71149 jQuery.ready( true ); 71150 } 71151}; 71152jQuery.isArray = Array.isArray; 71153jQuery.parseJSON = JSON.parse; 71154jQuery.nodeName = nodeName; 71155jQuery.isFunction = isFunction; 71156jQuery.isWindow = isWindow; 71157jQuery.camelCase = camelCase; 71158jQuery.type = toType; 71159 71160jQuery.now = Date.now; 71161 71162jQuery.isNumeric = function( obj ) { 71163 71164 // As of jQuery 3.0, isNumeric is limited to 71165 // strings and numbers (primitives or objects) 71166 // that can be coerced to finite numbers (gh-2662) 71167 var type = jQuery.type( obj ); 71168 return ( type === "number" || type === "string" ) && 71169 71170 // parseFloat NaNs numeric-cast false positives ("") 71171 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 71172 // subtraction forces infinities to NaN 71173 !isNaN( obj - parseFloat( obj ) ); 71174}; 71175 71176jQuery.trim = function( text ) { 71177 return text == null ? 71178 "" : 71179 ( text + "" ).replace( rtrim, "" ); 71180}; 71181 71182 71183 71184// Register as a named AMD module, since jQuery can be concatenated with other 71185// files that may use define, but not via a proper concatenation script that 71186// understands anonymous AMD modules. A named AMD is safest and most robust 71187// way to register. Lowercase jquery is used because AMD module names are 71188// derived from file names, and jQuery is normally delivered in a lowercase 71189// file name. Do this after creating the global so that if an AMD module wants 71190// to call noConflict to hide this version of jQuery, it will work. 71191 71192// Note that for maximum portability, libraries that are not jQuery should 71193// declare themselves as anonymous modules, and avoid setting a global if an 71194// AMD loader is present. jQuery is a special case. For more information, see 71195// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 71196 71197if ( true ) { 71198 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { 71199 return jQuery; 71200 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 71201 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 71202} 71203 71204 71205 71206 71207var 71208 71209 // Map over jQuery in case of overwrite 71210 _jQuery = window.jQuery, 71211 71212 // Map over the $ in case of overwrite 71213 _$ = window.$; 71214 71215jQuery.noConflict = function( deep ) { 71216 if ( window.$ === jQuery ) { 71217 window.$ = _$; 71218 } 71219 71220 if ( deep && window.jQuery === jQuery ) { 71221 window.jQuery = _jQuery; 71222 } 71223 71224 return jQuery; 71225}; 71226 71227// Expose jQuery and $ identifiers, even in AMD 71228// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 71229// and CommonJS for browser emulators (#13566) 71230if ( typeof noGlobal === "undefined" ) { 71231 window.jQuery = window.$ = jQuery; 71232} 71233 71234 71235 71236 71237return jQuery; 71238} ); 71239 71240 71241/***/ }), 71242
vendor: 4,555 bytes, lines 71243-71420
71243/***/ "./node_modules/js-cookie/src/js.cookie.js": 71244/*!*************************************************!*\ 71245 !*** ./node_modules/js-cookie/src/js.cookie.js ***! 71246 \*************************************************/ 71247/*! no static exports found */ 71248/***/ (function(module, exports, __webpack_require__) { 71249 71250var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 71251 * JavaScript Cookie v2.2.1 71252 * https://github.com/js-cookie/js-cookie 71253 * 71254 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack 71255 * Released under the MIT license 71256 */ 71257;(function (factory) { 71258 var registeredInModuleLoader; 71259 if (true) { 71260 !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 71261 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 71262 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 71263 __WEBPACK_AMD_DEFINE_FACTORY__), 71264 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 71265 registeredInModuleLoader = true; 71266 } 71267 if (true) { 71268 module.exports = factory(); 71269 registeredInModuleLoader = true; 71270 } 71271 if (!registeredInModuleLoader) { 71272 var OldCookies = window.Cookies; 71273 var api = window.Cookies = factory(); 71274 api.noConflict = function () { 71275 window.Cookies = OldCookies; 71276 return api; 71277 }; 71278 } 71279}(function () { 71280 function extend () { 71281 var i = 0; 71282 var result = {}; 71283 for (; i < arguments.length; i++) { 71284 var attributes = arguments[ i ]; 71285 for (var key in attributes) { 71286 result[key] = attributes[key]; 71287 } 71288 } 71289 return result; 71290 } 71291 71292 function decode (s) { 71293 return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); 71294 } 71295 71296 function init (converter) { 71297 function api() {} 71298 71299 function set (key, value, attributes) { 71300 if (typeof document === 'undefined') { 71301 return; 71302 } 71303 71304 attributes = extend({ 71305 path: '/' 71306 }, api.defaults, attributes); 71307 71308 if (typeof attributes.expires === 'number') { 71309 attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5); 71310 } 71311 71312 // We're using "expires" because "max-age" is not supported by IE 71313 attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; 71314 71315 try { 71316 var result = JSON.stringify(value); 71317 if (/^[\{\[]/.test(result)) { 71318 value = result; 71319 } 71320 } catch (e) {} 71321 71322 value = converter.write ? 71323 converter.write(value, key) : 71324 encodeURIComponent(String(value)) 71325 .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); 71326 71327 key = encodeURIComponent(String(key)) 71328 .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) 71329 .replace(/[\(\)]/g, escape); 71330 71331 var stringifiedAttributes = ''; 71332 for (var attributeName in attributes) { 71333 if (!attributes[attributeName]) { 71334 continue; 71335 } 71336 stringifiedAttributes += '; ' + attributeName; 71337 if (attributes[attributeName] === true) { 71338 continue; 71339 } 71340 71341 // Considers RFC 6265 section 5.2: 71342 // ... 71343 // 3. If the remaining unparsed-attributes contains a %x3B (";") 71344 // character: 71345 // Consume the characters of the unparsed-attributes up to, 71346 // not including, the first %x3B (";") character. 71347 // ... 71348 stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; 71349 } 71350 71351 return (document.cookie = key + '=' + value + stringifiedAttributes); 71352 } 71353 71354 function get (key, json) { 71355 if (typeof document === 'undefined') { 71356 return; 71357 } 71358 71359 var jar = {}; 71360 // To prevent the for loop in the first place assign an empty array 71361 // in case there are no cookies at all. 71362 var cookies = document.cookie ? document.cookie.split('; ') : []; 71363 var i = 0; 71364 71365 for (; i < cookies.length; i++) { 71366 var parts = cookies[i].split('='); 71367 var cookie = parts.slice(1).join('='); 71368 71369 if (!json && cookie.charAt(0) === '"') { 71370 cookie = cookie.slice(1, -1); 71371 } 71372 71373 try { 71374 var name = decode(parts[0]); 71375 cookie = (converter.read || converter)(cookie, name) || 71376 decode(cookie); 71377 71378 if (json) { 71379 try { 71380 cookie = JSON.parse(cookie); 71381 } catch (e) {} 71382 } 71383 71384 jar[name] = cookie; 71385 71386 if (key === name) { 71387 break; 71388 } 71389 } catch (e) {} 71390 } 71391 71392 return key ? jar[key] : jar; 71393 } 71394 71395 api.set = set; 71396 api.get = function (key) { 71397 return get(key, false /* read as raw */); 71398 }; 71399 api.getJSON = function (key) { 71400 return get(key, true /* read as json */); 71401 }; 71402 api.remove = function (key, attributes) { 71403 set(key, '', extend(attributes, { 71404 expires: -1 71405 })); 71406 }; 71407 71408 api.defaults = {}; 71409 71410 api.withConverter = init; 71411 71412 return api; 71413 } 71414 71415 return init(function () {}); 71416})); 71417 71418 71419/***/ }), 71420
vendor: 15,122 bytes, lines 71421-71951
71421/***/ "./node_modules/node-libs-browser/node_modules/punycode/punycode.js": 71422/*!**************************************************************************!*\ 71423 !*** ./node_modules/node-libs-browser/node_modules/punycode/punycode.js ***! 71424 \**************************************************************************/ 71425/*! no static exports found */ 71426/***/ (function(module, exports, __webpack_require__) { 71427 71428/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */ 71429;(function(root) { 71430 71431 /** Detect free variables */ 71432 var freeExports = true && exports && 71433 !exports.nodeType && exports; 71434 var freeModule = true && module && 71435 !module.nodeType && module; 71436 var freeGlobal = typeof global == 'object' && global; 71437 if ( 71438 freeGlobal.global === freeGlobal || 71439 freeGlobal.window === freeGlobal || 71440 freeGlobal.self === freeGlobal 71441 ) { 71442 root = freeGlobal; 71443 } 71444 71445 /** 71446 * The `punycode` object. 71447 * @name punycode 71448 * @type Object 71449 */ 71450 var punycode, 71451 71452 /** Highest positive signed 32-bit float value */ 71453 maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 71454 71455 /** Bootstring parameters */ 71456 base = 36, 71457 tMin = 1, 71458 tMax = 26, 71459 skew = 38, 71460 damp = 700, 71461 initialBias = 72, 71462 initialN = 128, // 0x80 71463 delimiter = '-', // '\x2D' 71464 71465 /** Regular expressions */ 71466 regexPunycode = /^xn--/, 71467 regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars 71468 regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators 71469 71470 /** Error messages */ 71471 errors = { 71472 'overflow': 'Overflow: input needs wider integers to process', 71473 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', 71474 'invalid-input': 'Invalid input' 71475 }, 71476 71477 /** Convenience shortcuts */ 71478 baseMinusTMin = base - tMin, 71479 floor = Math.floor, 71480 stringFromCharCode = String.fromCharCode, 71481 71482 /** Temporary variable */ 71483 key; 71484 71485 /*--------------------------------------------------------------------------*/ 71486 71487 /** 71488 * A generic error utility function. 71489 * @private 71490 * @param {String} type The error type. 71491 * @returns {Error} Throws a `RangeError` with the applicable error message. 71492 */ 71493 function error(type) { 71494 throw new RangeError(errors[type]); 71495 } 71496 71497 /** 71498 * A generic `Array#map` utility function. 71499 * @private 71500 * @param {Array} array The array to iterate over. 71501 * @param {Function} callback The function that gets called for every array 71502 * item. 71503 * @returns {Array} A new array of values returned by the callback function. 71504 */ 71505 function map(array, fn) { 71506 var length = array.length; 71507 var result = []; 71508 while (length--) { 71509 result[length] = fn(array[length]); 71510 } 71511 return result; 71512 } 71513 71514 /** 71515 * A simple `Array#map`-like wrapper to work with domain name strings or email 71516 * addresses. 71517 * @private 71518 * @param {String} domain The domain name or email address. 71519 * @param {Function} callback The function that gets called for every 71520 * character. 71521 * @returns {Array} A new string of characters returned by the callback 71522 * function. 71523 */ 71524 function mapDomain(string, fn) { 71525 var parts = string.split('@'); 71526 var result = ''; 71527 if (parts.length > 1) { 71528 // In email addresses, only the domain name should be punycoded. Leave 71529 // the local part (i.e. everything up to `@`) intact. 71530 result = parts[0] + '@'; 71531 string = parts[1]; 71532 } 71533 // Avoid `split(regex)` for IE8 compatibility. See #17. 71534 string = string.replace(regexSeparators, '\x2E'); 71535 var labels = string.split('.'); 71536 var encoded = map(labels, fn).join('.'); 71537 return result + encoded; 71538 } 71539 71540 /** 71541 * Creates an array containing the numeric code points of each Unicode 71542 * character in the string. While JavaScript uses UCS-2 internally, 71543 * this function will convert a pair of surrogate halves (each of which 71544 * UCS-2 exposes as separate characters) into a single code point, 71545 * matching UTF-16. 71546 * @see `punycode.ucs2.encode` 71547 * @see <https://mathiasbynens.be/notes/javascript-encoding> 71548 * @memberOf punycode.ucs2 71549 * @name decode 71550 * @param {String} string The Unicode input string (UCS-2). 71551 * @returns {Array} The new array of code points. 71552 */ 71553 function ucs2decode(string) { 71554 var output = [], 71555 counter = 0, 71556 length = string.length, 71557 value, 71558 extra; 71559 while (counter < length) { 71560 value = string.charCodeAt(counter++); 71561 if (value >= 0xD800 && value <= 0xDBFF && counter < length) { 71562 // high surrogate, and there is a next character 71563 extra = string.charCodeAt(counter++); 71564 if ((extra & 0xFC00) == 0xDC00) { // low surrogate 71565 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); 71566 } else { 71567 // unmatched surrogate; only append this code unit, in case the next 71568 // code unit is the high surrogate of a surrogate pair 71569 output.push(value); 71570 counter--; 71571 } 71572 } else { 71573 output.push(value); 71574 } 71575 } 71576 return output; 71577 } 71578 71579 /** 71580 * Creates a string based on an array of numeric code points. 71581 * @see `punycode.ucs2.decode` 71582 * @memberOf punycode.ucs2 71583 * @name encode 71584 * @param {Array} codePoints The array of numeric code points. 71585 * @returns {String} The new Unicode string (UCS-2). 71586 */ 71587 function ucs2encode(array) { 71588 return map(array, function(value) { 71589 var output = ''; 71590 if (value > 0xFFFF) { 71591 value -= 0x10000; 71592 output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); 71593 value = 0xDC00 | value & 0x3FF; 71594 } 71595 output += stringFromCharCode(value); 71596 return output; 71597 }).join(''); 71598 } 71599 71600 /** 71601 * Converts a basic code point into a digit/integer. 71602 * @see `digitToBasic()` 71603 * @private 71604 * @param {Number} codePoint The basic numeric code point value. 71605 * @returns {Number} The numeric value of a basic code point (for use in 71606 * representing integers) in the range `0` to `base - 1`, or `base` if 71607 * the code point does not represent a value. 71608 */ 71609 function basicToDigit(codePoint) { 71610 if (codePoint - 48 < 10) { 71611 return codePoint - 22; 71612 } 71613 if (codePoint - 65 < 26) { 71614 return codePoint - 65; 71615 } 71616 if (codePoint - 97 < 26) { 71617 return codePoint - 97; 71618 } 71619 return base; 71620 } 71621 71622 /** 71623 * Converts a digit/integer into a basic code point. 71624 * @see `basicToDigit()` 71625 * @private 71626 * @param {Number} digit The numeric value of a basic code point. 71627 * @returns {Number} The basic code point whose value (when used for 71628 * representing integers) is `digit`, which needs to be in the range 71629 * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is 71630 * used; else, the lowercase form is used. The behavior is undefined 71631 * if `flag` is non-zero and `digit` has no uppercase form. 71632 */ 71633 function digitToBasic(digit, flag) { 71634 // 0..25 map to ASCII a..z or A..Z 71635 // 26..35 map to ASCII 0..9 71636 return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); 71637 } 71638 71639 /** 71640 * Bias adaptation function as per section 3.4 of RFC 3492. 71641 * https://tools.ietf.org/html/rfc3492#section-3.4 71642 * @private 71643 */ 71644 function adapt(delta, numPoints, firstTime) { 71645 var k = 0; 71646 delta = firstTime ? floor(delta / damp) : delta >> 1; 71647 delta += floor(delta / numPoints); 71648 for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { 71649 delta = floor(delta / baseMinusTMin); 71650 } 71651 return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); 71652 } 71653 71654 /** 71655 * Converts a Punycode string of ASCII-only symbols to a string of Unicode 71656 * symbols. 71657 * @memberOf punycode 71658 * @param {String} input The Punycode string of ASCII-only symbols. 71659 * @returns {String} The resulting string of Unicode symbols. 71660 */ 71661 function decode(input) { 71662 // Don't use UCS-2 71663 var output = [], 71664 inputLength = input.length, 71665 out, 71666 i = 0, 71667 n = initialN, 71668 bias = initialBias, 71669 basic, 71670 j, 71671 index, 71672 oldi, 71673 w, 71674 k, 71675 digit, 71676 t, 71677 /** Cached calculation results */ 71678 baseMinusT; 71679 71680 // Handle the basic code points: let `basic` be the number of input code 71681 // points before the last delimiter, or `0` if there is none, then copy 71682 // the first basic code points to the output. 71683 71684 basic = input.lastIndexOf(delimiter); 71685 if (basic < 0) { 71686 basic = 0; 71687 } 71688 71689 for (j = 0; j < basic; ++j) { 71690 // if it's not a basic code point 71691 if (input.charCodeAt(j) >= 0x80) { 71692 error('not-basic'); 71693 } 71694 output.push(input.charCodeAt(j)); 71695 } 71696 71697 // Main decoding loop: start just after the last delimiter if any basic code 71698 // points were copied; start at the beginning otherwise. 71699 71700 for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { 71701 71702 // `index` is the index of the next character to be consumed. 71703 // Decode a generalized variable-length integer into `delta`, 71704 // which gets added to `i`. The overflow checking is easier 71705 // if we increase `i` as we go, then subtract off its starting 71706 // value at the end to obtain `delta`. 71707 for (oldi = i, w = 1, k = base; /* no condition */; k += base) { 71708 71709 if (index >= inputLength) { 71710 error('invalid-input'); 71711 } 71712 71713 digit = basicToDigit(input.charCodeAt(index++)); 71714 71715 if (digit >= base || digit > floor((maxInt - i) / w)) { 71716 error('overflow'); 71717 } 71718 71719 i += digit * w; 71720 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); 71721 71722 if (digit < t) { 71723 break; 71724 } 71725 71726 baseMinusT = base - t; 71727 if (w > floor(maxInt / baseMinusT)) { 71728 error('overflow'); 71729 } 71730 71731 w *= baseMinusT; 71732 71733 } 71734 71735 out = output.length + 1; 71736 bias = adapt(i - oldi, out, oldi == 0); 71737 71738 // `i` was supposed to wrap around from `out` to `0`, 71739 // incrementing `n` each time, so we'll fix that now: 71740 if (floor(i / out) > maxInt - n) { 71741 error('overflow'); 71742 } 71743 71744 n += floor(i / out); 71745 i %= out; 71746 71747 // Insert `n` at position `i` of the output 71748 output.splice(i++, 0, n); 71749 71750 } 71751 71752 return ucs2encode(output); 71753 } 71754 71755 /** 71756 * Converts a string of Unicode symbols (e.g. a domain name label) to a 71757 * Punycode string of ASCII-only symbols. 71758 * @memberOf punycode 71759 * @param {String} input The string of Unicode symbols. 71760 * @returns {String} The resulting Punycode string of ASCII-only symbols. 71761 */ 71762 function encode(input) { 71763 var n, 71764 delta, 71765 handledCPCount, 71766 basicLength, 71767 bias, 71768 j, 71769 m, 71770 q, 71771 k, 71772 t, 71773 currentValue, 71774 output = [], 71775 /** `inputLength` will hold the number of code points in `input`. */ 71776 inputLength, 71777 /** Cached calculation results */ 71778 handledCPCountPlusOne, 71779 baseMinusT, 71780 qMinusT; 71781 71782 // Convert the input in UCS-2 to Unicode 71783 input = ucs2decode(input); 71784 71785 // Cache the length 71786 inputLength = input.length; 71787 71788 // Initialize the state 71789 n = initialN; 71790 delta = 0; 71791 bias = initialBias; 71792 71793 // Handle the basic code points 71794 for (j = 0; j < inputLength; ++j) { 71795 currentValue = input[j]; 71796 if (currentValue < 0x80) { 71797 output.push(stringFromCharCode(currentValue)); 71798 } 71799 } 71800 71801 handledCPCount = basicLength = output.length; 71802 71803 // `handledCPCount` is the number of code points that have been handled; 71804 // `basicLength` is the number of basic code points. 71805 71806 // Finish the basic string - if it is not empty - with a delimiter 71807 if (basicLength) { 71808 output.push(delimiter); 71809 } 71810 71811 // Main encoding loop: 71812 while (handledCPCount < inputLength) { 71813 71814 // All non-basic code points < n have been handled already. Find the next 71815 // larger one: 71816 for (m = maxInt, j = 0; j < inputLength; ++j) { 71817 currentValue = input[j]; 71818 if (currentValue >= n && currentValue < m) { 71819 m = currentValue; 71820 } 71821 } 71822 71823 // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, 71824 // but guard against overflow 71825 handledCPCountPlusOne = handledCPCount + 1; 71826 if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { 71827 error('overflow'); 71828 } 71829 71830 delta += (m - n) * handledCPCountPlusOne; 71831 n = m; 71832 71833 for (j = 0; j < inputLength; ++j) { 71834 currentValue = input[j]; 71835 71836 if (currentValue < n && ++delta > maxInt) { 71837 error('overflow'); 71838 } 71839 71840 if (currentValue == n) { 71841 // Represent delta as a generalized variable-length integer 71842 for (q = delta, k = base; /* no condition */; k += base) { 71843 t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); 71844 if (q < t) { 71845 break; 71846 } 71847 qMinusT = q - t; 71848 baseMinusT = base - t; 71849 output.push( 71850 stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) 71851 ); 71852 q = floor(qMinusT / baseMinusT); 71853 } 71854 71855 output.push(stringFromCharCode(digitToBasic(q, 0))); 71856 bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); 71857 delta = 0; 71858 ++handledCPCount; 71859 } 71860 } 71861 71862 ++delta; 71863 ++n; 71864 71865 } 71866 return output.join(''); 71867 } 71868 71869 /** 71870 * Converts a Punycode string representing a domain name or an email address 71871 * to Unicode. Only the Punycoded parts of the input will be converted, i.e. 71872 * it doesn't matter if you call it on a string that has already been 71873 * converted to Unicode. 71874 * @memberOf punycode 71875 * @param {String} input The Punycoded domain name or email address to 71876 * convert to Unicode. 71877 * @returns {String} The Unicode representation of the given Punycode 71878 * string. 71879 */ 71880 function toUnicode(input) { 71881 return mapDomain(input, function(string) { 71882 return regexPunycode.test(string) 71883 ? decode(string.slice(4).toLowerCase()) 71884 : string; 71885 }); 71886 } 71887 71888 /** 71889 * Converts a Unicode string representing a domain name or an email address to 71890 * Punycode. Only the non-ASCII parts of the domain name will be converted, 71891 * i.e. it doesn't matter if you call it with a domain that's already in 71892 * ASCII. 71893 * @memberOf punycode 71894 * @param {String} input The domain name or email address to convert, as a 71895 * Unicode string. 71896 * @returns {String} The Punycode representation of the given domain name or 71897 * email address. 71898 */ 71899 function toASCII(input) { 71900 return mapDomain(input, function(string) { 71901 return regexNonASCII.test(string) 71902 ? 'xn--' + encode(string) 71903 : string; 71904 }); 71905 } 71906 71907 /*--------------------------------------------------------------------------*/ 71908 71909 /** Define the public API */ 71910 punycode = { 71911 /** 71912 * A string representing the current Punycode.js version number. 71913 * @memberOf punycode 71914 * @type String 71915 */ 71916 'version': '1.4.1', 71917 /** 71918 * An object of methods to convert from JavaScript's internal character 71919 * representation (UCS-2) to Unicode code points, and back. 71920 * @see <https://mathiasbynens.be/notes/javascript-encoding> 71921 * @memberOf punycode 71922 * @type Object 71923 */ 71924 'ucs2': { 71925 'decode': ucs2decode, 71926 'encode': ucs2encode 71927 }, 71928 'decode': decode, 71929 'encode': encode, 71930 'toASCII': toASCII, 71931 'toUnicode': toUnicode 71932 }; 71933 71934 /** Expose `punycode` */ 71935 // Some AMD build optimizers, like r.js, check for specific condition patterns 71936 // like the following: 71937 if ( 71938 true 71939 ) { 71940 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() { 71941 return punycode; 71942 }).call(exports, __webpack_require__, exports, module), 71943 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 71944 } else {} 71945 71946}(this)); 71947 71948/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module), __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 71949 71950/***/ }), 71951
vendor: 2,409 bytes, lines 71952-72053
71952/***/ "./node_modules/object-assign/index.js": 71953/*!*********************************************!*\ 71954 !*** ./node_modules/object-assign/index.js ***! 71955 \*********************************************/ 71956/*! no static exports found */ 71957/***/ (function(module, exports, __webpack_require__) { 71958 71959"use strict"; 71960/* 71961object-assign 71962(c) Sindre Sorhus 71963@license MIT 71964*/ 71965 71966 71967/* eslint-disable no-unused-vars */ 71968var getOwnPropertySymbols = Object.getOwnPropertySymbols; 71969var hasOwnProperty = Object.prototype.hasOwnProperty; 71970var propIsEnumerable = Object.prototype.propertyIsEnumerable; 71971 71972function toObject(val) { 71973 if (val === null || val === undefined) { 71974 throw new TypeError('Object.assign cannot be called with null or undefined'); 71975 } 71976 71977 return Object(val); 71978} 71979 71980function shouldUseNative() { 71981 try { 71982 if (!Object.assign) { 71983 return false; 71984 } 71985 71986 // Detect buggy property enumeration order in older V8 versions. 71987 71988 // https://bugs.chromium.org/p/v8/issues/detail?id=4118 71989 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers 71990 test1[5] = 'de'; 71991 if (Object.getOwnPropertyNames(test1)[0] === '5') { 71992 return false; 71993 } 71994 71995 // https://bugs.chromium.org/p/v8/issues/detail?id=3056 71996 var test2 = {}; 71997 for (var i = 0; i < 10; i++) { 71998 test2['_' + String.fromCharCode(i)] = i; 71999 } 72000 var order2 = Object.getOwnPropertyNames(test2).map(function (n) { 72001 return test2[n]; 72002 }); 72003 if (order2.join('') !== '0123456789') { 72004 return false; 72005 } 72006 72007 // https://bugs.chromium.org/p/v8/issues/detail?id=3056 72008 var test3 = {}; 72009 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { 72010 test3[letter] = letter; 72011 }); 72012 if (Object.keys(Object.assign({}, test3)).join('') !== 72013 'abcdefghijklmnopqrst') { 72014 return false; 72015 } 72016 72017 return true; 72018 } catch (err) { 72019 // We don't expect any of the above to throw, but better to be safe. 72020 return false; 72021 } 72022} 72023 72024module.exports = shouldUseNative() ? Object.assign : function (target, source) { 72025 var from; 72026 var to = toObject(target); 72027 var symbols; 72028 72029 for (var s = 1; s < arguments.length; s++) { 72030 from = Object(arguments[s]); 72031 72032 for (var key in from) { 72033 if (hasOwnProperty.call(from, key)) { 72034 to[key] = from[key]; 72035 } 72036 } 72037 72038 if (getOwnPropertySymbols) { 72039 symbols = getOwnPropertySymbols(from); 72040 for (var i = 0; i < symbols.length; i++) { 72041 if (propIsEnumerable.call(from, symbols[i])) { 72042 to[symbols[i]] = from[symbols[i]]; 72043 } 72044 } 72045 } 72046 } 72047 72048 return to; 72049}; 72050 72051 72052/***/ }), 72053
vendor: 5,681 bytes, lines 72054-72248
72054/***/ "./node_modules/process/browser.js": 72055/*!*****************************************!*\ 72056 !*** ./node_modules/process/browser.js ***! 72057 \*****************************************/ 72058/*! no static exports found */ 72059/***/ (function(module, exports) { 72060 72061// shim for using process in browser 72062var process = module.exports = {}; 72063 72064// cached from whatever global is present so that test runners that stub it 72065// don't break things. But we need to wrap it in a try catch in case it is 72066// wrapped in strict mode code which doesn't define any globals. It's inside a 72067// function because try/catches deoptimize in certain engines. 72068 72069var cachedSetTimeout; 72070var cachedClearTimeout; 72071 72072function defaultSetTimout() { 72073 throw new Error('setTimeout has not been defined'); 72074} 72075function defaultClearTimeout () { 72076 throw new Error('clearTimeout has not been defined'); 72077} 72078(function () { 72079 try { 72080 if (typeof setTimeout === 'function') { 72081 cachedSetTimeout = setTimeout; 72082 } else { 72083 cachedSetTimeout = defaultSetTimout; 72084 } 72085 } catch (e) { 72086 cachedSetTimeout = defaultSetTimout; 72087 } 72088 try { 72089 if (typeof clearTimeout === 'function') { 72090 cachedClearTimeout = clearTimeout; 72091 } else { 72092 cachedClearTimeout = defaultClearTimeout; 72093 } 72094 } catch (e) { 72095 cachedClearTimeout = defaultClearTimeout; 72096 } 72097} ()) 72098function runTimeout(fun) { 72099 if (cachedSetTimeout === setTimeout) { 72100 //normal enviroments in sane situations 72101 return setTimeout(fun, 0); 72102 } 72103 // if setTimeout wasn't available but was latter defined 72104 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { 72105 cachedSetTimeout = setTimeout; 72106 return setTimeout(fun, 0); 72107 } 72108 try { 72109 // when when somebody has screwed with setTimeout but no I.E. maddness 72110 return cachedSetTimeout(fun, 0); 72111 } catch(e){ 72112 try { 72113 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 72114 return cachedSetTimeout.call(null, fun, 0); 72115 } catch(e){ 72116 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error 72117 return cachedSetTimeout.call(this, fun, 0); 72118 } 72119 } 72120 72121 72122} 72123function runClearTimeout(marker) { 72124 if (cachedClearTimeout === clearTimeout) { 72125 //normal enviroments in sane situations 72126 return clearTimeout(marker); 72127 } 72128 // if clearTimeout wasn't available but was latter defined 72129 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { 72130 cachedClearTimeout = clearTimeout; 72131 return clearTimeout(marker); 72132 } 72133 try { 72134 // when when somebody has screwed with setTimeout but no I.E. maddness 72135 return cachedClearTimeout(marker); 72136 } catch (e){ 72137 try { 72138 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally 72139 return cachedClearTimeout.call(null, marker); 72140 } catch (e){ 72141 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. 72142 // Some versions of I.E. have different rules for clearTimeout vs setTimeout 72143 return cachedClearTimeout.call(this, marker); 72144 } 72145 } 72146 72147 72148 72149} 72150var queue = []; 72151var draining = false; 72152var currentQueue; 72153var queueIndex = -1; 72154 72155function cleanUpNextTick() { 72156 if (!draining || !currentQueue) { 72157 return; 72158 } 72159 draining = false; 72160 if (currentQueue.length) { 72161 queue = currentQueue.concat(queue); 72162 } else { 72163 queueIndex = -1; 72164 } 72165 if (queue.length) { 72166 drainQueue(); 72167 } 72168} 72169 72170function drainQueue() { 72171 if (draining) { 72172 return; 72173 } 72174 var timeout = runTimeout(cleanUpNextTick); 72175 draining = true; 72176 72177 var len = queue.length; 72178 while(len) { 72179 currentQueue = queue; 72180 queue = []; 72181 while (++queueIndex < len) { 72182 if (currentQueue) { 72183 currentQueue[queueIndex].run(); 72184 } 72185 } 72186 queueIndex = -1; 72187 len = queue.length; 72188 } 72189 currentQueue = null; 72190 draining = false; 72191 runClearTimeout(timeout); 72192} 72193 72194process.nextTick = function (fun) { 72195 var args = new Array(arguments.length - 1); 72196 if (arguments.length > 1) { 72197 for (var i = 1; i < arguments.length; i++) { 72198 args[i - 1] = arguments[i]; 72199 } 72200 } 72201 queue.push(new Item(fun, args)); 72202 if (queue.length === 1 && !draining) { 72203 runTimeout(drainQueue); 72204 } 72205}; 72206 72207// v8 likes predictible objects 72208function Item(fun, array) { 72209 this.fun = fun; 72210 this.array = array; 72211} 72212Item.prototype.run = function () { 72213 this.fun.apply(null, this.array); 72214}; 72215process.title = 'browser'; 72216process.browser = true; 72217process.env = {}; 72218process.argv = []; 72219process.version = ''; // empty string to avoid regexp issues 72220process.versions = {}; 72221 72222function noop() {} 72223 72224process.on = noop; 72225process.addListener = noop; 72226process.once = noop; 72227process.off = noop; 72228process.removeListener = noop; 72229process.removeAllListeners = noop; 72230process.emit = noop; 72231process.prependListener = noop; 72232process.prependOnceListener = noop; 72233 72234process.listeners = function (name) { return [] } 72235 72236process.binding = function (name) { 72237 throw new Error('process.binding is not supported'); 72238}; 72239 72240process.cwd = function () { return '/' }; 72241process.chdir = function (dir) { 72242 throw new Error('process.chdir is not supported'); 72243}; 72244process.umask = function() { return 0; }; 72245 72246 72247/***/ }), 72248
vendor: 2,823 bytes, lines 72249-72344
72249/***/ "./node_modules/querystring-es3/decode.js": 72250/*!************************************************!*\ 72251 !*** ./node_modules/querystring-es3/decode.js ***! 72252 \************************************************/ 72253/*! no static exports found */ 72254/***/ (function(module, exports, __webpack_require__) { 72255 72256"use strict"; 72257// Copyright Joyent, Inc. and other Node contributors. 72258// 72259// Permission is hereby granted, free of charge, to any person obtaining a 72260// copy of this software and associated documentation files (the 72261// "Software"), to deal in the Software without restriction, including 72262// without limitation the rights to use, copy, modify, merge, publish, 72263// distribute, sublicense, and/or sell copies of the Software, and to permit 72264// persons to whom the Software is furnished to do so, subject to the 72265// following conditions: 72266// 72267// The above copyright notice and this permission notice shall be included 72268// in all copies or substantial portions of the Software. 72269// 72270// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 72271// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 72272// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 72273// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 72274// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 72275// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 72276// USE OR OTHER DEALINGS IN THE SOFTWARE. 72277 72278 72279 72280// If obj.hasOwnProperty has been overridden, then calling 72281// obj.hasOwnProperty(prop) will break. 72282// See: https://github.com/joyent/node/issues/1707 72283function hasOwnProperty(obj, prop) { 72284 return Object.prototype.hasOwnProperty.call(obj, prop); 72285} 72286 72287module.exports = function(qs, sep, eq, options) { 72288 sep = sep || '&'; 72289 eq = eq || '='; 72290 var obj = {}; 72291 72292 if (typeof qs !== 'string' || qs.length === 0) { 72293 return obj; 72294 } 72295 72296 var regexp = /\+/g; 72297 qs = qs.split(sep); 72298 72299 var maxKeys = 1000; 72300 if (options && typeof options.maxKeys === 'number') { 72301 maxKeys = options.maxKeys; 72302 } 72303 72304 var len = qs.length; 72305 // maxKeys <= 0 means that we should not limit keys count 72306 if (maxKeys > 0 && len > maxKeys) { 72307 len = maxKeys; 72308 } 72309 72310 for (var i = 0; i < len; ++i) { 72311 var x = qs[i].replace(regexp, '%20'), 72312 idx = x.indexOf(eq), 72313 kstr, vstr, k, v; 72314 72315 if (idx >= 0) { 72316 kstr = x.substr(0, idx); 72317 vstr = x.substr(idx + 1); 72318 } else { 72319 kstr = x; 72320 vstr = ''; 72321 } 72322 72323 k = decodeURIComponent(kstr); 72324 v = decodeURIComponent(vstr); 72325 72326 if (!hasOwnProperty(obj, k)) { 72327 obj[k] = v; 72328 } else if (isArray(obj[k])) { 72329 obj[k].push(v); 72330 } else { 72331 obj[k] = [obj[k], v]; 72332 } 72333 } 72334 72335 return obj; 72336}; 72337 72338var isArray = Array.isArray || function (xs) { 72339 return Object.prototype.toString.call(xs) === '[object Array]'; 72340}; 72341 72342 72343/***/ }), 72344
vendor: 2,857 bytes, lines 72345-72441
72345/***/ "./node_modules/querystring-es3/encode.js": 72346/*!************************************************!*\ 72347 !*** ./node_modules/querystring-es3/encode.js ***! 72348 \************************************************/ 72349/*! no static exports found */ 72350/***/ (function(module, exports, __webpack_require__) { 72351 72352"use strict"; 72353// Copyright Joyent, Inc. and other Node contributors. 72354// 72355// Permission is hereby granted, free of charge, to any person obtaining a 72356// copy of this software and associated documentation files (the 72357// "Software"), to deal in the Software without restriction, including 72358// without limitation the rights to use, copy, modify, merge, publish, 72359// distribute, sublicense, and/or sell copies of the Software, and to permit 72360// persons to whom the Software is furnished to do so, subject to the 72361// following conditions: 72362// 72363// The above copyright notice and this permission notice shall be included 72364// in all copies or substantial portions of the Software. 72365// 72366// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 72367// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 72368// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 72369// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 72370// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 72371// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 72372// USE OR OTHER DEALINGS IN THE SOFTWARE. 72373 72374 72375 72376var stringifyPrimitive = function(v) { 72377 switch (typeof v) { 72378 case 'string': 72379 return v; 72380 72381 case 'boolean': 72382 return v ? 'true' : 'false'; 72383 72384 case 'number': 72385 return isFinite(v) ? v : ''; 72386 72387 default: 72388 return ''; 72389 } 72390}; 72391 72392module.exports = function(obj, sep, eq, name) { 72393 sep = sep || '&'; 72394 eq = eq || '='; 72395 if (obj === null) { 72396 obj = undefined; 72397 } 72398 72399 if (typeof obj === 'object') { 72400 return map(objectKeys(obj), function(k) { 72401 var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; 72402 if (isArray(obj[k])) { 72403 return map(obj[k], function(v) { 72404 return ks + encodeURIComponent(stringifyPrimitive(v)); 72405 }).join(sep); 72406 } else { 72407 return ks + encodeURIComponent(stringifyPrimitive(obj[k])); 72408 } 72409 }).join(sep); 72410 72411 } 72412 72413 if (!name) return ''; 72414 return encodeURIComponent(stringifyPrimitive(name)) + eq + 72415 encodeURIComponent(stringifyPrimitive(obj)); 72416}; 72417 72418var isArray = Array.isArray || function (xs) { 72419 return Object.prototype.toString.call(xs) === '[object Array]'; 72420}; 72421 72422function map (xs, f) { 72423 if (xs.map) return xs.map(f); 72424 var res = []; 72425 for (var i = 0; i < xs.length; i++) { 72426 res.push(f(xs[i], i)); 72427 } 72428 return res; 72429} 72430 72431var objectKeys = Object.keys || function (obj) { 72432 var res = []; 72433 for (var key in obj) { 72434 if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); 72435 } 72436 return res; 72437}; 72438 72439 72440/***/ }), 72441
vendor: 556 bytes, lines 72442-72457
72442/***/ "./node_modules/querystring-es3/index.js": 72443/*!***********************************************!*\ 72444 !*** ./node_modules/querystring-es3/index.js ***! 72445 \***********************************************/ 72446/*! no static exports found */ 72447/***/ (function(module, exports, __webpack_require__) { 72448 72449"use strict"; 72450 72451 72452exports.decode = exports.parse = __webpack_require__(/*! ./decode */ "./node_modules/querystring-es3/decode.js"); 72453exports.encode = exports.stringify = __webpack_require__(/*! ./encode */ "./node_modules/querystring-es3/encode.js"); 72454 72455 72456/***/ }), 72457
vendor: 4,555 bytes, lines 72458-72625
72458/***/ "./node_modules/ssr-window/ssr-window.esm.js": 72459/*!***************************************************!*\ 72460 !*** ./node_modules/ssr-window/ssr-window.esm.js ***! 72461 \***************************************************/ 72462/*! exports provided: extend, getDocument, getWindow, ssrDocument, ssrWindow */ 72463/***/ (function(module, __webpack_exports__, __webpack_require__) { 72464 72465"use strict"; 72466__webpack_require__.r(__webpack_exports__); 72467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; }); 72468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDocument", function() { return getDocument; }); 72469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWindow", function() { return getWindow; }); 72470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ssrDocument", function() { return ssrDocument; }); 72471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ssrWindow", function() { return ssrWindow; }); 72472/** 72473 * SSR Window 3.0.0-alpha.4 72474 * Better handling for window object in SSR environment 72475 * https://github.com/nolimits4web/ssr-window 72476 * 72477 * Copyright 2020, Vladimir Kharlampidi 72478 * 72479 * Licensed under MIT 72480 * 72481 * Released on: May 20, 2020 72482 */ 72483/* eslint-disable no-param-reassign */ 72484function isObject(obj) { 72485 return (obj !== null && 72486 typeof obj === 'object' && 72487 'constructor' in obj && 72488 obj.constructor === Object); 72489} 72490function extend(target, src) { 72491 if (target === void 0) { target = {}; } 72492 if (src === void 0) { src = {}; } 72493 Object.keys(src).forEach(function (key) { 72494 if (typeof target[key] === 'undefined') 72495 target[key] = src[key]; 72496 else if (isObject(src[key]) && 72497 isObject(target[key]) && 72498 Object.keys(src[key]).length > 0) { 72499 extend(target[key], src[key]); 72500 } 72501 }); 72502} 72503 72504var ssrDocument = { 72505 body: {}, 72506 addEventListener: function () { }, 72507 removeEventListener: function () { }, 72508 activeElement: { 72509 blur: function () { }, 72510 nodeName: '', 72511 }, 72512 querySelector: function () { 72513 return null; 72514 }, 72515 querySelectorAll: function () { 72516 return []; 72517 }, 72518 getElementById: function () { 72519 return null; 72520 }, 72521 createEvent: function () { 72522 return { 72523 initEvent: function () { }, 72524 }; 72525 }, 72526 createElement: function () { 72527 return { 72528 children: [], 72529 childNodes: [], 72530 style: {}, 72531 setAttribute: function () { }, 72532 getElementsByTagName: function () { 72533 return []; 72534 }, 72535 }; 72536 }, 72537 createElementNS: function () { 72538 return {}; 72539 }, 72540 importNode: function () { 72541 return null; 72542 }, 72543 location: { 72544 hash: '', 72545 host: '', 72546 hostname: '', 72547 href: '', 72548 origin: '', 72549 pathname: '', 72550 protocol: '', 72551 search: '', 72552 }, 72553}; 72554function getDocument() { 72555 var doc = typeof document !== 'undefined' ? document : {}; 72556 extend(doc, ssrDocument); 72557 return doc; 72558} 72559 72560var ssrWindow = { 72561 document: ssrDocument, 72562 navigator: { 72563 userAgent: '', 72564 }, 72565 location: { 72566 hash: '', 72567 host: '', 72568 hostname: '', 72569 href: '', 72570 origin: '', 72571 pathname: '', 72572 protocol: '', 72573 search: '', 72574 }, 72575 history: { 72576 replaceState: function () { }, 72577 pushState: function () { }, 72578 go: function () { }, 72579 back: function () { }, 72580 }, 72581 CustomEvent: function CustomEvent() { 72582 return this; 72583 }, 72584 addEventListener: function () { }, 72585 removeEventListener: function () { }, 72586 getComputedStyle: function () { 72587 return { 72588 getPropertyValue: function () { 72589 return ''; 72590 }, 72591 }; 72592 }, 72593 Image: function () { }, 72594 Date: function () { }, 72595 screen: {}, 72596 setTimeout: function () { }, 72597 clearTimeout: function () { }, 72598 matchMedia: function () { 72599 return {}; 72600 }, 72601 requestAnimationFrame: function (callback) { 72602 if (typeof setTimeout === 'undefined') { 72603 callback(); 72604 return null; 72605 } 72606 return setTimeout(callback, 0); 72607 }, 72608 cancelAnimationFrame: function (id) { 72609 if (typeof setTimeout === 'undefined') { 72610 return; 72611 } 72612 clearTimeout(id); 72613 }, 72614}; 72615function getWindow() { 72616 var win = typeof window !== 'undefined' ? window : {}; 72617 extend(win, ssrWindow); 72618 return win; 72619} 72620 72621 72622 72623 72624/***/ }), 72625
vendor: 7,923 bytes, lines 72626-72857
72626/***/ "./node_modules/swiper/esm/components/a11y/a11y.js": 72627/*!*********************************************************!*\ 72628 !*** ./node_modules/swiper/esm/components/a11y/a11y.js ***! 72629 \*********************************************************/ 72630/*! exports provided: default */ 72631/***/ (function(module, __webpack_exports__, __webpack_require__) { 72632 72633"use strict"; 72634__webpack_require__.r(__webpack_exports__); 72635/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 72636/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 72637function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 72638 72639 72640 72641var A11y = { 72642 makeElFocusable: function makeElFocusable($el) { 72643 $el.attr('tabIndex', '0'); 72644 return $el; 72645 }, 72646 makeElNotFocusable: function makeElNotFocusable($el) { 72647 $el.attr('tabIndex', '-1'); 72648 return $el; 72649 }, 72650 addElRole: function addElRole($el, role) { 72651 $el.attr('role', role); 72652 return $el; 72653 }, 72654 addElLabel: function addElLabel($el, label) { 72655 $el.attr('aria-label', label); 72656 return $el; 72657 }, 72658 disableEl: function disableEl($el) { 72659 $el.attr('aria-disabled', true); 72660 return $el; 72661 }, 72662 enableEl: function enableEl($el) { 72663 $el.attr('aria-disabled', false); 72664 return $el; 72665 }, 72666 onEnterKey: function onEnterKey(e) { 72667 var swiper = this; 72668 var params = swiper.params.a11y; 72669 if (e.keyCode !== 13) return; 72670 var $targetEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target); 72671 72672 if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { 72673 if (!(swiper.isEnd && !swiper.params.loop)) { 72674 swiper.slideNext(); 72675 } 72676 72677 if (swiper.isEnd) { 72678 swiper.a11y.notify(params.lastSlideMessage); 72679 } else { 72680 swiper.a11y.notify(params.nextSlideMessage); 72681 } 72682 } 72683 72684 if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { 72685 if (!(swiper.isBeginning && !swiper.params.loop)) { 72686 swiper.slidePrev(); 72687 } 72688 72689 if (swiper.isBeginning) { 72690 swiper.a11y.notify(params.firstSlideMessage); 72691 } else { 72692 swiper.a11y.notify(params.prevSlideMessage); 72693 } 72694 } 72695 72696 if (swiper.pagination && $targetEl.is("." + swiper.params.pagination.bulletClass)) { 72697 $targetEl[0].click(); 72698 } 72699 }, 72700 notify: function notify(message) { 72701 var swiper = this; 72702 var notification = swiper.a11y.liveRegion; 72703 if (notification.length === 0) return; 72704 notification.html(''); 72705 notification.html(message); 72706 }, 72707 updateNavigation: function updateNavigation() { 72708 var swiper = this; 72709 if (swiper.params.loop || !swiper.navigation) return; 72710 var _swiper$navigation = swiper.navigation, 72711 $nextEl = _swiper$navigation.$nextEl, 72712 $prevEl = _swiper$navigation.$prevEl; 72713 72714 if ($prevEl && $prevEl.length > 0) { 72715 if (swiper.isBeginning) { 72716 swiper.a11y.disableEl($prevEl); 72717 swiper.a11y.makeElNotFocusable($prevEl); 72718 } else { 72719 swiper.a11y.enableEl($prevEl); 72720 swiper.a11y.makeElFocusable($prevEl); 72721 } 72722 } 72723 72724 if ($nextEl && $nextEl.length > 0) { 72725 if (swiper.isEnd) { 72726 swiper.a11y.disableEl($nextEl); 72727 swiper.a11y.makeElNotFocusable($nextEl); 72728 } else { 72729 swiper.a11y.enableEl($nextEl); 72730 swiper.a11y.makeElFocusable($nextEl); 72731 } 72732 } 72733 }, 72734 updatePagination: function updatePagination() { 72735 var swiper = this; 72736 var params = swiper.params.a11y; 72737 72738 if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { 72739 swiper.pagination.bullets.each(function (bulletEl) { 72740 var $bulletEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(bulletEl); 72741 swiper.a11y.makeElFocusable($bulletEl); 72742 swiper.a11y.addElRole($bulletEl, 'button'); 72743 swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1)); 72744 }); 72745 } 72746 }, 72747 init: function init() { 72748 var swiper = this; 72749 swiper.$el.append(swiper.a11y.liveRegion); // Navigation 72750 72751 var params = swiper.params.a11y; 72752 var $nextEl; 72753 var $prevEl; 72754 72755 if (swiper.navigation && swiper.navigation.$nextEl) { 72756 $nextEl = swiper.navigation.$nextEl; 72757 } 72758 72759 if (swiper.navigation && swiper.navigation.$prevEl) { 72760 $prevEl = swiper.navigation.$prevEl; 72761 } 72762 72763 if ($nextEl) { 72764 swiper.a11y.makeElFocusable($nextEl); 72765 swiper.a11y.addElRole($nextEl, 'button'); 72766 swiper.a11y.addElLabel($nextEl, params.nextSlideMessage); 72767 $nextEl.on('keydown', swiper.a11y.onEnterKey); 72768 } 72769 72770 if ($prevEl) { 72771 swiper.a11y.makeElFocusable($prevEl); 72772 swiper.a11y.addElRole($prevEl, 'button'); 72773 swiper.a11y.addElLabel($prevEl, params.prevSlideMessage); 72774 $prevEl.on('keydown', swiper.a11y.onEnterKey); 72775 } // Pagination 72776 72777 72778 if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { 72779 swiper.pagination.$el.on('keydown', "." + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey); 72780 } 72781 }, 72782 destroy: function destroy() { 72783 var swiper = this; 72784 if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove(); 72785 var $nextEl; 72786 var $prevEl; 72787 72788 if (swiper.navigation && swiper.navigation.$nextEl) { 72789 $nextEl = swiper.navigation.$nextEl; 72790 } 72791 72792 if (swiper.navigation && swiper.navigation.$prevEl) { 72793 $prevEl = swiper.navigation.$prevEl; 72794 } 72795 72796 if ($nextEl) { 72797 $nextEl.off('keydown', swiper.a11y.onEnterKey); 72798 } 72799 72800 if ($prevEl) { 72801 $prevEl.off('keydown', swiper.a11y.onEnterKey); 72802 } // Pagination 72803 72804 72805 if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { 72806 swiper.pagination.$el.off('keydown', "." + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey); 72807 } 72808 } 72809}; 72810/* harmony default export */ __webpack_exports__["default"] = ({ 72811 name: 'a11y', 72812 params: { 72813 a11y: { 72814 enabled: true, 72815 notificationClass: 'swiper-notification', 72816 prevSlideMessage: 'Previous slide', 72817 nextSlideMessage: 'Next slide', 72818 firstSlideMessage: 'This is the first slide', 72819 lastSlideMessage: 'This is the last slide', 72820 paginationBulletMessage: 'Go to slide {{index}}' 72821 } 72822 }, 72823 create: function create() { 72824 var swiper = this; 72825 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 72826 a11y: _extends(_extends({}, A11y), {}, { 72827 liveRegion: Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<span class=\"" + swiper.params.a11y.notificationClass + "\" aria-live=\"assertive\" aria-atomic=\"true\"></span>") 72828 }) 72829 }); 72830 }, 72831 on: { 72832 init: function init(swiper) { 72833 if (!swiper.params.a11y.enabled) return; 72834 swiper.a11y.init(); 72835 swiper.a11y.updateNavigation(); 72836 }, 72837 toEdge: function toEdge(swiper) { 72838 if (!swiper.params.a11y.enabled) return; 72839 swiper.a11y.updateNavigation(); 72840 }, 72841 fromEdge: function fromEdge(swiper) { 72842 if (!swiper.params.a11y.enabled) return; 72843 swiper.a11y.updateNavigation(); 72844 }, 72845 paginationUpdate: function paginationUpdate(swiper) { 72846 if (!swiper.params.a11y.enabled) return; 72847 swiper.a11y.updatePagination(); 72848 }, 72849 destroy: function destroy(swiper) { 72850 if (!swiper.params.a11y.enabled) return; 72851 swiper.a11y.destroy(); 72852 } 72853 } 72854}); 72855 72856/***/ }), 72857
vendor: 6,989 bytes, lines 72858-73047
72858/***/ "./node_modules/swiper/esm/components/autoplay/autoplay.js": 72859/*!*****************************************************************!*\ 72860 !*** ./node_modules/swiper/esm/components/autoplay/autoplay.js ***! 72861 \*****************************************************************/ 72862/*! exports provided: default */ 72863/***/ (function(module, __webpack_exports__, __webpack_require__) { 72864 72865"use strict"; 72866__webpack_require__.r(__webpack_exports__); 72867/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 72868/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 72869function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 72870 72871/* eslint no-underscore-dangle: "off" */ 72872 72873 72874var Autoplay = { 72875 run: function run() { 72876 var swiper = this; 72877 var $activeSlideEl = swiper.slides.eq(swiper.activeIndex); 72878 var delay = swiper.params.autoplay.delay; 72879 72880 if ($activeSlideEl.attr('data-swiper-autoplay')) { 72881 delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; 72882 } 72883 72884 clearTimeout(swiper.autoplay.timeout); 72885 swiper.autoplay.timeout = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["nextTick"])(function () { 72886 if (swiper.params.autoplay.reverseDirection) { 72887 if (swiper.params.loop) { 72888 swiper.loopFix(); 72889 swiper.slidePrev(swiper.params.speed, true, true); 72890 swiper.emit('autoplay'); 72891 } else if (!swiper.isBeginning) { 72892 swiper.slidePrev(swiper.params.speed, true, true); 72893 swiper.emit('autoplay'); 72894 } else if (!swiper.params.autoplay.stopOnLastSlide) { 72895 swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); 72896 swiper.emit('autoplay'); 72897 } else { 72898 swiper.autoplay.stop(); 72899 } 72900 } else if (swiper.params.loop) { 72901 swiper.loopFix(); 72902 swiper.slideNext(swiper.params.speed, true, true); 72903 swiper.emit('autoplay'); 72904 } else if (!swiper.isEnd) { 72905 swiper.slideNext(swiper.params.speed, true, true); 72906 swiper.emit('autoplay'); 72907 } else if (!swiper.params.autoplay.stopOnLastSlide) { 72908 swiper.slideTo(0, swiper.params.speed, true, true); 72909 swiper.emit('autoplay'); 72910 } else { 72911 swiper.autoplay.stop(); 72912 } 72913 72914 if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run(); 72915 }, delay); 72916 }, 72917 start: function start() { 72918 var swiper = this; 72919 if (typeof swiper.autoplay.timeout !== 'undefined') return false; 72920 if (swiper.autoplay.running) return false; 72921 swiper.autoplay.running = true; 72922 swiper.emit('autoplayStart'); 72923 swiper.autoplay.run(); 72924 return true; 72925 }, 72926 stop: function stop() { 72927 var swiper = this; 72928 if (!swiper.autoplay.running) return false; 72929 if (typeof swiper.autoplay.timeout === 'undefined') return false; 72930 72931 if (swiper.autoplay.timeout) { 72932 clearTimeout(swiper.autoplay.timeout); 72933 swiper.autoplay.timeout = undefined; 72934 } 72935 72936 swiper.autoplay.running = false; 72937 swiper.emit('autoplayStop'); 72938 return true; 72939 }, 72940 pause: function pause(speed) { 72941 var swiper = this; 72942 if (!swiper.autoplay.running) return; 72943 if (swiper.autoplay.paused) return; 72944 if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout); 72945 swiper.autoplay.paused = true; 72946 72947 if (speed === 0 || !swiper.params.autoplay.waitForTransition) { 72948 swiper.autoplay.paused = false; 72949 swiper.autoplay.run(); 72950 } else { 72951 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd); 72952 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd); 72953 } 72954 }, 72955 onVisibilityChange: function onVisibilityChange() { 72956 var swiper = this; 72957 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 72958 72959 if (document.visibilityState === 'hidden' && swiper.autoplay.running) { 72960 swiper.autoplay.pause(); 72961 } 72962 72963 if (document.visibilityState === 'visible' && swiper.autoplay.paused) { 72964 swiper.autoplay.run(); 72965 swiper.autoplay.paused = false; 72966 } 72967 }, 72968 onTransitionEnd: function onTransitionEnd(e) { 72969 var swiper = this; 72970 if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return; 72971 if (e.target !== swiper.$wrapperEl[0]) return; 72972 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd); 72973 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd); 72974 swiper.autoplay.paused = false; 72975 72976 if (!swiper.autoplay.running) { 72977 swiper.autoplay.stop(); 72978 } else { 72979 swiper.autoplay.run(); 72980 } 72981 } 72982}; 72983/* harmony default export */ __webpack_exports__["default"] = ({ 72984 name: 'autoplay', 72985 params: { 72986 autoplay: { 72987 enabled: false, 72988 delay: 3000, 72989 waitForTransition: true, 72990 disableOnInteraction: true, 72991 stopOnLastSlide: false, 72992 reverseDirection: false 72993 } 72994 }, 72995 create: function create() { 72996 var swiper = this; 72997 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 72998 autoplay: _extends(_extends({}, Autoplay), {}, { 72999 running: false, 73000 paused: false 73001 }) 73002 }); 73003 }, 73004 on: { 73005 init: function init(swiper) { 73006 if (swiper.params.autoplay.enabled) { 73007 swiper.autoplay.start(); 73008 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 73009 document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange); 73010 } 73011 }, 73012 beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) { 73013 if (swiper.autoplay.running) { 73014 if (internal || !swiper.params.autoplay.disableOnInteraction) { 73015 swiper.autoplay.pause(speed); 73016 } else { 73017 swiper.autoplay.stop(); 73018 } 73019 } 73020 }, 73021 sliderFirstMove: function sliderFirstMove(swiper) { 73022 if (swiper.autoplay.running) { 73023 if (swiper.params.autoplay.disableOnInteraction) { 73024 swiper.autoplay.stop(); 73025 } else { 73026 swiper.autoplay.pause(); 73027 } 73028 } 73029 }, 73030 touchEnd: function touchEnd(swiper) { 73031 if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) { 73032 swiper.autoplay.run(); 73033 } 73034 }, 73035 destroy: function destroy(swiper) { 73036 if (swiper.autoplay.running) { 73037 swiper.autoplay.stop(); 73038 } 73039 73040 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 73041 document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange); 73042 } 73043 } 73044}); 73045 73046/***/ }), 73047
vendor: 7,252 bytes, lines 73048-73257
73048/***/ "./node_modules/swiper/esm/components/controller/controller.js": 73049/*!*********************************************************************!*\ 73050 !*** ./node_modules/swiper/esm/components/controller/controller.js ***! 73051 \*********************************************************************/ 73052/*! exports provided: default */ 73053/***/ (function(module, __webpack_exports__, __webpack_require__) { 73054 73055"use strict"; 73056__webpack_require__.r(__webpack_exports__); 73057/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73058function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73059 73060/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 73061 73062var Controller = { 73063 LinearSpline: function LinearSpline(x, y) { 73064 var binarySearch = function search() { 73065 var maxIndex; 73066 var minIndex; 73067 var guess; 73068 return function (array, val) { 73069 minIndex = -1; 73070 maxIndex = array.length; 73071 73072 while (maxIndex - minIndex > 1) { 73073 guess = maxIndex + minIndex >> 1; 73074 73075 if (array[guess] <= val) { 73076 minIndex = guess; 73077 } else { 73078 maxIndex = guess; 73079 } 73080 } 73081 73082 return maxIndex; 73083 }; 73084 }(); 73085 73086 this.x = x; 73087 this.y = y; 73088 this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value: 73089 // (x1,y1) is the known point before given value, 73090 // (x3,y3) is the known point after given value. 73091 73092 var i1; 73093 var i3; 73094 73095 this.interpolate = function interpolate(x2) { 73096 if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2): 73097 73098 i3 = binarySearch(this.x, x2); 73099 i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already: 73100 // y2 := ((x2âx1) à (y3ây1)) ÷ (x3âx1) + y1 73101 73102 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 73103 }; 73104 73105 return this; 73106 }, 73107 // xxx: for now i will just save one spline function to to 73108 getInterpolateFunction: function getInterpolateFunction(c) { 73109 var swiper = this; 73110 73111 if (!swiper.controller.spline) { 73112 swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid); 73113 } 73114 }, 73115 setTranslate: function setTranslate(_setTranslate, byController) { 73116 var swiper = this; 73117 var controlled = swiper.controller.control; 73118 var multiplier; 73119 var controlledTranslate; 73120 var Swiper = swiper.constructor; 73121 73122 function setControlledTranslate(c) { 73123 // this will create an Interpolate function based on the snapGrids 73124 // x is the Grid of the scrolled scroller and y will be the controlled scroller 73125 // it makes sense to create this only once and recall it for the interpolation 73126 // the function does a lot of value caching for performance 73127 var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 73128 73129 if (swiper.params.controller.by === 'slide') { 73130 swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 73131 // but it did not work out 73132 73133 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 73134 } 73135 73136 if (!controlledTranslate || swiper.params.controller.by === 'container') { 73137 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 73138 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 73139 } 73140 73141 if (swiper.params.controller.inverse) { 73142 controlledTranslate = c.maxTranslate() - controlledTranslate; 73143 } 73144 73145 c.updateProgress(controlledTranslate); 73146 c.setTranslate(controlledTranslate, swiper); 73147 c.updateActiveIndex(); 73148 c.updateSlidesClasses(); 73149 } 73150 73151 if (Array.isArray(controlled)) { 73152 for (var i = 0; i < controlled.length; i += 1) { 73153 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 73154 setControlledTranslate(controlled[i]); 73155 } 73156 } 73157 } else if (controlled instanceof Swiper && byController !== controlled) { 73158 setControlledTranslate(controlled); 73159 } 73160 }, 73161 setTransition: function setTransition(duration, byController) { 73162 var swiper = this; 73163 var Swiper = swiper.constructor; 73164 var controlled = swiper.controller.control; 73165 var i; 73166 73167 function setControlledTransition(c) { 73168 c.setTransition(duration, swiper); 73169 73170 if (duration !== 0) { 73171 c.transitionStart(); 73172 73173 if (c.params.autoHeight) { 73174 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["nextTick"])(function () { 73175 c.updateAutoHeight(); 73176 }); 73177 } 73178 73179 c.$wrapperEl.transitionEnd(function () { 73180 if (!controlled) return; 73181 73182 if (c.params.loop && swiper.params.controller.by === 'slide') { 73183 c.loopFix(); 73184 } 73185 73186 c.transitionEnd(); 73187 }); 73188 } 73189 } 73190 73191 if (Array.isArray(controlled)) { 73192 for (i = 0; i < controlled.length; i += 1) { 73193 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 73194 setControlledTransition(controlled[i]); 73195 } 73196 } 73197 } else if (controlled instanceof Swiper && byController !== controlled) { 73198 setControlledTransition(controlled); 73199 } 73200 } 73201}; 73202/* harmony default export */ __webpack_exports__["default"] = ({ 73203 name: 'controller', 73204 params: { 73205 controller: { 73206 control: undefined, 73207 inverse: false, 73208 by: 'slide' // or 'container' 73209 73210 } 73211 }, 73212 create: function create() { 73213 var swiper = this; 73214 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["bindModuleMethods"])(swiper, { 73215 controller: _extends({ 73216 control: swiper.params.controller.control 73217 }, Controller) 73218 }); 73219 }, 73220 on: { 73221 update: function update(swiper) { 73222 if (!swiper.controller.control) return; 73223 73224 if (swiper.controller.spline) { 73225 swiper.controller.spline = undefined; 73226 delete swiper.controller.spline; 73227 } 73228 }, 73229 resize: function resize(swiper) { 73230 if (!swiper.controller.control) return; 73231 73232 if (swiper.controller.spline) { 73233 swiper.controller.spline = undefined; 73234 delete swiper.controller.spline; 73235 } 73236 }, 73237 observerUpdate: function observerUpdate(swiper) { 73238 if (!swiper.controller.control) return; 73239 73240 if (swiper.controller.spline) { 73241 swiper.controller.spline = undefined; 73242 delete swiper.controller.spline; 73243 } 73244 }, 73245 setTranslate: function setTranslate(swiper, translate, byController) { 73246 if (!swiper.controller.control) return; 73247 swiper.controller.setTranslate(translate, byController); 73248 }, 73249 setTransition: function setTransition(swiper, duration, byController) { 73250 if (!swiper.controller.control) return; 73251 swiper.controller.setTransition(duration, byController); 73252 } 73253 } 73254}); 73255 73256/***/ }), 73257
vendor: 5,926 bytes, lines 73258-73379
73258/***/ "./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js": 73259/*!*********************************************************************************!*\ 73260 !*** ./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js ***! 73261 \*********************************************************************************/ 73262/*! exports provided: default */ 73263/***/ (function(module, __webpack_exports__, __webpack_require__) { 73264 73265"use strict"; 73266__webpack_require__.r(__webpack_exports__); 73267/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 73268/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73269function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73270 73271 73272 73273var Coverflow = { 73274 setTranslate: function setTranslate() { 73275 var swiper = this; 73276 var swiperWidth = swiper.width, 73277 swiperHeight = swiper.height, 73278 slides = swiper.slides, 73279 slidesSizesGrid = swiper.slidesSizesGrid; 73280 var params = swiper.params.coverflowEffect; 73281 var isHorizontal = swiper.isHorizontal(); 73282 var transform = swiper.translate; 73283 var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 73284 var rotate = isHorizontal ? params.rotate : -params.rotate; 73285 var translate = params.depth; // Each slide offset from center 73286 73287 for (var i = 0, length = slides.length; i < length; i += 1) { 73288 var $slideEl = slides.eq(i); 73289 var slideSize = slidesSizesGrid[i]; 73290 var slideOffset = $slideEl[0].swiperSlideOffset; 73291 var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier; 73292 var rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 73293 var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0 73294 73295 var translateZ = -translate * Math.abs(offsetMultiplier); 73296 var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders 73297 73298 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 73299 stretch = parseFloat(params.stretch) / 100 * slideSize; 73300 } 73301 73302 var translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 73303 var translateX = isHorizontal ? stretch * offsetMultiplier : 0; 73304 var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values 73305 73306 if (Math.abs(translateX) < 0.001) translateX = 0; 73307 if (Math.abs(translateY) < 0.001) translateY = 0; 73308 if (Math.abs(translateZ) < 0.001) translateZ = 0; 73309 if (Math.abs(rotateY) < 0.001) rotateY = 0; 73310 if (Math.abs(rotateX) < 0.001) rotateX = 0; 73311 if (Math.abs(scale) < 0.001) scale = 0; 73312 var slideTransform = "translate3d(" + translateX + "px," + translateY + "px," + translateZ + "px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg) scale(" + scale + ")"; 73313 $slideEl.transform(slideTransform); 73314 $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 73315 73316 if (params.slideShadows) { 73317 // Set shadows 73318 var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 73319 var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 73320 73321 if ($shadowBeforeEl.length === 0) { 73322 $shadowBeforeEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'left' : 'top') + "\"></div>"); 73323 $slideEl.append($shadowBeforeEl); 73324 } 73325 73326 if ($shadowAfterEl.length === 0) { 73327 $shadowAfterEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'right' : 'bottom') + "\"></div>"); 73328 $slideEl.append($shadowAfterEl); 73329 } 73330 73331 if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 73332 if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 73333 } 73334 } 73335 }, 73336 setTransition: function setTransition(duration) { 73337 var swiper = this; 73338 swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 73339 } 73340}; 73341/* harmony default export */ __webpack_exports__["default"] = ({ 73342 name: 'effect-coverflow', 73343 params: { 73344 coverflowEffect: { 73345 rotate: 50, 73346 stretch: 0, 73347 depth: 100, 73348 scale: 1, 73349 modifier: 1, 73350 slideShadows: true 73351 } 73352 }, 73353 create: function create() { 73354 var swiper = this; 73355 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 73356 coverflowEffect: _extends({}, Coverflow) 73357 }); 73358 }, 73359 on: { 73360 beforeInit: function beforeInit(swiper) { 73361 if (swiper.params.effect !== 'coverflow') return; 73362 swiper.classNames.push(swiper.params.containerModifierClass + "coverflow"); 73363 swiper.classNames.push(swiper.params.containerModifierClass + "3d"); 73364 swiper.params.watchSlidesProgress = true; 73365 swiper.originalParams.watchSlidesProgress = true; 73366 }, 73367 setTranslate: function setTranslate(swiper) { 73368 if (swiper.params.effect !== 'coverflow') return; 73369 swiper.coverflowEffect.setTranslate(); 73370 }, 73371 setTransition: function setTransition(swiper, duration) { 73372 if (swiper.params.effect !== 'coverflow') return; 73373 swiper.coverflowEffect.setTransition(duration); 73374 } 73375 } 73376}); 73377 73378/***/ }), 73379
vendor: 8,259 bytes, lines 73380-73587
73380/***/ "./node_modules/swiper/esm/components/effect-cube/effect-cube.js": 73381/*!***********************************************************************!*\ 73382 !*** ./node_modules/swiper/esm/components/effect-cube/effect-cube.js ***! 73383 \***********************************************************************/ 73384/*! exports provided: default */ 73385/***/ (function(module, __webpack_exports__, __webpack_require__) { 73386 73387"use strict"; 73388__webpack_require__.r(__webpack_exports__); 73389/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 73390/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73391function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73392 73393 73394 73395var Cube = { 73396 setTranslate: function setTranslate() { 73397 var swiper = this; 73398 var $el = swiper.$el, 73399 $wrapperEl = swiper.$wrapperEl, 73400 slides = swiper.slides, 73401 swiperWidth = swiper.width, 73402 swiperHeight = swiper.height, 73403 rtl = swiper.rtlTranslate, 73404 swiperSize = swiper.size, 73405 browser = swiper.browser; 73406 var params = swiper.params.cubeEffect; 73407 var isHorizontal = swiper.isHorizontal(); 73408 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 73409 var wrapperRotate = 0; 73410 var $cubeShadowEl; 73411 73412 if (params.shadow) { 73413 if (isHorizontal) { 73414 $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); 73415 73416 if ($cubeShadowEl.length === 0) { 73417 $cubeShadowEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>'); 73418 $wrapperEl.append($cubeShadowEl); 73419 } 73420 73421 $cubeShadowEl.css({ 73422 height: swiperWidth + "px" 73423 }); 73424 } else { 73425 $cubeShadowEl = $el.find('.swiper-cube-shadow'); 73426 73427 if ($cubeShadowEl.length === 0) { 73428 $cubeShadowEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>'); 73429 $el.append($cubeShadowEl); 73430 } 73431 } 73432 } 73433 73434 for (var i = 0; i < slides.length; i += 1) { 73435 var $slideEl = slides.eq(i); 73436 var slideIndex = i; 73437 73438 if (isVirtual) { 73439 slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); 73440 } 73441 73442 var slideAngle = slideIndex * 90; 73443 var round = Math.floor(slideAngle / 360); 73444 73445 if (rtl) { 73446 slideAngle = -slideAngle; 73447 round = Math.floor(-slideAngle / 360); 73448 } 73449 73450 var progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 73451 var tx = 0; 73452 var ty = 0; 73453 var tz = 0; 73454 73455 if (slideIndex % 4 === 0) { 73456 tx = -round * 4 * swiperSize; 73457 tz = 0; 73458 } else if ((slideIndex - 1) % 4 === 0) { 73459 tx = 0; 73460 tz = -round * 4 * swiperSize; 73461 } else if ((slideIndex - 2) % 4 === 0) { 73462 tx = swiperSize + round * 4 * swiperSize; 73463 tz = swiperSize; 73464 } else if ((slideIndex - 3) % 4 === 0) { 73465 tx = -swiperSize; 73466 tz = 3 * swiperSize + swiperSize * 4 * round; 73467 } 73468 73469 if (rtl) { 73470 tx = -tx; 73471 } 73472 73473 if (!isHorizontal) { 73474 ty = tx; 73475 tx = 0; 73476 } 73477 73478 var transform = "rotateX(" + (isHorizontal ? 0 : -slideAngle) + "deg) rotateY(" + (isHorizontal ? slideAngle : 0) + "deg) translate3d(" + tx + "px, " + ty + "px, " + tz + "px)"; 73479 73480 if (progress <= 1 && progress > -1) { 73481 wrapperRotate = slideIndex * 90 + progress * 90; 73482 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 73483 } 73484 73485 $slideEl.transform(transform); 73486 73487 if (params.slideShadows) { 73488 // Set shadows 73489 var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 73490 var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 73491 73492 if (shadowBefore.length === 0) { 73493 shadowBefore = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'left' : 'top') + "\"></div>"); 73494 $slideEl.append(shadowBefore); 73495 } 73496 73497 if (shadowAfter.length === 0) { 73498 shadowAfter = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-" + (isHorizontal ? 'right' : 'bottom') + "\"></div>"); 73499 $slideEl.append(shadowAfter); 73500 } 73501 73502 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 73503 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 73504 } 73505 } 73506 73507 $wrapperEl.css({ 73508 '-webkit-transform-origin': "50% 50% -" + swiperSize / 2 + "px", 73509 '-moz-transform-origin': "50% 50% -" + swiperSize / 2 + "px", 73510 '-ms-transform-origin': "50% 50% -" + swiperSize / 2 + "px", 73511 'transform-origin': "50% 50% -" + swiperSize / 2 + "px" 73512 }); 73513 73514 if (params.shadow) { 73515 if (isHorizontal) { 73516 $cubeShadowEl.transform("translate3d(0px, " + (swiperWidth / 2 + params.shadowOffset) + "px, " + -swiperWidth / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + params.shadowScale + ")"); 73517 } else { 73518 var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 73519 var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 73520 var scale1 = params.shadowScale; 73521 var scale2 = params.shadowScale / multiplier; 73522 var offset = params.shadowOffset; 73523 $cubeShadowEl.transform("scale3d(" + scale1 + ", 1, " + scale2 + ") translate3d(0px, " + (swiperHeight / 2 + offset) + "px, " + -swiperHeight / 2 / scale2 + "px) rotateX(-90deg)"); 73524 } 73525 } 73526 73527 var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0; 73528 $wrapperEl.transform("translate3d(0px,0," + zFactor + "px) rotateX(" + (swiper.isHorizontal() ? 0 : wrapperRotate) + "deg) rotateY(" + (swiper.isHorizontal() ? -wrapperRotate : 0) + "deg)"); 73529 }, 73530 setTransition: function setTransition(duration) { 73531 var swiper = this; 73532 var $el = swiper.$el, 73533 slides = swiper.slides; 73534 slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 73535 73536 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 73537 $el.find('.swiper-cube-shadow').transition(duration); 73538 } 73539 } 73540}; 73541/* harmony default export */ __webpack_exports__["default"] = ({ 73542 name: 'effect-cube', 73543 params: { 73544 cubeEffect: { 73545 slideShadows: true, 73546 shadow: true, 73547 shadowOffset: 20, 73548 shadowScale: 0.94 73549 } 73550 }, 73551 create: function create() { 73552 var swiper = this; 73553 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 73554 cubeEffect: _extends({}, Cube) 73555 }); 73556 }, 73557 on: { 73558 beforeInit: function beforeInit(swiper) { 73559 if (swiper.params.effect !== 'cube') return; 73560 swiper.classNames.push(swiper.params.containerModifierClass + "cube"); 73561 swiper.classNames.push(swiper.params.containerModifierClass + "3d"); 73562 var overwriteParams = { 73563 slidesPerView: 1, 73564 slidesPerColumn: 1, 73565 slidesPerGroup: 1, 73566 watchSlidesProgress: true, 73567 resistanceRatio: 0, 73568 spaceBetween: 0, 73569 centeredSlides: false, 73570 virtualTranslate: true 73571 }; 73572 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.params, overwriteParams); 73573 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.originalParams, overwriteParams); 73574 }, 73575 setTranslate: function setTranslate(swiper) { 73576 if (swiper.params.effect !== 'cube') return; 73577 swiper.cubeEffect.setTranslate(); 73578 }, 73579 setTransition: function setTransition(swiper, duration) { 73580 if (swiper.params.effect !== 'cube') return; 73581 swiper.cubeEffect.setTransition(duration); 73582 } 73583 } 73584}); 73585 73586/***/ }), 73587
vendor: 3,637 bytes, lines 73588-73686
73588/***/ "./node_modules/swiper/esm/components/effect-fade/effect-fade.js": 73589/*!***********************************************************************!*\ 73590 !*** ./node_modules/swiper/esm/components/effect-fade/effect-fade.js ***! 73591 \***********************************************************************/ 73592/*! exports provided: default */ 73593/***/ (function(module, __webpack_exports__, __webpack_require__) { 73594 73595"use strict"; 73596__webpack_require__.r(__webpack_exports__); 73597/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73598function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73599 73600 73601var Fade = { 73602 setTranslate: function setTranslate() { 73603 var swiper = this; 73604 var slides = swiper.slides; 73605 73606 for (var i = 0; i < slides.length; i += 1) { 73607 var $slideEl = swiper.slides.eq(i); 73608 var offset = $slideEl[0].swiperSlideOffset; 73609 var tx = -offset; 73610 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 73611 var ty = 0; 73612 73613 if (!swiper.isHorizontal()) { 73614 ty = tx; 73615 tx = 0; 73616 } 73617 73618 var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); 73619 $slideEl.css({ 73620 opacity: slideOpacity 73621 }).transform("translate3d(" + tx + "px, " + ty + "px, 0px)"); 73622 } 73623 }, 73624 setTransition: function setTransition(duration) { 73625 var swiper = this; 73626 var slides = swiper.slides, 73627 $wrapperEl = swiper.$wrapperEl; 73628 slides.transition(duration); 73629 73630 if (swiper.params.virtualTranslate && duration !== 0) { 73631 var eventTriggered = false; 73632 slides.transitionEnd(function () { 73633 if (eventTriggered) return; 73634 if (!swiper || swiper.destroyed) return; 73635 eventTriggered = true; 73636 swiper.animating = false; 73637 var triggerEvents = ['webkitTransitionEnd', 'transitionend']; 73638 73639 for (var i = 0; i < triggerEvents.length; i += 1) { 73640 $wrapperEl.trigger(triggerEvents[i]); 73641 } 73642 }); 73643 } 73644 } 73645}; 73646/* harmony default export */ __webpack_exports__["default"] = ({ 73647 name: 'effect-fade', 73648 params: { 73649 fadeEffect: { 73650 crossFade: false 73651 } 73652 }, 73653 create: function create() { 73654 var swiper = this; 73655 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["bindModuleMethods"])(swiper, { 73656 fadeEffect: _extends({}, Fade) 73657 }); 73658 }, 73659 on: { 73660 beforeInit: function beforeInit(swiper) { 73661 if (swiper.params.effect !== 'fade') return; 73662 swiper.classNames.push(swiper.params.containerModifierClass + "fade"); 73663 var overwriteParams = { 73664 slidesPerView: 1, 73665 slidesPerColumn: 1, 73666 slidesPerGroup: 1, 73667 watchSlidesProgress: true, 73668 spaceBetween: 0, 73669 virtualTranslate: true 73670 }; 73671 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["extend"])(swiper.params, overwriteParams); 73672 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["extend"])(swiper.originalParams, overwriteParams); 73673 }, 73674 setTranslate: function setTranslate(swiper) { 73675 if (swiper.params.effect !== 'fade') return; 73676 swiper.fadeEffect.setTranslate(); 73677 }, 73678 setTransition: function setTransition(swiper, duration) { 73679 if (swiper.params.effect !== 'fade') return; 73680 swiper.fadeEffect.setTransition(duration); 73681 } 73682 } 73683}); 73684 73685/***/ }), 73686
vendor: 5,538 bytes, lines 73687-73823
73687/***/ "./node_modules/swiper/esm/components/effect-flip/effect-flip.js": 73688/*!***********************************************************************!*\ 73689 !*** ./node_modules/swiper/esm/components/effect-flip/effect-flip.js ***! 73690 \***********************************************************************/ 73691/*! exports provided: default */ 73692/***/ (function(module, __webpack_exports__, __webpack_require__) { 73693 73694"use strict"; 73695__webpack_require__.r(__webpack_exports__); 73696/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 73697/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73698function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73699 73700 73701 73702var Flip = { 73703 setTranslate: function setTranslate() { 73704 var swiper = this; 73705 var slides = swiper.slides, 73706 rtl = swiper.rtlTranslate; 73707 73708 for (var i = 0; i < slides.length; i += 1) { 73709 var $slideEl = slides.eq(i); 73710 var progress = $slideEl[0].progress; 73711 73712 if (swiper.params.flipEffect.limitRotation) { 73713 progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 73714 } 73715 73716 var offset = $slideEl[0].swiperSlideOffset; 73717 var rotate = -180 * progress; 73718 var rotateY = rotate; 73719 var rotateX = 0; 73720 var tx = -offset; 73721 var ty = 0; 73722 73723 if (!swiper.isHorizontal()) { 73724 ty = tx; 73725 tx = 0; 73726 rotateX = -rotateY; 73727 rotateY = 0; 73728 } else if (rtl) { 73729 rotateY = -rotateY; 73730 } 73731 73732 $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 73733 73734 if (swiper.params.flipEffect.slideShadows) { 73735 // Set shadows 73736 var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 73737 var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 73738 73739 if (shadowBefore.length === 0) { 73740 shadowBefore = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-" + (swiper.isHorizontal() ? 'left' : 'top') + "\"></div>"); 73741 $slideEl.append(shadowBefore); 73742 } 73743 73744 if (shadowAfter.length === 0) { 73745 shadowAfter = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-" + (swiper.isHorizontal() ? 'right' : 'bottom') + "\"></div>"); 73746 $slideEl.append(shadowAfter); 73747 } 73748 73749 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 73750 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 73751 } 73752 73753 $slideEl.transform("translate3d(" + tx + "px, " + ty + "px, 0px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)"); 73754 } 73755 }, 73756 setTransition: function setTransition(duration) { 73757 var swiper = this; 73758 var slides = swiper.slides, 73759 activeIndex = swiper.activeIndex, 73760 $wrapperEl = swiper.$wrapperEl; 73761 slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 73762 73763 if (swiper.params.virtualTranslate && duration !== 0) { 73764 var eventTriggered = false; // eslint-disable-next-line 73765 73766 slides.eq(activeIndex).transitionEnd(function onTransitionEnd() { 73767 if (eventTriggered) return; 73768 if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return; 73769 73770 eventTriggered = true; 73771 swiper.animating = false; 73772 var triggerEvents = ['webkitTransitionEnd', 'transitionend']; 73773 73774 for (var i = 0; i < triggerEvents.length; i += 1) { 73775 $wrapperEl.trigger(triggerEvents[i]); 73776 } 73777 }); 73778 } 73779 } 73780}; 73781/* harmony default export */ __webpack_exports__["default"] = ({ 73782 name: 'effect-flip', 73783 params: { 73784 flipEffect: { 73785 slideShadows: true, 73786 limitRotation: true 73787 } 73788 }, 73789 create: function create() { 73790 var swiper = this; 73791 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 73792 flipEffect: _extends({}, Flip) 73793 }); 73794 }, 73795 on: { 73796 beforeInit: function beforeInit(swiper) { 73797 if (swiper.params.effect !== 'flip') return; 73798 swiper.classNames.push(swiper.params.containerModifierClass + "flip"); 73799 swiper.classNames.push(swiper.params.containerModifierClass + "3d"); 73800 var overwriteParams = { 73801 slidesPerView: 1, 73802 slidesPerColumn: 1, 73803 slidesPerGroup: 1, 73804 watchSlidesProgress: true, 73805 spaceBetween: 0, 73806 virtualTranslate: true 73807 }; 73808 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.params, overwriteParams); 73809 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.originalParams, overwriteParams); 73810 }, 73811 setTranslate: function setTranslate(swiper) { 73812 if (swiper.params.effect !== 'flip') return; 73813 swiper.flipEffect.setTranslate(); 73814 }, 73815 setTransition: function setTransition(swiper, duration) { 73816 if (swiper.params.effect !== 'flip') return; 73817 swiper.flipEffect.setTransition(duration); 73818 } 73819 } 73820}); 73821 73822/***/ }), 73823
vendor: 5,172 bytes, lines 73824-73948
73824/***/ "./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js": 73825/*!*******************************************************************************!*\ 73826 !*** ./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js ***! 73827 \*******************************************************************************/ 73828/*! exports provided: default */ 73829/***/ (function(module, __webpack_exports__, __webpack_require__) { 73830 73831"use strict"; 73832__webpack_require__.r(__webpack_exports__); 73833/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 73834/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 73835/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73836function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73837 73838 73839 73840 73841var HashNavigation = { 73842 onHashCange: function onHashCange() { 73843 var swiper = this; 73844 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 73845 swiper.emit('hashChange'); 73846 var newHash = document.location.hash.replace('#', ''); 73847 var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); 73848 73849 if (newHash !== activeSlideHash) { 73850 var newIndex = swiper.$wrapperEl.children("." + swiper.params.slideClass + "[data-hash=\"" + newHash + "\"]").index(); 73851 if (typeof newIndex === 'undefined') return; 73852 swiper.slideTo(newIndex); 73853 } 73854 }, 73855 setHash: function setHash() { 73856 var swiper = this; 73857 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 73858 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 73859 if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return; 73860 73861 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 73862 window.history.replaceState(null, null, "#" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || false); 73863 swiper.emit('hashSet'); 73864 } else { 73865 var slide = swiper.slides.eq(swiper.activeIndex); 73866 var hash = slide.attr('data-hash') || slide.attr('data-history'); 73867 document.location.hash = hash || ''; 73868 swiper.emit('hashSet'); 73869 } 73870 }, 73871 init: function init() { 73872 var swiper = this; 73873 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 73874 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 73875 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 73876 swiper.hashNavigation.initialized = true; 73877 var hash = document.location.hash.replace('#', ''); 73878 73879 if (hash) { 73880 var speed = 0; 73881 73882 for (var i = 0, length = swiper.slides.length; i < length; i += 1) { 73883 var slide = swiper.slides.eq(i); 73884 var slideHash = slide.attr('data-hash') || slide.attr('data-history'); 73885 73886 if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { 73887 var index = slide.index(); 73888 swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true); 73889 } 73890 } 73891 } 73892 73893 if (swiper.params.hashNavigation.watchState) { 73894 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(window).on('hashchange', swiper.hashNavigation.onHashCange); 73895 } 73896 }, 73897 destroy: function destroy() { 73898 var swiper = this; 73899 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 73900 73901 if (swiper.params.hashNavigation.watchState) { 73902 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(window).off('hashchange', swiper.hashNavigation.onHashCange); 73903 } 73904 } 73905}; 73906/* harmony default export */ __webpack_exports__["default"] = ({ 73907 name: 'hash-navigation', 73908 params: { 73909 hashNavigation: { 73910 enabled: false, 73911 replaceState: false, 73912 watchState: false 73913 } 73914 }, 73915 create: function create() { 73916 var swiper = this; 73917 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["bindModuleMethods"])(swiper, { 73918 hashNavigation: _extends({ 73919 initialized: false 73920 }, HashNavigation) 73921 }); 73922 }, 73923 on: { 73924 init: function init(swiper) { 73925 if (swiper.params.hashNavigation.enabled) { 73926 swiper.hashNavigation.init(); 73927 } 73928 }, 73929 destroy: function destroy(swiper) { 73930 if (swiper.params.hashNavigation.enabled) { 73931 swiper.hashNavigation.destroy(); 73932 } 73933 }, 73934 transitionEnd: function transitionEnd(swiper) { 73935 if (swiper.hashNavigation.initialized) { 73936 swiper.hashNavigation.setHash(); 73937 } 73938 }, 73939 slideChange: function slideChange(swiper) { 73940 if (swiper.hashNavigation.initialized && swiper.params.cssMode) { 73941 swiper.hashNavigation.setHash(); 73942 } 73943 } 73944 } 73945}); 73946 73947/***/ }), 73948
vendor: 5,628 bytes, lines 73949-74116
73949/***/ "./node_modules/swiper/esm/components/history/history.js": 73950/*!***************************************************************!*\ 73951 !*** ./node_modules/swiper/esm/components/history/history.js ***! 73952 \***************************************************************/ 73953/*! exports provided: default */ 73954/***/ (function(module, __webpack_exports__, __webpack_require__) { 73955 73956"use strict"; 73957__webpack_require__.r(__webpack_exports__); 73958/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 73959/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 73960function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 73961 73962 73963 73964var History = { 73965 init: function init() { 73966 var swiper = this; 73967 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 73968 if (!swiper.params.history) return; 73969 73970 if (!window.history || !window.history.pushState) { 73971 swiper.params.history.enabled = false; 73972 swiper.params.hashNavigation.enabled = true; 73973 return; 73974 } 73975 73976 var history = swiper.history; 73977 history.initialized = true; 73978 history.paths = History.getPathValues(swiper.params.url); 73979 if (!history.paths.key && !history.paths.value) return; 73980 history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit); 73981 73982 if (!swiper.params.history.replaceState) { 73983 window.addEventListener('popstate', swiper.history.setHistoryPopState); 73984 } 73985 }, 73986 destroy: function destroy() { 73987 var swiper = this; 73988 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 73989 73990 if (!swiper.params.history.replaceState) { 73991 window.removeEventListener('popstate', swiper.history.setHistoryPopState); 73992 } 73993 }, 73994 setHistoryPopState: function setHistoryPopState() { 73995 var swiper = this; 73996 swiper.history.paths = History.getPathValues(swiper.params.url); 73997 swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false); 73998 }, 73999 getPathValues: function getPathValues(urlOverride) { 74000 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 74001 var location; 74002 74003 if (urlOverride) { 74004 location = new URL(urlOverride); 74005 } else { 74006 location = window.location; 74007 } 74008 74009 var pathArray = location.pathname.slice(1).split('/').filter(function (part) { 74010 return part !== ''; 74011 }); 74012 var total = pathArray.length; 74013 var key = pathArray[total - 2]; 74014 var value = pathArray[total - 1]; 74015 return { 74016 key: key, 74017 value: value 74018 }; 74019 }, 74020 setHistory: function setHistory(key, index) { 74021 var swiper = this; 74022 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 74023 if (!swiper.history.initialized || !swiper.params.history.enabled) return; 74024 var location; 74025 74026 if (swiper.params.url) { 74027 location = new URL(swiper.params.url); 74028 } else { 74029 location = window.location; 74030 } 74031 74032 var slide = swiper.slides.eq(index); 74033 var value = History.slugify(slide.attr('data-history')); 74034 74035 if (!location.pathname.includes(key)) { 74036 value = key + "/" + value; 74037 } 74038 74039 var currentState = window.history.state; 74040 74041 if (currentState && currentState.value === value) { 74042 return; 74043 } 74044 74045 if (swiper.params.history.replaceState) { 74046 window.history.replaceState({ 74047 value: value 74048 }, null, value); 74049 } else { 74050 window.history.pushState({ 74051 value: value 74052 }, null, value); 74053 } 74054 }, 74055 slugify: function slugify(text) { 74056 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 74057 }, 74058 scrollToSlide: function scrollToSlide(speed, value, runCallbacks) { 74059 var swiper = this; 74060 74061 if (value) { 74062 for (var i = 0, length = swiper.slides.length; i < length; i += 1) { 74063 var slide = swiper.slides.eq(i); 74064 var slideHistory = History.slugify(slide.attr('data-history')); 74065 74066 if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { 74067 var index = slide.index(); 74068 swiper.slideTo(index, speed, runCallbacks); 74069 } 74070 } 74071 } else { 74072 swiper.slideTo(0, speed, runCallbacks); 74073 } 74074 } 74075}; 74076/* harmony default export */ __webpack_exports__["default"] = ({ 74077 name: 'history', 74078 params: { 74079 history: { 74080 enabled: false, 74081 replaceState: false, 74082 key: 'slides' 74083 } 74084 }, 74085 create: function create() { 74086 var swiper = this; 74087 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 74088 history: _extends({}, History) 74089 }); 74090 }, 74091 on: { 74092 init: function init(swiper) { 74093 if (swiper.params.history.enabled) { 74094 swiper.history.init(); 74095 } 74096 }, 74097 destroy: function destroy(swiper) { 74098 if (swiper.params.history.enabled) { 74099 swiper.history.destroy(); 74100 } 74101 }, 74102 transitionEnd: function transitionEnd(swiper) { 74103 if (swiper.history.initialized) { 74104 swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); 74105 } 74106 }, 74107 slideChange: function slideChange(swiper) { 74108 if (swiper.history.initialized && swiper.params.cssMode) { 74109 swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); 74110 } 74111 } 74112 } 74113}); 74114 74115/***/ }), 74116
vendor: 5,779 bytes, lines 74117-74258
74117/***/ "./node_modules/swiper/esm/components/keyboard/keyboard.js": 74118/*!*****************************************************************!*\ 74119 !*** ./node_modules/swiper/esm/components/keyboard/keyboard.js ***! 74120 \*****************************************************************/ 74121/*! exports provided: default */ 74122/***/ (function(module, __webpack_exports__, __webpack_require__) { 74123 74124"use strict"; 74125__webpack_require__.r(__webpack_exports__); 74126/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 74127/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 74128/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 74129function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 74130 74131 74132 74133 74134var Keyboard = { 74135 handle: function handle(event) { 74136 var swiper = this; 74137 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 74138 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 74139 var rtl = swiper.rtlTranslate; 74140 var e = event; 74141 if (e.originalEvent) e = e.originalEvent; // jquery fix 74142 74143 var kc = e.keyCode || e.charCode; 74144 var pageUpDown = swiper.params.keyboard.pageUpDown; 74145 var isPageUp = pageUpDown && kc === 33; 74146 var isPageDown = pageUpDown && kc === 34; 74147 var isArrowLeft = kc === 37; 74148 var isArrowRight = kc === 39; 74149 var isArrowUp = kc === 38; 74150 var isArrowDown = kc === 40; // Directions locks 74151 74152 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 74153 return false; 74154 } 74155 74156 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 74157 return false; 74158 } 74159 74160 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 74161 return undefined; 74162 } 74163 74164 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 74165 return undefined; 74166 } 74167 74168 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 74169 var inView = false; // Check that swiper should be inside of visible area of window 74170 74171 if (swiper.$el.parents("." + swiper.params.slideClass).length > 0 && swiper.$el.parents("." + swiper.params.slideActiveClass).length === 0) { 74172 return undefined; 74173 } 74174 74175 var windowWidth = window.innerWidth; 74176 var windowHeight = window.innerHeight; 74177 var swiperOffset = swiper.$el.offset(); 74178 if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; 74179 var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]]; 74180 74181 for (var i = 0; i < swiperCoord.length; i += 1) { 74182 var point = swiperCoord[i]; 74183 74184 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 74185 inView = true; 74186 } 74187 } 74188 74189 if (!inView) return undefined; 74190 } 74191 74192 if (swiper.isHorizontal()) { 74193 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 74194 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 74195 } 74196 74197 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 74198 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 74199 } else { 74200 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 74201 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 74202 } 74203 74204 if (isPageDown || isArrowDown) swiper.slideNext(); 74205 if (isPageUp || isArrowUp) swiper.slidePrev(); 74206 } 74207 74208 swiper.emit('keyPress', kc); 74209 return undefined; 74210 }, 74211 enable: function enable() { 74212 var swiper = this; 74213 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 74214 if (swiper.keyboard.enabled) return; 74215 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(document).on('keydown', swiper.keyboard.handle); 74216 swiper.keyboard.enabled = true; 74217 }, 74218 disable: function disable() { 74219 var swiper = this; 74220 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 74221 if (!swiper.keyboard.enabled) return; 74222 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(document).off('keydown', swiper.keyboard.handle); 74223 swiper.keyboard.enabled = false; 74224 } 74225}; 74226/* harmony default export */ __webpack_exports__["default"] = ({ 74227 name: 'keyboard', 74228 params: { 74229 keyboard: { 74230 enabled: false, 74231 onlyInViewport: true, 74232 pageUpDown: true 74233 } 74234 }, 74235 create: function create() { 74236 var swiper = this; 74237 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["bindModuleMethods"])(swiper, { 74238 keyboard: _extends({ 74239 enabled: false 74240 }, Keyboard) 74241 }); 74242 }, 74243 on: { 74244 init: function init(swiper) { 74245 if (swiper.params.keyboard.enabled) { 74246 swiper.keyboard.enable(); 74247 } 74248 }, 74249 destroy: function destroy(swiper) { 74250 if (swiper.keyboard.enabled) { 74251 swiper.keyboard.disable(); 74252 } 74253 } 74254 } 74255}); 74256 74257/***/ }), 74258
vendor: 9,406 bytes, lines 74259-74499
74259/***/ "./node_modules/swiper/esm/components/lazy/lazy.js": 74260/*!*********************************************************!*\ 74261 !*** ./node_modules/swiper/esm/components/lazy/lazy.js ***! 74262 \*********************************************************/ 74263/*! exports provided: default */ 74264/***/ (function(module, __webpack_exports__, __webpack_require__) { 74265 74266"use strict"; 74267__webpack_require__.r(__webpack_exports__); 74268/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 74269/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 74270function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 74271 74272 74273 74274var Lazy = { 74275 loadInSlide: function loadInSlide(index, loadInDuplicate) { 74276 if (loadInDuplicate === void 0) { 74277 loadInDuplicate = true; 74278 } 74279 74280 var swiper = this; 74281 var params = swiper.params.lazy; 74282 if (typeof index === 'undefined') return; 74283 if (swiper.slides.length === 0) return; 74284 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 74285 var $slideEl = isVirtual ? swiper.$wrapperEl.children("." + swiper.params.slideClass + "[data-swiper-slide-index=\"" + index + "\"]") : swiper.slides.eq(index); 74286 var $images = $slideEl.find("." + params.elementClass + ":not(." + params.loadedClass + "):not(." + params.loadingClass + ")"); 74287 74288 if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { 74289 $images.push($slideEl[0]); 74290 } 74291 74292 if ($images.length === 0) return; 74293 $images.each(function (imageEl) { 74294 var $imageEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(imageEl); 74295 $imageEl.addClass(params.loadingClass); 74296 var background = $imageEl.attr('data-background'); 74297 var src = $imageEl.attr('data-src'); 74298 var srcset = $imageEl.attr('data-srcset'); 74299 var sizes = $imageEl.attr('data-sizes'); 74300 var $pictureEl = $imageEl.parent('picture'); 74301 swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () { 74302 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return; 74303 74304 if (background) { 74305 $imageEl.css('background-image', "url(\"" + background + "\")"); 74306 $imageEl.removeAttr('data-background'); 74307 } else { 74308 if (srcset) { 74309 $imageEl.attr('srcset', srcset); 74310 $imageEl.removeAttr('data-srcset'); 74311 } 74312 74313 if (sizes) { 74314 $imageEl.attr('sizes', sizes); 74315 $imageEl.removeAttr('data-sizes'); 74316 } 74317 74318 if ($pictureEl.length) { 74319 $pictureEl.children('source').each(function (sourceEl) { 74320 var $source = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(sourceEl); 74321 74322 if ($source.attr('data-srcset')) { 74323 $source.attr('srcset', $source.attr('data-srcset')); 74324 $source.removeAttr('data-srcset'); 74325 } 74326 }); 74327 } 74328 74329 if (src) { 74330 $imageEl.attr('src', src); 74331 $imageEl.removeAttr('data-src'); 74332 } 74333 } 74334 74335 $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); 74336 $slideEl.find("." + params.preloaderClass).remove(); 74337 74338 if (swiper.params.loop && loadInDuplicate) { 74339 var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); 74340 74341 if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { 74342 var originalSlide = swiper.$wrapperEl.children("[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]:not(." + swiper.params.slideDuplicateClass + ")"); 74343 swiper.lazy.loadInSlide(originalSlide.index(), false); 74344 } else { 74345 var duplicatedSlide = swiper.$wrapperEl.children("." + swiper.params.slideDuplicateClass + "[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]"); 74346 swiper.lazy.loadInSlide(duplicatedSlide.index(), false); 74347 } 74348 } 74349 74350 swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]); 74351 74352 if (swiper.params.autoHeight) { 74353 swiper.updateAutoHeight(); 74354 } 74355 }); 74356 swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]); 74357 }); 74358 }, 74359 load: function load() { 74360 var swiper = this; 74361 var $wrapperEl = swiper.$wrapperEl, 74362 swiperParams = swiper.params, 74363 slides = swiper.slides, 74364 activeIndex = swiper.activeIndex; 74365 var isVirtual = swiper.virtual && swiperParams.virtual.enabled; 74366 var params = swiperParams.lazy; 74367 var slidesPerView = swiperParams.slidesPerView; 74368 74369 if (slidesPerView === 'auto') { 74370 slidesPerView = 0; 74371 } 74372 74373 function slideExist(index) { 74374 if (isVirtual) { 74375 if ($wrapperEl.children("." + swiperParams.slideClass + "[data-swiper-slide-index=\"" + index + "\"]").length) { 74376 return true; 74377 } 74378 } else if (slides[index]) return true; 74379 74380 return false; 74381 } 74382 74383 function slideIndex(slideEl) { 74384 if (isVirtual) { 74385 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).attr('data-swiper-slide-index'); 74386 } 74387 74388 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).index(); 74389 } 74390 74391 if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true; 74392 74393 if (swiper.params.watchSlidesVisibility) { 74394 $wrapperEl.children("." + swiperParams.slideVisibleClass).each(function (slideEl) { 74395 var index = isVirtual ? Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).attr('data-swiper-slide-index') : Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).index(); 74396 swiper.lazy.loadInSlide(index); 74397 }); 74398 } else if (slidesPerView > 1) { 74399 for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) { 74400 if (slideExist(i)) swiper.lazy.loadInSlide(i); 74401 } 74402 } else { 74403 swiper.lazy.loadInSlide(activeIndex); 74404 } 74405 74406 if (params.loadPrevNext) { 74407 if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) { 74408 var amount = params.loadPrevNextAmount; 74409 var spv = slidesPerView; 74410 var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); 74411 var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides 74412 74413 for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) { 74414 if (slideExist(_i)) swiper.lazy.loadInSlide(_i); 74415 } // Prev Slides 74416 74417 74418 for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) { 74419 if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2); 74420 } 74421 } else { 74422 var nextSlide = $wrapperEl.children("." + swiperParams.slideNextClass); 74423 if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide)); 74424 var prevSlide = $wrapperEl.children("." + swiperParams.slidePrevClass); 74425 if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide)); 74426 } 74427 } 74428 } 74429}; 74430/* harmony default export */ __webpack_exports__["default"] = ({ 74431 name: 'lazy', 74432 params: { 74433 lazy: { 74434 enabled: false, 74435 loadPrevNext: false, 74436 loadPrevNextAmount: 1, 74437 loadOnTransitionStart: false, 74438 elementClass: 'swiper-lazy', 74439 loadingClass: 'swiper-lazy-loading', 74440 loadedClass: 'swiper-lazy-loaded', 74441 preloaderClass: 'swiper-lazy-preloader' 74442 } 74443 }, 74444 create: function create() { 74445 var swiper = this; 74446 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 74447 lazy: _extends({ 74448 initialImageLoaded: false 74449 }, Lazy) 74450 }); 74451 }, 74452 on: { 74453 beforeInit: function beforeInit(swiper) { 74454 if (swiper.params.lazy.enabled && swiper.params.preloadImages) { 74455 swiper.params.preloadImages = false; 74456 } 74457 }, 74458 init: function init(swiper) { 74459 if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) { 74460 swiper.lazy.load(); 74461 } 74462 }, 74463 scroll: function scroll(swiper) { 74464 if (swiper.params.freeMode && !swiper.params.freeModeSticky) { 74465 swiper.lazy.load(); 74466 } 74467 }, 74468 resize: function resize(swiper) { 74469 if (swiper.params.lazy.enabled) { 74470 swiper.lazy.load(); 74471 } 74472 }, 74473 scrollbarDragMove: function scrollbarDragMove(swiper) { 74474 if (swiper.params.lazy.enabled) { 74475 swiper.lazy.load(); 74476 } 74477 }, 74478 transitionStart: function transitionStart(swiper) { 74479 if (swiper.params.lazy.enabled) { 74480 if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) { 74481 swiper.lazy.load(); 74482 } 74483 } 74484 }, 74485 transitionEnd: function transitionEnd(swiper) { 74486 if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { 74487 swiper.lazy.load(); 74488 } 74489 }, 74490 slideChange: function slideChange(swiper) { 74491 if (swiper.params.lazy.enabled && swiper.params.cssMode) { 74492 swiper.lazy.load(); 74493 } 74494 } 74495 } 74496}); 74497 74498/***/ }), 74499
vendor: 16,904 bytes, lines 74500-74960
74500/***/ "./node_modules/swiper/esm/components/mousewheel/mousewheel.js": 74501/*!*********************************************************************!*\ 74502 !*** ./node_modules/swiper/esm/components/mousewheel/mousewheel.js ***! 74503 \*********************************************************************/ 74504/*! exports provided: default */ 74505/***/ (function(module, __webpack_exports__, __webpack_require__) { 74506 74507"use strict"; 74508__webpack_require__.r(__webpack_exports__); 74509/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 74510/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 74511/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 74512 74513 74514 74515 74516function isEventSupported() { 74517 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 74518 var eventName = 'onwheel'; 74519 var isSupported = (eventName in document); 74520 74521 if (!isSupported) { 74522 var element = document.createElement('div'); 74523 element.setAttribute(eventName, 'return;'); 74524 isSupported = typeof element[eventName] === 'function'; 74525 } 74526 74527 if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard. 74528 // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature 74529 document.implementation.hasFeature('', '') !== true) { 74530 // This is the only way to test support for the `wheel` event in IE9+. 74531 isSupported = document.implementation.hasFeature('Events.wheel', '3.0'); 74532 } 74533 74534 return isSupported; 74535} 74536 74537var Mousewheel = { 74538 lastScrollTime: Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["now"])(), 74539 lastEventBeforeSnap: undefined, 74540 recentWheelEvents: [], 74541 event: function event() { 74542 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 74543 if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll'; 74544 return isEventSupported() ? 'wheel' : 'mousewheel'; 74545 }, 74546 normalize: function normalize(e) { 74547 // Reasonable defaults 74548 var PIXEL_STEP = 10; 74549 var LINE_HEIGHT = 40; 74550 var PAGE_HEIGHT = 800; 74551 var sX = 0; 74552 var sY = 0; // spinX, spinY 74553 74554 var pX = 0; 74555 var pY = 0; // pixelX, pixelY 74556 // Legacy 74557 74558 if ('detail' in e) { 74559 sY = e.detail; 74560 } 74561 74562 if ('wheelDelta' in e) { 74563 sY = -e.wheelDelta / 120; 74564 } 74565 74566 if ('wheelDeltaY' in e) { 74567 sY = -e.wheelDeltaY / 120; 74568 } 74569 74570 if ('wheelDeltaX' in e) { 74571 sX = -e.wheelDeltaX / 120; 74572 } // side scrolling on FF with DOMMouseScroll 74573 74574 74575 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 74576 sX = sY; 74577 sY = 0; 74578 } 74579 74580 pX = sX * PIXEL_STEP; 74581 pY = sY * PIXEL_STEP; 74582 74583 if ('deltaY' in e) { 74584 pY = e.deltaY; 74585 } 74586 74587 if ('deltaX' in e) { 74588 pX = e.deltaX; 74589 } 74590 74591 if (e.shiftKey && !pX) { 74592 // if user scrolls with shift he wants horizontal scroll 74593 pX = pY; 74594 pY = 0; 74595 } 74596 74597 if ((pX || pY) && e.deltaMode) { 74598 if (e.deltaMode === 1) { 74599 // delta in LINE units 74600 pX *= LINE_HEIGHT; 74601 pY *= LINE_HEIGHT; 74602 } else { 74603 // delta in PAGE units 74604 pX *= PAGE_HEIGHT; 74605 pY *= PAGE_HEIGHT; 74606 } 74607 } // Fall-back if spin cannot be determined 74608 74609 74610 if (pX && !sX) { 74611 sX = pX < 1 ? -1 : 1; 74612 } 74613 74614 if (pY && !sY) { 74615 sY = pY < 1 ? -1 : 1; 74616 } 74617 74618 return { 74619 spinX: sX, 74620 spinY: sY, 74621 pixelX: pX, 74622 pixelY: pY 74623 }; 74624 }, 74625 handleMouseEnter: function handleMouseEnter() { 74626 var swiper = this; 74627 swiper.mouseEntered = true; 74628 }, 74629 handleMouseLeave: function handleMouseLeave() { 74630 var swiper = this; 74631 swiper.mouseEntered = false; 74632 }, 74633 handle: function handle(event) { 74634 var e = event; 74635 var swiper = this; 74636 var params = swiper.params.mousewheel; 74637 74638 if (swiper.params.cssMode) { 74639 e.preventDefault(); 74640 } 74641 74642 var target = swiper.$el; 74643 74644 if (swiper.params.mousewheel.eventsTarget !== 'container') { 74645 target = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 74646 } 74647 74648 if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true; 74649 if (e.originalEvent) e = e.originalEvent; // jquery fix 74650 74651 var delta = 0; 74652 var rtlFactor = swiper.rtlTranslate ? -1 : 1; 74653 var data = Mousewheel.normalize(e); 74654 74655 if (params.forceToAxis) { 74656 if (swiper.isHorizontal()) { 74657 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 74658 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 74659 } else { 74660 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 74661 } 74662 74663 if (delta === 0) return true; 74664 if (params.invert) delta = -delta; 74665 74666 if (!swiper.params.freeMode) { 74667 // Register the new event in a variable which stores the relevant data 74668 var newEvent = { 74669 time: Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["now"])(), 74670 delta: Math.abs(delta), 74671 direction: Math.sign(delta), 74672 raw: event 74673 }; // Keep the most recent events 74674 74675 var recentWheelEvents = swiper.mousewheel.recentWheelEvents; 74676 74677 if (recentWheelEvents.length >= 2) { 74678 recentWheelEvents.shift(); // only store the last N events 74679 } 74680 74681 var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 74682 recentWheelEvents.push(newEvent); // If there is at least one previous recorded event: 74683 // If direction has changed or 74684 // if the scroll is quicker than the previous one: 74685 // Animate the slider. 74686 // Else (this is the first time the wheel is moved): 74687 // Animate the slider. 74688 74689 if (prevEvent) { 74690 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 74691 swiper.mousewheel.animateSlider(newEvent); 74692 } 74693 } else { 74694 swiper.mousewheel.animateSlider(newEvent); 74695 } // If it's time to release the scroll: 74696 // Return now so you don't hit the preventDefault. 74697 74698 74699 if (swiper.mousewheel.releaseScroll(newEvent)) { 74700 return true; 74701 } 74702 } else { 74703 // Freemode or scrollContainer: 74704 // If we recently snapped after a momentum scroll, then ignore wheel events 74705 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 74706 // or if it's a new scroll (larger delta or inverse sign as last event before 74707 // an end-of-momentum snap). 74708 var _newEvent = { 74709 time: Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["now"])(), 74710 delta: Math.abs(delta), 74711 direction: Math.sign(delta) 74712 }; 74713 var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap; 74714 var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction; 74715 74716 if (!ignoreWheelEvents) { 74717 swiper.mousewheel.lastEventBeforeSnap = undefined; 74718 74719 if (swiper.params.loop) { 74720 swiper.loopFix(); 74721 } 74722 74723 var position = swiper.getTranslate() + delta * params.sensitivity; 74724 var wasBeginning = swiper.isBeginning; 74725 var wasEnd = swiper.isEnd; 74726 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 74727 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 74728 swiper.setTransition(0); 74729 swiper.setTranslate(position); 74730 swiper.updateProgress(); 74731 swiper.updateActiveIndex(); 74732 swiper.updateSlidesClasses(); 74733 74734 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 74735 swiper.updateSlidesClasses(); 74736 } 74737 74738 if (swiper.params.freeModeSticky) { 74739 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 74740 // the end of a momentum scroll by storing recent (N=15?) wheel events. 74741 // 1. do all N events have decreasing or same (absolute value) delta? 74742 // 2. did all N events arrive in the last M (M=500?) msecs? 74743 // 3. does the earliest event have an (absolute value) delta that's 74744 // at least P (P=1?) larger than the most recent event's delta? 74745 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 74746 // If 1-4 are "yes" then we're near the end of a momuntum scroll deceleration. 74747 // Snap immediately and ignore remaining wheel events in this scroll. 74748 // See comment above for "remaining wheel events in this scroll" determination. 74749 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 74750 clearTimeout(swiper.mousewheel.timeout); 74751 swiper.mousewheel.timeout = undefined; 74752 var _recentWheelEvents = swiper.mousewheel.recentWheelEvents; 74753 74754 if (_recentWheelEvents.length >= 15) { 74755 _recentWheelEvents.shift(); // only store the last N events 74756 74757 } 74758 74759 var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined; 74760 74761 var firstEvent = _recentWheelEvents[0]; 74762 74763 _recentWheelEvents.push(_newEvent); 74764 74765 if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) { 74766 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 74767 _recentWheelEvents.splice(0); 74768 } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) { 74769 // We're at the end of the deceleration of a momentum scroll, so there's no need 74770 // to wait for more events. Snap ASAP on the next tick. 74771 // Also, because there's some remaining momentum we'll bias the snap in the 74772 // direction of the ongoing scroll because it's better UX for the scroll to snap 74773 // in the same direction as the scroll instead of reversing to snap. Therefore, 74774 // if it's already scrolled more than 20% in the current direction, keep going. 74775 var snapToThreshold = delta > 0 ? 0.8 : 0.2; 74776 swiper.mousewheel.lastEventBeforeSnap = _newEvent; 74777 74778 _recentWheelEvents.splice(0); 74779 74780 swiper.mousewheel.timeout = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["nextTick"])(function () { 74781 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 74782 }, 0); // no delay; move on next tick 74783 } 74784 74785 if (!swiper.mousewheel.timeout) { 74786 // if we get here, then we haven't detected the end of a momentum scroll, so 74787 // we'll consider a scroll "complete" when there haven't been any wheel events 74788 // for 500ms. 74789 swiper.mousewheel.timeout = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["nextTick"])(function () { 74790 var snapToThreshold = 0.5; 74791 swiper.mousewheel.lastEventBeforeSnap = _newEvent; 74792 74793 _recentWheelEvents.splice(0); 74794 74795 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 74796 }, 500); 74797 } 74798 } // Emit event 74799 74800 74801 if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay 74802 74803 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions 74804 74805 if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; 74806 } 74807 } 74808 74809 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 74810 return false; 74811 }, 74812 animateSlider: function animateSlider(newEvent) { 74813 var swiper = this; 74814 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); // If the movement is NOT big enough and 74815 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 74816 // Don't go any further (avoid insignificant scroll movement). 74817 74818 if (newEvent.delta >= 6 && Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["now"])() - swiper.mousewheel.lastScrollTime < 60) { 74819 // Return false as a default 74820 return true; 74821 } // If user is scrolling towards the end: 74822 // If the slider hasn't hit the latest slide or 74823 // if the slider is a loop and 74824 // if the slider isn't moving right now: 74825 // Go to next slide and 74826 // emit a scroll event. 74827 // Else (the user is scrolling towards the beginning) and 74828 // if the slider hasn't hit the first slide or 74829 // if the slider is a loop and 74830 // if the slider isn't moving right now: 74831 // Go to prev slide and 74832 // emit a scroll event. 74833 74834 74835 if (newEvent.direction < 0) { 74836 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 74837 swiper.slideNext(); 74838 swiper.emit('scroll', newEvent.raw); 74839 } 74840 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 74841 swiper.slidePrev(); 74842 swiper.emit('scroll', newEvent.raw); 74843 } // If you got here is because an animation has been triggered so store the current time 74844 74845 74846 swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default 74847 74848 return false; 74849 }, 74850 releaseScroll: function releaseScroll(newEvent) { 74851 var swiper = this; 74852 var params = swiper.params.mousewheel; 74853 74854 if (newEvent.direction < 0) { 74855 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 74856 // Return true to animate scroll on edges 74857 return true; 74858 } 74859 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 74860 // Return true to animate scroll on edges 74861 return true; 74862 } 74863 74864 return false; 74865 }, 74866 enable: function enable() { 74867 var swiper = this; 74868 var event = Mousewheel.event(); 74869 74870 if (swiper.params.cssMode) { 74871 swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle); 74872 return true; 74873 } 74874 74875 if (!event) return false; 74876 if (swiper.mousewheel.enabled) return false; 74877 var target = swiper.$el; 74878 74879 if (swiper.params.mousewheel.eventsTarget !== 'container') { 74880 target = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 74881 } 74882 74883 target.on('mouseenter', swiper.mousewheel.handleMouseEnter); 74884 target.on('mouseleave', swiper.mousewheel.handleMouseLeave); 74885 target.on(event, swiper.mousewheel.handle); 74886 swiper.mousewheel.enabled = true; 74887 return true; 74888 }, 74889 disable: function disable() { 74890 var swiper = this; 74891 var event = Mousewheel.event(); 74892 74893 if (swiper.params.cssMode) { 74894 swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle); 74895 return true; 74896 } 74897 74898 if (!event) return false; 74899 if (!swiper.mousewheel.enabled) return false; 74900 var target = swiper.$el; 74901 74902 if (swiper.params.mousewheel.eventsTarget !== 'container') { 74903 target = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 74904 } 74905 74906 target.off(event, swiper.mousewheel.handle); 74907 swiper.mousewheel.enabled = false; 74908 return true; 74909 } 74910}; 74911/* harmony default export */ __webpack_exports__["default"] = ({ 74912 name: 'mousewheel', 74913 params: { 74914 mousewheel: { 74915 enabled: false, 74916 releaseOnEdges: false, 74917 invert: false, 74918 forceToAxis: false, 74919 sensitivity: 1, 74920 eventsTarget: 'container' 74921 } 74922 }, 74923 create: function create() { 74924 var swiper = this; 74925 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["bindModuleMethods"])(swiper, { 74926 mousewheel: { 74927 enabled: false, 74928 lastScrollTime: Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["now"])(), 74929 lastEventBeforeSnap: undefined, 74930 recentWheelEvents: [], 74931 enable: Mousewheel.enable, 74932 disable: Mousewheel.disable, 74933 handle: Mousewheel.handle, 74934 handleMouseEnter: Mousewheel.handleMouseEnter, 74935 handleMouseLeave: Mousewheel.handleMouseLeave, 74936 animateSlider: Mousewheel.animateSlider, 74937 releaseScroll: Mousewheel.releaseScroll 74938 } 74939 }); 74940 }, 74941 on: { 74942 init: function init(swiper) { 74943 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 74944 swiper.mousewheel.disable(); 74945 } 74946 74947 if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable(); 74948 }, 74949 destroy: function destroy(swiper) { 74950 if (swiper.params.cssMode) { 74951 swiper.mousewheel.enable(); 74952 } 74953 74954 if (swiper.mousewheel.enabled) swiper.mousewheel.disable(); 74955 } 74956 } 74957}); 74958 74959/***/ }), 74960
vendor: 6,110 bytes, lines 74961-75138
74961/***/ "./node_modules/swiper/esm/components/navigation/navigation.js": 74962/*!*********************************************************************!*\ 74963 !*** ./node_modules/swiper/esm/components/navigation/navigation.js ***! 74964 \*********************************************************************/ 74965/*! exports provided: default */ 74966/***/ (function(module, __webpack_exports__, __webpack_require__) { 74967 74968"use strict"; 74969__webpack_require__.r(__webpack_exports__); 74970/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 74971/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 74972function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 74973 74974 74975 74976var Navigation = { 74977 update: function update() { 74978 // Update Navigation Buttons 74979 var swiper = this; 74980 var params = swiper.params.navigation; 74981 if (swiper.params.loop) return; 74982 var _swiper$navigation = swiper.navigation, 74983 $nextEl = _swiper$navigation.$nextEl, 74984 $prevEl = _swiper$navigation.$prevEl; 74985 74986 if ($prevEl && $prevEl.length > 0) { 74987 if (swiper.isBeginning) { 74988 $prevEl.addClass(params.disabledClass); 74989 } else { 74990 $prevEl.removeClass(params.disabledClass); 74991 } 74992 74993 $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 74994 } 74995 74996 if ($nextEl && $nextEl.length > 0) { 74997 if (swiper.isEnd) { 74998 $nextEl.addClass(params.disabledClass); 74999 } else { 75000 $nextEl.removeClass(params.disabledClass); 75001 } 75002 75003 $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 75004 } 75005 }, 75006 onPrevClick: function onPrevClick(e) { 75007 var swiper = this; 75008 e.preventDefault(); 75009 if (swiper.isBeginning && !swiper.params.loop) return; 75010 swiper.slidePrev(); 75011 }, 75012 onNextClick: function onNextClick(e) { 75013 var swiper = this; 75014 e.preventDefault(); 75015 if (swiper.isEnd && !swiper.params.loop) return; 75016 swiper.slideNext(); 75017 }, 75018 init: function init() { 75019 var swiper = this; 75020 var params = swiper.params.navigation; 75021 if (!(params.nextEl || params.prevEl)) return; 75022 var $nextEl; 75023 var $prevEl; 75024 75025 if (params.nextEl) { 75026 $nextEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(params.nextEl); 75027 75028 if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) { 75029 $nextEl = swiper.$el.find(params.nextEl); 75030 } 75031 } 75032 75033 if (params.prevEl) { 75034 $prevEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(params.prevEl); 75035 75036 if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) { 75037 $prevEl = swiper.$el.find(params.prevEl); 75038 } 75039 } 75040 75041 if ($nextEl && $nextEl.length > 0) { 75042 $nextEl.on('click', swiper.navigation.onNextClick); 75043 } 75044 75045 if ($prevEl && $prevEl.length > 0) { 75046 $prevEl.on('click', swiper.navigation.onPrevClick); 75047 } 75048 75049 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.navigation, { 75050 $nextEl: $nextEl, 75051 nextEl: $nextEl && $nextEl[0], 75052 $prevEl: $prevEl, 75053 prevEl: $prevEl && $prevEl[0] 75054 }); 75055 }, 75056 destroy: function destroy() { 75057 var swiper = this; 75058 var _swiper$navigation2 = swiper.navigation, 75059 $nextEl = _swiper$navigation2.$nextEl, 75060 $prevEl = _swiper$navigation2.$prevEl; 75061 75062 if ($nextEl && $nextEl.length) { 75063 $nextEl.off('click', swiper.navigation.onNextClick); 75064 $nextEl.removeClass(swiper.params.navigation.disabledClass); 75065 } 75066 75067 if ($prevEl && $prevEl.length) { 75068 $prevEl.off('click', swiper.navigation.onPrevClick); 75069 $prevEl.removeClass(swiper.params.navigation.disabledClass); 75070 } 75071 } 75072}; 75073/* harmony default export */ __webpack_exports__["default"] = ({ 75074 name: 'navigation', 75075 params: { 75076 navigation: { 75077 nextEl: null, 75078 prevEl: null, 75079 hideOnClick: false, 75080 disabledClass: 'swiper-button-disabled', 75081 hiddenClass: 'swiper-button-hidden', 75082 lockClass: 'swiper-button-lock' 75083 } 75084 }, 75085 create: function create() { 75086 var swiper = this; 75087 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 75088 navigation: _extends({}, Navigation) 75089 }); 75090 }, 75091 on: { 75092 init: function init(swiper) { 75093 swiper.navigation.init(); 75094 swiper.navigation.update(); 75095 }, 75096 toEdge: function toEdge(swiper) { 75097 swiper.navigation.update(); 75098 }, 75099 fromEdge: function fromEdge(swiper) { 75100 swiper.navigation.update(); 75101 }, 75102 destroy: function destroy(swiper) { 75103 swiper.navigation.destroy(); 75104 }, 75105 click: function click(swiper, e) { 75106 var _swiper$navigation3 = swiper.navigation, 75107 $nextEl = _swiper$navigation3.$nextEl, 75108 $prevEl = _swiper$navigation3.$prevEl; 75109 75110 if (swiper.params.navigation.hideOnClick && !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target).is($prevEl) && !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target).is($nextEl)) { 75111 var isHidden; 75112 75113 if ($nextEl) { 75114 isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass); 75115 } else if ($prevEl) { 75116 isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass); 75117 } 75118 75119 if (isHidden === true) { 75120 swiper.emit('navigationShow'); 75121 } else { 75122 swiper.emit('navigationHide'); 75123 } 75124 75125 if ($nextEl) { 75126 $nextEl.toggleClass(swiper.params.navigation.hiddenClass); 75127 } 75128 75129 if ($prevEl) { 75130 $prevEl.toggleClass(swiper.params.navigation.hiddenClass); 75131 } 75132 } 75133 } 75134 } 75135}); 75136 75137/***/ }), 75138
vendor: 14,889 bytes, lines 75139-75509
75139/***/ "./node_modules/swiper/esm/components/pagination/pagination.js": 75140/*!*********************************************************************!*\ 75141 !*** ./node_modules/swiper/esm/components/pagination/pagination.js ***! 75142 \*********************************************************************/ 75143/*! exports provided: default */ 75144/***/ (function(module, __webpack_exports__, __webpack_require__) { 75145 75146"use strict"; 75147__webpack_require__.r(__webpack_exports__); 75148/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 75149/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 75150function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 75151 75152 75153 75154var Pagination = { 75155 update: function update() { 75156 // Render || Update Pagination bullets/items 75157 var swiper = this; 75158 var rtl = swiper.rtl; 75159 var params = swiper.params.pagination; 75160 if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; 75161 var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 75162 var $el = swiper.pagination.$el; // Current/Total 75163 75164 var current; 75165 var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 75166 75167 if (swiper.params.loop) { 75168 current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); 75169 75170 if (current > slidesLength - 1 - swiper.loopedSlides * 2) { 75171 current -= slidesLength - swiper.loopedSlides * 2; 75172 } 75173 75174 if (current > total - 1) current -= total; 75175 if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current; 75176 } else if (typeof swiper.snapIndex !== 'undefined') { 75177 current = swiper.snapIndex; 75178 } else { 75179 current = swiper.activeIndex || 0; 75180 } // Types 75181 75182 75183 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 75184 var bullets = swiper.pagination.bullets; 75185 var firstIndex; 75186 var lastIndex; 75187 var midIndex; 75188 75189 if (params.dynamicBullets) { 75190 swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); 75191 $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + "px"); 75192 75193 if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { 75194 swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex; 75195 75196 if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) { 75197 swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1; 75198 } else if (swiper.pagination.dynamicBulletIndex < 0) { 75199 swiper.pagination.dynamicBulletIndex = 0; 75200 } 75201 } 75202 75203 firstIndex = current - swiper.pagination.dynamicBulletIndex; 75204 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 75205 midIndex = (lastIndex + firstIndex) / 2; 75206 } 75207 75208 bullets.removeClass(params.bulletActiveClass + " " + params.bulletActiveClass + "-next " + params.bulletActiveClass + "-next-next " + params.bulletActiveClass + "-prev " + params.bulletActiveClass + "-prev-prev " + params.bulletActiveClass + "-main"); 75209 75210 if ($el.length > 1) { 75211 bullets.each(function (bullet) { 75212 var $bullet = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(bullet); 75213 var bulletIndex = $bullet.index(); 75214 75215 if (bulletIndex === current) { 75216 $bullet.addClass(params.bulletActiveClass); 75217 } 75218 75219 if (params.dynamicBullets) { 75220 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 75221 $bullet.addClass(params.bulletActiveClass + "-main"); 75222 } 75223 75224 if (bulletIndex === firstIndex) { 75225 $bullet.prev().addClass(params.bulletActiveClass + "-prev").prev().addClass(params.bulletActiveClass + "-prev-prev"); 75226 } 75227 75228 if (bulletIndex === lastIndex) { 75229 $bullet.next().addClass(params.bulletActiveClass + "-next").next().addClass(params.bulletActiveClass + "-next-next"); 75230 } 75231 } 75232 }); 75233 } else { 75234 var $bullet = bullets.eq(current); 75235 var bulletIndex = $bullet.index(); 75236 $bullet.addClass(params.bulletActiveClass); 75237 75238 if (params.dynamicBullets) { 75239 var $firstDisplayedBullet = bullets.eq(firstIndex); 75240 var $lastDisplayedBullet = bullets.eq(lastIndex); 75241 75242 for (var i = firstIndex; i <= lastIndex; i += 1) { 75243 bullets.eq(i).addClass(params.bulletActiveClass + "-main"); 75244 } 75245 75246 if (swiper.params.loop) { 75247 if (bulletIndex >= bullets.length - params.dynamicMainBullets) { 75248 for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) { 75249 bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + "-main"); 75250 } 75251 75252 bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + "-prev"); 75253 } else { 75254 $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + "-prev").prev().addClass(params.bulletActiveClass + "-prev-prev"); 75255 $lastDisplayedBullet.next().addClass(params.bulletActiveClass + "-next").next().addClass(params.bulletActiveClass + "-next-next"); 75256 } 75257 } else { 75258 $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + "-prev").prev().addClass(params.bulletActiveClass + "-prev-prev"); 75259 $lastDisplayedBullet.next().addClass(params.bulletActiveClass + "-next").next().addClass(params.bulletActiveClass + "-next-next"); 75260 } 75261 } 75262 } 75263 75264 if (params.dynamicBullets) { 75265 var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 75266 var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize; 75267 var offsetProp = rtl ? 'right' : 'left'; 75268 bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + "px"); 75269 } 75270 } 75271 75272 if (params.type === 'fraction') { 75273 $el.find("." + params.currentClass).text(params.formatFractionCurrent(current + 1)); 75274 $el.find("." + params.totalClass).text(params.formatFractionTotal(total)); 75275 } 75276 75277 if (params.type === 'progressbar') { 75278 var progressbarDirection; 75279 75280 if (params.progressbarOpposite) { 75281 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 75282 } else { 75283 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 75284 } 75285 75286 var scale = (current + 1) / total; 75287 var scaleX = 1; 75288 var scaleY = 1; 75289 75290 if (progressbarDirection === 'horizontal') { 75291 scaleX = scale; 75292 } else { 75293 scaleY = scale; 75294 } 75295 75296 $el.find("." + params.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + scaleX + ") scaleY(" + scaleY + ")").transition(swiper.params.speed); 75297 } 75298 75299 if (params.type === 'custom' && params.renderCustom) { 75300 $el.html(params.renderCustom(swiper, current + 1, total)); 75301 swiper.emit('paginationRender', $el[0]); 75302 } else { 75303 swiper.emit('paginationUpdate', $el[0]); 75304 } 75305 75306 $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 75307 }, 75308 render: function render() { 75309 // Render Container 75310 var swiper = this; 75311 var params = swiper.params.pagination; 75312 if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; 75313 var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 75314 var $el = swiper.pagination.$el; 75315 var paginationHTML = ''; 75316 75317 if (params.type === 'bullets') { 75318 var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 75319 75320 for (var i = 0; i < numberOfBullets; i += 1) { 75321 if (params.renderBullet) { 75322 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 75323 } else { 75324 paginationHTML += "<" + params.bulletElement + " class=\"" + params.bulletClass + "\"></" + params.bulletElement + ">"; 75325 } 75326 } 75327 75328 $el.html(paginationHTML); 75329 swiper.pagination.bullets = $el.find("." + params.bulletClass); 75330 } 75331 75332 if (params.type === 'fraction') { 75333 if (params.renderFraction) { 75334 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 75335 } else { 75336 paginationHTML = "<span class=\"" + params.currentClass + "\"></span>" + ' / ' + ("<span class=\"" + params.totalClass + "\"></span>"); 75337 } 75338 75339 $el.html(paginationHTML); 75340 } 75341 75342 if (params.type === 'progressbar') { 75343 if (params.renderProgressbar) { 75344 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 75345 } else { 75346 paginationHTML = "<span class=\"" + params.progressbarFillClass + "\"></span>"; 75347 } 75348 75349 $el.html(paginationHTML); 75350 } 75351 75352 if (params.type !== 'custom') { 75353 swiper.emit('paginationRender', swiper.pagination.$el[0]); 75354 } 75355 }, 75356 init: function init() { 75357 var swiper = this; 75358 var params = swiper.params.pagination; 75359 if (!params.el) return; 75360 var $el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(params.el); 75361 if ($el.length === 0) return; 75362 75363 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) { 75364 $el = swiper.$el.find(params.el); 75365 } 75366 75367 if (params.type === 'bullets' && params.clickable) { 75368 $el.addClass(params.clickableClass); 75369 } 75370 75371 $el.addClass(params.modifierClass + params.type); 75372 75373 if (params.type === 'bullets' && params.dynamicBullets) { 75374 $el.addClass("" + params.modifierClass + params.type + "-dynamic"); 75375 swiper.pagination.dynamicBulletIndex = 0; 75376 75377 if (params.dynamicMainBullets < 1) { 75378 params.dynamicMainBullets = 1; 75379 } 75380 } 75381 75382 if (params.type === 'progressbar' && params.progressbarOpposite) { 75383 $el.addClass(params.progressbarOppositeClass); 75384 } 75385 75386 if (params.clickable) { 75387 $el.on('click', "." + params.bulletClass, function onClick(e) { 75388 e.preventDefault(); 75389 var index = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(this).index() * swiper.params.slidesPerGroup; 75390 if (swiper.params.loop) index += swiper.loopedSlides; 75391 swiper.slideTo(index); 75392 }); 75393 } 75394 75395 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.pagination, { 75396 $el: $el, 75397 el: $el[0] 75398 }); 75399 }, 75400 destroy: function destroy() { 75401 var swiper = this; 75402 var params = swiper.params.pagination; 75403 if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; 75404 var $el = swiper.pagination.$el; 75405 $el.removeClass(params.hiddenClass); 75406 $el.removeClass(params.modifierClass + params.type); 75407 if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass); 75408 75409 if (params.clickable) { 75410 $el.off('click', "." + params.bulletClass); 75411 } 75412 } 75413}; 75414/* harmony default export */ __webpack_exports__["default"] = ({ 75415 name: 'pagination', 75416 params: { 75417 pagination: { 75418 el: null, 75419 bulletElement: 'span', 75420 clickable: false, 75421 hideOnClick: false, 75422 renderBullet: null, 75423 renderProgressbar: null, 75424 renderFraction: null, 75425 renderCustom: null, 75426 progressbarOpposite: false, 75427 type: 'bullets', 75428 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 75429 dynamicBullets: false, 75430 dynamicMainBullets: 1, 75431 formatFractionCurrent: function formatFractionCurrent(number) { 75432 return number; 75433 }, 75434 formatFractionTotal: function formatFractionTotal(number) { 75435 return number; 75436 }, 75437 bulletClass: 'swiper-pagination-bullet', 75438 bulletActiveClass: 'swiper-pagination-bullet-active', 75439 modifierClass: 'swiper-pagination-', 75440 // NEW 75441 currentClass: 'swiper-pagination-current', 75442 totalClass: 'swiper-pagination-total', 75443 hiddenClass: 'swiper-pagination-hidden', 75444 progressbarFillClass: 'swiper-pagination-progressbar-fill', 75445 progressbarOppositeClass: 'swiper-pagination-progressbar-opposite', 75446 clickableClass: 'swiper-pagination-clickable', 75447 // NEW 75448 lockClass: 'swiper-pagination-lock' 75449 } 75450 }, 75451 create: function create() { 75452 var swiper = this; 75453 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 75454 pagination: _extends({ 75455 dynamicBulletIndex: 0 75456 }, Pagination) 75457 }); 75458 }, 75459 on: { 75460 init: function init(swiper) { 75461 swiper.pagination.init(); 75462 swiper.pagination.render(); 75463 swiper.pagination.update(); 75464 }, 75465 activeIndexChange: function activeIndexChange(swiper) { 75466 if (swiper.params.loop) { 75467 swiper.pagination.update(); 75468 } else if (typeof swiper.snapIndex === 'undefined') { 75469 swiper.pagination.update(); 75470 } 75471 }, 75472 snapIndexChange: function snapIndexChange(swiper) { 75473 if (!swiper.params.loop) { 75474 swiper.pagination.update(); 75475 } 75476 }, 75477 slidesLengthChange: function slidesLengthChange(swiper) { 75478 if (swiper.params.loop) { 75479 swiper.pagination.render(); 75480 swiper.pagination.update(); 75481 } 75482 }, 75483 snapGridLengthChange: function snapGridLengthChange(swiper) { 75484 if (!swiper.params.loop) { 75485 swiper.pagination.render(); 75486 swiper.pagination.update(); 75487 } 75488 }, 75489 destroy: function destroy(swiper) { 75490 swiper.pagination.destroy(); 75491 }, 75492 click: function click(swiper, e) { 75493 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target).hasClass(swiper.params.pagination.bulletClass)) { 75494 var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass); 75495 75496 if (isHidden === true) { 75497 swiper.emit('paginationShow'); 75498 } else { 75499 swiper.emit('paginationHide'); 75500 } 75501 75502 swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass); 75503 } 75504 } 75505 } 75506}); 75507 75508/***/ }), 75509
vendor: 5,298 bytes, lines 75510-75644
75510/***/ "./node_modules/swiper/esm/components/parallax/parallax.js": 75511/*!*****************************************************************!*\ 75512 !*** ./node_modules/swiper/esm/components/parallax/parallax.js ***! 75513 \*****************************************************************/ 75514/*! exports provided: default */ 75515/***/ (function(module, __webpack_exports__, __webpack_require__) { 75516 75517"use strict"; 75518__webpack_require__.r(__webpack_exports__); 75519/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 75520/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 75521function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 75522 75523 75524 75525var Parallax = { 75526 setTransform: function setTransform(el, progress) { 75527 var swiper = this; 75528 var rtl = swiper.rtl; 75529 var $el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(el); 75530 var rtlFactor = rtl ? -1 : 1; 75531 var p = $el.attr('data-swiper-parallax') || '0'; 75532 var x = $el.attr('data-swiper-parallax-x'); 75533 var y = $el.attr('data-swiper-parallax-y'); 75534 var scale = $el.attr('data-swiper-parallax-scale'); 75535 var opacity = $el.attr('data-swiper-parallax-opacity'); 75536 75537 if (x || y) { 75538 x = x || '0'; 75539 y = y || '0'; 75540 } else if (swiper.isHorizontal()) { 75541 x = p; 75542 y = '0'; 75543 } else { 75544 y = p; 75545 x = '0'; 75546 } 75547 75548 if (x.indexOf('%') >= 0) { 75549 x = parseInt(x, 10) * progress * rtlFactor + "%"; 75550 } else { 75551 x = x * progress * rtlFactor + "px"; 75552 } 75553 75554 if (y.indexOf('%') >= 0) { 75555 y = parseInt(y, 10) * progress + "%"; 75556 } else { 75557 y = y * progress + "px"; 75558 } 75559 75560 if (typeof opacity !== 'undefined' && opacity !== null) { 75561 var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 75562 $el[0].style.opacity = currentOpacity; 75563 } 75564 75565 if (typeof scale === 'undefined' || scale === null) { 75566 $el.transform("translate3d(" + x + ", " + y + ", 0px)"); 75567 } else { 75568 var currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 75569 $el.transform("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")"); 75570 } 75571 }, 75572 setTranslate: function setTranslate() { 75573 var swiper = this; 75574 var $el = swiper.$el, 75575 slides = swiper.slides, 75576 progress = swiper.progress, 75577 snapGrid = swiper.snapGrid; 75578 $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) { 75579 swiper.parallax.setTransform(el, progress); 75580 }); 75581 slides.each(function (slideEl, slideIndex) { 75582 var slideProgress = slideEl.progress; 75583 75584 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 75585 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 75586 } 75587 75588 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 75589 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) { 75590 swiper.parallax.setTransform(el, slideProgress); 75591 }); 75592 }); 75593 }, 75594 setTransition: function setTransition(duration) { 75595 if (duration === void 0) { 75596 duration = this.params.speed; 75597 } 75598 75599 var swiper = this; 75600 var $el = swiper.$el; 75601 $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) { 75602 var $parallaxEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(parallaxEl); 75603 var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; 75604 if (duration === 0) parallaxDuration = 0; 75605 $parallaxEl.transition(parallaxDuration); 75606 }); 75607 } 75608}; 75609/* harmony default export */ __webpack_exports__["default"] = ({ 75610 name: 'parallax', 75611 params: { 75612 parallax: { 75613 enabled: false 75614 } 75615 }, 75616 create: function create() { 75617 var swiper = this; 75618 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 75619 parallax: _extends({}, Parallax) 75620 }); 75621 }, 75622 on: { 75623 beforeInit: function beforeInit(swiper) { 75624 if (!swiper.params.parallax.enabled) return; 75625 swiper.params.watchSlidesProgress = true; 75626 swiper.originalParams.watchSlidesProgress = true; 75627 }, 75628 init: function init(swiper) { 75629 if (!swiper.params.parallax.enabled) return; 75630 swiper.parallax.setTranslate(); 75631 }, 75632 setTranslate: function setTranslate(swiper) { 75633 if (!swiper.params.parallax.enabled) return; 75634 swiper.parallax.setTranslate(); 75635 }, 75636 setTransition: function setTransition(swiper, duration) { 75637 if (!swiper.params.parallax.enabled) return; 75638 swiper.parallax.setTransition(duration); 75639 } 75640 } 75641}); 75642 75643/***/ }), 75644
vendor: 12,914 bytes, lines 75645-76004
75645/***/ "./node_modules/swiper/esm/components/scrollbar/scrollbar.js": 75646/*!*******************************************************************!*\ 75647 !*** ./node_modules/swiper/esm/components/scrollbar/scrollbar.js ***! 75648 \*******************************************************************/ 75649/*! exports provided: default */ 75650/***/ (function(module, __webpack_exports__, __webpack_require__) { 75651 75652"use strict"; 75653__webpack_require__.r(__webpack_exports__); 75654/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 75655/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 75656/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 75657function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 75658 75659 75660 75661 75662var Scrollbar = { 75663 setTranslate: function setTranslate() { 75664 var swiper = this; 75665 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 75666 var scrollbar = swiper.scrollbar, 75667 rtl = swiper.rtlTranslate, 75668 progress = swiper.progress; 75669 var dragSize = scrollbar.dragSize, 75670 trackSize = scrollbar.trackSize, 75671 $dragEl = scrollbar.$dragEl, 75672 $el = scrollbar.$el; 75673 var params = swiper.params.scrollbar; 75674 var newSize = dragSize; 75675 var newPos = (trackSize - dragSize) * progress; 75676 75677 if (rtl) { 75678 newPos = -newPos; 75679 75680 if (newPos > 0) { 75681 newSize = dragSize - newPos; 75682 newPos = 0; 75683 } else if (-newPos + dragSize > trackSize) { 75684 newSize = trackSize + newPos; 75685 } 75686 } else if (newPos < 0) { 75687 newSize = dragSize + newPos; 75688 newPos = 0; 75689 } else if (newPos + dragSize > trackSize) { 75690 newSize = trackSize - newPos; 75691 } 75692 75693 if (swiper.isHorizontal()) { 75694 $dragEl.transform("translate3d(" + newPos + "px, 0, 0)"); 75695 $dragEl[0].style.width = newSize + "px"; 75696 } else { 75697 $dragEl.transform("translate3d(0px, " + newPos + "px, 0)"); 75698 $dragEl[0].style.height = newSize + "px"; 75699 } 75700 75701 if (params.hide) { 75702 clearTimeout(swiper.scrollbar.timeout); 75703 $el[0].style.opacity = 1; 75704 swiper.scrollbar.timeout = setTimeout(function () { 75705 $el[0].style.opacity = 0; 75706 $el.transition(400); 75707 }, 1000); 75708 } 75709 }, 75710 setTransition: function setTransition(duration) { 75711 var swiper = this; 75712 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 75713 swiper.scrollbar.$dragEl.transition(duration); 75714 }, 75715 updateSize: function updateSize() { 75716 var swiper = this; 75717 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 75718 var scrollbar = swiper.scrollbar; 75719 var $dragEl = scrollbar.$dragEl, 75720 $el = scrollbar.$el; 75721 $dragEl[0].style.width = ''; 75722 $dragEl[0].style.height = ''; 75723 var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; 75724 var divider = swiper.size / swiper.virtualSize; 75725 var moveDivider = divider * (trackSize / swiper.size); 75726 var dragSize; 75727 75728 if (swiper.params.scrollbar.dragSize === 'auto') { 75729 dragSize = trackSize * divider; 75730 } else { 75731 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 75732 } 75733 75734 if (swiper.isHorizontal()) { 75735 $dragEl[0].style.width = dragSize + "px"; 75736 } else { 75737 $dragEl[0].style.height = dragSize + "px"; 75738 } 75739 75740 if (divider >= 1) { 75741 $el[0].style.display = 'none'; 75742 } else { 75743 $el[0].style.display = ''; 75744 } 75745 75746 if (swiper.params.scrollbar.hide) { 75747 $el[0].style.opacity = 0; 75748 } 75749 75750 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["extend"])(scrollbar, { 75751 trackSize: trackSize, 75752 divider: divider, 75753 moveDivider: moveDivider, 75754 dragSize: dragSize 75755 }); 75756 scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); 75757 }, 75758 getPointerPosition: function getPointerPosition(e) { 75759 var swiper = this; 75760 75761 if (swiper.isHorizontal()) { 75762 return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX; 75763 } 75764 75765 return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY; 75766 }, 75767 setDragPosition: function setDragPosition(e) { 75768 var swiper = this; 75769 var scrollbar = swiper.scrollbar, 75770 rtl = swiper.rtlTranslate; 75771 var $el = scrollbar.$el, 75772 dragSize = scrollbar.dragSize, 75773 trackSize = scrollbar.trackSize, 75774 dragStartPos = scrollbar.dragStartPos; 75775 var positionRatio; 75776 positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 75777 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 75778 75779 if (rtl) { 75780 positionRatio = 1 - positionRatio; 75781 } 75782 75783 var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 75784 swiper.updateProgress(position); 75785 swiper.setTranslate(position); 75786 swiper.updateActiveIndex(); 75787 swiper.updateSlidesClasses(); 75788 }, 75789 onDragStart: function onDragStart(e) { 75790 var swiper = this; 75791 var params = swiper.params.scrollbar; 75792 var scrollbar = swiper.scrollbar, 75793 $wrapperEl = swiper.$wrapperEl; 75794 var $el = scrollbar.$el, 75795 $dragEl = scrollbar.$dragEl; 75796 swiper.scrollbar.isTouched = true; 75797 swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 75798 e.preventDefault(); 75799 e.stopPropagation(); 75800 $wrapperEl.transition(100); 75801 $dragEl.transition(100); 75802 scrollbar.setDragPosition(e); 75803 clearTimeout(swiper.scrollbar.dragTimeout); 75804 $el.transition(0); 75805 75806 if (params.hide) { 75807 $el.css('opacity', 1); 75808 } 75809 75810 if (swiper.params.cssMode) { 75811 swiper.$wrapperEl.css('scroll-snap-type', 'none'); 75812 } 75813 75814 swiper.emit('scrollbarDragStart', e); 75815 }, 75816 onDragMove: function onDragMove(e) { 75817 var swiper = this; 75818 var scrollbar = swiper.scrollbar, 75819 $wrapperEl = swiper.$wrapperEl; 75820 var $el = scrollbar.$el, 75821 $dragEl = scrollbar.$dragEl; 75822 if (!swiper.scrollbar.isTouched) return; 75823 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 75824 scrollbar.setDragPosition(e); 75825 $wrapperEl.transition(0); 75826 $el.transition(0); 75827 $dragEl.transition(0); 75828 swiper.emit('scrollbarDragMove', e); 75829 }, 75830 onDragEnd: function onDragEnd(e) { 75831 var swiper = this; 75832 var params = swiper.params.scrollbar; 75833 var scrollbar = swiper.scrollbar, 75834 $wrapperEl = swiper.$wrapperEl; 75835 var $el = scrollbar.$el; 75836 if (!swiper.scrollbar.isTouched) return; 75837 swiper.scrollbar.isTouched = false; 75838 75839 if (swiper.params.cssMode) { 75840 swiper.$wrapperEl.css('scroll-snap-type', ''); 75841 $wrapperEl.transition(''); 75842 } 75843 75844 if (params.hide) { 75845 clearTimeout(swiper.scrollbar.dragTimeout); 75846 swiper.scrollbar.dragTimeout = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["nextTick"])(function () { 75847 $el.css('opacity', 0); 75848 $el.transition(400); 75849 }, 1000); 75850 } 75851 75852 swiper.emit('scrollbarDragEnd', e); 75853 75854 if (params.snapOnRelease) { 75855 swiper.slideToClosest(); 75856 } 75857 }, 75858 enableDraggable: function enableDraggable() { 75859 var swiper = this; 75860 if (!swiper.params.scrollbar.el) return; 75861 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 75862 var scrollbar = swiper.scrollbar, 75863 touchEventsTouch = swiper.touchEventsTouch, 75864 touchEventsDesktop = swiper.touchEventsDesktop, 75865 params = swiper.params, 75866 support = swiper.support; 75867 var $el = scrollbar.$el; 75868 var target = $el[0]; 75869 var activeListener = support.passiveListener && params.passiveListeners ? { 75870 passive: false, 75871 capture: false 75872 } : false; 75873 var passiveListener = support.passiveListener && params.passiveListeners ? { 75874 passive: true, 75875 capture: false 75876 } : false; 75877 75878 if (!support.touch) { 75879 target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); 75880 document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); 75881 document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); 75882 } else { 75883 target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener); 75884 target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener); 75885 target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener); 75886 } 75887 }, 75888 disableDraggable: function disableDraggable() { 75889 var swiper = this; 75890 if (!swiper.params.scrollbar.el) return; 75891 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 75892 var scrollbar = swiper.scrollbar, 75893 touchEventsTouch = swiper.touchEventsTouch, 75894 touchEventsDesktop = swiper.touchEventsDesktop, 75895 params = swiper.params, 75896 support = swiper.support; 75897 var $el = scrollbar.$el; 75898 var target = $el[0]; 75899 var activeListener = support.passiveListener && params.passiveListeners ? { 75900 passive: false, 75901 capture: false 75902 } : false; 75903 var passiveListener = support.passiveListener && params.passiveListeners ? { 75904 passive: true, 75905 capture: false 75906 } : false; 75907 75908 if (!support.touch) { 75909 target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); 75910 document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); 75911 document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); 75912 } else { 75913 target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener); 75914 target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener); 75915 target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener); 75916 } 75917 }, 75918 init: function init() { 75919 var swiper = this; 75920 if (!swiper.params.scrollbar.el) return; 75921 var scrollbar = swiper.scrollbar, 75922 $swiperEl = swiper.$el; 75923 var params = swiper.params.scrollbar; 75924 var $el = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el); 75925 75926 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { 75927 $el = $swiperEl.find(params.el); 75928 } 75929 75930 var $dragEl = $el.find("." + swiper.params.scrollbar.dragClass); 75931 75932 if ($dragEl.length === 0) { 75933 $dragEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])("<div class=\"" + swiper.params.scrollbar.dragClass + "\"></div>"); 75934 $el.append($dragEl); 75935 } 75936 75937 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["extend"])(scrollbar, { 75938 $el: $el, 75939 el: $el[0], 75940 $dragEl: $dragEl, 75941 dragEl: $dragEl[0] 75942 }); 75943 75944 if (params.draggable) { 75945 scrollbar.enableDraggable(); 75946 } 75947 }, 75948 destroy: function destroy() { 75949 var swiper = this; 75950 swiper.scrollbar.disableDraggable(); 75951 } 75952}; 75953/* harmony default export */ __webpack_exports__["default"] = ({ 75954 name: 'scrollbar', 75955 params: { 75956 scrollbar: { 75957 el: null, 75958 dragSize: 'auto', 75959 hide: false, 75960 draggable: false, 75961 snapOnRelease: true, 75962 lockClass: 'swiper-scrollbar-lock', 75963 dragClass: 'swiper-scrollbar-drag' 75964 } 75965 }, 75966 create: function create() { 75967 var swiper = this; 75968 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_2__["bindModuleMethods"])(swiper, { 75969 scrollbar: _extends({ 75970 isTouched: false, 75971 timeout: null, 75972 dragTimeout: null 75973 }, Scrollbar) 75974 }); 75975 }, 75976 on: { 75977 init: function init(swiper) { 75978 swiper.scrollbar.init(); 75979 swiper.scrollbar.updateSize(); 75980 swiper.scrollbar.setTranslate(); 75981 }, 75982 update: function update(swiper) { 75983 swiper.scrollbar.updateSize(); 75984 }, 75985 resize: function resize(swiper) { 75986 swiper.scrollbar.updateSize(); 75987 }, 75988 observerUpdate: function observerUpdate(swiper) { 75989 swiper.scrollbar.updateSize(); 75990 }, 75991 setTranslate: function setTranslate(swiper) { 75992 swiper.scrollbar.setTranslate(); 75993 }, 75994 setTransition: function setTransition(swiper, duration) { 75995 swiper.scrollbar.setTransition(duration); 75996 }, 75997 destroy: function destroy(swiper) { 75998 swiper.scrollbar.destroy(); 75999 } 76000 } 76001}); 76002 76003/***/ }), 76004
vendor: 9,315 bytes, lines 76005-76220
76005/***/ "./node_modules/swiper/esm/components/thumbs/thumbs.js": 76006/*!*************************************************************!*\ 76007 !*** ./node_modules/swiper/esm/components/thumbs/thumbs.js ***! 76008 \*************************************************************/ 76009/*! exports provided: default */ 76010/***/ (function(module, __webpack_exports__, __webpack_require__) { 76011 76012"use strict"; 76013__webpack_require__.r(__webpack_exports__); 76014/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 76015/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 76016function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 76017 76018 76019 76020var Thumbs = { 76021 init: function init() { 76022 var swiper = this; 76023 var thumbsParams = swiper.params.thumbs; 76024 if (swiper.thumbs.initialized) return false; 76025 swiper.thumbs.initialized = true; 76026 var SwiperClass = swiper.constructor; 76027 76028 if (thumbsParams.swiper instanceof SwiperClass) { 76029 swiper.thumbs.swiper = thumbsParams.swiper; 76030 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["extend"])(swiper.thumbs.swiper.originalParams, { 76031 watchSlidesProgress: true, 76032 slideToClickedSlide: false 76033 }); 76034 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["extend"])(swiper.thumbs.swiper.params, { 76035 watchSlidesProgress: true, 76036 slideToClickedSlide: false 76037 }); 76038 } else if (Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["isObject"])(thumbsParams.swiper)) { 76039 swiper.thumbs.swiper = new SwiperClass(Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["extend"])({}, thumbsParams.swiper, { 76040 watchSlidesVisibility: true, 76041 watchSlidesProgress: true, 76042 slideToClickedSlide: false 76043 })); 76044 swiper.thumbs.swiperCreated = true; 76045 } 76046 76047 swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass); 76048 swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick); 76049 return true; 76050 }, 76051 onThumbClick: function onThumbClick() { 76052 var swiper = this; 76053 var thumbsSwiper = swiper.thumbs.swiper; 76054 if (!thumbsSwiper) return; 76055 var clickedIndex = thumbsSwiper.clickedIndex; 76056 var clickedSlide = thumbsSwiper.clickedSlide; 76057 if (clickedSlide && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return; 76058 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 76059 var slideToIndex; 76060 76061 if (thumbsSwiper.params.loop) { 76062 slideToIndex = parseInt(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["default"])(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10); 76063 } else { 76064 slideToIndex = clickedIndex; 76065 } 76066 76067 if (swiper.params.loop) { 76068 var currentIndex = swiper.activeIndex; 76069 76070 if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) { 76071 swiper.loopFix(); // eslint-disable-next-line 76072 76073 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 76074 currentIndex = swiper.activeIndex; 76075 } 76076 76077 var prevIndex = swiper.slides.eq(currentIndex).prevAll("[data-swiper-slide-index=\"" + slideToIndex + "\"]").eq(0).index(); 76078 var nextIndex = swiper.slides.eq(currentIndex).nextAll("[data-swiper-slide-index=\"" + slideToIndex + "\"]").eq(0).index(); 76079 if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex; 76080 } 76081 76082 swiper.slideTo(slideToIndex); 76083 }, 76084 update: function update(initial) { 76085 var swiper = this; 76086 var thumbsSwiper = swiper.thumbs.swiper; 76087 if (!thumbsSwiper) return; 76088 var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 76089 var autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 76090 var useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 76091 76092 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 76093 var currentThumbsIndex = thumbsSwiper.activeIndex; 76094 var newThumbsIndex; 76095 var direction; 76096 76097 if (thumbsSwiper.params.loop) { 76098 if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) { 76099 thumbsSwiper.loopFix(); // eslint-disable-next-line 76100 76101 thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft; 76102 currentThumbsIndex = thumbsSwiper.activeIndex; 76103 } // Find actual thumbs index to slide to 76104 76105 76106 var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll("[data-swiper-slide-index=\"" + swiper.realIndex + "\"]").eq(0).index(); 76107 var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll("[data-swiper-slide-index=\"" + swiper.realIndex + "\"]").eq(0).index(); 76108 if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex; 76109 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 76110 } else { 76111 newThumbsIndex = swiper.realIndex; 76112 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 76113 } 76114 76115 if (useOffset) { 76116 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 76117 } 76118 76119 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 76120 if (thumbsSwiper.params.centeredSlides) { 76121 if (newThumbsIndex > currentThumbsIndex) { 76122 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 76123 } else { 76124 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 76125 } 76126 } else if (newThumbsIndex > currentThumbsIndex) { 76127 newThumbsIndex = newThumbsIndex - slidesPerView + 1; 76128 } 76129 76130 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 76131 } 76132 } // Activate thumbs 76133 76134 76135 var thumbsToActivate = 1; 76136 var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 76137 76138 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 76139 thumbsToActivate = swiper.params.slidesPerView; 76140 } 76141 76142 if (!swiper.params.thumbs.multipleActiveThumbs) { 76143 thumbsToActivate = 1; 76144 } 76145 76146 thumbsToActivate = Math.floor(thumbsToActivate); 76147 thumbsSwiper.slides.removeClass(thumbActiveClass); 76148 76149 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 76150 for (var i = 0; i < thumbsToActivate; i += 1) { 76151 thumbsSwiper.$wrapperEl.children("[data-swiper-slide-index=\"" + (swiper.realIndex + i) + "\"]").addClass(thumbActiveClass); 76152 } 76153 } else { 76154 for (var _i = 0; _i < thumbsToActivate; _i += 1) { 76155 thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass); 76156 } 76157 } 76158 } 76159}; 76160/* harmony default export */ __webpack_exports__["default"] = ({ 76161 name: 'thumbs', 76162 params: { 76163 thumbs: { 76164 swiper: null, 76165 multipleActiveThumbs: true, 76166 autoScrollOffset: 0, 76167 slideThumbActiveClass: 'swiper-slide-thumb-active', 76168 thumbsContainerClass: 'swiper-container-thumbs' 76169 } 76170 }, 76171 create: function create() { 76172 var swiper = this; 76173 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["bindModuleMethods"])(swiper, { 76174 thumbs: _extends({ 76175 swiper: null, 76176 initialized: false 76177 }, Thumbs) 76178 }); 76179 }, 76180 on: { 76181 beforeInit: function beforeInit(swiper) { 76182 var thumbs = swiper.params.thumbs; 76183 if (!thumbs || !thumbs.swiper) return; 76184 swiper.thumbs.init(); 76185 swiper.thumbs.update(true); 76186 }, 76187 slideChange: function slideChange(swiper) { 76188 if (!swiper.thumbs.swiper) return; 76189 swiper.thumbs.update(); 76190 }, 76191 update: function update(swiper) { 76192 if (!swiper.thumbs.swiper) return; 76193 swiper.thumbs.update(); 76194 }, 76195 resize: function resize(swiper) { 76196 if (!swiper.thumbs.swiper) return; 76197 swiper.thumbs.update(); 76198 }, 76199 observerUpdate: function observerUpdate(swiper) { 76200 if (!swiper.thumbs.swiper) return; 76201 swiper.thumbs.update(); 76202 }, 76203 setTransition: function setTransition(swiper, duration) { 76204 var thumbsSwiper = swiper.thumbs.swiper; 76205 if (!thumbsSwiper) return; 76206 thumbsSwiper.setTransition(duration); 76207 }, 76208 beforeDestroy: function beforeDestroy(swiper) { 76209 var thumbsSwiper = swiper.thumbs.swiper; 76210 if (!thumbsSwiper) return; 76211 76212 if (swiper.thumbs.swiperCreated && thumbsSwiper) { 76213 thumbsSwiper.destroy(); 76214 } 76215 } 76216 } 76217}); 76218 76219/***/ }), 76220
vendor: 9,669 bytes, lines 76221-76504
76221/***/ "./node_modules/swiper/esm/components/virtual/virtual.js": 76222/*!***************************************************************!*\ 76223 !*** ./node_modules/swiper/esm/components/virtual/virtual.js ***! 76224 \***************************************************************/ 76225/*! exports provided: default */ 76226/***/ (function(module, __webpack_exports__, __webpack_require__) { 76227 76228"use strict"; 76229__webpack_require__.r(__webpack_exports__); 76230/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 76231/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 76232function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 76233 76234 76235 76236var Virtual = { 76237 update: function update(force) { 76238 var swiper = this; 76239 var _swiper$params = swiper.params, 76240 slidesPerView = _swiper$params.slidesPerView, 76241 slidesPerGroup = _swiper$params.slidesPerGroup, 76242 centeredSlides = _swiper$params.centeredSlides; 76243 var _swiper$params$virtua = swiper.params.virtual, 76244 addSlidesBefore = _swiper$params$virtua.addSlidesBefore, 76245 addSlidesAfter = _swiper$params$virtua.addSlidesAfter; 76246 var _swiper$virtual = swiper.virtual, 76247 previousFrom = _swiper$virtual.from, 76248 previousTo = _swiper$virtual.to, 76249 slides = _swiper$virtual.slides, 76250 previousSlidesGrid = _swiper$virtual.slidesGrid, 76251 renderSlide = _swiper$virtual.renderSlide, 76252 previousOffset = _swiper$virtual.offset; 76253 swiper.updateActiveIndex(); 76254 var activeIndex = swiper.activeIndex || 0; 76255 var offsetProp; 76256 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 76257 var slidesAfter; 76258 var slidesBefore; 76259 76260 if (centeredSlides) { 76261 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 76262 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 76263 } else { 76264 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 76265 slidesBefore = slidesPerGroup + addSlidesBefore; 76266 } 76267 76268 var from = Math.max((activeIndex || 0) - slidesBefore, 0); 76269 var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); 76270 var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 76271 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.virtual, { 76272 from: from, 76273 to: to, 76274 offset: offset, 76275 slidesGrid: swiper.slidesGrid 76276 }); 76277 76278 function onRendered() { 76279 swiper.updateSlides(); 76280 swiper.updateProgress(); 76281 swiper.updateSlidesClasses(); 76282 76283 if (swiper.lazy && swiper.params.lazy.enabled) { 76284 swiper.lazy.load(); 76285 } 76286 } 76287 76288 if (previousFrom === from && previousTo === to && !force) { 76289 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { 76290 swiper.slides.css(offsetProp, offset + "px"); 76291 } 76292 76293 swiper.updateProgress(); 76294 return; 76295 } 76296 76297 if (swiper.params.virtual.renderExternal) { 76298 swiper.params.virtual.renderExternal.call(swiper, { 76299 offset: offset, 76300 from: from, 76301 to: to, 76302 slides: function getSlides() { 76303 var slidesToRender = []; 76304 76305 for (var i = from; i <= to; i += 1) { 76306 slidesToRender.push(slides[i]); 76307 } 76308 76309 return slidesToRender; 76310 }() 76311 }); 76312 76313 if (swiper.params.virtual.renderExternalUpdate) { 76314 onRendered(); 76315 } 76316 76317 return; 76318 } 76319 76320 var prependIndexes = []; 76321 var appendIndexes = []; 76322 76323 if (force) { 76324 swiper.$wrapperEl.find("." + swiper.params.slideClass).remove(); 76325 } else { 76326 for (var i = previousFrom; i <= previousTo; i += 1) { 76327 if (i < from || i > to) { 76328 swiper.$wrapperEl.find("." + swiper.params.slideClass + "[data-swiper-slide-index=\"" + i + "\"]").remove(); 76329 } 76330 } 76331 } 76332 76333 for (var _i = 0; _i < slides.length; _i += 1) { 76334 if (_i >= from && _i <= to) { 76335 if (typeof previousTo === 'undefined' || force) { 76336 appendIndexes.push(_i); 76337 } else { 76338 if (_i > previousTo) appendIndexes.push(_i); 76339 if (_i < previousFrom) prependIndexes.push(_i); 76340 } 76341 } 76342 } 76343 76344 appendIndexes.forEach(function (index) { 76345 swiper.$wrapperEl.append(renderSlide(slides[index], index)); 76346 }); 76347 prependIndexes.sort(function (a, b) { 76348 return b - a; 76349 }).forEach(function (index) { 76350 swiper.$wrapperEl.prepend(renderSlide(slides[index], index)); 76351 }); 76352 swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + "px"); 76353 onRendered(); 76354 }, 76355 renderSlide: function renderSlide(slide, index) { 76356 var swiper = this; 76357 var params = swiper.params.virtual; 76358 76359 if (params.cache && swiper.virtual.cache[index]) { 76360 return swiper.virtual.cache[index]; 76361 } 76362 76363 var $slideEl = params.renderSlide ? Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(params.renderSlide.call(swiper, slide, index)) : Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"" + swiper.params.slideClass + "\" data-swiper-slide-index=\"" + index + "\">" + slide + "</div>"); 76364 if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index); 76365 if (params.cache) swiper.virtual.cache[index] = $slideEl; 76366 return $slideEl; 76367 }, 76368 appendSlide: function appendSlide(slides) { 76369 var swiper = this; 76370 76371 if (typeof slides === 'object' && 'length' in slides) { 76372 for (var i = 0; i < slides.length; i += 1) { 76373 if (slides[i]) swiper.virtual.slides.push(slides[i]); 76374 } 76375 } else { 76376 swiper.virtual.slides.push(slides); 76377 } 76378 76379 swiper.virtual.update(true); 76380 }, 76381 prependSlide: function prependSlide(slides) { 76382 var swiper = this; 76383 var activeIndex = swiper.activeIndex; 76384 var newActiveIndex = activeIndex + 1; 76385 var numberOfNewSlides = 1; 76386 76387 if (Array.isArray(slides)) { 76388 for (var i = 0; i < slides.length; i += 1) { 76389 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 76390 } 76391 76392 newActiveIndex = activeIndex + slides.length; 76393 numberOfNewSlides = slides.length; 76394 } else { 76395 swiper.virtual.slides.unshift(slides); 76396 } 76397 76398 if (swiper.params.virtual.cache) { 76399 var cache = swiper.virtual.cache; 76400 var newCache = {}; 76401 Object.keys(cache).forEach(function (cachedIndex) { 76402 var $cachedEl = cache[cachedIndex]; 76403 var cachedElIndex = $cachedEl.attr('data-swiper-slide-index'); 76404 76405 if (cachedElIndex) { 76406 $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1); 76407 } 76408 76409 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl; 76410 }); 76411 swiper.virtual.cache = newCache; 76412 } 76413 76414 swiper.virtual.update(true); 76415 swiper.slideTo(newActiveIndex, 0); 76416 }, 76417 removeSlide: function removeSlide(slidesIndexes) { 76418 var swiper = this; 76419 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 76420 var activeIndex = swiper.activeIndex; 76421 76422 if (Array.isArray(slidesIndexes)) { 76423 for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) { 76424 swiper.virtual.slides.splice(slidesIndexes[i], 1); 76425 76426 if (swiper.params.virtual.cache) { 76427 delete swiper.virtual.cache[slidesIndexes[i]]; 76428 } 76429 76430 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 76431 activeIndex = Math.max(activeIndex, 0); 76432 } 76433 } else { 76434 swiper.virtual.slides.splice(slidesIndexes, 1); 76435 76436 if (swiper.params.virtual.cache) { 76437 delete swiper.virtual.cache[slidesIndexes]; 76438 } 76439 76440 if (slidesIndexes < activeIndex) activeIndex -= 1; 76441 activeIndex = Math.max(activeIndex, 0); 76442 } 76443 76444 swiper.virtual.update(true); 76445 swiper.slideTo(activeIndex, 0); 76446 }, 76447 removeAllSlides: function removeAllSlides() { 76448 var swiper = this; 76449 swiper.virtual.slides = []; 76450 76451 if (swiper.params.virtual.cache) { 76452 swiper.virtual.cache = {}; 76453 } 76454 76455 swiper.virtual.update(true); 76456 swiper.slideTo(0, 0); 76457 } 76458}; 76459/* harmony default export */ __webpack_exports__["default"] = ({ 76460 name: 'virtual', 76461 params: { 76462 virtual: { 76463 enabled: false, 76464 slides: [], 76465 cache: true, 76466 renderSlide: null, 76467 renderExternal: null, 76468 renderExternalUpdate: true, 76469 addSlidesBefore: 0, 76470 addSlidesAfter: 0 76471 } 76472 }, 76473 create: function create() { 76474 var swiper = this; 76475 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 76476 virtual: _extends(_extends({}, Virtual), {}, { 76477 slides: swiper.params.virtual.slides, 76478 cache: {} 76479 }) 76480 }); 76481 }, 76482 on: { 76483 beforeInit: function beforeInit(swiper) { 76484 if (!swiper.params.virtual.enabled) return; 76485 swiper.classNames.push(swiper.params.containerModifierClass + "virtual"); 76486 var overwriteParams = { 76487 watchSlidesProgress: true 76488 }; 76489 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.params, overwriteParams); 76490 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.originalParams, overwriteParams); 76491 76492 if (!swiper.params.initialSlide) { 76493 swiper.virtual.update(); 76494 } 76495 }, 76496 setTranslate: function setTranslate(swiper) { 76497 if (!swiper.params.virtual.enabled) return; 76498 swiper.virtual.update(); 76499 } 76500 } 76501}); 76502 76503/***/ }), 76504
vendor: 22,835 bytes, lines 76505-77114
76505/***/ "./node_modules/swiper/esm/components/zoom/zoom.js": 76506/*!*********************************************************!*\ 76507 !*** ./node_modules/swiper/esm/components/zoom/zoom.js ***! 76508 \*********************************************************/ 76509/*! exports provided: default */ 76510/***/ (function(module, __webpack_exports__, __webpack_require__) { 76511 76512"use strict"; 76513__webpack_require__.r(__webpack_exports__); 76514/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 76515/* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 76516function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } 76517 76518 76519 76520var Zoom = { 76521 // Calc Scale From Multi-touches 76522 getDistanceBetweenTouches: function getDistanceBetweenTouches(e) { 76523 if (e.targetTouches.length < 2) return 1; 76524 var x1 = e.targetTouches[0].pageX; 76525 var y1 = e.targetTouches[0].pageY; 76526 var x2 = e.targetTouches[1].pageX; 76527 var y2 = e.targetTouches[1].pageY; 76528 var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); 76529 return distance; 76530 }, 76531 // Events 76532 onGestureStart: function onGestureStart(e) { 76533 var swiper = this; 76534 var support = swiper.support; 76535 var params = swiper.params.zoom; 76536 var zoom = swiper.zoom; 76537 var gesture = zoom.gesture; 76538 zoom.fakeGestureTouched = false; 76539 zoom.fakeGestureMoved = false; 76540 76541 if (!support.gestures) { 76542 if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) { 76543 return; 76544 } 76545 76546 zoom.fakeGestureTouched = true; 76547 gesture.scaleStart = Zoom.getDistanceBetweenTouches(e); 76548 } 76549 76550 if (!gesture.$slideEl || !gesture.$slideEl.length) { 76551 gesture.$slideEl = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target).closest("." + swiper.params.slideClass); 76552 if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 76553 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); 76554 gesture.$imageWrapEl = gesture.$imageEl.parent("." + params.containerClass); 76555 gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 76556 76557 if (gesture.$imageWrapEl.length === 0) { 76558 gesture.$imageEl = undefined; 76559 return; 76560 } 76561 } 76562 76563 if (gesture.$imageEl) { 76564 gesture.$imageEl.transition(0); 76565 } 76566 76567 swiper.zoom.isScaling = true; 76568 }, 76569 onGestureChange: function onGestureChange(e) { 76570 var swiper = this; 76571 var support = swiper.support; 76572 var params = swiper.params.zoom; 76573 var zoom = swiper.zoom; 76574 var gesture = zoom.gesture; 76575 76576 if (!support.gestures) { 76577 if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) { 76578 return; 76579 } 76580 76581 zoom.fakeGestureMoved = true; 76582 gesture.scaleMove = Zoom.getDistanceBetweenTouches(e); 76583 } 76584 76585 if (!gesture.$imageEl || gesture.$imageEl.length === 0) { 76586 if (e.type === 'gesturechange') zoom.onGestureStart(e); 76587 return; 76588 } 76589 76590 if (support.gestures) { 76591 zoom.scale = e.scale * zoom.currentScale; 76592 } else { 76593 zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale; 76594 } 76595 76596 if (zoom.scale > gesture.maxRatio) { 76597 zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5); 76598 } 76599 76600 if (zoom.scale < params.minRatio) { 76601 zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5); 76602 } 76603 76604 gesture.$imageEl.transform("translate3d(0,0,0) scale(" + zoom.scale + ")"); 76605 }, 76606 onGestureEnd: function onGestureEnd(e) { 76607 var swiper = this; 76608 var device = swiper.device; 76609 var support = swiper.support; 76610 var params = swiper.params.zoom; 76611 var zoom = swiper.zoom; 76612 var gesture = zoom.gesture; 76613 76614 if (!support.gestures) { 76615 if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) { 76616 return; 76617 } 76618 76619 if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) { 76620 return; 76621 } 76622 76623 zoom.fakeGestureTouched = false; 76624 zoom.fakeGestureMoved = false; 76625 } 76626 76627 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 76628 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 76629 gesture.$imageEl.transition(swiper.params.speed).transform("translate3d(0,0,0) scale(" + zoom.scale + ")"); 76630 zoom.currentScale = zoom.scale; 76631 zoom.isScaling = false; 76632 if (zoom.scale === 1) gesture.$slideEl = undefined; 76633 }, 76634 onTouchStart: function onTouchStart(e) { 76635 var swiper = this; 76636 var device = swiper.device; 76637 var zoom = swiper.zoom; 76638 var gesture = zoom.gesture, 76639 image = zoom.image; 76640 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 76641 if (image.isTouched) return; 76642 if (device.android && e.cancelable) e.preventDefault(); 76643 image.isTouched = true; 76644 image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 76645 image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 76646 }, 76647 onTouchMove: function onTouchMove(e) { 76648 var swiper = this; 76649 var zoom = swiper.zoom; 76650 var gesture = zoom.gesture, 76651 image = zoom.image, 76652 velocity = zoom.velocity; 76653 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 76654 swiper.allowClick = false; 76655 if (!image.isTouched || !gesture.$slideEl) return; 76656 76657 if (!image.isMoved) { 76658 image.width = gesture.$imageEl[0].offsetWidth; 76659 image.height = gesture.$imageEl[0].offsetHeight; 76660 image.startX = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["getTranslate"])(gesture.$imageWrapEl[0], 'x') || 0; 76661 image.startY = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["getTranslate"])(gesture.$imageWrapEl[0], 'y') || 0; 76662 gesture.slideWidth = gesture.$slideEl[0].offsetWidth; 76663 gesture.slideHeight = gesture.$slideEl[0].offsetHeight; 76664 gesture.$imageWrapEl.transition(0); 76665 76666 if (swiper.rtl) { 76667 image.startX = -image.startX; 76668 image.startY = -image.startY; 76669 } 76670 } // Define if we need image drag 76671 76672 76673 var scaledWidth = image.width * zoom.scale; 76674 var scaledHeight = image.height * zoom.scale; 76675 if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; 76676 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 76677 image.maxX = -image.minX; 76678 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 76679 image.maxY = -image.minY; 76680 image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; 76681 image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; 76682 76683 if (!image.isMoved && !zoom.isScaling) { 76684 if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { 76685 image.isTouched = false; 76686 return; 76687 } 76688 76689 if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { 76690 image.isTouched = false; 76691 return; 76692 } 76693 } 76694 76695 if (e.cancelable) { 76696 e.preventDefault(); 76697 } 76698 76699 e.stopPropagation(); 76700 image.isMoved = true; 76701 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX; 76702 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY; 76703 76704 if (image.currentX < image.minX) { 76705 image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8); 76706 } 76707 76708 if (image.currentX > image.maxX) { 76709 image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8); 76710 } 76711 76712 if (image.currentY < image.minY) { 76713 image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8); 76714 } 76715 76716 if (image.currentY > image.maxY) { 76717 image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8); 76718 } // Velocity 76719 76720 76721 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 76722 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 76723 if (!velocity.prevTime) velocity.prevTime = Date.now(); 76724 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 76725 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 76726 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 76727 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 76728 velocity.prevPositionX = image.touchesCurrent.x; 76729 velocity.prevPositionY = image.touchesCurrent.y; 76730 velocity.prevTime = Date.now(); 76731 gesture.$imageWrapEl.transform("translate3d(" + image.currentX + "px, " + image.currentY + "px,0)"); 76732 }, 76733 onTouchEnd: function onTouchEnd() { 76734 var swiper = this; 76735 var zoom = swiper.zoom; 76736 var gesture = zoom.gesture, 76737 image = zoom.image, 76738 velocity = zoom.velocity; 76739 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 76740 76741 if (!image.isTouched || !image.isMoved) { 76742 image.isTouched = false; 76743 image.isMoved = false; 76744 return; 76745 } 76746 76747 image.isTouched = false; 76748 image.isMoved = false; 76749 var momentumDurationX = 300; 76750 var momentumDurationY = 300; 76751 var momentumDistanceX = velocity.x * momentumDurationX; 76752 var newPositionX = image.currentX + momentumDistanceX; 76753 var momentumDistanceY = velocity.y * momentumDurationY; 76754 var newPositionY = image.currentY + momentumDistanceY; // Fix duration 76755 76756 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 76757 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 76758 var momentumDuration = Math.max(momentumDurationX, momentumDurationY); 76759 image.currentX = newPositionX; 76760 image.currentY = newPositionY; // Define if we need image drag 76761 76762 var scaledWidth = image.width * zoom.scale; 76763 var scaledHeight = image.height * zoom.scale; 76764 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 76765 image.maxX = -image.minX; 76766 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 76767 image.maxY = -image.minY; 76768 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 76769 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 76770 gesture.$imageWrapEl.transition(momentumDuration).transform("translate3d(" + image.currentX + "px, " + image.currentY + "px,0)"); 76771 }, 76772 onTransitionEnd: function onTransitionEnd() { 76773 var swiper = this; 76774 var zoom = swiper.zoom; 76775 var gesture = zoom.gesture; 76776 76777 if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { 76778 if (gesture.$imageEl) { 76779 gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); 76780 } 76781 76782 if (gesture.$imageWrapEl) { 76783 gesture.$imageWrapEl.transform('translate3d(0,0,0)'); 76784 } 76785 76786 zoom.scale = 1; 76787 zoom.currentScale = 1; 76788 gesture.$slideEl = undefined; 76789 gesture.$imageEl = undefined; 76790 gesture.$imageWrapEl = undefined; 76791 } 76792 }, 76793 // Toggle Zoom 76794 toggle: function toggle(e) { 76795 var swiper = this; 76796 var zoom = swiper.zoom; 76797 76798 if (zoom.scale && zoom.scale !== 1) { 76799 // Zoom Out 76800 zoom.out(); 76801 } else { 76802 // Zoom In 76803 zoom.in(e); 76804 } 76805 }, 76806 in: function _in(e) { 76807 var swiper = this; 76808 var zoom = swiper.zoom; 76809 var params = swiper.params.zoom; 76810 var gesture = zoom.gesture, 76811 image = zoom.image; 76812 76813 if (!gesture.$slideEl) { 76814 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 76815 gesture.$slideEl = swiper.$wrapperEl.children("." + swiper.params.slideActiveClass); 76816 } else { 76817 gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 76818 } 76819 76820 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); 76821 gesture.$imageWrapEl = gesture.$imageEl.parent("." + params.containerClass); 76822 } 76823 76824 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 76825 gesture.$slideEl.addClass("" + params.zoomedSlideClass); 76826 var touchX; 76827 var touchY; 76828 var offsetX; 76829 var offsetY; 76830 var diffX; 76831 var diffY; 76832 var translateX; 76833 var translateY; 76834 var imageWidth; 76835 var imageHeight; 76836 var scaledWidth; 76837 var scaledHeight; 76838 var translateMinX; 76839 var translateMinY; 76840 var translateMaxX; 76841 var translateMaxY; 76842 var slideWidth; 76843 var slideHeight; 76844 76845 if (typeof image.touchesStart.x === 'undefined' && e) { 76846 touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; 76847 touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; 76848 } else { 76849 touchX = image.touchesStart.x; 76850 touchY = image.touchesStart.y; 76851 } 76852 76853 zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 76854 zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 76855 76856 if (e) { 76857 slideWidth = gesture.$slideEl[0].offsetWidth; 76858 slideHeight = gesture.$slideEl[0].offsetHeight; 76859 offsetX = gesture.$slideEl.offset().left; 76860 offsetY = gesture.$slideEl.offset().top; 76861 diffX = offsetX + slideWidth / 2 - touchX; 76862 diffY = offsetY + slideHeight / 2 - touchY; 76863 imageWidth = gesture.$imageEl[0].offsetWidth; 76864 imageHeight = gesture.$imageEl[0].offsetHeight; 76865 scaledWidth = imageWidth * zoom.scale; 76866 scaledHeight = imageHeight * zoom.scale; 76867 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 76868 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 76869 translateMaxX = -translateMinX; 76870 translateMaxY = -translateMinY; 76871 translateX = diffX * zoom.scale; 76872 translateY = diffY * zoom.scale; 76873 76874 if (translateX < translateMinX) { 76875 translateX = translateMinX; 76876 } 76877 76878 if (translateX > translateMaxX) { 76879 translateX = translateMaxX; 76880 } 76881 76882 if (translateY < translateMinY) { 76883 translateY = translateMinY; 76884 } 76885 76886 if (translateY > translateMaxY) { 76887 translateY = translateMaxY; 76888 } 76889 } else { 76890 translateX = 0; 76891 translateY = 0; 76892 } 76893 76894 gesture.$imageWrapEl.transition(300).transform("translate3d(" + translateX + "px, " + translateY + "px,0)"); 76895 gesture.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + zoom.scale + ")"); 76896 }, 76897 out: function out() { 76898 var swiper = this; 76899 var zoom = swiper.zoom; 76900 var params = swiper.params.zoom; 76901 var gesture = zoom.gesture; 76902 76903 if (!gesture.$slideEl) { 76904 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 76905 gesture.$slideEl = swiper.$wrapperEl.children("." + swiper.params.slideActiveClass); 76906 } else { 76907 gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 76908 } 76909 76910 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); 76911 gesture.$imageWrapEl = gesture.$imageEl.parent("." + params.containerClass); 76912 } 76913 76914 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 76915 zoom.scale = 1; 76916 zoom.currentScale = 1; 76917 gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); 76918 gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); 76919 gesture.$slideEl.removeClass("" + params.zoomedSlideClass); 76920 gesture.$slideEl = undefined; 76921 }, 76922 toggleGestures: function toggleGestures(method) { 76923 var swiper = this; 76924 var zoom = swiper.zoom; 76925 var selector = zoom.slideSelector, 76926 passive = zoom.passiveListener; 76927 swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive); 76928 swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive); 76929 swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive); 76930 }, 76931 enableGestures: function enableGestures() { 76932 if (this.zoom.gesturesEnabled) return; 76933 this.zoom.gesturesEnabled = true; 76934 this.zoom.toggleGestures('on'); 76935 }, 76936 disableGestures: function disableGestures() { 76937 if (!this.zoom.gesturesEnabled) return; 76938 this.zoom.gesturesEnabled = false; 76939 this.zoom.toggleGestures('off'); 76940 }, 76941 // Attach/Detach Events 76942 enable: function enable() { 76943 var swiper = this; 76944 var support = swiper.support; 76945 var zoom = swiper.zoom; 76946 if (zoom.enabled) return; 76947 zoom.enabled = true; 76948 var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? { 76949 passive: true, 76950 capture: false 76951 } : false; 76952 var activeListenerWithCapture = support.passiveListener ? { 76953 passive: false, 76954 capture: true 76955 } : true; 76956 var slideSelector = "." + swiper.params.slideClass; 76957 swiper.zoom.passiveListener = passiveListener; 76958 swiper.zoom.slideSelector = slideSelector; // Scale image 76959 76960 if (support.gestures) { 76961 swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener); 76962 swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener); 76963 } else if (swiper.touchEvents.start === 'touchstart') { 76964 swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener); 76965 swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture); 76966 swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener); 76967 76968 if (swiper.touchEvents.cancel) { 76969 swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener); 76970 } 76971 } // Move image 76972 76973 76974 swiper.$wrapperEl.on(swiper.touchEvents.move, "." + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture); 76975 }, 76976 disable: function disable() { 76977 var swiper = this; 76978 var zoom = swiper.zoom; 76979 if (!zoom.enabled) return; 76980 var support = swiper.support; 76981 swiper.zoom.enabled = false; 76982 var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? { 76983 passive: true, 76984 capture: false 76985 } : false; 76986 var activeListenerWithCapture = support.passiveListener ? { 76987 passive: false, 76988 capture: true 76989 } : true; 76990 var slideSelector = "." + swiper.params.slideClass; // Scale image 76991 76992 if (support.gestures) { 76993 swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener); 76994 swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener); 76995 } else if (swiper.touchEvents.start === 'touchstart') { 76996 swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener); 76997 swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture); 76998 swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener); 76999 77000 if (swiper.touchEvents.cancel) { 77001 swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener); 77002 } 77003 } // Move image 77004 77005 77006 swiper.$wrapperEl.off(swiper.touchEvents.move, "." + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture); 77007 } 77008}; 77009/* harmony default export */ __webpack_exports__["default"] = ({ 77010 name: 'zoom', 77011 params: { 77012 zoom: { 77013 enabled: false, 77014 maxRatio: 3, 77015 minRatio: 1, 77016 toggle: true, 77017 containerClass: 'swiper-zoom-container', 77018 zoomedSlideClass: 'swiper-slide-zoomed' 77019 } 77020 }, 77021 create: function create() { 77022 var swiper = this; 77023 Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 77024 zoom: _extends({ 77025 enabled: false, 77026 scale: 1, 77027 currentScale: 1, 77028 isScaling: false, 77029 gesture: { 77030 $slideEl: undefined, 77031 slideWidth: undefined, 77032 slideHeight: undefined, 77033 $imageEl: undefined, 77034 $imageWrapEl: undefined, 77035 maxRatio: 3 77036 }, 77037 image: { 77038 isTouched: undefined, 77039 isMoved: undefined, 77040 currentX: undefined, 77041 currentY: undefined, 77042 minX: undefined, 77043 minY: undefined, 77044 maxX: undefined, 77045 maxY: undefined, 77046 width: undefined, 77047 height: undefined, 77048 startX: undefined, 77049 startY: undefined, 77050 touchesStart: {}, 77051 touchesCurrent: {} 77052 }, 77053 velocity: { 77054 x: undefined, 77055 y: undefined, 77056 prevPositionX: undefined, 77057 prevPositionY: undefined, 77058 prevTime: undefined 77059 } 77060 }, Zoom) 77061 }); 77062 var scale = 1; 77063 Object.defineProperty(swiper.zoom, 'scale', { 77064 get: function get() { 77065 return scale; 77066 }, 77067 set: function set(value) { 77068 if (scale !== value) { 77069 var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined; 77070 var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined; 77071 swiper.emit('zoomChange', value, imageEl, slideEl); 77072 } 77073 77074 scale = value; 77075 } 77076 }); 77077 }, 77078 on: { 77079 init: function init(swiper) { 77080 if (swiper.params.zoom.enabled) { 77081 swiper.zoom.enable(); 77082 } 77083 }, 77084 destroy: function destroy(swiper) { 77085 swiper.zoom.disable(); 77086 }, 77087 touchStart: function touchStart(swiper, e) { 77088 if (!swiper.zoom.enabled) return; 77089 swiper.zoom.onTouchStart(e); 77090 }, 77091 touchEnd: function touchEnd(swiper, e) { 77092 if (!swiper.zoom.enabled) return; 77093 swiper.zoom.onTouchEnd(e); 77094 }, 77095 doubleTap: function doubleTap(swiper, e) { 77096 if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 77097 swiper.zoom.toggle(e); 77098 } 77099 }, 77100 transitionEnd: function transitionEnd(swiper) { 77101 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 77102 swiper.zoom.onTransitionEnd(); 77103 } 77104 }, 77105 slideChange: function slideChange(swiper) { 77106 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 77107 swiper.zoom.onTransitionEnd(); 77108 } 77109 } 77110 } 77111}); 77112 77113/***/ }), 77114
vendor: 2,775 bytes, lines 77115-77170
77115/***/ "./node_modules/swiper/esm/utils/dom.js": 77116/*!**********************************************!*\ 77117 !*** ./node_modules/swiper/esm/utils/dom.js ***! 77118 \**********************************************/ 77119/*! exports provided: default */ 77120/***/ (function(module, __webpack_exports__, __webpack_require__) { 77121 77122"use strict"; 77123__webpack_require__.r(__webpack_exports__); 77124/* harmony import */ var dom7__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7 */ "./node_modules/dom7/dom7.esm.js"); 77125 77126var Methods = { 77127 addClass: dom7__WEBPACK_IMPORTED_MODULE_0__["addClass"], 77128 removeClass: dom7__WEBPACK_IMPORTED_MODULE_0__["removeClass"], 77129 hasClass: dom7__WEBPACK_IMPORTED_MODULE_0__["hasClass"], 77130 toggleClass: dom7__WEBPACK_IMPORTED_MODULE_0__["toggleClass"], 77131 attr: dom7__WEBPACK_IMPORTED_MODULE_0__["attr"], 77132 removeAttr: dom7__WEBPACK_IMPORTED_MODULE_0__["removeAttr"], 77133 transform: dom7__WEBPACK_IMPORTED_MODULE_0__["transform"], 77134 transition: dom7__WEBPACK_IMPORTED_MODULE_0__["transition"], 77135 on: dom7__WEBPACK_IMPORTED_MODULE_0__["on"], 77136 off: dom7__WEBPACK_IMPORTED_MODULE_0__["off"], 77137 trigger: dom7__WEBPACK_IMPORTED_MODULE_0__["trigger"], 77138 transitionEnd: dom7__WEBPACK_IMPORTED_MODULE_0__["transitionEnd"], 77139 outerWidth: dom7__WEBPACK_IMPORTED_MODULE_0__["outerWidth"], 77140 outerHeight: dom7__WEBPACK_IMPORTED_MODULE_0__["outerHeight"], 77141 styles: dom7__WEBPACK_IMPORTED_MODULE_0__["styles"], 77142 offset: dom7__WEBPACK_IMPORTED_MODULE_0__["offset"], 77143 css: dom7__WEBPACK_IMPORTED_MODULE_0__["css"], 77144 each: dom7__WEBPACK_IMPORTED_MODULE_0__["each"], 77145 html: dom7__WEBPACK_IMPORTED_MODULE_0__["html"], 77146 text: dom7__WEBPACK_IMPORTED_MODULE_0__["text"], 77147 is: dom7__WEBPACK_IMPORTED_MODULE_0__["is"], 77148 index: dom7__WEBPACK_IMPORTED_MODULE_0__["index"], 77149 eq: dom7__WEBPACK_IMPORTED_MODULE_0__["eq"], 77150 append: dom7__WEBPACK_IMPORTED_MODULE_0__["append"], 77151 prepend: dom7__WEBPACK_IMPORTED_MODULE_0__["prepend"], 77152 next: dom7__WEBPACK_IMPORTED_MODULE_0__["next"], 77153 nextAll: dom7__WEBPACK_IMPORTED_MODULE_0__["nextAll"], 77154 prev: dom7__WEBPACK_IMPORTED_MODULE_0__["prev"], 77155 prevAll: dom7__WEBPACK_IMPORTED_MODULE_0__["prevAll"], 77156 parent: dom7__WEBPACK_IMPORTED_MODULE_0__["parent"], 77157 parents: dom7__WEBPACK_IMPORTED_MODULE_0__["parents"], 77158 closest: dom7__WEBPACK_IMPORTED_MODULE_0__["closest"], 77159 find: dom7__WEBPACK_IMPORTED_MODULE_0__["find"], 77160 children: dom7__WEBPACK_IMPORTED_MODULE_0__["children"], 77161 filter: dom7__WEBPACK_IMPORTED_MODULE_0__["filter"], 77162 remove: dom7__WEBPACK_IMPORTED_MODULE_0__["remove"] 77163}; 77164Object.keys(Methods).forEach(function (methodName) { 77165 dom7__WEBPACK_IMPORTED_MODULE_0__["$"].fn[methodName] = Methods[methodName]; 77166}); 77167/* harmony default export */ __webpack_exports__["default"] = (dom7__WEBPACK_IMPORTED_MODULE_0__["$"]); 77168 77169/***/ }), 77170
vendor: 1,281 bytes, lines 77171-77211
77171/***/ "./node_modules/swiper/esm/utils/get-browser.js": 77172/*!******************************************************!*\ 77173 !*** ./node_modules/swiper/esm/utils/get-browser.js ***! 77174 \******************************************************/ 77175/*! exports provided: getBrowser */ 77176/***/ (function(module, __webpack_exports__, __webpack_require__) { 77177 77178"use strict"; 77179__webpack_require__.r(__webpack_exports__); 77180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBrowser", function() { return getBrowser; }); 77181/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 77182 77183var browser; 77184 77185function calcBrowser() { 77186 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 77187 77188 function isSafari() { 77189 var ua = window.navigator.userAgent.toLowerCase(); 77190 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 77191 } 77192 77193 return { 77194 isEdge: !!window.navigator.userAgent.match(/Edge/g), 77195 isSafari: isSafari(), 77196 isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) 77197 }; 77198} 77199 77200function getBrowser() { 77201 if (!browser) { 77202 browser = calcBrowser(); 77203 } 77204 77205 return browser; 77206} 77207 77208 77209 77210/***/ }), 77211
vendor: 2,419 bytes, lines 77212-77288
77212/***/ "./node_modules/swiper/esm/utils/get-device.js": 77213/*!*****************************************************!*\ 77214 !*** ./node_modules/swiper/esm/utils/get-device.js ***! 77215 \*****************************************************/ 77216/*! exports provided: getDevice */ 77217/***/ (function(module, __webpack_exports__, __webpack_require__) { 77218 77219"use strict"; 77220__webpack_require__.r(__webpack_exports__); 77221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDevice", function() { return getDevice; }); 77222/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 77223/* harmony import */ var _get_support__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support */ "./node_modules/swiper/esm/utils/get-support.js"); 77224 77225 77226var device; 77227 77228function calcDevice(_temp) { 77229 var _ref = _temp === void 0 ? {} : _temp, 77230 userAgent = _ref.userAgent; 77231 77232 var support = Object(_get_support__WEBPACK_IMPORTED_MODULE_1__["getSupport"])(); 77233 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 77234 var platform = window.navigator.platform; 77235 var ua = userAgent || window.navigator.userAgent; 77236 var device = { 77237 ios: false, 77238 android: false 77239 }; 77240 var screenWidth = window.screen.width; 77241 var screenHeight = window.screen.height; 77242 var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 77243 77244 var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 77245 var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 77246 var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 77247 var windows = platform === 'Win32'; 77248 var macos = platform === 'MacIntel'; // iPadOs 13 fix 77249 77250 var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768']; 77251 77252 if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + "x" + screenHeight) >= 0) { 77253 ipad = ua.match(/(Version)\/([\d.]+)/); 77254 if (!ipad) ipad = [0, 1, '13_0_0']; 77255 macos = false; 77256 } // Android 77257 77258 77259 if (android && !windows) { 77260 device.os = 'android'; 77261 device.android = true; 77262 } 77263 77264 if (ipad || iphone || ipod) { 77265 device.os = 'ios'; 77266 device.ios = true; 77267 } // Export object 77268 77269 77270 return device; 77271} 77272 77273function getDevice(overrides) { 77274 if (overrides === void 0) { 77275 overrides = {}; 77276 } 77277 77278 if (!device) { 77279 device = calcDevice(overrides); 77280 } 77281 77282 return device; 77283} 77284 77285 77286 77287/***/ }), 77288
vendor: 1,898 bytes, lines 77289-77345
77289/***/ "./node_modules/swiper/esm/utils/get-support.js": 77290/*!******************************************************!*\ 77291 !*** ./node_modules/swiper/esm/utils/get-support.js ***! 77292 \******************************************************/ 77293/*! exports provided: getSupport */ 77294/***/ (function(module, __webpack_exports__, __webpack_require__) { 77295 77296"use strict"; 77297__webpack_require__.r(__webpack_exports__); 77298/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSupport", function() { return getSupport; }); 77299/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 77300 77301var support; 77302 77303function calcSupport() { 77304 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 77305 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getDocument"])(); 77306 return { 77307 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch), 77308 pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0, 77309 observer: function checkObserver() { 77310 return 'MutationObserver' in window || 'WebkitMutationObserver' in window; 77311 }(), 77312 passiveListener: function checkPassiveListener() { 77313 var supportsPassive = false; 77314 77315 try { 77316 var opts = Object.defineProperty({}, 'passive', { 77317 // eslint-disable-next-line 77318 get: function get() { 77319 supportsPassive = true; 77320 } 77321 }); 77322 window.addEventListener('testPassiveListener', null, opts); 77323 } catch (e) {// No support 77324 } 77325 77326 return supportsPassive; 77327 }(), 77328 gestures: function checkGestures() { 77329 return 'ongesturestart' in window; 77330 }() 77331 }; 77332} 77333 77334function getSupport() { 77335 if (!support) { 77336 support = calcSupport(); 77337 } 77338 77339 return support; 77340} 77341 77342 77343 77344/***/ }), 77345
vendor: 5,043 bytes, lines 77346-77488
77346/***/ "./node_modules/swiper/esm/utils/utils.js": 77347/*!************************************************!*\ 77348 !*** ./node_modules/swiper/esm/utils/utils.js ***! 77349 \************************************************/ 77350/*! exports provided: deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods */ 77351/***/ (function(module, __webpack_exports__, __webpack_require__) { 77352 77353"use strict"; 77354__webpack_require__.r(__webpack_exports__); 77355/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deleteProps", function() { return deleteProps; }); 77356/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextTick", function() { return nextTick; }); 77357/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "now", function() { return now; }); 77358/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTranslate", function() { return getTranslate; }); 77359/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObject", function() { return isObject; }); 77360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; }); 77361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindModuleMethods", function() { return bindModuleMethods; }); 77362/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 77363 77364 77365function deleteProps(obj) { 77366 var object = obj; 77367 Object.keys(object).forEach(function (key) { 77368 try { 77369 object[key] = null; 77370 } catch (e) {// no getter for object 77371 } 77372 77373 try { 77374 delete object[key]; 77375 } catch (e) {// something got wrong 77376 } 77377 }); 77378} 77379 77380function nextTick(callback, delay) { 77381 if (delay === void 0) { 77382 delay = 0; 77383 } 77384 77385 return setTimeout(callback, delay); 77386} 77387 77388function now() { 77389 return Date.now(); 77390} 77391 77392function getTranslate(el, axis) { 77393 if (axis === void 0) { 77394 axis = 'x'; 77395 } 77396 77397 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_0__["getWindow"])(); 77398 var matrix; 77399 var curTransform; 77400 var transformMatrix; 77401 var curStyle = window.getComputedStyle(el, null); 77402 77403 if (window.WebKitCSSMatrix) { 77404 curTransform = curStyle.transform || curStyle.webkitTransform; 77405 77406 if (curTransform.split(',').length > 6) { 77407 curTransform = curTransform.split(', ').map(function (a) { 77408 return a.replace(',', '.'); 77409 }).join(', '); 77410 } // Some old versions of Webkit choke when 'none' is passed; pass 77411 // empty string instead in this case 77412 77413 77414 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 77415 } else { 77416 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 77417 matrix = transformMatrix.toString().split(','); 77418 } 77419 77420 if (axis === 'x') { 77421 // Latest Chrome and webkits Fix 77422 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix 77423 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers 77424 else curTransform = parseFloat(matrix[4]); 77425 } 77426 77427 if (axis === 'y') { 77428 // Latest Chrome and webkits Fix 77429 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix 77430 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers 77431 else curTransform = parseFloat(matrix[5]); 77432 } 77433 77434 return curTransform || 0; 77435} 77436 77437function isObject(o) { 77438 return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; 77439} 77440 77441function extend() { 77442 var to = Object(arguments.length <= 0 ? undefined : arguments[0]); 77443 77444 for (var i = 1; i < arguments.length; i += 1) { 77445 var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; 77446 77447 if (nextSource !== undefined && nextSource !== null) { 77448 var keysArray = Object.keys(Object(nextSource)); 77449 77450 for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 77451 var nextKey = keysArray[nextIndex]; 77452 var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 77453 77454 if (desc !== undefined && desc.enumerable) { 77455 if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 77456 extend(to[nextKey], nextSource[nextKey]); 77457 } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 77458 to[nextKey] = {}; 77459 extend(to[nextKey], nextSource[nextKey]); 77460 } else { 77461 to[nextKey] = nextSource[nextKey]; 77462 } 77463 } 77464 } 77465 } 77466 } 77467 77468 return to; 77469} 77470 77471function bindModuleMethods(instance, obj) { 77472 Object.keys(obj).forEach(function (key) { 77473 if (isObject(obj[key])) { 77474 Object.keys(obj[key]).forEach(function (subKey) { 77475 if (typeof obj[key][subKey] === 'function') { 77476 obj[key][subKey] = obj[key][subKey].bind(instance); 77477 } 77478 }); 77479 } 77480 77481 instance[key] = obj[key]; 77482 }); 77483} 77484 77485 77486 77487/***/ }), 77488
vendor: 124,610 bytes, lines 77489-81317
77489/***/ "./node_modules/swiper/swiper.esm.js": 77490/*!*******************************************!*\ 77491 !*** ./node_modules/swiper/swiper.esm.js ***! 77492 \*******************************************/ 77493/*! exports provided: Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs, default, Swiper */ 77494/***/ (function(module, __webpack_exports__, __webpack_require__) { 77495 77496"use strict"; 77497__webpack_require__.r(__webpack_exports__); 77498/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Swiper", function() { return Swiper; }); 77499/* harmony import */ var _esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./esm/utils/dom */ "./node_modules/swiper/esm/utils/dom.js"); 77500/* harmony import */ var _esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./esm/utils/utils */ "./node_modules/swiper/esm/utils/utils.js"); 77501/* harmony import */ var _esm_utils_get_support__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./esm/utils/get-support */ "./node_modules/swiper/esm/utils/get-support.js"); 77502/* harmony import */ var _esm_utils_get_device__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./esm/utils/get-device */ "./node_modules/swiper/esm/utils/get-device.js"); 77503/* harmony import */ var _esm_utils_get_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./esm/utils/get-browser */ "./node_modules/swiper/esm/utils/get-browser.js"); 77504/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 77505/* harmony import */ var _esm_components_virtual_virtual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./esm/components/virtual/virtual */ "./node_modules/swiper/esm/components/virtual/virtual.js"); 77506/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Virtual", function() { return _esm_components_virtual_virtual__WEBPACK_IMPORTED_MODULE_6__["default"]; }); 77507 77508/* harmony import */ var _esm_components_keyboard_keyboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./esm/components/keyboard/keyboard */ "./node_modules/swiper/esm/components/keyboard/keyboard.js"); 77509/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Keyboard", function() { return _esm_components_keyboard_keyboard__WEBPACK_IMPORTED_MODULE_7__["default"]; }); 77510 77511/* harmony import */ var _esm_components_mousewheel_mousewheel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./esm/components/mousewheel/mousewheel */ "./node_modules/swiper/esm/components/mousewheel/mousewheel.js"); 77512/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Mousewheel", function() { return _esm_components_mousewheel_mousewheel__WEBPACK_IMPORTED_MODULE_8__["default"]; }); 77513 77514/* harmony import */ var _esm_components_navigation_navigation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./esm/components/navigation/navigation */ "./node_modules/swiper/esm/components/navigation/navigation.js"); 77515/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Navigation", function() { return _esm_components_navigation_navigation__WEBPACK_IMPORTED_MODULE_9__["default"]; }); 77516 77517/* harmony import */ var _esm_components_pagination_pagination__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./esm/components/pagination/pagination */ "./node_modules/swiper/esm/components/pagination/pagination.js"); 77518/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Pagination", function() { return _esm_components_pagination_pagination__WEBPACK_IMPORTED_MODULE_10__["default"]; }); 77519 77520/* harmony import */ var _esm_components_scrollbar_scrollbar__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./esm/components/scrollbar/scrollbar */ "./node_modules/swiper/esm/components/scrollbar/scrollbar.js"); 77521/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scrollbar", function() { return _esm_components_scrollbar_scrollbar__WEBPACK_IMPORTED_MODULE_11__["default"]; }); 77522 77523/* harmony import */ var _esm_components_parallax_parallax__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./esm/components/parallax/parallax */ "./node_modules/swiper/esm/components/parallax/parallax.js"); 77524/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Parallax", function() { return _esm_components_parallax_parallax__WEBPACK_IMPORTED_MODULE_12__["default"]; }); 77525 77526/* harmony import */ var _esm_components_zoom_zoom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./esm/components/zoom/zoom */ "./node_modules/swiper/esm/components/zoom/zoom.js"); 77527/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Zoom", function() { return _esm_components_zoom_zoom__WEBPACK_IMPORTED_MODULE_13__["default"]; }); 77528 77529/* harmony import */ var _esm_components_lazy_lazy__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./esm/components/lazy/lazy */ "./node_modules/swiper/esm/components/lazy/lazy.js"); 77530/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Lazy", function() { return _esm_components_lazy_lazy__WEBPACK_IMPORTED_MODULE_14__["default"]; }); 77531 77532/* harmony import */ var _esm_components_controller_controller__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./esm/components/controller/controller */ "./node_modules/swiper/esm/components/controller/controller.js"); 77533/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Controller", function() { return _esm_components_controller_controller__WEBPACK_IMPORTED_MODULE_15__["default"]; }); 77534 77535/* harmony import */ var _esm_components_a11y_a11y__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./esm/components/a11y/a11y */ "./node_modules/swiper/esm/components/a11y/a11y.js"); 77536/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "A11y", function() { return _esm_components_a11y_a11y__WEBPACK_IMPORTED_MODULE_16__["default"]; }); 77537 77538/* harmony import */ var _esm_components_history_history__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./esm/components/history/history */ "./node_modules/swiper/esm/components/history/history.js"); 77539/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "History", function() { return _esm_components_history_history__WEBPACK_IMPORTED_MODULE_17__["default"]; }); 77540 77541/* harmony import */ var _esm_components_hash_navigation_hash_navigation__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./esm/components/hash-navigation/hash-navigation */ "./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js"); 77542/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HashNavigation", function() { return _esm_components_hash_navigation_hash_navigation__WEBPACK_IMPORTED_MODULE_18__["default"]; }); 77543 77544/* harmony import */ var _esm_components_autoplay_autoplay__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./esm/components/autoplay/autoplay */ "./node_modules/swiper/esm/components/autoplay/autoplay.js"); 77545/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autoplay", function() { return _esm_components_autoplay_autoplay__WEBPACK_IMPORTED_MODULE_19__["default"]; }); 77546 77547/* harmony import */ var _esm_components_effect_fade_effect_fade__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./esm/components/effect-fade/effect-fade */ "./node_modules/swiper/esm/components/effect-fade/effect-fade.js"); 77548/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectFade", function() { return _esm_components_effect_fade_effect_fade__WEBPACK_IMPORTED_MODULE_20__["default"]; }); 77549 77550/* harmony import */ var _esm_components_effect_cube_effect_cube__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./esm/components/effect-cube/effect-cube */ "./node_modules/swiper/esm/components/effect-cube/effect-cube.js"); 77551/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectCube", function() { return _esm_components_effect_cube_effect_cube__WEBPACK_IMPORTED_MODULE_21__["default"]; }); 77552 77553/* harmony import */ var _esm_components_effect_flip_effect_flip__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./esm/components/effect-flip/effect-flip */ "./node_modules/swiper/esm/components/effect-flip/effect-flip.js"); 77554/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectFlip", function() { return _esm_components_effect_flip_effect_flip__WEBPACK_IMPORTED_MODULE_22__["default"]; }); 77555 77556/* harmony import */ var _esm_components_effect_coverflow_effect_coverflow__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./esm/components/effect-coverflow/effect-coverflow */ "./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js"); 77557/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EffectCoverflow", function() { return _esm_components_effect_coverflow_effect_coverflow__WEBPACK_IMPORTED_MODULE_23__["default"]; }); 77558 77559/* harmony import */ var _esm_components_thumbs_thumbs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./esm/components/thumbs/thumbs */ "./node_modules/swiper/esm/components/thumbs/thumbs.js"); 77560/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Thumbs", function() { return _esm_components_thumbs_thumbs__WEBPACK_IMPORTED_MODULE_24__["default"]; }); 77561 77562/** 77563 * Swiper 6.0.4 77564 * Most modern mobile touch slider and framework with hardware accelerated transitions 77565 * http://swiperjs.com 77566 * 77567 * Copyright 2014-2020 Vladimir Kharlampidi 77568 * 77569 * Released under the MIT License 77570 * 77571 * Released on: July 15, 2020 77572 */ 77573 77574 77575 77576 77577 77578 77579 77580 77581 77582 77583 77584 77585 77586 77587 77588 77589 77590 77591 77592 77593 77594 77595 77596 77597 77598 77599 77600function _defineProperties(target, props) { 77601 for (var i = 0; i < props.length; i++) { 77602 var descriptor = props[i]; 77603 descriptor.enumerable = descriptor.enumerable || false; 77604 descriptor.configurable = true; 77605 if ("value" in descriptor) descriptor.writable = true; 77606 Object.defineProperty(target, descriptor.key, descriptor); 77607 } 77608} 77609 77610function _createClass(Constructor, protoProps, staticProps) { 77611 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 77612 if (staticProps) _defineProperties(Constructor, staticProps); 77613 return Constructor; 77614} 77615 77616function _extends() { 77617 _extends = Object.assign || function (target) { 77618 for (var i = 1; i < arguments.length; i++) { 77619 var source = arguments[i]; 77620 77621 for (var key in source) { 77622 if (Object.prototype.hasOwnProperty.call(source, key)) { 77623 target[key] = source[key]; 77624 } 77625 } 77626 } 77627 77628 return target; 77629 }; 77630 77631 return _extends.apply(this, arguments); 77632} 77633 77634var modular = { 77635 useParams: function useParams(instanceParams) { 77636 var instance = this; 77637 if (!instance.modules) return; 77638 Object.keys(instance.modules).forEach(function (moduleName) { 77639 var module = instance.modules[moduleName]; // Extend params 77640 77641 if (module.params) { 77642 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(instanceParams, module.params); 77643 } 77644 }); 77645 }, 77646 useModules: function useModules(modulesParams) { 77647 if (modulesParams === void 0) { 77648 modulesParams = {}; 77649 } 77650 77651 var instance = this; 77652 if (!instance.modules) return; 77653 Object.keys(instance.modules).forEach(function (moduleName) { 77654 var module = instance.modules[moduleName]; 77655 var moduleParams = modulesParams[moduleName] || {}; // Add event listeners 77656 77657 if (module.on && instance.on) { 77658 Object.keys(module.on).forEach(function (moduleEventName) { 77659 instance.on(moduleEventName, module.on[moduleEventName]); 77660 }); 77661 } // Module create callback 77662 77663 77664 if (module.create) { 77665 module.create.bind(instance)(moduleParams); 77666 } 77667 }); 77668 } 77669}; 77670 77671/* eslint-disable no-underscore-dangle */ 77672var eventsEmitter = { 77673 on: function on(events, handler, priority) { 77674 var self = this; 77675 if (typeof handler !== 'function') return self; 77676 var method = priority ? 'unshift' : 'push'; 77677 events.split(' ').forEach(function (event) { 77678 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 77679 self.eventsListeners[event][method](handler); 77680 }); 77681 return self; 77682 }, 77683 once: function once(events, handler, priority) { 77684 var self = this; 77685 if (typeof handler !== 'function') return self; 77686 77687 function onceHandler() { 77688 self.off(events, onceHandler); 77689 77690 if (onceHandler.__emitterProxy) { 77691 delete onceHandler.__emitterProxy; 77692 } 77693 77694 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 77695 args[_key] = arguments[_key]; 77696 } 77697 77698 handler.apply(self, args); 77699 } 77700 77701 onceHandler.__emitterProxy = handler; 77702 return self.on(events, onceHandler, priority); 77703 }, 77704 onAny: function onAny(handler, priority) { 77705 var self = this; 77706 if (typeof handler !== 'function') return self; 77707 var method = priority ? 'unshift' : 'push'; 77708 77709 if (self.eventsAnyListeners.indexOf(handler) < 0) { 77710 self.eventsAnyListeners[method](handler); 77711 } 77712 77713 return self; 77714 }, 77715 offAny: function offAny(handler) { 77716 var self = this; 77717 if (!self.eventsAnyListeners) return self; 77718 var index = self.eventsAnyListeners.indexOf(handler); 77719 77720 if (index >= 0) { 77721 self.eventsAnyListeners.splice(index, 1); 77722 } 77723 77724 return self; 77725 }, 77726 off: function off(events, handler) { 77727 var self = this; 77728 if (!self.eventsListeners) return self; 77729 events.split(' ').forEach(function (event) { 77730 if (typeof handler === 'undefined') { 77731 self.eventsListeners[event] = []; 77732 } else if (self.eventsListeners[event]) { 77733 self.eventsListeners[event].forEach(function (eventHandler, index) { 77734 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 77735 self.eventsListeners[event].splice(index, 1); 77736 } 77737 }); 77738 } 77739 }); 77740 return self; 77741 }, 77742 emit: function emit() { 77743 var self = this; 77744 if (!self.eventsListeners) return self; 77745 var events; 77746 var data; 77747 var context; 77748 77749 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 77750 args[_key2] = arguments[_key2]; 77751 } 77752 77753 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 77754 events = args[0]; 77755 data = args.slice(1, args.length); 77756 context = self; 77757 } else { 77758 events = args[0].events; 77759 data = args[0].data; 77760 context = args[0].context || self; 77761 } 77762 77763 data.unshift(context); 77764 var eventsArray = Array.isArray(events) ? events : events.split(' '); 77765 eventsArray.forEach(function (event) { 77766 if (self.eventsListeners && self.eventsListeners[event]) { 77767 var handlers = []; 77768 self.eventsListeners[event].forEach(function (eventHandler) { 77769 handlers.push(eventHandler); 77770 }); 77771 handlers.forEach(function (eventHandler) { 77772 eventHandler.apply(context, data); 77773 }); 77774 } 77775 }); 77776 return self; 77777 } 77778}; 77779 77780function updateSize() { 77781 var swiper = this; 77782 var width; 77783 var height; 77784 var $el = swiper.$el; 77785 77786 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 77787 width = swiper.params.width; 77788 } else { 77789 width = $el[0].clientWidth; 77790 } 77791 77792 if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) { 77793 height = swiper.params.height; 77794 } else { 77795 height = $el[0].clientHeight; 77796 } 77797 77798 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 77799 return; 77800 } // Subtract paddings 77801 77802 77803 width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10); 77804 height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10); 77805 if (Number.isNaN(width)) width = 0; 77806 if (Number.isNaN(height)) height = 0; 77807 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 77808 width: width, 77809 height: height, 77810 size: swiper.isHorizontal() ? width : height 77811 }); 77812} 77813 77814function updateSlides() { 77815 var swiper = this; 77816 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); 77817 var params = swiper.params; 77818 var $wrapperEl = swiper.$wrapperEl, 77819 swiperSize = swiper.size, 77820 rtl = swiper.rtlTranslate, 77821 wrongRTL = swiper.wrongRTL; 77822 var isVirtual = swiper.virtual && params.virtual.enabled; 77823 var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 77824 var slides = $wrapperEl.children("." + swiper.params.slideClass); 77825 var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 77826 var snapGrid = []; 77827 var slidesGrid = []; 77828 var slidesSizesGrid = []; 77829 77830 function slidesForMargin(slideEl, slideIndex) { 77831 if (!params.cssMode) return true; 77832 77833 if (slideIndex === slides.length - 1) { 77834 return false; 77835 } 77836 77837 return true; 77838 } 77839 77840 var offsetBefore = params.slidesOffsetBefore; 77841 77842 if (typeof offsetBefore === 'function') { 77843 offsetBefore = params.slidesOffsetBefore.call(swiper); 77844 } 77845 77846 var offsetAfter = params.slidesOffsetAfter; 77847 77848 if (typeof offsetAfter === 'function') { 77849 offsetAfter = params.slidesOffsetAfter.call(swiper); 77850 } 77851 77852 var previousSnapGridLength = swiper.snapGrid.length; 77853 var previousSlidesGridLength = swiper.snapGrid.length; 77854 var spaceBetween = params.spaceBetween; 77855 var slidePosition = -offsetBefore; 77856 var prevSlideSize = 0; 77857 var index = 0; 77858 77859 if (typeof swiperSize === 'undefined') { 77860 return; 77861 } 77862 77863 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 77864 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 77865 } 77866 77867 swiper.virtualSize = -spaceBetween; // reset margins 77868 77869 if (rtl) slides.css({ 77870 marginLeft: '', 77871 marginTop: '' 77872 });else slides.css({ 77873 marginRight: '', 77874 marginBottom: '' 77875 }); 77876 var slidesNumberEvenToRows; 77877 77878 if (params.slidesPerColumn > 1) { 77879 if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) { 77880 slidesNumberEvenToRows = slidesLength; 77881 } else { 77882 slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn; 77883 } 77884 77885 if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') { 77886 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn); 77887 } 77888 } // Calc slides 77889 77890 77891 var slideSize; 77892 var slidesPerColumn = params.slidesPerColumn; 77893 var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn; 77894 var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn); 77895 77896 for (var i = 0; i < slidesLength; i += 1) { 77897 slideSize = 0; 77898 var slide = slides.eq(i); 77899 77900 if (params.slidesPerColumn > 1) { 77901 // Set slides order 77902 var newSlideOrderIndex = void 0; 77903 var column = void 0; 77904 var row = void 0; 77905 77906 if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) { 77907 var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn)); 77908 var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex; 77909 var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup); 77910 row = Math.floor(slideIndexInGroup / columnsInGroup); 77911 column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup; 77912 newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn; 77913 slide.css({ 77914 '-webkit-box-ordinal-group': newSlideOrderIndex, 77915 '-moz-box-ordinal-group': newSlideOrderIndex, 77916 '-ms-flex-order': newSlideOrderIndex, 77917 '-webkit-order': newSlideOrderIndex, 77918 order: newSlideOrderIndex 77919 }); 77920 } else if (params.slidesPerColumnFill === 'column') { 77921 column = Math.floor(i / slidesPerColumn); 77922 row = i - column * slidesPerColumn; 77923 77924 if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) { 77925 row += 1; 77926 77927 if (row >= slidesPerColumn) { 77928 row = 0; 77929 column += 1; 77930 } 77931 } 77932 } else { 77933 row = Math.floor(i / slidesPerRow); 77934 column = i - row * slidesPerRow; 77935 } 77936 77937 slide.css("margin-" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + "px"); 77938 } 77939 77940 if (slide.css('display') === 'none') continue; // eslint-disable-line 77941 77942 if (params.slidesPerView === 'auto') { 77943 var slideStyles = window.getComputedStyle(slide[0], null); 77944 var currentTransform = slide[0].style.transform; 77945 var currentWebKitTransform = slide[0].style.webkitTransform; 77946 77947 if (currentTransform) { 77948 slide[0].style.transform = 'none'; 77949 } 77950 77951 if (currentWebKitTransform) { 77952 slide[0].style.webkitTransform = 'none'; 77953 } 77954 77955 if (params.roundLengths) { 77956 slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true); 77957 } else { 77958 // eslint-disable-next-line 77959 if (swiper.isHorizontal()) { 77960 var width = parseFloat(slideStyles.getPropertyValue('width') || 0); 77961 var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0); 77962 var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0); 77963 var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0); 77964 var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0); 77965 var boxSizing = slideStyles.getPropertyValue('box-sizing'); 77966 77967 if (boxSizing && boxSizing === 'border-box') { 77968 slideSize = width + marginLeft + marginRight; 77969 } else { 77970 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight; 77971 } 77972 } else { 77973 var height = parseFloat(slideStyles.getPropertyValue('height') || 0); 77974 var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0); 77975 var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0); 77976 var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0); 77977 var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0); 77978 77979 var _boxSizing = slideStyles.getPropertyValue('box-sizing'); 77980 77981 if (_boxSizing && _boxSizing === 'border-box') { 77982 slideSize = height + marginTop + marginBottom; 77983 } else { 77984 slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom; 77985 } 77986 } 77987 } 77988 77989 if (currentTransform) { 77990 slide[0].style.transform = currentTransform; 77991 } 77992 77993 if (currentWebKitTransform) { 77994 slide[0].style.webkitTransform = currentWebKitTransform; 77995 } 77996 77997 if (params.roundLengths) slideSize = Math.floor(slideSize); 77998 } else { 77999 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 78000 if (params.roundLengths) slideSize = Math.floor(slideSize); 78001 78002 if (slides[i]) { 78003 if (swiper.isHorizontal()) { 78004 slides[i].style.width = slideSize + "px"; 78005 } else { 78006 slides[i].style.height = slideSize + "px"; 78007 } 78008 } 78009 } 78010 78011 if (slides[i]) { 78012 slides[i].swiperSlideSize = slideSize; 78013 } 78014 78015 slidesSizesGrid.push(slideSize); 78016 78017 if (params.centeredSlides) { 78018 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 78019 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 78020 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 78021 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 78022 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 78023 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 78024 slidesGrid.push(slidePosition); 78025 } else { 78026 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 78027 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 78028 slidesGrid.push(slidePosition); 78029 slidePosition = slidePosition + slideSize + spaceBetween; 78030 } 78031 78032 swiper.virtualSize += slideSize + spaceBetween; 78033 prevSlideSize = slideSize; 78034 index += 1; 78035 } 78036 78037 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 78038 var newSlidesGrid; 78039 78040 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 78041 $wrapperEl.css({ 78042 width: swiper.virtualSize + params.spaceBetween + "px" 78043 }); 78044 } 78045 78046 if (params.setWrapperSize) { 78047 if (swiper.isHorizontal()) $wrapperEl.css({ 78048 width: swiper.virtualSize + params.spaceBetween + "px" 78049 });else $wrapperEl.css({ 78050 height: swiper.virtualSize + params.spaceBetween + "px" 78051 }); 78052 } 78053 78054 if (params.slidesPerColumn > 1) { 78055 swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows; 78056 swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween; 78057 if (swiper.isHorizontal()) $wrapperEl.css({ 78058 width: swiper.virtualSize + params.spaceBetween + "px" 78059 });else $wrapperEl.css({ 78060 height: swiper.virtualSize + params.spaceBetween + "px" 78061 }); 78062 78063 if (params.centeredSlides) { 78064 newSlidesGrid = []; 78065 78066 for (var _i = 0; _i < snapGrid.length; _i += 1) { 78067 var slidesGridItem = snapGrid[_i]; 78068 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 78069 if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 78070 } 78071 78072 snapGrid = newSlidesGrid; 78073 } 78074 } // Remove last grid elements depending on width 78075 78076 78077 if (!params.centeredSlides) { 78078 newSlidesGrid = []; 78079 78080 for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) { 78081 var _slidesGridItem = snapGrid[_i2]; 78082 if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem); 78083 78084 if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) { 78085 newSlidesGrid.push(_slidesGridItem); 78086 } 78087 } 78088 78089 snapGrid = newSlidesGrid; 78090 78091 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 78092 snapGrid.push(swiper.virtualSize - swiperSize); 78093 } 78094 } 78095 78096 if (snapGrid.length === 0) snapGrid = [0]; 78097 78098 if (params.spaceBetween !== 0) { 78099 if (swiper.isHorizontal()) { 78100 if (rtl) slides.filter(slidesForMargin).css({ 78101 marginLeft: spaceBetween + "px" 78102 });else slides.filter(slidesForMargin).css({ 78103 marginRight: spaceBetween + "px" 78104 }); 78105 } else slides.filter(slidesForMargin).css({ 78106 marginBottom: spaceBetween + "px" 78107 }); 78108 } 78109 78110 if (params.centeredSlides && params.centeredSlidesBounds) { 78111 var allSlidesSize = 0; 78112 slidesSizesGrid.forEach(function (slideSizeValue) { 78113 allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 78114 }); 78115 allSlidesSize -= params.spaceBetween; 78116 var maxSnap = allSlidesSize - swiperSize; 78117 snapGrid = snapGrid.map(function (snap) { 78118 if (snap < 0) return -offsetBefore; 78119 if (snap > maxSnap) return maxSnap + offsetAfter; 78120 return snap; 78121 }); 78122 } 78123 78124 if (params.centerInsufficientSlides) { 78125 var _allSlidesSize = 0; 78126 slidesSizesGrid.forEach(function (slideSizeValue) { 78127 _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 78128 }); 78129 _allSlidesSize -= params.spaceBetween; 78130 78131 if (_allSlidesSize < swiperSize) { 78132 var allSlidesOffset = (swiperSize - _allSlidesSize) / 2; 78133 snapGrid.forEach(function (snap, snapIndex) { 78134 snapGrid[snapIndex] = snap - allSlidesOffset; 78135 }); 78136 slidesGrid.forEach(function (snap, snapIndex) { 78137 slidesGrid[snapIndex] = snap + allSlidesOffset; 78138 }); 78139 } 78140 } 78141 78142 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 78143 slides: slides, 78144 snapGrid: snapGrid, 78145 slidesGrid: slidesGrid, 78146 slidesSizesGrid: slidesSizesGrid 78147 }); 78148 78149 if (slidesLength !== previousSlidesLength) { 78150 swiper.emit('slidesLengthChange'); 78151 } 78152 78153 if (snapGrid.length !== previousSnapGridLength) { 78154 if (swiper.params.watchOverflow) swiper.checkOverflow(); 78155 swiper.emit('snapGridLengthChange'); 78156 } 78157 78158 if (slidesGrid.length !== previousSlidesGridLength) { 78159 swiper.emit('slidesGridLengthChange'); 78160 } 78161 78162 if (params.watchSlidesProgress || params.watchSlidesVisibility) { 78163 swiper.updateSlidesOffset(); 78164 } 78165} 78166 78167function updateAutoHeight(speed) { 78168 var swiper = this; 78169 var activeSlides = []; 78170 var newHeight = 0; 78171 var i; 78172 78173 if (typeof speed === 'number') { 78174 swiper.setTransition(speed); 78175 } else if (speed === true) { 78176 swiper.setTransition(swiper.params.speed); 78177 } // Find slides currently in view 78178 78179 78180 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 78181 if (swiper.params.centeredSlides) { 78182 swiper.visibleSlides.each(function (slide) { 78183 activeSlides.push(slide); 78184 }); 78185 } else { 78186 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 78187 var index = swiper.activeIndex + i; 78188 if (index > swiper.slides.length) break; 78189 activeSlides.push(swiper.slides.eq(index)[0]); 78190 } 78191 } 78192 } else { 78193 activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]); 78194 } // Find new height from highest slide in view 78195 78196 78197 for (i = 0; i < activeSlides.length; i += 1) { 78198 if (typeof activeSlides[i] !== 'undefined') { 78199 var height = activeSlides[i].offsetHeight; 78200 newHeight = height > newHeight ? height : newHeight; 78201 } 78202 } // Update Height 78203 78204 78205 if (newHeight) swiper.$wrapperEl.css('height', newHeight + "px"); 78206} 78207 78208function updateSlidesOffset() { 78209 var swiper = this; 78210 var slides = swiper.slides; 78211 78212 for (var i = 0; i < slides.length; i += 1) { 78213 slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; 78214 } 78215} 78216 78217function updateSlidesProgress(translate) { 78218 if (translate === void 0) { 78219 translate = this && this.translate || 0; 78220 } 78221 78222 var swiper = this; 78223 var params = swiper.params; 78224 var slides = swiper.slides, 78225 rtl = swiper.rtlTranslate; 78226 if (slides.length === 0) return; 78227 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 78228 var offsetCenter = -translate; 78229 if (rtl) offsetCenter = translate; // Visible Slides 78230 78231 slides.removeClass(params.slideVisibleClass); 78232 swiper.visibleSlidesIndexes = []; 78233 swiper.visibleSlides = []; 78234 78235 for (var i = 0; i < slides.length; i += 1) { 78236 var slide = slides[i]; 78237 var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween); 78238 78239 if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) { 78240 var slideBefore = -(offsetCenter - slide.swiperSlideOffset); 78241 var slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 78242 var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 78243 78244 if (isVisible) { 78245 swiper.visibleSlides.push(slide); 78246 swiper.visibleSlidesIndexes.push(i); 78247 slides.eq(i).addClass(params.slideVisibleClass); 78248 } 78249 } 78250 78251 slide.progress = rtl ? -slideProgress : slideProgress; 78252 } 78253 78254 swiper.visibleSlides = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.visibleSlides); 78255} 78256 78257function updateProgress(translate) { 78258 var swiper = this; 78259 78260 if (typeof translate === 'undefined') { 78261 var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line 78262 78263 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 78264 } 78265 78266 var params = swiper.params; 78267 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 78268 var progress = swiper.progress, 78269 isBeginning = swiper.isBeginning, 78270 isEnd = swiper.isEnd; 78271 var wasBeginning = isBeginning; 78272 var wasEnd = isEnd; 78273 78274 if (translatesDiff === 0) { 78275 progress = 0; 78276 isBeginning = true; 78277 isEnd = true; 78278 } else { 78279 progress = (translate - swiper.minTranslate()) / translatesDiff; 78280 isBeginning = progress <= 0; 78281 isEnd = progress >= 1; 78282 } 78283 78284 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 78285 progress: progress, 78286 isBeginning: isBeginning, 78287 isEnd: isEnd 78288 }); 78289 if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 78290 78291 if (isBeginning && !wasBeginning) { 78292 swiper.emit('reachBeginning toEdge'); 78293 } 78294 78295 if (isEnd && !wasEnd) { 78296 swiper.emit('reachEnd toEdge'); 78297 } 78298 78299 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 78300 swiper.emit('fromEdge'); 78301 } 78302 78303 swiper.emit('progress', progress); 78304} 78305 78306function updateSlidesClasses() { 78307 var swiper = this; 78308 var slides = swiper.slides, 78309 params = swiper.params, 78310 $wrapperEl = swiper.$wrapperEl, 78311 activeIndex = swiper.activeIndex, 78312 realIndex = swiper.realIndex; 78313 var isVirtual = swiper.virtual && params.virtual.enabled; 78314 slides.removeClass(params.slideActiveClass + " " + params.slideNextClass + " " + params.slidePrevClass + " " + params.slideDuplicateActiveClass + " " + params.slideDuplicateNextClass + " " + params.slideDuplicatePrevClass); 78315 var activeSlide; 78316 78317 if (isVirtual) { 78318 activeSlide = swiper.$wrapperEl.find("." + params.slideClass + "[data-swiper-slide-index=\"" + activeIndex + "\"]"); 78319 } else { 78320 activeSlide = slides.eq(activeIndex); 78321 } // Active classes 78322 78323 78324 activeSlide.addClass(params.slideActiveClass); 78325 78326 if (params.loop) { 78327 // Duplicate to all looped slides 78328 if (activeSlide.hasClass(params.slideDuplicateClass)) { 78329 $wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ")[data-swiper-slide-index=\"" + realIndex + "\"]").addClass(params.slideDuplicateActiveClass); 78330 } else { 78331 $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + "[data-swiper-slide-index=\"" + realIndex + "\"]").addClass(params.slideDuplicateActiveClass); 78332 } 78333 } // Next Slide 78334 78335 78336 var nextSlide = activeSlide.nextAll("." + params.slideClass).eq(0).addClass(params.slideNextClass); 78337 78338 if (params.loop && nextSlide.length === 0) { 78339 nextSlide = slides.eq(0); 78340 nextSlide.addClass(params.slideNextClass); 78341 } // Prev Slide 78342 78343 78344 var prevSlide = activeSlide.prevAll("." + params.slideClass).eq(0).addClass(params.slidePrevClass); 78345 78346 if (params.loop && prevSlide.length === 0) { 78347 prevSlide = slides.eq(-1); 78348 prevSlide.addClass(params.slidePrevClass); 78349 } 78350 78351 if (params.loop) { 78352 // Duplicate to all looped slides 78353 if (nextSlide.hasClass(params.slideDuplicateClass)) { 78354 $wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ")[data-swiper-slide-index=\"" + nextSlide.attr('data-swiper-slide-index') + "\"]").addClass(params.slideDuplicateNextClass); 78355 } else { 78356 $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + "[data-swiper-slide-index=\"" + nextSlide.attr('data-swiper-slide-index') + "\"]").addClass(params.slideDuplicateNextClass); 78357 } 78358 78359 if (prevSlide.hasClass(params.slideDuplicateClass)) { 78360 $wrapperEl.children("." + params.slideClass + ":not(." + params.slideDuplicateClass + ")[data-swiper-slide-index=\"" + prevSlide.attr('data-swiper-slide-index') + "\"]").addClass(params.slideDuplicatePrevClass); 78361 } else { 78362 $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + "[data-swiper-slide-index=\"" + prevSlide.attr('data-swiper-slide-index') + "\"]").addClass(params.slideDuplicatePrevClass); 78363 } 78364 } 78365 78366 swiper.emitSlidesClasses(); 78367} 78368 78369function updateActiveIndex(newActiveIndex) { 78370 var swiper = this; 78371 var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 78372 var slidesGrid = swiper.slidesGrid, 78373 snapGrid = swiper.snapGrid, 78374 params = swiper.params, 78375 previousIndex = swiper.activeIndex, 78376 previousRealIndex = swiper.realIndex, 78377 previousSnapIndex = swiper.snapIndex; 78378 var activeIndex = newActiveIndex; 78379 var snapIndex; 78380 78381 if (typeof activeIndex === 'undefined') { 78382 for (var i = 0; i < slidesGrid.length; i += 1) { 78383 if (typeof slidesGrid[i + 1] !== 'undefined') { 78384 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 78385 activeIndex = i; 78386 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 78387 activeIndex = i + 1; 78388 } 78389 } else if (translate >= slidesGrid[i]) { 78390 activeIndex = i; 78391 } 78392 } // Normalize slideIndex 78393 78394 78395 if (params.normalizeSlideIndex) { 78396 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 78397 } 78398 } 78399 78400 if (snapGrid.indexOf(translate) >= 0) { 78401 snapIndex = snapGrid.indexOf(translate); 78402 } else { 78403 var skip = Math.min(params.slidesPerGroupSkip, activeIndex); 78404 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 78405 } 78406 78407 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 78408 78409 if (activeIndex === previousIndex) { 78410 if (snapIndex !== previousSnapIndex) { 78411 swiper.snapIndex = snapIndex; 78412 swiper.emit('snapIndexChange'); 78413 } 78414 78415 return; 78416 } // Get real index 78417 78418 78419 var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); 78420 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 78421 snapIndex: snapIndex, 78422 realIndex: realIndex, 78423 previousIndex: previousIndex, 78424 activeIndex: activeIndex 78425 }); 78426 swiper.emit('activeIndexChange'); 78427 swiper.emit('snapIndexChange'); 78428 78429 if (previousRealIndex !== realIndex) { 78430 swiper.emit('realIndexChange'); 78431 } 78432 78433 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 78434 swiper.emit('slideChange'); 78435 } 78436} 78437 78438function updateClickedSlide(e) { 78439 var swiper = this; 78440 var params = swiper.params; 78441 var slide = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target).closest("." + params.slideClass)[0]; 78442 var slideFound = false; 78443 78444 if (slide) { 78445 for (var i = 0; i < swiper.slides.length; i += 1) { 78446 if (swiper.slides[i] === slide) slideFound = true; 78447 } 78448 } 78449 78450 if (slide && slideFound) { 78451 swiper.clickedSlide = slide; 78452 78453 if (swiper.virtual && swiper.params.virtual.enabled) { 78454 swiper.clickedIndex = parseInt(Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slide).attr('data-swiper-slide-index'), 10); 78455 } else { 78456 swiper.clickedIndex = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(slide).index(); 78457 } 78458 } else { 78459 swiper.clickedSlide = undefined; 78460 swiper.clickedIndex = undefined; 78461 return; 78462 } 78463 78464 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 78465 swiper.slideToClickedSlide(); 78466 } 78467} 78468 78469var update = { 78470 updateSize: updateSize, 78471 updateSlides: updateSlides, 78472 updateAutoHeight: updateAutoHeight, 78473 updateSlidesOffset: updateSlidesOffset, 78474 updateSlidesProgress: updateSlidesProgress, 78475 updateProgress: updateProgress, 78476 updateSlidesClasses: updateSlidesClasses, 78477 updateActiveIndex: updateActiveIndex, 78478 updateClickedSlide: updateClickedSlide 78479}; 78480 78481function getSwiperTranslate(axis) { 78482 if (axis === void 0) { 78483 axis = this.isHorizontal() ? 'x' : 'y'; 78484 } 78485 78486 var swiper = this; 78487 var params = swiper.params, 78488 rtl = swiper.rtlTranslate, 78489 translate = swiper.translate, 78490 $wrapperEl = swiper.$wrapperEl; 78491 78492 if (params.virtualTranslate) { 78493 return rtl ? -translate : translate; 78494 } 78495 78496 if (params.cssMode) { 78497 return translate; 78498 } 78499 78500 var currentTranslate = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["getTranslate"])($wrapperEl[0], axis); 78501 if (rtl) currentTranslate = -currentTranslate; 78502 return currentTranslate || 0; 78503} 78504 78505function setTranslate(translate, byController) { 78506 var swiper = this; 78507 var rtl = swiper.rtlTranslate, 78508 params = swiper.params, 78509 $wrapperEl = swiper.$wrapperEl, 78510 wrapperEl = swiper.wrapperEl, 78511 progress = swiper.progress; 78512 var x = 0; 78513 var y = 0; 78514 var z = 0; 78515 78516 if (swiper.isHorizontal()) { 78517 x = rtl ? -translate : translate; 78518 } else { 78519 y = translate; 78520 } 78521 78522 if (params.roundLengths) { 78523 x = Math.floor(x); 78524 y = Math.floor(y); 78525 } 78526 78527 if (params.cssMode) { 78528 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 78529 } else if (!params.virtualTranslate) { 78530 $wrapperEl.transform("translate3d(" + x + "px, " + y + "px, " + z + "px)"); 78531 } 78532 78533 swiper.previousTranslate = swiper.translate; 78534 swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress 78535 78536 var newProgress; 78537 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 78538 78539 if (translatesDiff === 0) { 78540 newProgress = 0; 78541 } else { 78542 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 78543 } 78544 78545 if (newProgress !== progress) { 78546 swiper.updateProgress(translate); 78547 } 78548 78549 swiper.emit('setTranslate', swiper.translate, byController); 78550} 78551 78552function minTranslate() { 78553 return -this.snapGrid[0]; 78554} 78555 78556function maxTranslate() { 78557 return -this.snapGrid[this.snapGrid.length - 1]; 78558} 78559 78560function translateTo(translate, speed, runCallbacks, translateBounds, internal) { 78561 if (translate === void 0) { 78562 translate = 0; 78563 } 78564 78565 if (speed === void 0) { 78566 speed = this.params.speed; 78567 } 78568 78569 if (runCallbacks === void 0) { 78570 runCallbacks = true; 78571 } 78572 78573 if (translateBounds === void 0) { 78574 translateBounds = true; 78575 } 78576 78577 var swiper = this; 78578 var params = swiper.params, 78579 wrapperEl = swiper.wrapperEl; 78580 78581 if (swiper.animating && params.preventInteractionOnTransition) { 78582 return false; 78583 } 78584 78585 var minTranslate = swiper.minTranslate(); 78586 var maxTranslate = swiper.maxTranslate(); 78587 var newTranslate; 78588 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress 78589 78590 swiper.updateProgress(newTranslate); 78591 78592 if (params.cssMode) { 78593 var isH = swiper.isHorizontal(); 78594 78595 if (speed === 0) { 78596 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 78597 } else { 78598 // eslint-disable-next-line 78599 if (wrapperEl.scrollTo) { 78600 var _wrapperEl$scrollTo; 78601 78602 wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo)); 78603 } else { 78604 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 78605 } 78606 } 78607 78608 return true; 78609 } 78610 78611 if (speed === 0) { 78612 swiper.setTransition(0); 78613 swiper.setTranslate(newTranslate); 78614 78615 if (runCallbacks) { 78616 swiper.emit('beforeTransitionStart', speed, internal); 78617 swiper.emit('transitionEnd'); 78618 } 78619 } else { 78620 swiper.setTransition(speed); 78621 swiper.setTranslate(newTranslate); 78622 78623 if (runCallbacks) { 78624 swiper.emit('beforeTransitionStart', speed, internal); 78625 swiper.emit('transitionStart'); 78626 } 78627 78628 if (!swiper.animating) { 78629 swiper.animating = true; 78630 78631 if (!swiper.onTranslateToWrapperTransitionEnd) { 78632 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 78633 if (!swiper || swiper.destroyed) return; 78634 if (e.target !== this) return; 78635 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 78636 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); 78637 swiper.onTranslateToWrapperTransitionEnd = null; 78638 delete swiper.onTranslateToWrapperTransitionEnd; 78639 78640 if (runCallbacks) { 78641 swiper.emit('transitionEnd'); 78642 } 78643 }; 78644 } 78645 78646 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 78647 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); 78648 } 78649 } 78650 78651 return true; 78652} 78653 78654var translate = { 78655 getTranslate: getSwiperTranslate, 78656 setTranslate: setTranslate, 78657 minTranslate: minTranslate, 78658 maxTranslate: maxTranslate, 78659 translateTo: translateTo 78660}; 78661 78662function setTransition(duration, byController) { 78663 var swiper = this; 78664 78665 if (!swiper.params.cssMode) { 78666 swiper.$wrapperEl.transition(duration); 78667 } 78668 78669 swiper.emit('setTransition', duration, byController); 78670} 78671 78672function transitionStart(runCallbacks, direction) { 78673 if (runCallbacks === void 0) { 78674 runCallbacks = true; 78675 } 78676 78677 var swiper = this; 78678 var activeIndex = swiper.activeIndex, 78679 params = swiper.params, 78680 previousIndex = swiper.previousIndex; 78681 if (params.cssMode) return; 78682 78683 if (params.autoHeight) { 78684 swiper.updateAutoHeight(); 78685 } 78686 78687 var dir = direction; 78688 78689 if (!dir) { 78690 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 78691 } 78692 78693 swiper.emit('transitionStart'); 78694 78695 if (runCallbacks && activeIndex !== previousIndex) { 78696 if (dir === 'reset') { 78697 swiper.emit('slideResetTransitionStart'); 78698 return; 78699 } 78700 78701 swiper.emit('slideChangeTransitionStart'); 78702 78703 if (dir === 'next') { 78704 swiper.emit('slideNextTransitionStart'); 78705 } else { 78706 swiper.emit('slidePrevTransitionStart'); 78707 } 78708 } 78709} 78710 78711function transitionEnd(runCallbacks, direction) { 78712 if (runCallbacks === void 0) { 78713 runCallbacks = true; 78714 } 78715 78716 var swiper = this; 78717 var activeIndex = swiper.activeIndex, 78718 previousIndex = swiper.previousIndex, 78719 params = swiper.params; 78720 swiper.animating = false; 78721 if (params.cssMode) return; 78722 swiper.setTransition(0); 78723 var dir = direction; 78724 78725 if (!dir) { 78726 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 78727 } 78728 78729 swiper.emit('transitionEnd'); 78730 78731 if (runCallbacks && activeIndex !== previousIndex) { 78732 if (dir === 'reset') { 78733 swiper.emit('slideResetTransitionEnd'); 78734 return; 78735 } 78736 78737 swiper.emit('slideChangeTransitionEnd'); 78738 78739 if (dir === 'next') { 78740 swiper.emit('slideNextTransitionEnd'); 78741 } else { 78742 swiper.emit('slidePrevTransitionEnd'); 78743 } 78744 } 78745} 78746 78747var transition = { 78748 setTransition: setTransition, 78749 transitionStart: transitionStart, 78750 transitionEnd: transitionEnd 78751}; 78752 78753function slideTo(index, speed, runCallbacks, internal) { 78754 if (index === void 0) { 78755 index = 0; 78756 } 78757 78758 if (speed === void 0) { 78759 speed = this.params.speed; 78760 } 78761 78762 if (runCallbacks === void 0) { 78763 runCallbacks = true; 78764 } 78765 78766 var swiper = this; 78767 var slideIndex = index; 78768 if (slideIndex < 0) slideIndex = 0; 78769 var params = swiper.params, 78770 snapGrid = swiper.snapGrid, 78771 slidesGrid = swiper.slidesGrid, 78772 previousIndex = swiper.previousIndex, 78773 activeIndex = swiper.activeIndex, 78774 rtl = swiper.rtlTranslate, 78775 wrapperEl = swiper.wrapperEl; 78776 78777 if (swiper.animating && params.preventInteractionOnTransition) { 78778 return false; 78779 } 78780 78781 var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 78782 var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 78783 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 78784 78785 if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { 78786 swiper.emit('beforeSlideChangeStart'); 78787 } 78788 78789 var translate = -snapGrid[snapIndex]; // Update progress 78790 78791 swiper.updateProgress(translate); // Normalize slideIndex 78792 78793 if (params.normalizeSlideIndex) { 78794 for (var i = 0; i < slidesGrid.length; i += 1) { 78795 if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) { 78796 slideIndex = i; 78797 } 78798 } 78799 } // Directions locks 78800 78801 78802 if (swiper.initialized && slideIndex !== activeIndex) { 78803 if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { 78804 return false; 78805 } 78806 78807 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 78808 if ((activeIndex || 0) !== slideIndex) return false; 78809 } 78810 } 78811 78812 var direction; 78813 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index 78814 78815 if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { 78816 swiper.updateActiveIndex(slideIndex); // Update Height 78817 78818 if (params.autoHeight) { 78819 swiper.updateAutoHeight(); 78820 } 78821 78822 swiper.updateSlidesClasses(); 78823 78824 if (params.effect !== 'slide') { 78825 swiper.setTranslate(translate); 78826 } 78827 78828 if (direction !== 'reset') { 78829 swiper.transitionStart(runCallbacks, direction); 78830 swiper.transitionEnd(runCallbacks, direction); 78831 } 78832 78833 return false; 78834 } 78835 78836 if (params.cssMode) { 78837 var isH = swiper.isHorizontal(); 78838 var t = -translate; 78839 78840 if (rtl) { 78841 t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t; 78842 } 78843 78844 if (speed === 0) { 78845 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 78846 } else { 78847 // eslint-disable-next-line 78848 if (wrapperEl.scrollTo) { 78849 var _wrapperEl$scrollTo; 78850 78851 wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo)); 78852 } else { 78853 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 78854 } 78855 } 78856 78857 return true; 78858 } 78859 78860 if (speed === 0) { 78861 swiper.setTransition(0); 78862 swiper.setTranslate(translate); 78863 swiper.updateActiveIndex(slideIndex); 78864 swiper.updateSlidesClasses(); 78865 swiper.emit('beforeTransitionStart', speed, internal); 78866 swiper.transitionStart(runCallbacks, direction); 78867 swiper.transitionEnd(runCallbacks, direction); 78868 } else { 78869 swiper.setTransition(speed); 78870 swiper.setTranslate(translate); 78871 swiper.updateActiveIndex(slideIndex); 78872 swiper.updateSlidesClasses(); 78873 swiper.emit('beforeTransitionStart', speed, internal); 78874 swiper.transitionStart(runCallbacks, direction); 78875 78876 if (!swiper.animating) { 78877 swiper.animating = true; 78878 78879 if (!swiper.onSlideToWrapperTransitionEnd) { 78880 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 78881 if (!swiper || swiper.destroyed) return; 78882 if (e.target !== this) return; 78883 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 78884 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 78885 swiper.onSlideToWrapperTransitionEnd = null; 78886 delete swiper.onSlideToWrapperTransitionEnd; 78887 swiper.transitionEnd(runCallbacks, direction); 78888 }; 78889 } 78890 78891 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 78892 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 78893 } 78894 } 78895 78896 return true; 78897} 78898 78899function slideToLoop(index, speed, runCallbacks, internal) { 78900 if (index === void 0) { 78901 index = 0; 78902 } 78903 78904 if (speed === void 0) { 78905 speed = this.params.speed; 78906 } 78907 78908 if (runCallbacks === void 0) { 78909 runCallbacks = true; 78910 } 78911 78912 var swiper = this; 78913 var newIndex = index; 78914 78915 if (swiper.params.loop) { 78916 newIndex += swiper.loopedSlides; 78917 } 78918 78919 return swiper.slideTo(newIndex, speed, runCallbacks, internal); 78920} 78921 78922/* eslint no-unused-vars: "off" */ 78923function slideNext(speed, runCallbacks, internal) { 78924 if (speed === void 0) { 78925 speed = this.params.speed; 78926 } 78927 78928 if (runCallbacks === void 0) { 78929 runCallbacks = true; 78930 } 78931 78932 var swiper = this; 78933 var params = swiper.params, 78934 animating = swiper.animating; 78935 var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup; 78936 78937 if (params.loop) { 78938 if (animating && params.loopPreventsSlide) return false; 78939 swiper.loopFix(); // eslint-disable-next-line 78940 78941 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 78942 } 78943 78944 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 78945} 78946 78947/* eslint no-unused-vars: "off" */ 78948function slidePrev(speed, runCallbacks, internal) { 78949 if (speed === void 0) { 78950 speed = this.params.speed; 78951 } 78952 78953 if (runCallbacks === void 0) { 78954 runCallbacks = true; 78955 } 78956 78957 var swiper = this; 78958 var params = swiper.params, 78959 animating = swiper.animating, 78960 snapGrid = swiper.snapGrid, 78961 slidesGrid = swiper.slidesGrid, 78962 rtlTranslate = swiper.rtlTranslate; 78963 78964 if (params.loop) { 78965 if (animating && params.loopPreventsSlide) return false; 78966 swiper.loopFix(); // eslint-disable-next-line 78967 78968 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 78969 } 78970 78971 var translate = rtlTranslate ? swiper.translate : -swiper.translate; 78972 78973 function normalize(val) { 78974 if (val < 0) return -Math.floor(Math.abs(val)); 78975 return Math.floor(val); 78976 } 78977 78978 var normalizedTranslate = normalize(translate); 78979 var normalizedSnapGrid = snapGrid.map(function (val) { 78980 return normalize(val); 78981 }); 78982 var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)]; 78983 var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 78984 78985 if (typeof prevSnap === 'undefined' && params.cssMode) { 78986 snapGrid.forEach(function (snap) { 78987 if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap; 78988 }); 78989 } 78990 78991 var prevIndex; 78992 78993 if (typeof prevSnap !== 'undefined') { 78994 prevIndex = slidesGrid.indexOf(prevSnap); 78995 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 78996 } 78997 78998 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 78999} 79000 79001/* eslint no-unused-vars: "off" */ 79002function slideReset(speed, runCallbacks, internal) { 79003 if (speed === void 0) { 79004 speed = this.params.speed; 79005 } 79006 79007 if (runCallbacks === void 0) { 79008 runCallbacks = true; 79009 } 79010 79011 var swiper = this; 79012 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 79013} 79014 79015/* eslint no-unused-vars: "off" */ 79016function slideToClosest(speed, runCallbacks, internal, threshold) { 79017 if (speed === void 0) { 79018 speed = this.params.speed; 79019 } 79020 79021 if (runCallbacks === void 0) { 79022 runCallbacks = true; 79023 } 79024 79025 if (threshold === void 0) { 79026 threshold = 0.5; 79027 } 79028 79029 var swiper = this; 79030 var index = swiper.activeIndex; 79031 var skip = Math.min(swiper.params.slidesPerGroupSkip, index); 79032 var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 79033 var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 79034 79035 if (translate >= swiper.snapGrid[snapIndex]) { 79036 // The current translate is on or after the current snap index, so the choice 79037 // is between the current index and the one after it. 79038 var currentSnap = swiper.snapGrid[snapIndex]; 79039 var nextSnap = swiper.snapGrid[snapIndex + 1]; 79040 79041 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 79042 index += swiper.params.slidesPerGroup; 79043 } 79044 } else { 79045 // The current translate is before the current snap index, so the choice 79046 // is between the current index and the one before it. 79047 var prevSnap = swiper.snapGrid[snapIndex - 1]; 79048 var _currentSnap = swiper.snapGrid[snapIndex]; 79049 79050 if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) { 79051 index -= swiper.params.slidesPerGroup; 79052 } 79053 } 79054 79055 index = Math.max(index, 0); 79056 index = Math.min(index, swiper.slidesGrid.length - 1); 79057 return swiper.slideTo(index, speed, runCallbacks, internal); 79058} 79059 79060function slideToClickedSlide() { 79061 var swiper = this; 79062 var params = swiper.params, 79063 $wrapperEl = swiper.$wrapperEl; 79064 var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 79065 var slideToIndex = swiper.clickedIndex; 79066 var realIndex; 79067 79068 if (params.loop) { 79069 if (swiper.animating) return; 79070 realIndex = parseInt(Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); 79071 79072 if (params.centeredSlides) { 79073 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 79074 swiper.loopFix(); 79075 slideToIndex = $wrapperEl.children("." + params.slideClass + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + params.slideDuplicateClass + ")").eq(0).index(); 79076 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["nextTick"])(function () { 79077 swiper.slideTo(slideToIndex); 79078 }); 79079 } else { 79080 swiper.slideTo(slideToIndex); 79081 } 79082 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 79083 swiper.loopFix(); 79084 slideToIndex = $wrapperEl.children("." + params.slideClass + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + params.slideDuplicateClass + ")").eq(0).index(); 79085 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["nextTick"])(function () { 79086 swiper.slideTo(slideToIndex); 79087 }); 79088 } else { 79089 swiper.slideTo(slideToIndex); 79090 } 79091 } else { 79092 swiper.slideTo(slideToIndex); 79093 } 79094} 79095 79096var slide = { 79097 slideTo: slideTo, 79098 slideToLoop: slideToLoop, 79099 slideNext: slideNext, 79100 slidePrev: slidePrev, 79101 slideReset: slideReset, 79102 slideToClosest: slideToClosest, 79103 slideToClickedSlide: slideToClickedSlide 79104}; 79105 79106function loopCreate() { 79107 var swiper = this; 79108 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getDocument"])(); 79109 var params = swiper.params, 79110 $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides 79111 79112 $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass).remove(); 79113 var slides = $wrapperEl.children("." + params.slideClass); 79114 79115 if (params.loopFillGroupWithBlank) { 79116 var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup; 79117 79118 if (blankSlidesNum !== params.slidesPerGroup) { 79119 for (var i = 0; i < blankSlidesNum; i += 1) { 79120 var blankNode = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(document.createElement('div')).addClass(params.slideClass + " " + params.slideBlankClass); 79121 $wrapperEl.append(blankNode); 79122 } 79123 79124 slides = $wrapperEl.children("." + params.slideClass); 79125 } 79126 } 79127 79128 if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length; 79129 swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10)); 79130 swiper.loopedSlides += params.loopAdditionalSlides; 79131 79132 if (swiper.loopedSlides > slides.length) { 79133 swiper.loopedSlides = slides.length; 79134 } 79135 79136 var prependSlides = []; 79137 var appendSlides = []; 79138 slides.each(function (el, index) { 79139 var slide = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(el); 79140 79141 if (index < swiper.loopedSlides) { 79142 appendSlides.push(el); 79143 } 79144 79145 if (index < slides.length && index >= slides.length - swiper.loopedSlides) { 79146 prependSlides.push(el); 79147 } 79148 79149 slide.attr('data-swiper-slide-index', index); 79150 }); 79151 79152 for (var _i = 0; _i < appendSlides.length; _i += 1) { 79153 $wrapperEl.append(Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass)); 79154 } 79155 79156 for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) { 79157 $wrapperEl.prepend(Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass)); 79158 } 79159} 79160 79161function loopFix() { 79162 var swiper = this; 79163 swiper.emit('beforeLoopFix'); 79164 var activeIndex = swiper.activeIndex, 79165 slides = swiper.slides, 79166 loopedSlides = swiper.loopedSlides, 79167 allowSlidePrev = swiper.allowSlidePrev, 79168 allowSlideNext = swiper.allowSlideNext, 79169 snapGrid = swiper.snapGrid, 79170 rtl = swiper.rtlTranslate; 79171 var newIndex; 79172 swiper.allowSlidePrev = true; 79173 swiper.allowSlideNext = true; 79174 var snapTranslate = -snapGrid[activeIndex]; 79175 var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding 79176 79177 if (activeIndex < loopedSlides) { 79178 newIndex = slides.length - loopedSlides * 3 + activeIndex; 79179 newIndex += loopedSlides; 79180 var slideChanged = swiper.slideTo(newIndex, 0, false, true); 79181 79182 if (slideChanged && diff !== 0) { 79183 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 79184 } 79185 } else if (activeIndex >= slides.length - loopedSlides) { 79186 // Fix For Positive Oversliding 79187 newIndex = -slides.length + activeIndex + loopedSlides; 79188 newIndex += loopedSlides; 79189 79190 var _slideChanged = swiper.slideTo(newIndex, 0, false, true); 79191 79192 if (_slideChanged && diff !== 0) { 79193 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 79194 } 79195 } 79196 79197 swiper.allowSlidePrev = allowSlidePrev; 79198 swiper.allowSlideNext = allowSlideNext; 79199 swiper.emit('loopFix'); 79200} 79201 79202function loopDestroy() { 79203 var swiper = this; 79204 var $wrapperEl = swiper.$wrapperEl, 79205 params = swiper.params, 79206 slides = swiper.slides; 79207 $wrapperEl.children("." + params.slideClass + "." + params.slideDuplicateClass + ",." + params.slideClass + "." + params.slideBlankClass).remove(); 79208 slides.removeAttr('data-swiper-slide-index'); 79209} 79210 79211var loop = { 79212 loopCreate: loopCreate, 79213 loopFix: loopFix, 79214 loopDestroy: loopDestroy 79215}; 79216 79217function setGrabCursor(moving) { 79218 var swiper = this; 79219 if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 79220 var el = swiper.el; 79221 el.style.cursor = 'move'; 79222 el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; 79223 el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; 79224 el.style.cursor = moving ? 'grabbing' : 'grab'; 79225} 79226 79227function unsetGrabCursor() { 79228 var swiper = this; 79229 79230 if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 79231 return; 79232 } 79233 79234 swiper.el.style.cursor = ''; 79235} 79236 79237var grabCursor = { 79238 setGrabCursor: setGrabCursor, 79239 unsetGrabCursor: unsetGrabCursor 79240}; 79241 79242function appendSlide(slides) { 79243 var swiper = this; 79244 var $wrapperEl = swiper.$wrapperEl, 79245 params = swiper.params; 79246 79247 if (params.loop) { 79248 swiper.loopDestroy(); 79249 } 79250 79251 if (typeof slides === 'object' && 'length' in slides) { 79252 for (var i = 0; i < slides.length; i += 1) { 79253 if (slides[i]) $wrapperEl.append(slides[i]); 79254 } 79255 } else { 79256 $wrapperEl.append(slides); 79257 } 79258 79259 if (params.loop) { 79260 swiper.loopCreate(); 79261 } 79262 79263 if (!(params.observer && swiper.support.observer)) { 79264 swiper.update(); 79265 } 79266} 79267 79268function prependSlide(slides) { 79269 var swiper = this; 79270 var params = swiper.params, 79271 $wrapperEl = swiper.$wrapperEl, 79272 activeIndex = swiper.activeIndex; 79273 79274 if (params.loop) { 79275 swiper.loopDestroy(); 79276 } 79277 79278 var newActiveIndex = activeIndex + 1; 79279 79280 if (typeof slides === 'object' && 'length' in slides) { 79281 for (var i = 0; i < slides.length; i += 1) { 79282 if (slides[i]) $wrapperEl.prepend(slides[i]); 79283 } 79284 79285 newActiveIndex = activeIndex + slides.length; 79286 } else { 79287 $wrapperEl.prepend(slides); 79288 } 79289 79290 if (params.loop) { 79291 swiper.loopCreate(); 79292 } 79293 79294 if (!(params.observer && swiper.support.observer)) { 79295 swiper.update(); 79296 } 79297 79298 swiper.slideTo(newActiveIndex, 0, false); 79299} 79300 79301function addSlide(index, slides) { 79302 var swiper = this; 79303 var $wrapperEl = swiper.$wrapperEl, 79304 params = swiper.params, 79305 activeIndex = swiper.activeIndex; 79306 var activeIndexBuffer = activeIndex; 79307 79308 if (params.loop) { 79309 activeIndexBuffer -= swiper.loopedSlides; 79310 swiper.loopDestroy(); 79311 swiper.slides = $wrapperEl.children("." + params.slideClass); 79312 } 79313 79314 var baseLength = swiper.slides.length; 79315 79316 if (index <= 0) { 79317 swiper.prependSlide(slides); 79318 return; 79319 } 79320 79321 if (index >= baseLength) { 79322 swiper.appendSlide(slides); 79323 return; 79324 } 79325 79326 var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; 79327 var slidesBuffer = []; 79328 79329 for (var i = baseLength - 1; i >= index; i -= 1) { 79330 var currentSlide = swiper.slides.eq(i); 79331 currentSlide.remove(); 79332 slidesBuffer.unshift(currentSlide); 79333 } 79334 79335 if (typeof slides === 'object' && 'length' in slides) { 79336 for (var _i = 0; _i < slides.length; _i += 1) { 79337 if (slides[_i]) $wrapperEl.append(slides[_i]); 79338 } 79339 79340 newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; 79341 } else { 79342 $wrapperEl.append(slides); 79343 } 79344 79345 for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) { 79346 $wrapperEl.append(slidesBuffer[_i2]); 79347 } 79348 79349 if (params.loop) { 79350 swiper.loopCreate(); 79351 } 79352 79353 if (!(params.observer && swiper.support.observer)) { 79354 swiper.update(); 79355 } 79356 79357 if (params.loop) { 79358 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 79359 } else { 79360 swiper.slideTo(newActiveIndex, 0, false); 79361 } 79362} 79363 79364function removeSlide(slidesIndexes) { 79365 var swiper = this; 79366 var params = swiper.params, 79367 $wrapperEl = swiper.$wrapperEl, 79368 activeIndex = swiper.activeIndex; 79369 var activeIndexBuffer = activeIndex; 79370 79371 if (params.loop) { 79372 activeIndexBuffer -= swiper.loopedSlides; 79373 swiper.loopDestroy(); 79374 swiper.slides = $wrapperEl.children("." + params.slideClass); 79375 } 79376 79377 var newActiveIndex = activeIndexBuffer; 79378 var indexToRemove; 79379 79380 if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { 79381 for (var i = 0; i < slidesIndexes.length; i += 1) { 79382 indexToRemove = slidesIndexes[i]; 79383 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 79384 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 79385 } 79386 79387 newActiveIndex = Math.max(newActiveIndex, 0); 79388 } else { 79389 indexToRemove = slidesIndexes; 79390 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 79391 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 79392 newActiveIndex = Math.max(newActiveIndex, 0); 79393 } 79394 79395 if (params.loop) { 79396 swiper.loopCreate(); 79397 } 79398 79399 if (!(params.observer && swiper.support.observer)) { 79400 swiper.update(); 79401 } 79402 79403 if (params.loop) { 79404 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 79405 } else { 79406 swiper.slideTo(newActiveIndex, 0, false); 79407 } 79408} 79409 79410function removeAllSlides() { 79411 var swiper = this; 79412 var slidesIndexes = []; 79413 79414 for (var i = 0; i < swiper.slides.length; i += 1) { 79415 slidesIndexes.push(i); 79416 } 79417 79418 swiper.removeSlide(slidesIndexes); 79419} 79420 79421var manipulation = { 79422 appendSlide: appendSlide, 79423 prependSlide: prependSlide, 79424 addSlide: addSlide, 79425 removeSlide: removeSlide, 79426 removeAllSlides: removeAllSlides 79427}; 79428 79429function onTouchStart(event) { 79430 var swiper = this; 79431 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getDocument"])(); 79432 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); 79433 var data = swiper.touchEventsData; 79434 var params = swiper.params, 79435 touches = swiper.touches; 79436 79437 if (swiper.animating && params.preventInteractionOnTransition) { 79438 return; 79439 } 79440 79441 var e = event; 79442 if (e.originalEvent) e = e.originalEvent; 79443 var $targetEl = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target); 79444 79445 if (params.touchEventsTarget === 'wrapper') { 79446 if (!$targetEl.closest(swiper.wrapperEl).length) return; 79447 } 79448 79449 data.isTouchEvent = e.type === 'touchstart'; 79450 if (!data.isTouchEvent && 'which' in e && e.which === 3) return; 79451 if (!data.isTouchEvent && 'button' in e && e.button > 0) return; 79452 if (data.isTouched && data.isMoved) return; 79453 79454 if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : "." + params.noSwipingClass)[0]) { 79455 swiper.allowClick = true; 79456 return; 79457 } 79458 79459 if (params.swipeHandler) { 79460 if (!$targetEl.closest(params.swipeHandler)[0]) return; 79461 } 79462 79463 touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 79464 touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 79465 var startX = touches.currentX; 79466 var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 79467 79468 var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; 79469 var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; 79470 79471 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) { 79472 return; 79473 } 79474 79475 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(data, { 79476 isTouched: true, 79477 isMoved: false, 79478 allowTouchCallbacks: true, 79479 isScrolling: undefined, 79480 startMoving: undefined 79481 }); 79482 touches.startX = startX; 79483 touches.startY = startY; 79484 data.touchStartTime = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])(); 79485 swiper.allowClick = true; 79486 swiper.updateSize(); 79487 swiper.swipeDirection = undefined; 79488 if (params.threshold > 0) data.allowThresholdMove = false; 79489 79490 if (e.type !== 'touchstart') { 79491 var preventDefault = true; 79492 if ($targetEl.is(data.formElements)) preventDefault = false; 79493 79494 if (document.activeElement && Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) { 79495 document.activeElement.blur(); 79496 } 79497 79498 var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 79499 79500 if (params.touchStartForcePreventDefault || shouldPreventDefault) { 79501 e.preventDefault(); 79502 } 79503 } 79504 79505 swiper.emit('touchStart', e); 79506} 79507 79508function onTouchMove(event) { 79509 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getDocument"])(); 79510 var swiper = this; 79511 var data = swiper.touchEventsData; 79512 var params = swiper.params, 79513 touches = swiper.touches, 79514 rtl = swiper.rtlTranslate; 79515 var e = event; 79516 if (e.originalEvent) e = e.originalEvent; 79517 79518 if (!data.isTouched) { 79519 if (data.startMoving && data.isScrolling) { 79520 swiper.emit('touchMoveOpposite', e); 79521 } 79522 79523 return; 79524 } 79525 79526 if (data.isTouchEvent && e.type !== 'touchmove') return; 79527 var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]); 79528 var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX; 79529 var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY; 79530 79531 if (e.preventedByNestedSwiper) { 79532 touches.startX = pageX; 79533 touches.startY = pageY; 79534 return; 79535 } 79536 79537 if (!swiper.allowTouchMove) { 79538 // isMoved = true; 79539 swiper.allowClick = false; 79540 79541 if (data.isTouched) { 79542 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(touches, { 79543 startX: pageX, 79544 startY: pageY, 79545 currentX: pageX, 79546 currentY: pageY 79547 }); 79548 data.touchStartTime = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])(); 79549 } 79550 79551 return; 79552 } 79553 79554 if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { 79555 if (swiper.isVertical()) { 79556 // Vertical 79557 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 79558 data.isTouched = false; 79559 data.isMoved = false; 79560 return; 79561 } 79562 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 79563 return; 79564 } 79565 } 79566 79567 if (data.isTouchEvent && document.activeElement) { 79568 if (e.target === document.activeElement && Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(e.target).is(data.formElements)) { 79569 data.isMoved = true; 79570 swiper.allowClick = false; 79571 return; 79572 } 79573 } 79574 79575 if (data.allowTouchCallbacks) { 79576 swiper.emit('touchMove', e); 79577 } 79578 79579 if (e.targetTouches && e.targetTouches.length > 1) return; 79580 touches.currentX = pageX; 79581 touches.currentY = pageY; 79582 var diffX = touches.currentX - touches.startX; 79583 var diffY = touches.currentY - touches.startY; 79584 if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return; 79585 79586 if (typeof data.isScrolling === 'undefined') { 79587 var touchAngle; 79588 79589 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 79590 data.isScrolling = false; 79591 } else { 79592 // eslint-disable-next-line 79593 if (diffX * diffX + diffY * diffY >= 25) { 79594 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 79595 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 79596 } 79597 } 79598 } 79599 79600 if (data.isScrolling) { 79601 swiper.emit('touchMoveOpposite', e); 79602 } 79603 79604 if (typeof data.startMoving === 'undefined') { 79605 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 79606 data.startMoving = true; 79607 } 79608 } 79609 79610 if (data.isScrolling) { 79611 data.isTouched = false; 79612 return; 79613 } 79614 79615 if (!data.startMoving) { 79616 return; 79617 } 79618 79619 swiper.allowClick = false; 79620 79621 if (!params.cssMode && e.cancelable) { 79622 e.preventDefault(); 79623 } 79624 79625 if (params.touchMoveStopPropagation && !params.nested) { 79626 e.stopPropagation(); 79627 } 79628 79629 if (!data.isMoved) { 79630 if (params.loop) { 79631 swiper.loopFix(); 79632 } 79633 79634 data.startTranslate = swiper.getTranslate(); 79635 swiper.setTransition(0); 79636 79637 if (swiper.animating) { 79638 swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); 79639 } 79640 79641 data.allowMomentumBounce = false; // Grab Cursor 79642 79643 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 79644 swiper.setGrabCursor(true); 79645 } 79646 79647 swiper.emit('sliderFirstMove', e); 79648 } 79649 79650 swiper.emit('sliderMove', e); 79651 data.isMoved = true; 79652 var diff = swiper.isHorizontal() ? diffX : diffY; 79653 touches.diff = diff; 79654 diff *= params.touchRatio; 79655 if (rtl) diff = -diff; 79656 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 79657 data.currentTranslate = diff + data.startTranslate; 79658 var disableParentSwiper = true; 79659 var resistanceRatio = params.resistanceRatio; 79660 79661 if (params.touchReleaseOnEdges) { 79662 resistanceRatio = 0; 79663 } 79664 79665 if (diff > 0 && data.currentTranslate > swiper.minTranslate()) { 79666 disableParentSwiper = false; 79667 if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio); 79668 } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) { 79669 disableParentSwiper = false; 79670 if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio); 79671 } 79672 79673 if (disableParentSwiper) { 79674 e.preventedByNestedSwiper = true; 79675 } // Directions locks 79676 79677 79678 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 79679 data.currentTranslate = data.startTranslate; 79680 } 79681 79682 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 79683 data.currentTranslate = data.startTranslate; 79684 } // Threshold 79685 79686 79687 if (params.threshold > 0) { 79688 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 79689 if (!data.allowThresholdMove) { 79690 data.allowThresholdMove = true; 79691 touches.startX = touches.currentX; 79692 touches.startY = touches.currentY; 79693 data.currentTranslate = data.startTranslate; 79694 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 79695 return; 79696 } 79697 } else { 79698 data.currentTranslate = data.startTranslate; 79699 return; 79700 } 79701 } 79702 79703 if (!params.followFinger || params.cssMode) return; // Update active index in free mode 79704 79705 if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) { 79706 swiper.updateActiveIndex(); 79707 swiper.updateSlidesClasses(); 79708 } 79709 79710 if (params.freeMode) { 79711 // Velocity 79712 if (data.velocities.length === 0) { 79713 data.velocities.push({ 79714 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 79715 time: data.touchStartTime 79716 }); 79717 } 79718 79719 data.velocities.push({ 79720 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 79721 time: Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])() 79722 }); 79723 } // Update progress 79724 79725 79726 swiper.updateProgress(data.currentTranslate); // Update translate 79727 79728 swiper.setTranslate(data.currentTranslate); 79729} 79730 79731function onTouchEnd(event) { 79732 var swiper = this; 79733 var data = swiper.touchEventsData; 79734 var params = swiper.params, 79735 touches = swiper.touches, 79736 rtl = swiper.rtlTranslate, 79737 $wrapperEl = swiper.$wrapperEl, 79738 slidesGrid = swiper.slidesGrid, 79739 snapGrid = swiper.snapGrid; 79740 var e = event; 79741 if (e.originalEvent) e = e.originalEvent; 79742 79743 if (data.allowTouchCallbacks) { 79744 swiper.emit('touchEnd', e); 79745 } 79746 79747 data.allowTouchCallbacks = false; 79748 79749 if (!data.isTouched) { 79750 if (data.isMoved && params.grabCursor) { 79751 swiper.setGrabCursor(false); 79752 } 79753 79754 data.isMoved = false; 79755 data.startMoving = false; 79756 return; 79757 } // Return Grab Cursor 79758 79759 79760 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 79761 swiper.setGrabCursor(false); 79762 } // Time diff 79763 79764 79765 var touchEndTime = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])(); 79766 var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click 79767 79768 if (swiper.allowClick) { 79769 swiper.updateClickedSlide(e); 79770 swiper.emit('tap click', e); 79771 79772 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 79773 swiper.emit('doubleTap doubleClick', e); 79774 } 79775 } 79776 79777 data.lastClickTime = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])(); 79778 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["nextTick"])(function () { 79779 if (!swiper.destroyed) swiper.allowClick = true; 79780 }); 79781 79782 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { 79783 data.isTouched = false; 79784 data.isMoved = false; 79785 data.startMoving = false; 79786 return; 79787 } 79788 79789 data.isTouched = false; 79790 data.isMoved = false; 79791 data.startMoving = false; 79792 var currentPos; 79793 79794 if (params.followFinger) { 79795 currentPos = rtl ? swiper.translate : -swiper.translate; 79796 } else { 79797 currentPos = -data.currentTranslate; 79798 } 79799 79800 if (params.cssMode) { 79801 return; 79802 } 79803 79804 if (params.freeMode) { 79805 if (currentPos < -swiper.minTranslate()) { 79806 swiper.slideTo(swiper.activeIndex); 79807 return; 79808 } 79809 79810 if (currentPos > -swiper.maxTranslate()) { 79811 if (swiper.slides.length < snapGrid.length) { 79812 swiper.slideTo(snapGrid.length - 1); 79813 } else { 79814 swiper.slideTo(swiper.slides.length - 1); 79815 } 79816 79817 return; 79818 } 79819 79820 if (params.freeModeMomentum) { 79821 if (data.velocities.length > 1) { 79822 var lastMoveEvent = data.velocities.pop(); 79823 var velocityEvent = data.velocities.pop(); 79824 var distance = lastMoveEvent.position - velocityEvent.position; 79825 var time = lastMoveEvent.time - velocityEvent.time; 79826 swiper.velocity = distance / time; 79827 swiper.velocity /= 2; 79828 79829 if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) { 79830 swiper.velocity = 0; 79831 } // this implies that the user stopped moving a finger then released. 79832 // There would be no events with distance zero, so the last event is stale. 79833 79834 79835 if (time > 150 || Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])() - lastMoveEvent.time > 300) { 79836 swiper.velocity = 0; 79837 } 79838 } else { 79839 swiper.velocity = 0; 79840 } 79841 79842 swiper.velocity *= params.freeModeMomentumVelocityRatio; 79843 data.velocities.length = 0; 79844 var momentumDuration = 1000 * params.freeModeMomentumRatio; 79845 var momentumDistance = swiper.velocity * momentumDuration; 79846 var newPosition = swiper.translate + momentumDistance; 79847 if (rtl) newPosition = -newPosition; 79848 var doBounce = false; 79849 var afterBouncePosition; 79850 var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio; 79851 var needsLoopFix; 79852 79853 if (newPosition < swiper.maxTranslate()) { 79854 if (params.freeModeMomentumBounce) { 79855 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 79856 newPosition = swiper.maxTranslate() - bounceAmount; 79857 } 79858 79859 afterBouncePosition = swiper.maxTranslate(); 79860 doBounce = true; 79861 data.allowMomentumBounce = true; 79862 } else { 79863 newPosition = swiper.maxTranslate(); 79864 } 79865 79866 if (params.loop && params.centeredSlides) needsLoopFix = true; 79867 } else if (newPosition > swiper.minTranslate()) { 79868 if (params.freeModeMomentumBounce) { 79869 if (newPosition - swiper.minTranslate() > bounceAmount) { 79870 newPosition = swiper.minTranslate() + bounceAmount; 79871 } 79872 79873 afterBouncePosition = swiper.minTranslate(); 79874 doBounce = true; 79875 data.allowMomentumBounce = true; 79876 } else { 79877 newPosition = swiper.minTranslate(); 79878 } 79879 79880 if (params.loop && params.centeredSlides) needsLoopFix = true; 79881 } else if (params.freeModeSticky) { 79882 var nextSlide; 79883 79884 for (var j = 0; j < snapGrid.length; j += 1) { 79885 if (snapGrid[j] > -newPosition) { 79886 nextSlide = j; 79887 break; 79888 } 79889 } 79890 79891 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 79892 newPosition = snapGrid[nextSlide]; 79893 } else { 79894 newPosition = snapGrid[nextSlide - 1]; 79895 } 79896 79897 newPosition = -newPosition; 79898 } 79899 79900 if (needsLoopFix) { 79901 swiper.once('transitionEnd', function () { 79902 swiper.loopFix(); 79903 }); 79904 } // Fix duration 79905 79906 79907 if (swiper.velocity !== 0) { 79908 if (rtl) { 79909 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 79910 } else { 79911 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 79912 } 79913 79914 if (params.freeModeSticky) { 79915 // If freeModeSticky is active and the user ends a swipe with a slow-velocity 79916 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 79917 // It's easy to see this when simulating touch with mouse events. To fix this, 79918 // limit single-slide swipes to the default slide duration. This also has the 79919 // nice side effect of matching slide speed if the user stopped moving before 79920 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 79921 // For faster swipes, also apply limits (albeit higher ones). 79922 var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 79923 var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 79924 79925 if (moveDistance < currentSlideSize) { 79926 momentumDuration = params.speed; 79927 } else if (moveDistance < 2 * currentSlideSize) { 79928 momentumDuration = params.speed * 1.5; 79929 } else { 79930 momentumDuration = params.speed * 2.5; 79931 } 79932 } 79933 } else if (params.freeModeSticky) { 79934 swiper.slideToClosest(); 79935 return; 79936 } 79937 79938 if (params.freeModeMomentumBounce && doBounce) { 79939 swiper.updateProgress(afterBouncePosition); 79940 swiper.setTransition(momentumDuration); 79941 swiper.setTranslate(newPosition); 79942 swiper.transitionStart(true, swiper.swipeDirection); 79943 swiper.animating = true; 79944 $wrapperEl.transitionEnd(function () { 79945 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 79946 swiper.emit('momentumBounce'); 79947 swiper.setTransition(params.speed); 79948 setTimeout(function () { 79949 swiper.setTranslate(afterBouncePosition); 79950 $wrapperEl.transitionEnd(function () { 79951 if (!swiper || swiper.destroyed) return; 79952 swiper.transitionEnd(); 79953 }); 79954 }, 0); 79955 }); 79956 } else if (swiper.velocity) { 79957 swiper.updateProgress(newPosition); 79958 swiper.setTransition(momentumDuration); 79959 swiper.setTranslate(newPosition); 79960 swiper.transitionStart(true, swiper.swipeDirection); 79961 79962 if (!swiper.animating) { 79963 swiper.animating = true; 79964 $wrapperEl.transitionEnd(function () { 79965 if (!swiper || swiper.destroyed) return; 79966 swiper.transitionEnd(); 79967 }); 79968 } 79969 } else { 79970 swiper.updateProgress(newPosition); 79971 } 79972 79973 swiper.updateActiveIndex(); 79974 swiper.updateSlidesClasses(); 79975 } else if (params.freeModeSticky) { 79976 swiper.slideToClosest(); 79977 return; 79978 } 79979 79980 if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) { 79981 swiper.updateProgress(); 79982 swiper.updateActiveIndex(); 79983 swiper.updateSlidesClasses(); 79984 } 79985 79986 return; 79987 } // Find current slide 79988 79989 79990 var stopIndex = 0; 79991 var groupSize = swiper.slidesSizesGrid[0]; 79992 79993 for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 79994 var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 79995 79996 if (typeof slidesGrid[i + _increment] !== 'undefined') { 79997 if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) { 79998 stopIndex = i; 79999 groupSize = slidesGrid[i + _increment] - slidesGrid[i]; 80000 } 80001 } else if (currentPos >= slidesGrid[i]) { 80002 stopIndex = i; 80003 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 80004 } 80005 } // Find current slide size 80006 80007 80008 var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 80009 var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 80010 80011 if (timeDiff > params.longSwipesMs) { 80012 // Long touches 80013 if (!params.longSwipes) { 80014 swiper.slideTo(swiper.activeIndex); 80015 return; 80016 } 80017 80018 if (swiper.swipeDirection === 'next') { 80019 if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex); 80020 } 80021 80022 if (swiper.swipeDirection === 'prev') { 80023 if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex); 80024 } 80025 } else { 80026 // Short swipes 80027 if (!params.shortSwipes) { 80028 swiper.slideTo(swiper.activeIndex); 80029 return; 80030 } 80031 80032 var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 80033 80034 if (!isNavButtonTarget) { 80035 if (swiper.swipeDirection === 'next') { 80036 swiper.slideTo(stopIndex + increment); 80037 } 80038 80039 if (swiper.swipeDirection === 'prev') { 80040 swiper.slideTo(stopIndex); 80041 } 80042 } else if (e.target === swiper.navigation.nextEl) { 80043 swiper.slideTo(stopIndex + increment); 80044 } else { 80045 swiper.slideTo(stopIndex); 80046 } 80047 } 80048} 80049 80050function onResize() { 80051 var swiper = this; 80052 var params = swiper.params, 80053 el = swiper.el; 80054 if (el && el.offsetWidth === 0) return; // Breakpoints 80055 80056 if (params.breakpoints) { 80057 swiper.setBreakpoint(); 80058 } // Save locks 80059 80060 80061 var allowSlideNext = swiper.allowSlideNext, 80062 allowSlidePrev = swiper.allowSlidePrev, 80063 snapGrid = swiper.snapGrid; // Disable locks on resize 80064 80065 swiper.allowSlideNext = true; 80066 swiper.allowSlidePrev = true; 80067 swiper.updateSize(); 80068 swiper.updateSlides(); 80069 swiper.updateSlidesClasses(); 80070 80071 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) { 80072 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 80073 } else { 80074 swiper.slideTo(swiper.activeIndex, 0, false, true); 80075 } 80076 80077 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 80078 swiper.autoplay.run(); 80079 } // Return locks after resize 80080 80081 80082 swiper.allowSlidePrev = allowSlidePrev; 80083 swiper.allowSlideNext = allowSlideNext; 80084 80085 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 80086 swiper.checkOverflow(); 80087 } 80088} 80089 80090function onClick(e) { 80091 var swiper = this; 80092 80093 if (!swiper.allowClick) { 80094 if (swiper.params.preventClicks) e.preventDefault(); 80095 80096 if (swiper.params.preventClicksPropagation && swiper.animating) { 80097 e.stopPropagation(); 80098 e.stopImmediatePropagation(); 80099 } 80100 } 80101} 80102 80103function onScroll() { 80104 var swiper = this; 80105 var wrapperEl = swiper.wrapperEl, 80106 rtlTranslate = swiper.rtlTranslate; 80107 swiper.previousTranslate = swiper.translate; 80108 80109 if (swiper.isHorizontal()) { 80110 if (rtlTranslate) { 80111 swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft; 80112 } else { 80113 swiper.translate = -wrapperEl.scrollLeft; 80114 } 80115 } else { 80116 swiper.translate = -wrapperEl.scrollTop; 80117 } // eslint-disable-next-line 80118 80119 80120 if (swiper.translate === -0) swiper.translate = 0; 80121 swiper.updateActiveIndex(); 80122 swiper.updateSlidesClasses(); 80123 var newProgress; 80124 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 80125 80126 if (translatesDiff === 0) { 80127 newProgress = 0; 80128 } else { 80129 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 80130 } 80131 80132 if (newProgress !== swiper.progress) { 80133 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 80134 } 80135 80136 swiper.emit('setTranslate', swiper.translate, false); 80137} 80138 80139var dummyEventAttached = false; 80140 80141function dummyEventListener() {} 80142 80143function attachEvents() { 80144 var swiper = this; 80145 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getDocument"])(); 80146 var params = swiper.params, 80147 touchEvents = swiper.touchEvents, 80148 el = swiper.el, 80149 wrapperEl = swiper.wrapperEl, 80150 device = swiper.device, 80151 support = swiper.support; 80152 swiper.onTouchStart = onTouchStart.bind(swiper); 80153 swiper.onTouchMove = onTouchMove.bind(swiper); 80154 swiper.onTouchEnd = onTouchEnd.bind(swiper); 80155 80156 if (params.cssMode) { 80157 swiper.onScroll = onScroll.bind(swiper); 80158 } 80159 80160 swiper.onClick = onClick.bind(swiper); 80161 var capture = !!params.nested; // Touch Events 80162 80163 if (!support.touch && support.pointerEvents) { 80164 el.addEventListener(touchEvents.start, swiper.onTouchStart, false); 80165 document.addEventListener(touchEvents.move, swiper.onTouchMove, capture); 80166 document.addEventListener(touchEvents.end, swiper.onTouchEnd, false); 80167 } else { 80168 if (support.touch) { 80169 var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? { 80170 passive: true, 80171 capture: false 80172 } : false; 80173 el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); 80174 el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? { 80175 passive: false, 80176 capture: capture 80177 } : capture); 80178 el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); 80179 80180 if (touchEvents.cancel) { 80181 el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener); 80182 } 80183 80184 if (!dummyEventAttached) { 80185 document.addEventListener('touchstart', dummyEventListener); 80186 dummyEventAttached = true; 80187 } 80188 } 80189 80190 if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) { 80191 el.addEventListener('mousedown', swiper.onTouchStart, false); 80192 document.addEventListener('mousemove', swiper.onTouchMove, capture); 80193 document.addEventListener('mouseup', swiper.onTouchEnd, false); 80194 } 80195 } // Prevent Links Clicks 80196 80197 80198 if (params.preventClicks || params.preventClicksPropagation) { 80199 el.addEventListener('click', swiper.onClick, true); 80200 } 80201 80202 if (params.cssMode) { 80203 wrapperEl.addEventListener('scroll', swiper.onScroll); 80204 } // Resize handler 80205 80206 80207 if (params.updateOnWindowResize) { 80208 swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); 80209 } else { 80210 swiper.on('observerUpdate', onResize, true); 80211 } 80212} 80213 80214function detachEvents() { 80215 var swiper = this; 80216 var document = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getDocument"])(); 80217 var params = swiper.params, 80218 touchEvents = swiper.touchEvents, 80219 el = swiper.el, 80220 wrapperEl = swiper.wrapperEl, 80221 device = swiper.device, 80222 support = swiper.support; 80223 var capture = !!params.nested; // Touch Events 80224 80225 if (!support.touch && support.pointerEvents) { 80226 el.removeEventListener(touchEvents.start, swiper.onTouchStart, false); 80227 document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); 80228 document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false); 80229 } else { 80230 if (support.touch) { 80231 var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? { 80232 passive: true, 80233 capture: false 80234 } : false; 80235 el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); 80236 el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); 80237 el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); 80238 80239 if (touchEvents.cancel) { 80240 el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener); 80241 } 80242 } 80243 80244 if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) { 80245 el.removeEventListener('mousedown', swiper.onTouchStart, false); 80246 document.removeEventListener('mousemove', swiper.onTouchMove, capture); 80247 document.removeEventListener('mouseup', swiper.onTouchEnd, false); 80248 } 80249 } // Prevent Links Clicks 80250 80251 80252 if (params.preventClicks || params.preventClicksPropagation) { 80253 el.removeEventListener('click', swiper.onClick, true); 80254 } 80255 80256 if (params.cssMode) { 80257 wrapperEl.removeEventListener('scroll', swiper.onScroll); 80258 } // Resize handler 80259 80260 80261 swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize); 80262} 80263 80264var events = { 80265 attachEvents: attachEvents, 80266 detachEvents: detachEvents 80267}; 80268 80269function setBreakpoint() { 80270 var swiper = this; 80271 var activeIndex = swiper.activeIndex, 80272 initialized = swiper.initialized, 80273 _swiper$loopedSlides = swiper.loopedSlides, 80274 loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides, 80275 params = swiper.params, 80276 $el = swiper.$el; 80277 var breakpoints = params.breakpoints; 80278 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters 80279 80280 var breakpoint = swiper.getBreakpoint(breakpoints); 80281 80282 if (breakpoint && swiper.currentBreakpoint !== breakpoint) { 80283 var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 80284 80285 if (breakpointOnlyParams) { 80286 ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) { 80287 var paramValue = breakpointOnlyParams[param]; 80288 if (typeof paramValue === 'undefined') return; 80289 80290 if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) { 80291 breakpointOnlyParams[param] = 'auto'; 80292 } else if (param === 'slidesPerView') { 80293 breakpointOnlyParams[param] = parseFloat(paramValue); 80294 } else { 80295 breakpointOnlyParams[param] = parseInt(paramValue, 10); 80296 } 80297 }); 80298 } 80299 80300 var breakpointParams = breakpointOnlyParams || swiper.originalParams; 80301 var wasMultiRow = params.slidesPerColumn > 1; 80302 var isMultiRow = breakpointParams.slidesPerColumn > 1; 80303 80304 if (wasMultiRow && !isMultiRow) { 80305 $el.removeClass(params.containerModifierClass + "multirow " + params.containerModifierClass + "multirow-column"); 80306 swiper.emitContainerClasses(); 80307 } else if (!wasMultiRow && isMultiRow) { 80308 $el.addClass(params.containerModifierClass + "multirow"); 80309 80310 if (breakpointParams.slidesPerColumnFill === 'column') { 80311 $el.addClass(params.containerModifierClass + "multirow-column"); 80312 } 80313 80314 swiper.emitContainerClasses(); 80315 } 80316 80317 var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 80318 var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 80319 80320 if (directionChanged && initialized) { 80321 swiper.changeDirection(); 80322 } 80323 80324 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper.params, breakpointParams); 80325 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 80326 allowTouchMove: swiper.params.allowTouchMove, 80327 allowSlideNext: swiper.params.allowSlideNext, 80328 allowSlidePrev: swiper.params.allowSlidePrev 80329 }); 80330 swiper.currentBreakpoint = breakpoint; 80331 80332 if (needsReLoop && initialized) { 80333 swiper.loopDestroy(); 80334 swiper.loopCreate(); 80335 swiper.updateSlides(); 80336 swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false); 80337 } 80338 80339 swiper.emit('breakpoint', breakpointParams); 80340 } 80341} 80342 80343function getBreakpoints(breakpoints) { 80344 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); // Get breakpoint for window width 80345 80346 if (!breakpoints) return undefined; 80347 var breakpoint = false; 80348 var points = Object.keys(breakpoints).map(function (point) { 80349 if (typeof point === 'string' && point.indexOf('@') === 0) { 80350 var minRatio = parseFloat(point.substr(1)); 80351 var value = window.innerHeight * minRatio; 80352 return { 80353 value: value, 80354 point: point 80355 }; 80356 } 80357 80358 return { 80359 value: point, 80360 point: point 80361 }; 80362 }); 80363 points.sort(function (a, b) { 80364 return parseInt(a.value, 10) - parseInt(b.value, 10); 80365 }); 80366 80367 for (var i = 0; i < points.length; i += 1) { 80368 var _points$i = points[i], 80369 point = _points$i.point, 80370 value = _points$i.value; 80371 80372 if (value <= window.innerWidth) { 80373 breakpoint = point; 80374 } 80375 } 80376 80377 return breakpoint || 'max'; 80378} 80379 80380var breakpoints = { 80381 setBreakpoint: setBreakpoint, 80382 getBreakpoint: getBreakpoints 80383}; 80384 80385function addClasses() { 80386 var swiper = this; 80387 var classNames = swiper.classNames, 80388 params = swiper.params, 80389 rtl = swiper.rtl, 80390 $el = swiper.$el, 80391 device = swiper.device; 80392 var suffixes = []; 80393 suffixes.push('initialized'); 80394 suffixes.push(params.direction); 80395 80396 if (params.freeMode) { 80397 suffixes.push('free-mode'); 80398 } 80399 80400 if (params.autoHeight) { 80401 suffixes.push('autoheight'); 80402 } 80403 80404 if (rtl) { 80405 suffixes.push('rtl'); 80406 } 80407 80408 if (params.slidesPerColumn > 1) { 80409 suffixes.push('multirow'); 80410 80411 if (params.slidesPerColumnFill === 'column') { 80412 suffixes.push('multirow-column'); 80413 } 80414 } 80415 80416 if (device.android) { 80417 suffixes.push('android'); 80418 } 80419 80420 if (device.ios) { 80421 suffixes.push('ios'); 80422 } 80423 80424 if (params.cssMode) { 80425 suffixes.push('css-mode'); 80426 } 80427 80428 suffixes.forEach(function (suffix) { 80429 classNames.push(params.containerModifierClass + suffix); 80430 }); 80431 $el.addClass(classNames.join(' ')); 80432 swiper.emitContainerClasses(); 80433} 80434 80435function removeClasses() { 80436 var swiper = this; 80437 var $el = swiper.$el, 80438 classNames = swiper.classNames; 80439 $el.removeClass(classNames.join(' ')); 80440 swiper.emitContainerClasses(); 80441} 80442 80443var classes = { 80444 addClasses: addClasses, 80445 removeClasses: removeClasses 80446}; 80447 80448function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) { 80449 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); 80450 var image; 80451 80452 function onReady() { 80453 if (callback) callback(); 80454 } 80455 80456 var isPicture = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(imageEl).parent('picture')[0]; 80457 80458 if (!isPicture && (!imageEl.complete || !checkForComplete)) { 80459 if (src) { 80460 image = new window.Image(); 80461 image.onload = onReady; 80462 image.onerror = onReady; 80463 80464 if (sizes) { 80465 image.sizes = sizes; 80466 } 80467 80468 if (srcset) { 80469 image.srcset = srcset; 80470 } 80471 80472 if (src) { 80473 image.src = src; 80474 } 80475 } else { 80476 onReady(); 80477 } 80478 } else { 80479 // image already loaded... 80480 onReady(); 80481 } 80482} 80483 80484function preloadImages() { 80485 var swiper = this; 80486 swiper.imagesToLoad = swiper.$el.find('img'); 80487 80488 function onReady() { 80489 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; 80490 if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; 80491 80492 if (swiper.imagesLoaded === swiper.imagesToLoad.length) { 80493 if (swiper.params.updateOnImagesReady) swiper.update(); 80494 swiper.emit('imagesReady'); 80495 } 80496 } 80497 80498 for (var i = 0; i < swiper.imagesToLoad.length; i += 1) { 80499 var imageEl = swiper.imagesToLoad[i]; 80500 swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady); 80501 } 80502} 80503 80504var images = { 80505 loadImage: loadImage, 80506 preloadImages: preloadImages 80507}; 80508 80509function checkOverflow() { 80510 var swiper = this; 80511 var params = swiper.params; 80512 var wasLocked = swiper.isLocked; 80513 var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length; 80514 80515 if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) { 80516 swiper.isLocked = lastSlidePosition <= swiper.size; 80517 } else { 80518 swiper.isLocked = swiper.snapGrid.length === 1; 80519 } 80520 80521 swiper.allowSlideNext = !swiper.isLocked; 80522 swiper.allowSlidePrev = !swiper.isLocked; // events 80523 80524 if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 80525 80526 if (wasLocked && wasLocked !== swiper.isLocked) { 80527 swiper.isEnd = false; 80528 if (swiper.navigation) swiper.navigation.update(); 80529 } 80530} 80531 80532var checkOverflow$1 = { 80533 checkOverflow: checkOverflow 80534}; 80535 80536var defaults = { 80537 init: true, 80538 direction: 'horizontal', 80539 touchEventsTarget: 'container', 80540 initialSlide: 0, 80541 speed: 300, 80542 cssMode: false, 80543 updateOnWindowResize: true, 80544 // Overrides 80545 width: null, 80546 height: null, 80547 // 80548 preventInteractionOnTransition: false, 80549 // ssr 80550 userAgent: null, 80551 url: null, 80552 // To support iOS's swipe-to-go-back gesture (when being used in-app). 80553 edgeSwipeDetection: false, 80554 edgeSwipeThreshold: 20, 80555 // Free mode 80556 freeMode: false, 80557 freeModeMomentum: true, 80558 freeModeMomentumRatio: 1, 80559 freeModeMomentumBounce: true, 80560 freeModeMomentumBounceRatio: 1, 80561 freeModeMomentumVelocityRatio: 1, 80562 freeModeSticky: false, 80563 freeModeMinimumVelocity: 0.02, 80564 // Autoheight 80565 autoHeight: false, 80566 // Set wrapper width 80567 setWrapperSize: false, 80568 // Virtual Translate 80569 virtualTranslate: false, 80570 // Effects 80571 effect: 'slide', 80572 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 80573 // Breakpoints 80574 breakpoints: undefined, 80575 // Slides grid 80576 spaceBetween: 0, 80577 slidesPerView: 1, 80578 slidesPerColumn: 1, 80579 slidesPerColumnFill: 'column', 80580 slidesPerGroup: 1, 80581 slidesPerGroupSkip: 0, 80582 centeredSlides: false, 80583 centeredSlidesBounds: false, 80584 slidesOffsetBefore: 0, 80585 // in px 80586 slidesOffsetAfter: 0, 80587 // in px 80588 normalizeSlideIndex: true, 80589 centerInsufficientSlides: false, 80590 // Disable swiper and hide navigation when container not overflow 80591 watchOverflow: false, 80592 // Round length 80593 roundLengths: false, 80594 // Touches 80595 touchRatio: 1, 80596 touchAngle: 45, 80597 simulateTouch: true, 80598 shortSwipes: true, 80599 longSwipes: true, 80600 longSwipesRatio: 0.5, 80601 longSwipesMs: 300, 80602 followFinger: true, 80603 allowTouchMove: true, 80604 threshold: 0, 80605 touchMoveStopPropagation: false, 80606 touchStartPreventDefault: true, 80607 touchStartForcePreventDefault: false, 80608 touchReleaseOnEdges: false, 80609 // Unique Navigation Elements 80610 uniqueNavElements: true, 80611 // Resistance 80612 resistance: true, 80613 resistanceRatio: 0.85, 80614 // Progress 80615 watchSlidesProgress: false, 80616 watchSlidesVisibility: false, 80617 // Cursor 80618 grabCursor: false, 80619 // Clicks 80620 preventClicks: true, 80621 preventClicksPropagation: true, 80622 slideToClickedSlide: false, 80623 // Images 80624 preloadImages: true, 80625 updateOnImagesReady: true, 80626 // loop 80627 loop: false, 80628 loopAdditionalSlides: 0, 80629 loopedSlides: null, 80630 loopFillGroupWithBlank: false, 80631 loopPreventsSlide: true, 80632 // Swiping/no swiping 80633 allowSlidePrev: true, 80634 allowSlideNext: true, 80635 swipeHandler: null, 80636 // '.swipe-handler', 80637 noSwiping: true, 80638 noSwipingClass: 'swiper-no-swiping', 80639 noSwipingSelector: null, 80640 // Passive Listeners 80641 passiveListeners: true, 80642 // NS 80643 containerModifierClass: 'swiper-container-', 80644 // NEW 80645 slideClass: 'swiper-slide', 80646 slideBlankClass: 'swiper-slide-invisible-blank', 80647 slideActiveClass: 'swiper-slide-active', 80648 slideDuplicateActiveClass: 'swiper-slide-duplicate-active', 80649 slideVisibleClass: 'swiper-slide-visible', 80650 slideDuplicateClass: 'swiper-slide-duplicate', 80651 slideNextClass: 'swiper-slide-next', 80652 slideDuplicateNextClass: 'swiper-slide-duplicate-next', 80653 slidePrevClass: 'swiper-slide-prev', 80654 slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', 80655 wrapperClass: 'swiper-wrapper', 80656 // Callbacks 80657 runCallbacksOnInit: true, 80658 // Internals 80659 _emitClasses: false 80660}; 80661 80662var prototypes = { 80663 modular: modular, 80664 eventsEmitter: eventsEmitter, 80665 update: update, 80666 translate: translate, 80667 transition: transition, 80668 slide: slide, 80669 loop: loop, 80670 grabCursor: grabCursor, 80671 manipulation: manipulation, 80672 events: events, 80673 breakpoints: breakpoints, 80674 checkOverflow: checkOverflow$1, 80675 classes: classes, 80676 images: images 80677}; 80678var extendedDefaults = {}; 80679 80680var Swiper = /*#__PURE__*/function () { 80681 function Swiper() { 80682 var el; 80683 var params; 80684 80685 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 80686 args[_key] = arguments[_key]; 80687 } 80688 80689 if (args.length === 1 && args[0].constructor && args[0].constructor === Object) { 80690 params = args[0]; 80691 } else { 80692 el = args[0]; 80693 params = args[1]; 80694 } 80695 80696 if (!params) params = {}; 80697 params = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, params); 80698 if (el && !params.el) params.el = el; // Swiper Instance 80699 80700 var swiper = this; 80701 swiper.support = Object(_esm_utils_get_support__WEBPACK_IMPORTED_MODULE_2__["getSupport"])(); 80702 swiper.device = Object(_esm_utils_get_device__WEBPACK_IMPORTED_MODULE_3__["getDevice"])({ 80703 userAgent: params.userAgent 80704 }); 80705 swiper.browser = Object(_esm_utils_get_browser__WEBPACK_IMPORTED_MODULE_4__["getBrowser"])(); 80706 swiper.eventsListeners = {}; 80707 swiper.eventsAnyListeners = []; 80708 Object.keys(prototypes).forEach(function (prototypeGroup) { 80709 Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) { 80710 if (!Swiper.prototype[protoMethod]) { 80711 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 80712 } 80713 }); 80714 }); 80715 80716 if (typeof swiper.modules === 'undefined') { 80717 swiper.modules = {}; 80718 } 80719 80720 Object.keys(swiper.modules).forEach(function (moduleName) { 80721 var module = swiper.modules[moduleName]; 80722 80723 if (module.params) { 80724 var moduleParamName = Object.keys(module.params)[0]; 80725 var moduleParams = module.params[moduleParamName]; 80726 if (typeof moduleParams !== 'object' || moduleParams === null) return; 80727 if (!(moduleParamName in params && 'enabled' in moduleParams)) return; 80728 80729 if (params[moduleParamName] === true) { 80730 params[moduleParamName] = { 80731 enabled: true 80732 }; 80733 } 80734 80735 if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { 80736 params[moduleParamName].enabled = true; 80737 } 80738 80739 if (!params[moduleParamName]) params[moduleParamName] = { 80740 enabled: false 80741 }; 80742 } 80743 }); // Extend defaults with modules params 80744 80745 var swiperParams = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, defaults); 80746 swiper.useParams(swiperParams); // Extend defaults with passed params 80747 80748 swiper.params = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, swiperParams, extendedDefaults, params); 80749 swiper.originalParams = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, swiper.params); 80750 swiper.passedParams = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, params); // add event listeners 80751 80752 if (swiper.params && swiper.params.on) { 80753 Object.keys(swiper.params.on).forEach(function (eventName) { 80754 swiper.on(eventName, swiper.params.on[eventName]); 80755 }); 80756 } // Save Dom lib 80757 80758 80759 swiper.$ = _esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"]; // Find el 80760 80761 var $el = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.el); 80762 el = $el[0]; 80763 80764 if (!el) { 80765 return undefined; 80766 } 80767 80768 if ($el.length > 1) { 80769 var swipers = []; 80770 $el.each(function (containerEl) { 80771 var newParams = Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])({}, params, { 80772 el: containerEl 80773 }); 80774 swipers.push(new Swiper(newParams)); 80775 }); 80776 return swipers; 80777 } 80778 80779 el.swiper = swiper; // Find Wrapper 80780 80781 var $wrapperEl; 80782 80783 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 80784 $wrapperEl = Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(el.shadowRoot.querySelector("." + swiper.params.wrapperClass)); // Children needs to return slot items 80785 80786 $wrapperEl.children = function (options) { 80787 return $el.children(options); 80788 }; 80789 } else { 80790 $wrapperEl = $el.children("." + swiper.params.wrapperClass); 80791 } // Extend Swiper 80792 80793 80794 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 80795 $el: $el, 80796 el: el, 80797 $wrapperEl: $wrapperEl, 80798 wrapperEl: $wrapperEl[0], 80799 // Classes 80800 classNames: [], 80801 // Slides 80802 slides: Object(_esm_utils_dom__WEBPACK_IMPORTED_MODULE_0__["default"])(), 80803 slidesGrid: [], 80804 snapGrid: [], 80805 slidesSizesGrid: [], 80806 // isDirection 80807 isHorizontal: function isHorizontal() { 80808 return swiper.params.direction === 'horizontal'; 80809 }, 80810 isVertical: function isVertical() { 80811 return swiper.params.direction === 'vertical'; 80812 }, 80813 // RTL 80814 rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl', 80815 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), 80816 wrongRTL: $wrapperEl.css('display') === '-webkit-box', 80817 // Indexes 80818 activeIndex: 0, 80819 realIndex: 0, 80820 // 80821 isBeginning: true, 80822 isEnd: false, 80823 // Props 80824 translate: 0, 80825 previousTranslate: 0, 80826 progress: 0, 80827 velocity: 0, 80828 animating: false, 80829 // Locks 80830 allowSlideNext: swiper.params.allowSlideNext, 80831 allowSlidePrev: swiper.params.allowSlidePrev, 80832 // Touch Events 80833 touchEvents: function touchEvents() { 80834 var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel']; 80835 var desktop = ['mousedown', 'mousemove', 'mouseup']; 80836 80837 if (swiper.support.pointerEvents) { 80838 desktop = ['pointerdown', 'pointermove', 'pointerup']; 80839 } 80840 80841 swiper.touchEventsTouch = { 80842 start: touch[0], 80843 move: touch[1], 80844 end: touch[2], 80845 cancel: touch[3] 80846 }; 80847 swiper.touchEventsDesktop = { 80848 start: desktop[0], 80849 move: desktop[1], 80850 end: desktop[2] 80851 }; 80852 return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; 80853 }(), 80854 touchEventsData: { 80855 isTouched: undefined, 80856 isMoved: undefined, 80857 allowTouchCallbacks: undefined, 80858 touchStartTime: undefined, 80859 isScrolling: undefined, 80860 currentTranslate: undefined, 80861 startTranslate: undefined, 80862 allowThresholdMove: undefined, 80863 // Form elements to match 80864 formElements: 'input, select, option, textarea, button, video, label', 80865 // Last click time 80866 lastClickTime: Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])(), 80867 clickTimeout: undefined, 80868 // Velocities 80869 velocities: [], 80870 allowMomentumBounce: undefined, 80871 isTouchEvent: undefined, 80872 startMoving: undefined 80873 }, 80874 // Clicks 80875 allowClick: true, 80876 // Touches 80877 allowTouchMove: swiper.params.allowTouchMove, 80878 touches: { 80879 startX: 0, 80880 startY: 0, 80881 currentX: 0, 80882 currentY: 0, 80883 diff: 0 80884 }, 80885 // Images 80886 imagesToLoad: [], 80887 imagesLoaded: 0 80888 }); // Install Modules 80889 80890 swiper.useModules(); 80891 swiper.emit('_swiper'); // Init 80892 80893 if (swiper.params.init) { 80894 swiper.init(); 80895 } // Return app instance 80896 80897 80898 return swiper; 80899 } 80900 80901 var _proto = Swiper.prototype; 80902 80903 _proto.emitContainerClasses = function emitContainerClasses() { 80904 var swiper = this; 80905 if (!swiper.params._emitClasses || !swiper.el) return; 80906 var classes = swiper.el.className.split(' ').filter(function (className) { 80907 return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 80908 }); 80909 swiper.emit('_containerClasses', classes.join(' ')); 80910 }; 80911 80912 _proto.emitSlidesClasses = function emitSlidesClasses() { 80913 var swiper = this; 80914 if (!swiper.params._emitClasses || !swiper.el) return; 80915 swiper.slides.each(function (slideEl) { 80916 var classes = slideEl.className.split(' ').filter(function (className) { 80917 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 80918 }); 80919 swiper.emit('_slideClass', slideEl, classes.join(' ')); 80920 }); 80921 }; 80922 80923 _proto.slidesPerViewDynamic = function slidesPerViewDynamic() { 80924 var swiper = this; 80925 var params = swiper.params, 80926 slides = swiper.slides, 80927 slidesGrid = swiper.slidesGrid, 80928 swiperSize = swiper.size, 80929 activeIndex = swiper.activeIndex; 80930 var spv = 1; 80931 80932 if (params.centeredSlides) { 80933 var slideSize = slides[activeIndex].swiperSlideSize; 80934 var breakLoop; 80935 80936 for (var i = activeIndex + 1; i < slides.length; i += 1) { 80937 if (slides[i] && !breakLoop) { 80938 slideSize += slides[i].swiperSlideSize; 80939 spv += 1; 80940 if (slideSize > swiperSize) breakLoop = true; 80941 } 80942 } 80943 80944 for (var _i = activeIndex - 1; _i >= 0; _i -= 1) { 80945 if (slides[_i] && !breakLoop) { 80946 slideSize += slides[_i].swiperSlideSize; 80947 spv += 1; 80948 if (slideSize > swiperSize) breakLoop = true; 80949 } 80950 } 80951 } else { 80952 for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) { 80953 if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) { 80954 spv += 1; 80955 } 80956 } 80957 } 80958 80959 return spv; 80960 }; 80961 80962 _proto.update = function update() { 80963 var swiper = this; 80964 if (!swiper || swiper.destroyed) return; 80965 var snapGrid = swiper.snapGrid, 80966 params = swiper.params; // Breakpoints 80967 80968 if (params.breakpoints) { 80969 swiper.setBreakpoint(); 80970 } 80971 80972 swiper.updateSize(); 80973 swiper.updateSlides(); 80974 swiper.updateProgress(); 80975 swiper.updateSlidesClasses(); 80976 80977 function setTranslate() { 80978 var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 80979 var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 80980 swiper.setTranslate(newTranslate); 80981 swiper.updateActiveIndex(); 80982 swiper.updateSlidesClasses(); 80983 } 80984 80985 var translated; 80986 80987 if (swiper.params.freeMode) { 80988 setTranslate(); 80989 80990 if (swiper.params.autoHeight) { 80991 swiper.updateAutoHeight(); 80992 } 80993 } else { 80994 if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { 80995 translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); 80996 } else { 80997 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 80998 } 80999 81000 if (!translated) { 81001 setTranslate(); 81002 } 81003 } 81004 81005 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 81006 swiper.checkOverflow(); 81007 } 81008 81009 swiper.emit('update'); 81010 }; 81011 81012 _proto.changeDirection = function changeDirection(newDirection, needUpdate) { 81013 if (needUpdate === void 0) { 81014 needUpdate = true; 81015 } 81016 81017 var swiper = this; 81018 var currentDirection = swiper.params.direction; 81019 81020 if (!newDirection) { 81021 // eslint-disable-next-line 81022 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 81023 } 81024 81025 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 81026 return swiper; 81027 } 81028 81029 swiper.$el.removeClass("" + swiper.params.containerModifierClass + currentDirection).addClass("" + swiper.params.containerModifierClass + newDirection); 81030 swiper.emitContainerClasses(); 81031 swiper.params.direction = newDirection; 81032 swiper.slides.each(function (slideEl) { 81033 if (newDirection === 'vertical') { 81034 slideEl.style.width = ''; 81035 } else { 81036 slideEl.style.height = ''; 81037 } 81038 }); 81039 swiper.emit('changeDirection'); 81040 if (needUpdate) swiper.update(); 81041 return swiper; 81042 }; 81043 81044 _proto.init = function init() { 81045 var swiper = this; 81046 if (swiper.initialized) return; 81047 swiper.emit('beforeInit'); // Set breakpoint 81048 81049 if (swiper.params.breakpoints) { 81050 swiper.setBreakpoint(); 81051 } // Add Classes 81052 81053 81054 swiper.addClasses(); // Create loop 81055 81056 if (swiper.params.loop) { 81057 swiper.loopCreate(); 81058 } // Update size 81059 81060 81061 swiper.updateSize(); // Update slides 81062 81063 swiper.updateSlides(); 81064 81065 if (swiper.params.watchOverflow) { 81066 swiper.checkOverflow(); 81067 } // Set Grab Cursor 81068 81069 81070 if (swiper.params.grabCursor) { 81071 swiper.setGrabCursor(); 81072 } 81073 81074 if (swiper.params.preloadImages) { 81075 swiper.preloadImages(); 81076 } // Slide To Initial Slide 81077 81078 81079 if (swiper.params.loop) { 81080 swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit); 81081 } else { 81082 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit); 81083 } // Attach events 81084 81085 81086 swiper.attachEvents(); // Init Flag 81087 81088 swiper.initialized = true; // Emit 81089 81090 swiper.emit('init'); 81091 }; 81092 81093 _proto.destroy = function destroy(deleteInstance, cleanStyles) { 81094 if (deleteInstance === void 0) { 81095 deleteInstance = true; 81096 } 81097 81098 if (cleanStyles === void 0) { 81099 cleanStyles = true; 81100 } 81101 81102 var swiper = this; 81103 var params = swiper.params, 81104 $el = swiper.$el, 81105 $wrapperEl = swiper.$wrapperEl, 81106 slides = swiper.slides; 81107 81108 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 81109 return null; 81110 } 81111 81112 swiper.emit('beforeDestroy'); // Init Flag 81113 81114 swiper.initialized = false; // Detach events 81115 81116 swiper.detachEvents(); // Destroy loop 81117 81118 if (params.loop) { 81119 swiper.loopDestroy(); 81120 } // Cleanup styles 81121 81122 81123 if (cleanStyles) { 81124 swiper.removeClasses(); 81125 $el.removeAttr('style'); 81126 $wrapperEl.removeAttr('style'); 81127 81128 if (slides && slides.length) { 81129 slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index'); 81130 } 81131 } 81132 81133 swiper.emit('destroy'); // Detach emitter events 81134 81135 Object.keys(swiper.eventsListeners).forEach(function (eventName) { 81136 swiper.off(eventName); 81137 }); 81138 81139 if (deleteInstance !== false) { 81140 swiper.$el[0].swiper = null; 81141 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["deleteProps"])(swiper); 81142 } 81143 81144 swiper.destroyed = true; 81145 return null; 81146 }; 81147 81148 Swiper.extendDefaults = function extendDefaults(newDefaults) { 81149 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(extendedDefaults, newDefaults); 81150 }; 81151 81152 Swiper.installModule = function installModule(module) { 81153 if (!Swiper.prototype.modules) Swiper.prototype.modules = {}; 81154 var name = module.name || Object.keys(Swiper.prototype.modules).length + "_" + Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["now"])(); 81155 Swiper.prototype.modules[name] = module; 81156 }; 81157 81158 Swiper.use = function use(module) { 81159 if (Array.isArray(module)) { 81160 module.forEach(function (m) { 81161 return Swiper.installModule(m); 81162 }); 81163 return Swiper; 81164 } 81165 81166 Swiper.installModule(module); 81167 return Swiper; 81168 }; 81169 81170 _createClass(Swiper, null, [{ 81171 key: "extendedDefaults", 81172 get: function get() { 81173 return extendedDefaults; 81174 } 81175 }, { 81176 key: "defaults", 81177 get: function get() { 81178 return defaults; 81179 } 81180 }]); 81181 81182 return Swiper; 81183}(); 81184 81185var Resize = { 81186 name: 'resize', 81187 create: function create() { 81188 var swiper = this; 81189 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["extend"])(swiper, { 81190 resize: { 81191 resizeHandler: function resizeHandler() { 81192 if (!swiper || swiper.destroyed || !swiper.initialized) return; 81193 swiper.emit('beforeResize'); 81194 swiper.emit('resize'); 81195 }, 81196 orientationChangeHandler: function orientationChangeHandler() { 81197 if (!swiper || swiper.destroyed || !swiper.initialized) return; 81198 swiper.emit('orientationchange'); 81199 } 81200 } 81201 }); 81202 }, 81203 on: { 81204 init: function init(swiper) { 81205 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); // Emit resize 81206 81207 window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange 81208 81209 window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler); 81210 }, 81211 destroy: function destroy(swiper) { 81212 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); 81213 window.removeEventListener('resize', swiper.resize.resizeHandler); 81214 window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler); 81215 } 81216 } 81217}; 81218 81219var Observer = { 81220 attach: function attach(target, options) { 81221 if (options === void 0) { 81222 options = {}; 81223 } 81224 81225 var window = Object(ssr_window__WEBPACK_IMPORTED_MODULE_5__["getWindow"])(); 81226 var swiper = this; 81227 var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 81228 var observer = new ObserverFunc(function (mutations) { 81229 // The observerUpdate event should only be triggered 81230 // once despite the number of mutations. Additional 81231 // triggers are redundant and are very costly 81232 if (mutations.length === 1) { 81233 swiper.emit('observerUpdate', mutations[0]); 81234 return; 81235 } 81236 81237 var observerUpdate = function observerUpdate() { 81238 swiper.emit('observerUpdate', mutations[0]); 81239 }; 81240 81241 if (window.requestAnimationFrame) { 81242 window.requestAnimationFrame(observerUpdate); 81243 } else { 81244 window.setTimeout(observerUpdate, 0); 81245 } 81246 }); 81247 observer.observe(target, { 81248 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 81249 childList: typeof options.childList === 'undefined' ? true : options.childList, 81250 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 81251 }); 81252 swiper.observer.observers.push(observer); 81253 }, 81254 init: function init() { 81255 var swiper = this; 81256 if (!swiper.support.observer || !swiper.params.observer) return; 81257 81258 if (swiper.params.observeParents) { 81259 var containerParents = swiper.$el.parents(); 81260 81261 for (var i = 0; i < containerParents.length; i += 1) { 81262 swiper.observer.attach(containerParents[i]); 81263 } 81264 } // Observe container 81265 81266 81267 swiper.observer.attach(swiper.$el[0], { 81268 childList: swiper.params.observeSlideChildren 81269 }); // Observe wrapper 81270 81271 swiper.observer.attach(swiper.$wrapperEl[0], { 81272 attributes: false 81273 }); 81274 }, 81275 destroy: function destroy() { 81276 var swiper = this; 81277 swiper.observer.observers.forEach(function (observer) { 81278 observer.disconnect(); 81279 }); 81280 swiper.observer.observers = []; 81281 } 81282}; 81283var Observer$1 = { 81284 name: 'observer', 81285 params: { 81286 observer: false, 81287 observeParents: false, 81288 observeSlideChildren: false 81289 }, 81290 create: function create() { 81291 var swiper = this; 81292 Object(_esm_utils_utils__WEBPACK_IMPORTED_MODULE_1__["bindModuleMethods"])(swiper, { 81293 observer: _extends(_extends({}, Observer), {}, { 81294 observers: [] 81295 }) 81296 }); 81297 }, 81298 on: { 81299 init: function init(swiper) { 81300 swiper.observer.init(); 81301 }, 81302 destroy: function destroy(swiper) { 81303 swiper.observer.destroy(); 81304 } 81305 } 81306}; 81307 81308// Swiper Class 81309var components = [Resize, Observer$1]; 81310Swiper.use(components); 81311 81312/* harmony default export */ __webpack_exports__["default"] = (Swiper); 81313 81314 81315 81316/***/ }), 81317
vendor: 13,456 bytes, lines 81318-81565
81318/***/ "./node_modules/tslib/tslib.es6.js": 81319/*!*****************************************!*\ 81320 !*** ./node_modules/tslib/tslib.es6.js ***! 81321 \*****************************************/ 81322/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet */ 81323/***/ (function(module, __webpack_exports__, __webpack_require__) { 81324 81325"use strict"; 81326__webpack_require__.r(__webpack_exports__); 81327/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); 81328/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); 81329/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); 81330/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); 81331/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); 81332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); 81333/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); 81334/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); 81335/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); 81336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); 81337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); 81338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); 81339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; }); 81340/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); 81341/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); 81342/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); 81343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); 81344/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); 81345/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); 81346/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); 81347/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldGet", function() { return __classPrivateFieldGet; }); 81348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__classPrivateFieldSet", function() { return __classPrivateFieldSet; }); 81349/*! ***************************************************************************** 81350Copyright (c) Microsoft Corporation. 81351 81352Permission to use, copy, modify, and/or distribute this software for any 81353purpose with or without fee is hereby granted. 81354 81355THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 81356REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 81357AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 81358INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 81359LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 81360OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 81361PERFORMANCE OF THIS SOFTWARE. 81362***************************************************************************** */ 81363/* global Reflect, Promise */ 81364 81365var extendStatics = function(d, b) { 81366 extendStatics = Object.setPrototypeOf || 81367 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 81368 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; 81369 return extendStatics(d, b); 81370}; 81371 81372function __extends(d, b) { 81373 extendStatics(d, b); 81374 function __() { this.constructor = d; } 81375 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 81376} 81377 81378var __assign = function() { 81379 __assign = Object.assign || function __assign(t) { 81380 for (var s, i = 1, n = arguments.length; i < n; i++) { 81381 s = arguments[i]; 81382 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; 81383 } 81384 return t; 81385 } 81386 return __assign.apply(this, arguments); 81387} 81388 81389function __rest(s, e) { 81390 var t = {}; 81391 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) 81392 t[p] = s[p]; 81393 if (s != null && typeof Object.getOwnPropertySymbols === "function") 81394 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { 81395 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) 81396 t[p[i]] = s[p[i]]; 81397 } 81398 return t; 81399} 81400 81401function __decorate(decorators, target, key, desc) { 81402 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 81403 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 81404 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 81405 return c > 3 && r && Object.defineProperty(target, key, r), r; 81406} 81407 81408function __param(paramIndex, decorator) { 81409 return function (target, key) { decorator(target, key, paramIndex); } 81410} 81411 81412function __metadata(metadataKey, metadataValue) { 81413 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); 81414} 81415 81416function __awaiter(thisArg, _arguments, P, generator) { 81417 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 81418 return new (P || (P = Promise))(function (resolve, reject) { 81419 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 81420 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 81421 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 81422 step((generator = generator.apply(thisArg, _arguments || [])).next()); 81423 }); 81424} 81425 81426function __generator(thisArg, body) { 81427 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 81428 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 81429 function verb(n) { return function (v) { return step([n, v]); }; } 81430 function step(op) { 81431 if (f) throw new TypeError("Generator is already executing."); 81432 while (_) try { 81433 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 81434 if (y = 0, t) op = [op[0] & 2, t.value]; 81435 switch (op[0]) { 81436 case 0: case 1: t = op; break; 81437 case 4: _.label++; return { value: op[1], done: false }; 81438 case 5: _.label++; y = op[1]; op = [0]; continue; 81439 case 7: op = _.ops.pop(); _.trys.pop(); continue; 81440 default: 81441 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 81442 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 81443 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 81444 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 81445 if (t[2]) _.ops.pop(); 81446 _.trys.pop(); continue; 81447 } 81448 op = body.call(thisArg, _); 81449 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 81450 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 81451 } 81452} 81453 81454function __exportStar(m, exports) { 81455 for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; 81456} 81457 81458function __values(o) { 81459 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; 81460 if (m) return m.call(o); 81461 if (o && typeof o.length === "number") return { 81462 next: function () { 81463 if (o && i >= o.length) o = void 0; 81464 return { value: o && o[i++], done: !o }; 81465 } 81466 }; 81467 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); 81468} 81469 81470function __read(o, n) { 81471 var m = typeof Symbol === "function" && o[Symbol.iterator]; 81472 if (!m) return o; 81473 var i = m.call(o), r, ar = [], e; 81474 try { 81475 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); 81476 } 81477 catch (error) { e = { error: error }; } 81478 finally { 81479 try { 81480 if (r && !r.done && (m = i["return"])) m.call(i); 81481 } 81482 finally { if (e) throw e.error; } 81483 } 81484 return ar; 81485} 81486 81487function __spread() { 81488 for (var ar = [], i = 0; i < arguments.length; i++) 81489 ar = ar.concat(__read(arguments[i])); 81490 return ar; 81491} 81492 81493function __spreadArrays() { 81494 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; 81495 for (var r = Array(s), k = 0, i = 0; i < il; i++) 81496 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) 81497 r[k] = a[j]; 81498 return r; 81499}; 81500 81501function __await(v) { 81502 return this instanceof __await ? (this.v = v, this) : new __await(v); 81503} 81504 81505function __asyncGenerator(thisArg, _arguments, generator) { 81506 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); 81507 var g = generator.apply(thisArg, _arguments || []), i, q = []; 81508 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 81509 function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } 81510 function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } 81511 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } 81512 function fulfill(value) { resume("next", value); } 81513 function reject(value) { resume("throw", value); } 81514 function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } 81515} 81516 81517function __asyncDelegator(o) { 81518 var i, p; 81519 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; 81520 function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } 81521} 81522 81523function __asyncValues(o) { 81524 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); 81525 var m = o[Symbol.asyncIterator], i; 81526 return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); 81527 function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } 81528 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } 81529} 81530 81531function __makeTemplateObject(cooked, raw) { 81532 if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } 81533 return cooked; 81534}; 81535 81536function __importStar(mod) { 81537 if (mod && mod.__esModule) return mod; 81538 var result = {}; 81539 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; 81540 result.default = mod; 81541 return result; 81542} 81543 81544function __importDefault(mod) { 81545 return (mod && mod.__esModule) ? mod : { default: mod }; 81546} 81547 81548function __classPrivateFieldGet(receiver, privateMap) { 81549 if (!privateMap.has(receiver)) { 81550 throw new TypeError("attempted to get private field on non-instance"); 81551 } 81552 return privateMap.get(receiver); 81553} 81554 81555function __classPrivateFieldSet(receiver, privateMap, value) { 81556 if (!privateMap.has(receiver)) { 81557 throw new TypeError("attempted to set private field on non-instance"); 81558 } 81559 privateMap.set(receiver, value); 81560 return value; 81561} 81562 81563 81564/***/ }), 81565
vendor: 1,380 bytes, lines 81566-81580
81566/***/ "./node_modules/unfetch/dist/unfetch.mjs": 81567/*!***********************************************!*\ 81568 !*** ./node_modules/unfetch/dist/unfetch.mjs ***! 81569 \***********************************************/ 81570/*! exports provided: default */ 81571/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) { 81572 81573"use strict"; 81574__webpack_require__.r(__webpack_exports__); 81575/* harmony default export */ __webpack_exports__["default"] = (function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(JSON.parse(s.responseText))},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||"get",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+","+t:t}),t(a())},s.onerror=r,s.withCredentials="include"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}); 81576//# sourceMappingURL=unfetch.mjs.map 81577 81578 81579/***/ }), 81580
vendor: 4,142 bytes, lines 81581-81671
81581/***/ "./node_modules/universal-cookie/es6/Cookies.js": 81582/*!******************************************************!*\ 81583 !*** ./node_modules/universal-cookie/es6/Cookies.js ***! 81584 \******************************************************/ 81585/*! exports provided: default */ 81586/***/ (function(module, __webpack_exports__, __webpack_require__) { 81587 81588"use strict"; 81589__webpack_require__.r(__webpack_exports__); 81590/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cookie */ "./node_modules/cookie/index.js"); 81591/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cookie__WEBPACK_IMPORTED_MODULE_0__); 81592/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./node_modules/universal-cookie/es6/utils.js"); 81593 81594 81595// We can't please Rollup and TypeScript at the same time 81596// Only way to make both of them work 81597var objectAssign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js"); 81598var Cookies = /** @class */ (function () { 81599 function Cookies(cookies, options) { 81600 var _this = this; 81601 this.changeListeners = []; 81602 this.HAS_DOCUMENT_COOKIE = false; 81603 this.cookies = Object(_utils__WEBPACK_IMPORTED_MODULE_1__["parseCookies"])(cookies, options); 81604 new Promise(function () { 81605 _this.HAS_DOCUMENT_COOKIE = Object(_utils__WEBPACK_IMPORTED_MODULE_1__["hasDocumentCookie"])(); 81606 }).catch(function () { }); 81607 } 81608 Cookies.prototype._updateBrowserValues = function (parseOptions) { 81609 if (!this.HAS_DOCUMENT_COOKIE) { 81610 return; 81611 } 81612 this.cookies = cookie__WEBPACK_IMPORTED_MODULE_0__["parse"](document.cookie, parseOptions); 81613 }; 81614 Cookies.prototype._emitChange = function (params) { 81615 for (var i = 0; i < this.changeListeners.length; ++i) { 81616 this.changeListeners[i](params); 81617 } 81618 }; 81619 Cookies.prototype.get = function (name, options, parseOptions) { 81620 if (options === void 0) { options = {}; } 81621 this._updateBrowserValues(parseOptions); 81622 return Object(_utils__WEBPACK_IMPORTED_MODULE_1__["readCookie"])(this.cookies[name], options); 81623 }; 81624 Cookies.prototype.getAll = function (options, parseOptions) { 81625 if (options === void 0) { options = {}; } 81626 this._updateBrowserValues(parseOptions); 81627 var result = {}; 81628 for (var name_1 in this.cookies) { 81629 result[name_1] = Object(_utils__WEBPACK_IMPORTED_MODULE_1__["readCookie"])(this.cookies[name_1], options); 81630 } 81631 return result; 81632 }; 81633 Cookies.prototype.set = function (name, value, options) { 81634 var _a; 81635 if (typeof value === 'object') { 81636 value = JSON.stringify(value); 81637 } 81638 this.cookies = objectAssign({}, this.cookies, (_a = {}, _a[name] = value, _a)); 81639 if (this.HAS_DOCUMENT_COOKIE) { 81640 document.cookie = cookie__WEBPACK_IMPORTED_MODULE_0__["serialize"](name, value, options); 81641 } 81642 this._emitChange({ name: name, value: value, options: options }); 81643 }; 81644 Cookies.prototype.remove = function (name, options) { 81645 var finalOptions = (options = objectAssign({}, options, { 81646 expires: new Date(1970, 1, 1, 0, 0, 1), 81647 maxAge: 0 81648 })); 81649 this.cookies = objectAssign({}, this.cookies); 81650 delete this.cookies[name]; 81651 if (this.HAS_DOCUMENT_COOKIE) { 81652 document.cookie = cookie__WEBPACK_IMPORTED_MODULE_0__["serialize"](name, '', finalOptions); 81653 } 81654 this._emitChange({ name: name, value: undefined, options: options }); 81655 }; 81656 Cookies.prototype.addChangeListener = function (callback) { 81657 this.changeListeners.push(callback); 81658 }; 81659 Cookies.prototype.removeChangeListener = function (callback) { 81660 var idx = this.changeListeners.indexOf(callback); 81661 if (idx >= 0) { 81662 this.changeListeners.splice(idx, 1); 81663 } 81664 }; 81665 return Cookies; 81666}()); 81667/* harmony default export */ __webpack_exports__["default"] = (Cookies); 81668 81669 81670/***/ }), 81671
vendor: 670 bytes, lines 81672-81687
81672/***/ "./node_modules/universal-cookie/es6/index.js": 81673/*!****************************************************!*\ 81674 !*** ./node_modules/universal-cookie/es6/index.js ***! 81675 \****************************************************/ 81676/*! exports provided: default */ 81677/***/ (function(module, __webpack_exports__, __webpack_require__) { 81678 81679"use strict"; 81680__webpack_require__.r(__webpack_exports__); 81681/* harmony import */ var _Cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Cookies */ "./node_modules/universal-cookie/es6/Cookies.js"); 81682 81683/* harmony default export */ __webpack_exports__["default"] = (_Cookies__WEBPACK_IMPORTED_MODULE_0__["default"]); 81684 81685 81686/***/ }), 81687
vendor: 3,111 bytes, lines 81688-81760
81688/***/ "./node_modules/universal-cookie/es6/utils.js": 81689/*!****************************************************!*\ 81690 !*** ./node_modules/universal-cookie/es6/utils.js ***! 81691 \****************************************************/ 81692/*! exports provided: hasDocumentCookie, cleanCookies, parseCookies, isParsingCookie, readCookie */ 81693/***/ (function(module, __webpack_exports__, __webpack_require__) { 81694 81695"use strict"; 81696__webpack_require__.r(__webpack_exports__); 81697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasDocumentCookie", function() { return hasDocumentCookie; }); 81698/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanCookies", function() { return cleanCookies; }); 81699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseCookies", function() { return parseCookies; }); 81700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isParsingCookie", function() { return isParsingCookie; }); 81701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "readCookie", function() { return readCookie; }); 81702/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cookie */ "./node_modules/cookie/index.js"); 81703/* harmony import */ var cookie__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cookie__WEBPACK_IMPORTED_MODULE_0__); 81704 81705function hasDocumentCookie() { 81706 // Can we get/set cookies on document.cookie? 81707 return typeof document === 'object' && typeof document.cookie === 'string'; 81708} 81709function cleanCookies() { 81710 document.cookie.split(';').forEach(function (c) { 81711 document.cookie = c 81712 .replace(/^ +/, '') 81713 .replace(/=.*/, '=;expires=' + new Date().toUTCString() + ';path=/'); 81714 }); 81715} 81716function parseCookies(cookies, options) { 81717 if (typeof cookies === 'string') { 81718 return cookie__WEBPACK_IMPORTED_MODULE_0__["parse"](cookies, options); 81719 } 81720 else if (typeof cookies === 'object' && cookies !== null) { 81721 return cookies; 81722 } 81723 else { 81724 return {}; 81725 } 81726} 81727function isParsingCookie(value, doNotParse) { 81728 if (typeof doNotParse === 'undefined') { 81729 // We guess if the cookie start with { or [, it has been serialized 81730 doNotParse = 81731 !value || (value[0] !== '{' && value[0] !== '[' && value[0] !== '"'); 81732 } 81733 return !doNotParse; 81734} 81735function readCookie(value, options) { 81736 if (options === void 0) { options = {}; } 81737 var cleanValue = cleanupCookieValue(value); 81738 if (isParsingCookie(cleanValue, options.doNotParse)) { 81739 try { 81740 return JSON.parse(cleanValue); 81741 } 81742 catch (e) { 81743 // At least we tried 81744 } 81745 } 81746 // Ignore clean value if we failed the deserialization 81747 // It is not relevant anymore to trim those values 81748 return value; 81749} 81750function cleanupCookieValue(value) { 81751 // express prepend j: before serializing a cookie 81752 if (value && value[0] === 'j' && value[1] === ':') { 81753 return value.substr(2); 81754 } 81755 return value; 81756} 81757 81758 81759/***/ }), 81760
vendor: 23,761 bytes, lines 81761-82504
81761/***/ "./node_modules/url/url.js": 81762/*!*********************************!*\ 81763 !*** ./node_modules/url/url.js ***! 81764 \*********************************/ 81765/*! no static exports found */ 81766/***/ (function(module, exports, __webpack_require__) { 81767 81768"use strict"; 81769// Copyright Joyent, Inc. and other Node contributors. 81770// 81771// Permission is hereby granted, free of charge, to any person obtaining a 81772// copy of this software and associated documentation files (the 81773// "Software"), to deal in the Software without restriction, including 81774// without limitation the rights to use, copy, modify, merge, publish, 81775// distribute, sublicense, and/or sell copies of the Software, and to permit 81776// persons to whom the Software is furnished to do so, subject to the 81777// following conditions: 81778// 81779// The above copyright notice and this permission notice shall be included 81780// in all copies or substantial portions of the Software. 81781// 81782// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 81783// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 81784// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 81785// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 81786// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 81787// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 81788// USE OR OTHER DEALINGS IN THE SOFTWARE. 81789 81790 81791 81792var punycode = __webpack_require__(/*! punycode */ "./node_modules/node-libs-browser/node_modules/punycode/punycode.js"); 81793var util = __webpack_require__(/*! ./util */ "./node_modules/url/util.js"); 81794 81795exports.parse = urlParse; 81796exports.resolve = urlResolve; 81797exports.resolveObject = urlResolveObject; 81798exports.format = urlFormat; 81799 81800exports.Url = Url; 81801 81802function Url() { 81803 this.protocol = null; 81804 this.slashes = null; 81805 this.auth = null; 81806 this.host = null; 81807 this.port = null; 81808 this.hostname = null; 81809 this.hash = null; 81810 this.search = null; 81811 this.query = null; 81812 this.pathname = null; 81813 this.path = null; 81814 this.href = null; 81815} 81816 81817// Reference: RFC 3986, RFC 1808, RFC 2396 81818 81819// define these here so at least they only have to be 81820// compiled once on the first module load. 81821var protocolPattern = /^([a-z0-9.+-]+:)/i, 81822 portPattern = /:[0-9]*$/, 81823 81824 // Special case for a simple path URL 81825 simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, 81826 81827 // RFC 2396: characters reserved for delimiting URLs. 81828 // We actually just auto-escape these. 81829 delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], 81830 81831 // RFC 2396: characters not allowed for various reasons. 81832 unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), 81833 81834 // Allowed by RFCs, but cause of XSS attacks. Always escape these. 81835 autoEscape = ['\''].concat(unwise), 81836 // Characters that are never ever allowed in a hostname. 81837 // Note that any invalid chars are also handled, but these 81838 // are the ones that are *expected* to be seen, so we fast-path 81839 // them. 81840 nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), 81841 hostEndingChars = ['/', '?', '#'], 81842 hostnameMaxLen = 255, 81843 hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, 81844 hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, 81845 // protocols that can allow "unsafe" and "unwise" chars. 81846 unsafeProtocol = { 81847 'javascript': true, 81848 'javascript:': true 81849 }, 81850 // protocols that never have a hostname. 81851 hostlessProtocol = { 81852 'javascript': true, 81853 'javascript:': true 81854 }, 81855 // protocols that always contain a // bit. 81856 slashedProtocol = { 81857 'http': true, 81858 'https': true, 81859 'ftp': true, 81860 'gopher': true, 81861 'file': true, 81862 'http:': true, 81863 'https:': true, 81864 'ftp:': true, 81865 'gopher:': true, 81866 'file:': true 81867 }, 81868 querystring = __webpack_require__(/*! querystring */ "./node_modules/querystring-es3/index.js"); 81869 81870function urlParse(url, parseQueryString, slashesDenoteHost) { 81871 if (url && util.isObject(url) && url instanceof Url) return url; 81872 81873 var u = new Url; 81874 u.parse(url, parseQueryString, slashesDenoteHost); 81875 return u; 81876} 81877 81878Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { 81879 if (!util.isString(url)) { 81880 throw new TypeError("Parameter 'url' must be a string, not " + typeof url); 81881 } 81882 81883 // Copy chrome, IE, opera backslash-handling behavior. 81884 // Back slashes before the query string get converted to forward slashes 81885 // See: https://code.google.com/p/chromium/issues/detail?id=25916 81886 var queryIndex = url.indexOf('?'), 81887 splitter = 81888 (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', 81889 uSplit = url.split(splitter), 81890 slashRegex = /\\/g; 81891 uSplit[0] = uSplit[0].replace(slashRegex, '/'); 81892 url = uSplit.join(splitter); 81893 81894 var rest = url; 81895 81896 // trim before proceeding. 81897 // This is to support parse stuff like " http://foo.com \n" 81898 rest = rest.trim(); 81899 81900 if (!slashesDenoteHost && url.split('#').length === 1) { 81901 // Try fast path regexp 81902 var simplePath = simplePathPattern.exec(rest); 81903 if (simplePath) { 81904 this.path = rest; 81905 this.href = rest; 81906 this.pathname = simplePath[1]; 81907 if (simplePath[2]) { 81908 this.search = simplePath[2]; 81909 if (parseQueryString) { 81910 this.query = querystring.parse(this.search.substr(1)); 81911 } else { 81912 this.query = this.search.substr(1); 81913 } 81914 } else if (parseQueryString) { 81915 this.search = ''; 81916 this.query = {}; 81917 } 81918 return this; 81919 } 81920 } 81921 81922 var proto = protocolPattern.exec(rest); 81923 if (proto) { 81924 proto = proto[0]; 81925 var lowerProto = proto.toLowerCase(); 81926 this.protocol = lowerProto; 81927 rest = rest.substr(proto.length); 81928 } 81929 81930 // figure out if it's got a host 81931 // user@server is *always* interpreted as a hostname, and url 81932 // resolution will treat //foo/bar as host=foo,path=bar because that's 81933 // how the browser resolves relative URLs. 81934 if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { 81935 var slashes = rest.substr(0, 2) === '//'; 81936 if (slashes && !(proto && hostlessProtocol[proto])) { 81937 rest = rest.substr(2); 81938 this.slashes = true; 81939 } 81940 } 81941 81942 if (!hostlessProtocol[proto] && 81943 (slashes || (proto && !slashedProtocol[proto]))) { 81944 81945 // there's a hostname. 81946 // the first instance of /, ?, ;, or # ends the host. 81947 // 81948 // If there is an @ in the hostname, then non-host chars *are* allowed 81949 // to the left of the last @ sign, unless some host-ending character 81950 // comes *before* the @-sign. 81951 // URLs are obnoxious. 81952 // 81953 // ex: 81954 // http://a@b@c/ => user:a@b host:c 81955 // http://a@b?@c => user:a host:c path:/?@c 81956 81957 // v0.12 TODO(isaacs): This is not quite how Chrome does things. 81958 // Review our test case against browsers more comprehensively. 81959 81960 // find the first instance of any hostEndingChars 81961 var hostEnd = -1; 81962 for (var i = 0; i < hostEndingChars.length; i++) { 81963 var hec = rest.indexOf(hostEndingChars[i]); 81964 if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) 81965 hostEnd = hec; 81966 } 81967 81968 // at this point, either we have an explicit point where the 81969 // auth portion cannot go past, or the last @ char is the decider. 81970 var auth, atSign; 81971 if (hostEnd === -1) { 81972 // atSign can be anywhere. 81973 atSign = rest.lastIndexOf('@'); 81974 } else { 81975 // atSign must be in auth portion. 81976 // http://a@b/c@d => host:b auth:a path:/c@d 81977 atSign = rest.lastIndexOf('@', hostEnd); 81978 } 81979 81980 // Now we have a portion which is definitely the auth. 81981 // Pull that off. 81982 if (atSign !== -1) { 81983 auth = rest.slice(0, atSign); 81984 rest = rest.slice(atSign + 1); 81985 this.auth = decodeURIComponent(auth); 81986 } 81987 81988 // the host is the remaining to the left of the first non-host char 81989 hostEnd = -1; 81990 for (var i = 0; i < nonHostChars.length; i++) { 81991 var hec = rest.indexOf(nonHostChars[i]); 81992 if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) 81993 hostEnd = hec; 81994 } 81995 // if we still have not hit it, then the entire thing is a host. 81996 if (hostEnd === -1) 81997 hostEnd = rest.length; 81998 81999 this.host = rest.slice(0, hostEnd); 82000 rest = rest.slice(hostEnd); 82001 82002 // pull out port. 82003 this.parseHost(); 82004 82005 // we've indicated that there is a hostname, 82006 // so even if it's empty, it has to be present. 82007 this.hostname = this.hostname || ''; 82008 82009 // if hostname begins with [ and ends with ] 82010 // assume that it's an IPv6 address. 82011 var ipv6Hostname = this.hostname[0] === '[' && 82012 this.hostname[this.hostname.length - 1] === ']'; 82013 82014 // validate a little. 82015 if (!ipv6Hostname) { 82016 var hostparts = this.hostname.split(/\./); 82017 for (var i = 0, l = hostparts.length; i < l; i++) { 82018 var part = hostparts[i]; 82019 if (!part) continue; 82020 if (!part.match(hostnamePartPattern)) { 82021 var newpart = ''; 82022 for (var j = 0, k = part.length; j < k; j++) { 82023 if (part.charCodeAt(j) > 127) { 82024 // we replace non-ASCII char with a temporary placeholder 82025 // we need this to make sure size of hostname is not 82026 // broken by replacing non-ASCII by nothing 82027 newpart += 'x'; 82028 } else { 82029 newpart += part[j]; 82030 } 82031 } 82032 // we test again with ASCII char only 82033 if (!newpart.match(hostnamePartPattern)) { 82034 var validParts = hostparts.slice(0, i); 82035 var notHost = hostparts.slice(i + 1); 82036 var bit = part.match(hostnamePartStart); 82037 if (bit) { 82038 validParts.push(bit[1]); 82039 notHost.unshift(bit[2]); 82040 } 82041 if (notHost.length) { 82042 rest = '/' + notHost.join('.') + rest; 82043 } 82044 this.hostname = validParts.join('.'); 82045 break; 82046 } 82047 } 82048 } 82049 } 82050 82051 if (this.hostname.length > hostnameMaxLen) { 82052 this.hostname = ''; 82053 } else { 82054 // hostnames are always lower case. 82055 this.hostname = this.hostname.toLowerCase(); 82056 } 82057 82058 if (!ipv6Hostname) { 82059 // IDNA Support: Returns a punycoded representation of "domain". 82060 // It only converts parts of the domain name that 82061 // have non-ASCII characters, i.e. it doesn't matter if 82062 // you call it with a domain that already is ASCII-only. 82063 this.hostname = punycode.toASCII(this.hostname); 82064 } 82065 82066 var p = this.port ? ':' + this.port : ''; 82067 var h = this.hostname || ''; 82068 this.host = h + p; 82069 this.href += this.host; 82070 82071 // strip [ and ] from the hostname 82072 // the host field still retains them, though 82073 if (ipv6Hostname) { 82074 this.hostname = this.hostname.substr(1, this.hostname.length - 2); 82075 if (rest[0] !== '/') { 82076 rest = '/' + rest; 82077 } 82078 } 82079 } 82080 82081 // now rest is set to the post-host stuff. 82082 // chop off any delim chars. 82083 if (!unsafeProtocol[lowerProto]) { 82084 82085 // First, make 100% sure that any "autoEscape" chars get 82086 // escaped, even if encodeURIComponent doesn't think they 82087 // need to be. 82088 for (var i = 0, l = autoEscape.length; i < l; i++) { 82089 var ae = autoEscape[i]; 82090 if (rest.indexOf(ae) === -1) 82091 continue; 82092 var esc = encodeURIComponent(ae); 82093 if (esc === ae) { 82094 esc = escape(ae); 82095 } 82096 rest = rest.split(ae).join(esc); 82097 } 82098 } 82099 82100 82101 // chop off from the tail first. 82102 var hash = rest.indexOf('#'); 82103 if (hash !== -1) { 82104 // got a fragment string. 82105 this.hash = rest.substr(hash); 82106 rest = rest.slice(0, hash); 82107 } 82108 var qm = rest.indexOf('?'); 82109 if (qm !== -1) { 82110 this.search = rest.substr(qm); 82111 this.query = rest.substr(qm + 1); 82112 if (parseQueryString) { 82113 this.query = querystring.parse(this.query); 82114 } 82115 rest = rest.slice(0, qm); 82116 } else if (parseQueryString) { 82117 // no query string, but parseQueryString still requested 82118 this.search = ''; 82119 this.query = {}; 82120 } 82121 if (rest) this.pathname = rest; 82122 if (slashedProtocol[lowerProto] && 82123 this.hostname && !this.pathname) { 82124 this.pathname = '/'; 82125 } 82126 82127 //to support http.request 82128 if (this.pathname || this.search) { 82129 var p = this.pathname || ''; 82130 var s = this.search || ''; 82131 this.path = p + s; 82132 } 82133 82134 // finally, reconstruct the href based on what has been validated. 82135 this.href = this.format(); 82136 return this; 82137}; 82138 82139// format a parsed object into a url string 82140function urlFormat(obj) { 82141 // ensure it's an object, and not a string url. 82142 // If it's an obj, this is a no-op. 82143 // this way, you can call url_format() on strings 82144 // to clean up potentially wonky urls. 82145 if (util.isString(obj)) obj = urlParse(obj); 82146 if (!(obj instanceof Url)) return Url.prototype.format.call(obj); 82147 return obj.format(); 82148} 82149 82150Url.prototype.format = function() { 82151 var auth = this.auth || ''; 82152 if (auth) { 82153 auth = encodeURIComponent(auth); 82154 auth = auth.replace(/%3A/i, ':'); 82155 auth += '@'; 82156 } 82157 82158 var protocol = this.protocol || '', 82159 pathname = this.pathname || '', 82160 hash = this.hash || '', 82161 host = false, 82162 query = ''; 82163 82164 if (this.host) { 82165 host = auth + this.host; 82166 } else if (this.hostname) { 82167 host = auth + (this.hostname.indexOf(':') === -1 ? 82168 this.hostname : 82169 '[' + this.hostname + ']'); 82170 if (this.port) { 82171 host += ':' + this.port; 82172 } 82173 } 82174 82175 if (this.query && 82176 util.isObject(this.query) && 82177 Object.keys(this.query).length) { 82178 query = querystring.stringify(this.query); 82179 } 82180 82181 var search = this.search || (query && ('?' + query)) || ''; 82182 82183 if (protocol && protocol.substr(-1) !== ':') protocol += ':'; 82184 82185 // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. 82186 // unless they had them to begin with. 82187 if (this.slashes || 82188 (!protocol || slashedProtocol[protocol]) && host !== false) { 82189 host = '//' + (host || ''); 82190 if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; 82191 } else if (!host) { 82192 host = ''; 82193 } 82194 82195 if (hash && hash.charAt(0) !== '#') hash = '#' + hash; 82196 if (search && search.charAt(0) !== '?') search = '?' + search; 82197 82198 pathname = pathname.replace(/[?#]/g, function(match) { 82199 return encodeURIComponent(match); 82200 }); 82201 search = search.replace('#', '%23'); 82202 82203 return protocol + host + pathname + search + hash; 82204}; 82205 82206function urlResolve(source, relative) { 82207 return urlParse(source, false, true).resolve(relative); 82208} 82209 82210Url.prototype.resolve = function(relative) { 82211 return this.resolveObject(urlParse(relative, false, true)).format(); 82212}; 82213 82214function urlResolveObject(source, relative) { 82215 if (!source) return relative; 82216 return urlParse(source, false, true).resolveObject(relative); 82217} 82218 82219Url.prototype.resolveObject = function(relative) { 82220 if (util.isString(relative)) { 82221 var rel = new Url(); 82222 rel.parse(relative, false, true); 82223 relative = rel; 82224 } 82225 82226 var result = new Url(); 82227 var tkeys = Object.keys(this); 82228 for (var tk = 0; tk < tkeys.length; tk++) { 82229 var tkey = tkeys[tk]; 82230 result[tkey] = this[tkey]; 82231 } 82232 82233 // hash is always overridden, no matter what. 82234 // even href="" will remove it. 82235 result.hash = relative.hash; 82236 82237 // if the relative url is empty, then there's nothing left to do here. 82238 if (relative.href === '') { 82239 result.href = result.format(); 82240 return result; 82241 } 82242 82243 // hrefs like //foo/bar always cut to the protocol. 82244 if (relative.slashes && !relative.protocol) { 82245 // take everything except the protocol from relative 82246 var rkeys = Object.keys(relative); 82247 for (var rk = 0; rk < rkeys.length; rk++) { 82248 var rkey = rkeys[rk]; 82249 if (rkey !== 'protocol') 82250 result[rkey] = relative[rkey]; 82251 } 82252 82253 //urlParse appends trailing / to urls like http://www.example.com 82254 if (slashedProtocol[result.protocol] && 82255 result.hostname && !result.pathname) { 82256 result.path = result.pathname = '/'; 82257 } 82258 82259 result.href = result.format(); 82260 return result; 82261 } 82262 82263 if (relative.protocol && relative.protocol !== result.protocol) { 82264 // if it's a known url protocol, then changing 82265 // the protocol does weird things 82266 // first, if it's not file:, then we MUST have a host, 82267 // and if there was a path 82268 // to begin with, then we MUST have a path. 82269 // if it is file:, then the host is dropped, 82270 // because that's known to be hostless. 82271 // anything else is assumed to be absolute. 82272 if (!slashedProtocol[relative.protocol]) { 82273 var keys = Object.keys(relative); 82274 for (var v = 0; v < keys.length; v++) { 82275 var k = keys[v]; 82276 result[k] = relative[k]; 82277 } 82278 result.href = result.format(); 82279 return result; 82280 } 82281 82282 result.protocol = relative.protocol; 82283 if (!relative.host && !hostlessProtocol[relative.protocol]) { 82284 var relPath = (relative.pathname || '').split('/'); 82285 while (relPath.length && !(relative.host = relPath.shift())); 82286 if (!relative.host) relative.host = ''; 82287 if (!relative.hostname) relative.hostname = ''; 82288 if (relPath[0] !== '') relPath.unshift(''); 82289 if (relPath.length < 2) relPath.unshift(''); 82290 result.pathname = relPath.join('/'); 82291 } else { 82292 result.pathname = relative.pathname; 82293 } 82294 result.search = relative.search; 82295 result.query = relative.query; 82296 result.host = relative.host || ''; 82297 result.auth = relative.auth; 82298 result.hostname = relative.hostname || relative.host; 82299 result.port = relative.port; 82300 // to support http.request 82301 if (result.pathname || result.search) { 82302 var p = result.pathname || ''; 82303 var s = result.search || ''; 82304 result.path = p + s; 82305 } 82306 result.slashes = result.slashes || relative.slashes; 82307 result.href = result.format(); 82308 return result; 82309 } 82310 82311 var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), 82312 isRelAbs = ( 82313 relative.host || 82314 relative.pathname && relative.pathname.charAt(0) === '/' 82315 ), 82316 mustEndAbs = (isRelAbs || isSourceAbs || 82317 (result.host && relative.pathname)), 82318 removeAllDots = mustEndAbs, 82319 srcPath = result.pathname && result.pathname.split('/') || [], 82320 relPath = relative.pathname && relative.pathname.split('/') || [], 82321 psychotic = result.protocol && !slashedProtocol[result.protocol]; 82322 82323 // if the url is a non-slashed url, then relative 82324 // links like ../.. should be able 82325 // to crawl up to the hostname, as well. This is strange. 82326 // result.protocol has already been set by now. 82327 // Later on, put the first path part into the host field. 82328 if (psychotic) { 82329 result.hostname = ''; 82330 result.port = null; 82331 if (result.host) { 82332 if (srcPath[0] === '') srcPath[0] = result.host; 82333 else srcPath.unshift(result.host); 82334 } 82335 result.host = ''; 82336 if (relative.protocol) { 82337 relative.hostname = null; 82338 relative.port = null; 82339 if (relative.host) { 82340 if (relPath[0] === '') relPath[0] = relative.host; 82341 else relPath.unshift(relative.host); 82342 } 82343 relative.host = null; 82344 } 82345 mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); 82346 } 82347 82348 if (isRelAbs) { 82349 // it's absolute. 82350 result.host = (relative.host || relative.host === '') ? 82351 relative.host : result.host; 82352 result.hostname = (relative.hostname || relative.hostname === '') ? 82353 relative.hostname : result.hostname; 82354 result.search = relative.search; 82355 result.query = relative.query; 82356 srcPath = relPath; 82357 // fall through to the dot-handling below. 82358 } else if (relPath.length) { 82359 // it's relative 82360 // throw away the existing file, and take the new path instead. 82361 if (!srcPath) srcPath = []; 82362 srcPath.pop(); 82363 srcPath = srcPath.concat(relPath); 82364 result.search = relative.search; 82365 result.query = relative.query; 82366 } else if (!util.isNullOrUndefined(relative.search)) { 82367 // just pull out the search. 82368 // like href='?foo'. 82369 // Put this after the other two cases because it simplifies the booleans 82370 if (psychotic) { 82371 result.hostname = result.host = srcPath.shift(); 82372 //occationaly the auth can get stuck only in host 82373 //this especially happens in cases like 82374 //url.resolveObject('mailto:local1@domain1', 'local2@domain2') 82375 var authInHost = result.host && result.host.indexOf('@') > 0 ? 82376 result.host.split('@') : false; 82377 if (authInHost) { 82378 result.auth = authInHost.shift(); 82379 result.host = result.hostname = authInHost.shift(); 82380 } 82381 } 82382 result.search = relative.search; 82383 result.query = relative.query; 82384 //to support http.request 82385 if (!util.isNull(result.pathname) || !util.isNull(result.search)) { 82386 result.path = (result.pathname ? result.pathname : '') + 82387 (result.search ? result.search : ''); 82388 } 82389 result.href = result.format(); 82390 return result; 82391 } 82392 82393 if (!srcPath.length) { 82394 // no path at all. easy. 82395 // we've already handled the other stuff above. 82396 result.pathname = null; 82397 //to support http.request 82398 if (result.search) { 82399 result.path = '/' + result.search; 82400 } else { 82401 result.path = null; 82402 } 82403 result.href = result.format(); 82404 return result; 82405 } 82406 82407 // if a url ENDs in . or .., then it must get a trailing slash. 82408 // however, if it ends in anything else non-slashy, 82409 // then it must NOT get a trailing slash. 82410 var last = srcPath.slice(-1)[0]; 82411 var hasTrailingSlash = ( 82412 (result.host || relative.host || srcPath.length > 1) && 82413 (last === '.' || last === '..') || last === ''); 82414 82415 // strip single dots, resolve double dots to parent dir 82416 // if the path tries to go above the root, `up` ends up > 0 82417 var up = 0; 82418 for (var i = srcPath.length; i >= 0; i--) { 82419 last = srcPath[i]; 82420 if (last === '.') { 82421 srcPath.splice(i, 1); 82422 } else if (last === '..') { 82423 srcPath.splice(i, 1); 82424 up++; 82425 } else if (up) { 82426 srcPath.splice(i, 1); 82427 up--; 82428 } 82429 } 82430 82431 // if the path is allowed to go above the root, restore leading ..s 82432 if (!mustEndAbs && !removeAllDots) { 82433 for (; up--; up) { 82434 srcPath.unshift('..'); 82435 } 82436 } 82437 82438 if (mustEndAbs && srcPath[0] !== '' && 82439 (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { 82440 srcPath.unshift(''); 82441 } 82442 82443 if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { 82444 srcPath.push(''); 82445 } 82446 82447 var isAbsolute = srcPath[0] === '' || 82448 (srcPath[0] && srcPath[0].charAt(0) === '/'); 82449 82450 // put the host back 82451 if (psychotic) { 82452 result.hostname = result.host = isAbsolute ? '' : 82453 srcPath.length ? srcPath.shift() : ''; 82454 //occationaly the auth can get stuck only in host 82455 //this especially happens in cases like 82456 //url.resolveObject('mailto:local1@domain1', 'local2@domain2') 82457 var authInHost = result.host && result.host.indexOf('@') > 0 ? 82458 result.host.split('@') : false; 82459 if (authInHost) { 82460 result.auth = authInHost.shift(); 82461 result.host = result.hostname = authInHost.shift(); 82462 } 82463 } 82464 82465 mustEndAbs = mustEndAbs || (result.host && srcPath.length); 82466 82467 if (mustEndAbs && !isAbsolute) { 82468 srcPath.unshift(''); 82469 } 82470 82471 if (!srcPath.length) { 82472 result.pathname = null; 82473 result.path = null; 82474 } else { 82475 result.pathname = srcPath.join('/'); 82476 } 82477 82478 //to support request.http 82479 if (!util.isNull(result.pathname) || !util.isNull(result.search)) { 82480 result.path = (result.pathname ? result.pathname : '') + 82481 (result.search ? result.search : ''); 82482 } 82483 result.auth = relative.auth || result.auth; 82484 result.slashes = result.slashes || relative.slashes; 82485 result.href = result.format(); 82486 return result; 82487}; 82488 82489Url.prototype.parseHost = function() { 82490 var host = this.host; 82491 var port = portPattern.exec(host); 82492 if (port) { 82493 port = port[0]; 82494 if (port !== ':') { 82495 this.port = port.substr(1); 82496 } 82497 host = host.substr(0, host.length - port.length); 82498 } 82499 if (host) this.hostname = host; 82500}; 82501 82502 82503/***/ }), 82504
vendor: 571 bytes, lines 82505-82532
82505/***/ "./node_modules/url/util.js": 82506/*!**********************************!*\ 82507 !*** ./node_modules/url/util.js ***! 82508 \**********************************/ 82509/*! no static exports found */ 82510/***/ (function(module, exports, __webpack_require__) { 82511 82512"use strict"; 82513 82514 82515module.exports = { 82516 isString: function(arg) { 82517 return typeof(arg) === 'string'; 82518 }, 82519 isObject: function(arg) { 82520 return typeof(arg) === 'object' && arg !== null; 82521 }, 82522 isNull: function(arg) { 82523 return arg === null; 82524 }, 82525 isNullOrUndefined: function(arg) { 82526 return arg == null; 82527 } 82528}; 82529 82530 82531/***/ }), 82532
vendor: 474 bytes, lines 82533-82551
82533/***/ "./node_modules/uuid/index.js": 82534/*!************************************!*\ 82535 !*** ./node_modules/uuid/index.js ***! 82536 \************************************/ 82537/*! no static exports found */ 82538/***/ (function(module, exports, __webpack_require__) { 82539 82540var v1 = __webpack_require__(/*! ./v1 */ "./node_modules/uuid/v1.js"); 82541var v4 = __webpack_require__(/*! ./v4 */ "./node_modules/uuid/v4.js"); 82542 82543var uuid = v4; 82544uuid.v1 = v1; 82545uuid.v4 = v4; 82546 82547module.exports = uuid; 82548 82549 82550/***/ }), 82551
vendor: 1,058 bytes, lines 82552-82588
82552/***/ "./node_modules/uuid/lib/bytesToUuid.js": 82553/*!**********************************************!*\ 82554 !*** ./node_modules/uuid/lib/bytesToUuid.js ***! 82555 \**********************************************/ 82556/*! no static exports found */ 82557/***/ (function(module, exports) { 82558 82559/** 82560 * Convert array of 16 byte values to UUID string format of the form: 82561 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 82562 */ 82563var byteToHex = []; 82564for (var i = 0; i < 256; ++i) { 82565 byteToHex[i] = (i + 0x100).toString(16).substr(1); 82566} 82567 82568function bytesToUuid(buf, offset) { 82569 var i = offset || 0; 82570 var bth = byteToHex; 82571 // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 82572 return ([ 82573 bth[buf[i++]], bth[buf[i++]], 82574 bth[buf[i++]], bth[buf[i++]], '-', 82575 bth[buf[i++]], bth[buf[i++]], '-', 82576 bth[buf[i++]], bth[buf[i++]], '-', 82577 bth[buf[i++]], bth[buf[i++]], '-', 82578 bth[buf[i++]], bth[buf[i++]], 82579 bth[buf[i++]], bth[buf[i++]], 82580 bth[buf[i++]], bth[buf[i++]] 82581 ]).join(''); 82582} 82583 82584module.exports = bytesToUuid; 82585 82586 82587/***/ }), 82588
vendor: 1,595 bytes, lines 82589-82633
82589/***/ "./node_modules/uuid/lib/rng-browser.js": 82590/*!**********************************************!*\ 82591 !*** ./node_modules/uuid/lib/rng-browser.js ***! 82592 \**********************************************/ 82593/*! no static exports found */ 82594/***/ (function(module, exports) { 82595 82596// Unique ID creation requires a high quality random # generator. In the 82597// browser this is a little complicated due to unknown quality of Math.random() 82598// and inconsistent support for the `crypto` API. We do the best we can via 82599// feature-detection 82600 82601// getRandomValues needs to be invoked in a context where "this" is a Crypto 82602// implementation. Also, find the complete implementation of crypto on IE11. 82603var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || 82604 (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); 82605 82606if (getRandomValues) { 82607 // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto 82608 var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef 82609 82610 module.exports = function whatwgRNG() { 82611 getRandomValues(rnds8); 82612 return rnds8; 82613 }; 82614} else { 82615 // Math.random()-based (RNG) 82616 // 82617 // If all else fails, use Math.random(). It's fast, but is of unspecified 82618 // quality. 82619 var rnds = new Array(16); 82620 82621 module.exports = function mathRNG() { 82622 for (var i = 0, r; i < 16; i++) { 82623 if ((i & 0x03) === 0) r = Math.random() * 0x100000000; 82624 rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; 82625 } 82626 82627 return rnds; 82628 }; 82629} 82630 82631 82632/***/ }), 82633
vendor: 3,699 bytes, lines 82634-82753
82634/***/ "./node_modules/uuid/v1.js": 82635/*!*********************************!*\ 82636 !*** ./node_modules/uuid/v1.js ***! 82637 \*********************************/ 82638/*! no static exports found */ 82639/***/ (function(module, exports, __webpack_require__) { 82640 82641var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/uuid/lib/rng-browser.js"); 82642var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/uuid/lib/bytesToUuid.js"); 82643 82644// **`v1()` - Generate time-based UUID** 82645// 82646// Inspired by https://github.com/LiosK/UUID.js 82647// and http://docs.python.org/library/uuid.html 82648 82649var _nodeId; 82650var _clockseq; 82651 82652// Previous uuid creation time 82653var _lastMSecs = 0; 82654var _lastNSecs = 0; 82655 82656// See https://github.com/uuidjs/uuid for API details 82657function v1(options, buf, offset) { 82658 var i = buf && offset || 0; 82659 var b = buf || []; 82660 82661 options = options || {}; 82662 var node = options.node || _nodeId; 82663 var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; 82664 82665 // node and clockseq need to be initialized to random values if they're not 82666 // specified. We do this lazily to minimize issues related to insufficient 82667 // system entropy. See #189 82668 if (node == null || clockseq == null) { 82669 var seedBytes = rng(); 82670 if (node == null) { 82671 // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) 82672 node = _nodeId = [ 82673 seedBytes[0] | 0x01, 82674 seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] 82675 ]; 82676 } 82677 if (clockseq == null) { 82678 // Per 4.2.2, randomize (14 bit) clockseq 82679 clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; 82680 } 82681 } 82682 82683 // UUID timestamps are 100 nano-second units since the Gregorian epoch, 82684 // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so 82685 // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' 82686 // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. 82687 var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); 82688 82689 // Per 4.2.1.2, use count of uuid's generated during the current clock 82690 // cycle to simulate higher resolution clock 82691 var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; 82692 82693 // Time since last uuid creation (in msecs) 82694 var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; 82695 82696 // Per 4.2.1.2, Bump clockseq on clock regression 82697 if (dt < 0 && options.clockseq === undefined) { 82698 clockseq = clockseq + 1 & 0x3fff; 82699 } 82700 82701 // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new 82702 // time interval 82703 if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { 82704 nsecs = 0; 82705 } 82706 82707 // Per 4.2.1.2 Throw error if too many uuids are requested 82708 if (nsecs >= 10000) { 82709 throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); 82710 } 82711 82712 _lastMSecs = msecs; 82713 _lastNSecs = nsecs; 82714 _clockseq = clockseq; 82715 82716 // Per 4.1.4 - Convert from unix epoch to Gregorian epoch 82717 msecs += 12219292800000; 82718 82719 // `time_low` 82720 var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; 82721 b[i++] = tl >>> 24 & 0xff; 82722 b[i++] = tl >>> 16 & 0xff; 82723 b[i++] = tl >>> 8 & 0xff; 82724 b[i++] = tl & 0xff; 82725 82726 // `time_mid` 82727 var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; 82728 b[i++] = tmh >>> 8 & 0xff; 82729 b[i++] = tmh & 0xff; 82730 82731 // `time_high_and_version` 82732 b[i++] = tmh >>> 24 & 0xf | 0x10; // include version 82733 b[i++] = tmh >>> 16 & 0xff; 82734 82735 // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) 82736 b[i++] = clockseq >>> 8 | 0x80; 82737 82738 // `clock_seq_low` 82739 b[i++] = clockseq & 0xff; 82740 82741 // `node` 82742 for (var n = 0; n < 6; ++n) { 82743 b[i + n] = node[n]; 82744 } 82745 82746 return buf ? buf : bytesToUuid(b); 82747} 82748 82749module.exports = v1; 82750 82751 82752/***/ }), 82753
vendor: 1,048 bytes, lines 82754-82793
82754/***/ "./node_modules/uuid/v4.js": 82755/*!*********************************!*\ 82756 !*** ./node_modules/uuid/v4.js ***! 82757 \*********************************/ 82758/*! no static exports found */ 82759/***/ (function(module, exports, __webpack_require__) { 82760 82761var rng = __webpack_require__(/*! ./lib/rng */ "./node_modules/uuid/lib/rng-browser.js"); 82762var bytesToUuid = __webpack_require__(/*! ./lib/bytesToUuid */ "./node_modules/uuid/lib/bytesToUuid.js"); 82763 82764function v4(options, buf, offset) { 82765 var i = buf && offset || 0; 82766 82767 if (typeof(options) == 'string') { 82768 buf = options === 'binary' ? new Array(16) : null; 82769 options = null; 82770 } 82771 options = options || {}; 82772 82773 var rnds = options.random || (options.rng || rng)(); 82774 82775 // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` 82776 rnds[6] = (rnds[6] & 0x0f) | 0x40; 82777 rnds[8] = (rnds[8] & 0x3f) | 0x80; 82778 82779 // Copy bytes to buffer, if provided 82780 if (buf) { 82781 for (var ii = 0; ii < 16; ++ii) { 82782 buf[i + ii] = rnds[ii]; 82783 } 82784 } 82785 82786 return buf || bytesToUuid(rnds); 82787} 82788 82789module.exports = v4; 82790 82791 82792/***/ }), 82793
vendor: 724 bytes, lines 82794-82824
82794/***/ "./node_modules/webpack/buildin/global.js": 82795/*!***********************************!*\ 82796 !*** (webpack)/buildin/global.js ***! 82797 \***********************************/ 82798/*! no static exports found */ 82799/***/ (function(module, exports) { 82800 82801var g; 82802 82803// This works in non-strict mode 82804g = (function() { 82805 return this; 82806})(); 82807 82808try { 82809 // This works if eval is allowed (see CSP) 82810 g = g || new Function("return this")(); 82811} catch (e) { 82812 // This works if the window reference is available 82813 if (typeof window === "object") g = window; 82814} 82815 82816// g can still be undefined, but nothing to do about it... 82817// We return undefined, instead of nothing here, so it's 82818// easier to handle this case. if(!global) { ...} 82819 82820module.exports = g; 82821 82822 82823/***/ }), 82824
vendor: 857 bytes, lines 82825-82859
82825/***/ "./node_modules/webpack/buildin/harmony-module.js": 82826/*!*******************************************!*\ 82827 !*** (webpack)/buildin/harmony-module.js ***! 82828 \*******************************************/ 82829/*! no static exports found */ 82830/***/ (function(module, exports) { 82831 82832module.exports = function(originalModule) { 82833 if (!originalModule.webpackPolyfill) { 82834 var module = Object.create(originalModule); 82835 // module.parent = undefined by default 82836 if (!module.children) module.children = []; 82837 Object.defineProperty(module, "loaded", { 82838 enumerable: true, 82839 get: function() { 82840 return module.l; 82841 } 82842 }); 82843 Object.defineProperty(module, "id", { 82844 enumerable: true, 82845 get: function() { 82846 return module.i; 82847 } 82848 }); 82849 Object.defineProperty(module, "exports", { 82850 enumerable: true 82851 }); 82852 module.webpackPolyfill = 1; 82853 } 82854 return module; 82855}; 82856 82857 82858/***/ }), 82859
vendor: 749 bytes, lines 82860-82892
82860/***/ "./node_modules/webpack/buildin/module.js": 82861/*!***********************************!*\ 82862 !*** (webpack)/buildin/module.js ***! 82863 \***********************************/ 82864/*! no static exports found */ 82865/***/ (function(module, exports) { 82866 82867module.exports = function(module) { 82868 if (!module.webpackPolyfill) { 82869 module.deprecate = function() {}; 82870 module.paths = []; 82871 // module.parent = undefined by default 82872 if (!module.children) module.children = []; 82873 Object.defineProperty(module, "loaded", { 82874 enumerable: true, 82875 get: function() { 82876 return module.l; 82877 } 82878 }); 82879 Object.defineProperty(module, "id", { 82880 enumerable: true, 82881 get: function() { 82882 return module.i; 82883 } 82884 }); 82885 module.webpackPolyfill = 1; 82886 } 82887 return module; 82888}; 82889 82890 82891/***/ }), 82892
vendor: 1,247 bytes, lines 82893-82953
82893/***/ "./node_modules/youtube-iframe/index.js": 82894/*!**********************************************!*\ 82895 !*** ./node_modules/youtube-iframe/index.js ***! 82896 \**********************************************/ 82897/*! no static exports found */ 82898/***/ (function(module, exports, __webpack_require__) { 82899 82900(function(window) { 82901 var YouTubeIframeLoader = { 82902 src: 'https://www.youtube.com/iframe_api', 82903 loading: false, 82904 loaded: false, 82905 listeners: [], 82906 82907 load: function(callback) { 82908 var _this = this; 82909 this.listeners.push(callback); 82910 82911 if(this.loaded) { 82912 setTimeout(function() { 82913 _this.done(); 82914 }); 82915 return; 82916 } 82917 82918 if(this.loading) { 82919 return; 82920 } 82921 82922 this.loading = true; 82923 82924 window.onYouTubeIframeAPIReady = function() { 82925 _this.loaded = true; 82926 _this.done(); 82927 }; 82928 82929 var script = document.createElement('script'); 82930 script.type = 'text/javascript'; 82931 script.src = this.src; 82932 document.body.appendChild(script); 82933 }, 82934 82935 done: function() { 82936 delete window.onYouTubeIframeAPIReady; 82937 82938 while(this.listeners.length) { 82939 this.listeners.pop()(window.YT); 82940 } 82941 } 82942 }; 82943 82944 if( true && module.exports) { 82945 module.exports = YouTubeIframeLoader; 82946 } else { 82947 window.YouTubeIframeLoader = YouTubeIframeLoader; 82948 } 82949}(window)); 82950 82951 82952/***/ }), 82953
vendor: 1,067 bytes, lines 82954-82976
82954/***/ "./node_modules/zen-observable-ts/lib/bundle.esm.js": 82955/*!**********************************************************!*\ 82956 !*** ./node_modules/zen-observable-ts/lib/bundle.esm.js ***! 82957 \**********************************************************/ 82958/*! exports provided: default, Observable */ 82959/***/ (function(module, __webpack_exports__, __webpack_require__) { 82960 82961"use strict"; 82962__webpack_require__.r(__webpack_exports__); 82963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); 82964/* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zen-observable */ "./node_modules/zen-observable/index.js"); 82965/* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zen_observable__WEBPACK_IMPORTED_MODULE_0__); 82966 82967 82968var Observable = zen_observable__WEBPACK_IMPORTED_MODULE_0___default.a; 82969 82970/* harmony default export */ __webpack_exports__["default"] = (Observable); 82971 82972//# sourceMappingURL=bundle.esm.js.map 82973 82974 82975/***/ }), 82976
vendor: 431 bytes, lines 82977-82988
82977/***/ "./node_modules/zen-observable/index.js": 82978/*!**********************************************!*\ 82979 !*** ./node_modules/zen-observable/index.js ***! 82980 \**********************************************/ 82981/*! no static exports found */ 82982/***/ (function(module, exports, __webpack_require__) { 82983 82984module.exports = __webpack_require__(/*! ./lib/Observable.js */ "./node_modules/zen-observable/lib/Observable.js").Observable; 82985 82986 82987/***/ }), 82988
vendor: 16,138 bytes, lines 82989-83615
82989/***/ "./node_modules/zen-observable/lib/Observable.js": 82990/*!*******************************************************!*\ 82991 !*** ./node_modules/zen-observable/lib/Observable.js ***! 82992 \*******************************************************/ 82993/*! no static exports found */ 82994/***/ (function(module, exports, __webpack_require__) { 82995 82996"use strict"; 82997 82998 82999Object.defineProperty(exports, "__esModule", { 83000 value: true 83001}); 83002exports.Observable = void 0; 83003 83004function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 83005 83006function _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); } } 83007 83008function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 83009 83010// === Symbol Support === 83011var hasSymbols = function () { 83012 return typeof Symbol === 'function'; 83013}; 83014 83015var hasSymbol = function (name) { 83016 return hasSymbols() && Boolean(Symbol[name]); 83017}; 83018 83019var getSymbol = function (name) { 83020 return hasSymbol(name) ? Symbol[name] : '@@' + name; 83021}; 83022 83023if (hasSymbols() && !hasSymbol('observable')) { 83024 Symbol.observable = Symbol('observable'); 83025} 83026 83027var SymbolIterator = getSymbol('iterator'); 83028var SymbolObservable = getSymbol('observable'); 83029var SymbolSpecies = getSymbol('species'); // === Abstract Operations === 83030 83031function getMethod(obj, key) { 83032 var value = obj[key]; 83033 if (value == null) return undefined; 83034 if (typeof value !== 'function') throw new TypeError(value + ' is not a function'); 83035 return value; 83036} 83037 83038function getSpecies(obj) { 83039 var ctor = obj.constructor; 83040 83041 if (ctor !== undefined) { 83042 ctor = ctor[SymbolSpecies]; 83043 83044 if (ctor === null) { 83045 ctor = undefined; 83046 } 83047 } 83048 83049 return ctor !== undefined ? ctor : Observable; 83050} 83051 83052function isObservable(x) { 83053 return x instanceof Observable; // SPEC: Brand check 83054} 83055 83056function hostReportError(e) { 83057 if (hostReportError.log) { 83058 hostReportError.log(e); 83059 } else { 83060 setTimeout(function () { 83061 throw e; 83062 }); 83063 } 83064} 83065 83066function enqueue(fn) { 83067 Promise.resolve().then(function () { 83068 try { 83069 fn(); 83070 } catch (e) { 83071 hostReportError(e); 83072 } 83073 }); 83074} 83075 83076function cleanupSubscription(subscription) { 83077 var cleanup = subscription._cleanup; 83078 if (cleanup === undefined) return; 83079 subscription._cleanup = undefined; 83080 83081 if (!cleanup) { 83082 return; 83083 } 83084 83085 try { 83086 if (typeof cleanup === 'function') { 83087 cleanup(); 83088 } else { 83089 var unsubscribe = getMethod(cleanup, 'unsubscribe'); 83090 83091 if (unsubscribe) { 83092 unsubscribe.call(cleanup); 83093 } 83094 } 83095 } catch (e) { 83096 hostReportError(e); 83097 } 83098} 83099 83100function closeSubscription(subscription) { 83101 subscription._observer = undefined; 83102 subscription._queue = undefined; 83103 subscription._state = 'closed'; 83104} 83105 83106function flushSubscription(subscription) { 83107 var queue = subscription._queue; 83108 83109 if (!queue) { 83110 return; 83111 } 83112 83113 subscription._queue = undefined; 83114 subscription._state = 'ready'; 83115 83116 for (var i = 0; i < queue.length; ++i) { 83117 notifySubscription(subscription, queue[i].type, queue[i].value); 83118 if (subscription._state === 'closed') break; 83119 } 83120} 83121 83122function notifySubscription(subscription, type, value) { 83123 subscription._state = 'running'; 83124 var observer = subscription._observer; 83125 83126 try { 83127 var m = getMethod(observer, type); 83128 83129 switch (type) { 83130 case 'next': 83131 if (m) m.call(observer, value); 83132 break; 83133 83134 case 'error': 83135 closeSubscription(subscription); 83136 if (m) m.call(observer, value);else throw value; 83137 break; 83138 83139 case 'complete': 83140 closeSubscription(subscription); 83141 if (m) m.call(observer); 83142 break; 83143 } 83144 } catch (e) { 83145 hostReportError(e); 83146 } 83147 83148 if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready'; 83149} 83150 83151function onNotify(subscription, type, value) { 83152 if (subscription._state === 'closed') return; 83153 83154 if (subscription._state === 'buffering') { 83155 subscription._queue.push({ 83156 type: type, 83157 value: value 83158 }); 83159 83160 return; 83161 } 83162 83163 if (subscription._state !== 'ready') { 83164 subscription._state = 'buffering'; 83165 subscription._queue = [{ 83166 type: type, 83167 value: value 83168 }]; 83169 enqueue(function () { 83170 return flushSubscription(subscription); 83171 }); 83172 return; 83173 } 83174 83175 notifySubscription(subscription, type, value); 83176} 83177 83178var Subscription = 83179/*#__PURE__*/ 83180function () { 83181 function Subscription(observer, subscriber) { 83182 _classCallCheck(this, Subscription); 83183 83184 // ASSERT: observer is an object 83185 // ASSERT: subscriber is callable 83186 this._cleanup = undefined; 83187 this._observer = observer; 83188 this._queue = undefined; 83189 this._state = 'initializing'; 83190 var subscriptionObserver = new SubscriptionObserver(this); 83191 83192 try { 83193 this._cleanup = subscriber.call(undefined, subscriptionObserver); 83194 } catch (e) { 83195 subscriptionObserver.error(e); 83196 } 83197 83198 if (this._state === 'initializing') this._state = 'ready'; 83199 } 83200 83201 _createClass(Subscription, [{ 83202 key: "unsubscribe", 83203 value: function unsubscribe() { 83204 if (this._state !== 'closed') { 83205 closeSubscription(this); 83206 cleanupSubscription(this); 83207 } 83208 } 83209 }, { 83210 key: "closed", 83211 get: function () { 83212 return this._state === 'closed'; 83213 } 83214 }]); 83215 83216 return Subscription; 83217}(); 83218 83219var SubscriptionObserver = 83220/*#__PURE__*/ 83221function () { 83222 function SubscriptionObserver(subscription) { 83223 _classCallCheck(this, SubscriptionObserver); 83224 83225 this._subscription = subscription; 83226 } 83227 83228 _createClass(SubscriptionObserver, [{ 83229 key: "next", 83230 value: function next(value) { 83231 onNotify(this._subscription, 'next', value); 83232 } 83233 }, { 83234 key: "error", 83235 value: function error(value) { 83236 onNotify(this._subscription, 'error', value); 83237 } 83238 }, { 83239 key: "complete", 83240 value: function complete() { 83241 onNotify(this._subscription, 'complete'); 83242 } 83243 }, { 83244 key: "closed", 83245 get: function () { 83246 return this._subscription._state === 'closed'; 83247 } 83248 }]); 83249 83250 return SubscriptionObserver; 83251}(); 83252 83253var Observable = 83254/*#__PURE__*/ 83255function () { 83256 function Observable(subscriber) { 83257 _classCallCheck(this, Observable); 83258 83259 if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function'); 83260 if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function'); 83261 this._subscriber = subscriber; 83262 } 83263 83264 _createClass(Observable, [{ 83265 key: "subscribe", 83266 value: function subscribe(observer) { 83267 if (typeof observer !== 'object' || observer === null) { 83268 observer = { 83269 next: observer, 83270 error: arguments[1], 83271 complete: arguments[2] 83272 }; 83273 } 83274 83275 return new Subscription(observer, this._subscriber); 83276 } 83277 }, { 83278 key: "forEach", 83279 value: function forEach(fn) { 83280 var _this = this; 83281 83282 return new Promise(function (resolve, reject) { 83283 if (typeof fn !== 'function') { 83284 reject(new TypeError(fn + ' is not a function')); 83285 return; 83286 } 83287 83288 function done() { 83289 subscription.unsubscribe(); 83290 resolve(); 83291 } 83292 83293 var subscription = _this.subscribe({ 83294 next: function (value) { 83295 try { 83296 fn(value, done); 83297 } catch (e) { 83298 reject(e); 83299 subscription.unsubscribe(); 83300 } 83301 }, 83302 error: reject, 83303 complete: resolve 83304 }); 83305 }); 83306 } 83307 }, { 83308 key: "map", 83309 value: function map(fn) { 83310 var _this2 = this; 83311 83312 if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); 83313 var C = getSpecies(this); 83314 return new C(function (observer) { 83315 return _this2.subscribe({ 83316 next: function (value) { 83317 try { 83318 value = fn(value); 83319 } catch (e) { 83320 return observer.error(e); 83321 } 83322 83323 observer.next(value); 83324 }, 83325 error: function (e) { 83326 observer.error(e); 83327 }, 83328 complete: function () { 83329 observer.complete(); 83330 } 83331 }); 83332 }); 83333 } 83334 }, { 83335 key: "filter", 83336 value: function filter(fn) { 83337 var _this3 = this; 83338 83339 if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); 83340 var C = getSpecies(this); 83341 return new C(function (observer) { 83342 return _this3.subscribe({ 83343 next: function (value) { 83344 try { 83345 if (!fn(value)) return; 83346 } catch (e) { 83347 return observer.error(e); 83348 } 83349 83350 observer.next(value); 83351 }, 83352 error: function (e) { 83353 observer.error(e); 83354 }, 83355 complete: function () { 83356 observer.complete(); 83357 } 83358 }); 83359 }); 83360 } 83361 }, { 83362 key: "reduce", 83363 value: function reduce(fn) { 83364 var _this4 = this; 83365 83366 if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); 83367 var C = getSpecies(this); 83368 var hasSeed = arguments.length > 1; 83369 var hasValue = false; 83370 var seed = arguments[1]; 83371 var acc = seed; 83372 return new C(function (observer) { 83373 return _this4.subscribe({ 83374 next: function (value) { 83375 var first = !hasValue; 83376 hasValue = true; 83377 83378 if (!first || hasSeed) { 83379 try { 83380 acc = fn(acc, value); 83381 } catch (e) { 83382 return observer.error(e); 83383 } 83384 } else { 83385 acc = value; 83386 } 83387 }, 83388 error: function (e) { 83389 observer.error(e); 83390 }, 83391 complete: function () { 83392 if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence')); 83393 observer.next(acc); 83394 observer.complete(); 83395 } 83396 }); 83397 }); 83398 } 83399 }, { 83400 key: "concat", 83401 value: function concat() { 83402 var _this5 = this; 83403 83404 for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { 83405 sources[_key] = arguments[_key]; 83406 } 83407 83408 var C = getSpecies(this); 83409 return new C(function (observer) { 83410 var subscription; 83411 var index = 0; 83412 83413 function startNext(next) { 83414 subscription = next.subscribe({ 83415 next: function (v) { 83416 observer.next(v); 83417 }, 83418 error: function (e) { 83419 observer.error(e); 83420 }, 83421 complete: function () { 83422 if (index === sources.length) { 83423 subscription = undefined; 83424 observer.complete(); 83425 } else { 83426 startNext(C.from(sources[index++])); 83427 } 83428 } 83429 }); 83430 } 83431 83432 startNext(_this5); 83433 return function () { 83434 if (subscription) { 83435 subscription.unsubscribe(); 83436 subscription = undefined; 83437 } 83438 }; 83439 }); 83440 } 83441 }, { 83442 key: "flatMap", 83443 value: function flatMap(fn) { 83444 var _this6 = this; 83445 83446 if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); 83447 var C = getSpecies(this); 83448 return new C(function (observer) { 83449 var subscriptions = []; 83450 83451 var outer = _this6.subscribe({ 83452 next: function (value) { 83453 if (fn) { 83454 try { 83455 value = fn(value); 83456 } catch (e) { 83457 return observer.error(e); 83458 } 83459 } 83460 83461 var inner = C.from(value).subscribe({ 83462 next: function (value) { 83463 observer.next(value); 83464 }, 83465 error: function (e) { 83466 observer.error(e); 83467 }, 83468 complete: function () { 83469 var i = subscriptions.indexOf(inner); 83470 if (i >= 0) subscriptions.splice(i, 1); 83471 completeIfDone(); 83472 } 83473 }); 83474 subscriptions.push(inner); 83475 }, 83476 error: function (e) { 83477 observer.error(e); 83478 }, 83479 complete: function () { 83480 completeIfDone(); 83481 } 83482 }); 83483 83484 function completeIfDone() { 83485 if (outer.closed && subscriptions.length === 0) observer.complete(); 83486 } 83487 83488 return function () { 83489 subscriptions.forEach(function (s) { 83490 return s.unsubscribe(); 83491 }); 83492 outer.unsubscribe(); 83493 }; 83494 }); 83495 } 83496 }, { 83497 key: SymbolObservable, 83498 value: function () { 83499 return this; 83500 } 83501 }], [{ 83502 key: "from", 83503 value: function from(x) { 83504 var C = typeof this === 'function' ? this : Observable; 83505 if (x == null) throw new TypeError(x + ' is not an object'); 83506 var method = getMethod(x, SymbolObservable); 83507 83508 if (method) { 83509 var observable = method.call(x); 83510 if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object'); 83511 if (isObservable(observable) && observable.constructor === C) return observable; 83512 return new C(function (observer) { 83513 return observable.subscribe(observer); 83514 }); 83515 } 83516 83517 if (hasSymbol('iterator')) { 83518 method = getMethod(x, SymbolIterator); 83519 83520 if (method) { 83521 return new C(function (observer) { 83522 enqueue(function () { 83523 if (observer.closed) return; 83524 var _iteratorNormalCompletion = true; 83525 var _didIteratorError = false; 83526 var _iteratorError = undefined; 83527 83528 try { 83529 for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 83530 var _item = _step.value; 83531 observer.next(_item); 83532 if (observer.closed) return; 83533 } 83534 } catch (err) { 83535 _didIteratorError = true; 83536 _iteratorError = err; 83537 } finally { 83538 try { 83539 if (!_iteratorNormalCompletion && _iterator.return != null) { 83540 _iterator.return(); 83541 } 83542 } finally { 83543 if (_didIteratorError) { 83544 throw _iteratorError; 83545 } 83546 } 83547 } 83548 83549 observer.complete(); 83550 }); 83551 }); 83552 } 83553 } 83554 83555 if (Array.isArray(x)) { 83556 return new C(function (observer) { 83557 enqueue(function () { 83558 if (observer.closed) return; 83559 83560 for (var i = 0; i < x.length; ++i) { 83561 observer.next(x[i]); 83562 if (observer.closed) return; 83563 } 83564 83565 observer.complete(); 83566 }); 83567 }); 83568 } 83569 83570 throw new TypeError(x + ' is not observable'); 83571 } 83572 }, { 83573 key: "of", 83574 value: function of() { 83575 for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 83576 items[_key2] = arguments[_key2]; 83577 } 83578 83579 var C = typeof this === 'function' ? this : Observable; 83580 return new C(function (observer) { 83581 enqueue(function () { 83582 if (observer.closed) return; 83583 83584 for (var i = 0; i < items.length; ++i) { 83585 observer.next(items[i]); 83586 if (observer.closed) return; 83587 } 83588 83589 observer.complete(); 83590 }); 83591 }); 83592 } 83593 }, { 83594 key: SymbolSpecies, 83595 get: function () { 83596 return this; 83597 } 83598 }]); 83599 83600 return Observable; 83601}(); 83602 83603exports.Observable = Observable; 83604 83605if (hasSymbols()) { 83606 Object.defineProperty(Observable, Symbol('extensions'), { 83607 value: { 83608 symbol: SymbolObservable, 83609 hostReportError: hostReportError 83610 }, 83611 configurable: true 83612 }); 83613} 83614 83615/***/ })
83615 83616 83617/******/ }); 83618//# sourceMappingURL=app_brand_alamos.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.