PageSourceSearch

https://www.alamoswinesus.com/on/demandware.static/Sites-alamos-Si…/-/en_US/v1790597977703/app_brand_alamos.js

js alamoswinesus.com collected 2026-09-28 23:21:27 UTC 3,392,261 bytes, 83,618 lines download raw bytes

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(/&amp;/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.