/*! * Webflow: Front-end site library * @license MIT * Inline scripts may access the api using an async handler: * var Webflow = Webflow || []; * Webflow.push(readyFunction); */ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 379); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line es/no-global-this -- safe check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || // eslint-disable-next-line no-new-func -- fallback (function () { return this; })() || Function('return this')(); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52))) /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var getOwnPropertyDescriptor = __webpack_require__(83).f; var createNonEnumerableProperty = __webpack_require__(70); var redefine = __webpack_require__(27); var setGlobal = __webpack_require__(157); var copyConstructorProperties = __webpack_require__(234); var isForced = __webpack_require__(119); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target options.name - the .name of the function if it does not match the key */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global; } else if (STATIC) { target = global[TARGET] || setGlobal(TARGET, {}); } else { target = (global[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty == typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty(sourceProperty, 'sham', true); } // extend global redefine(target, key, sourceProperty, options); } }; /***/ }), /* 3 */ /***/ (function(module, exports) { var FunctionPrototype = Function.prototype; var bind = FunctionPrototype.bind; var call = FunctionPrototype.call; var callBind = bind && bind.bind(call); module.exports = bind ? function (fn) { return fn && callBind(call, fn); } : function (fn) { return fn && function () { return call.apply(fn, arguments); }; }; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var shared = __webpack_require__(156); var hasOwn = __webpack_require__(14); var uid = __webpack_require__(115); var NATIVE_SYMBOL = __webpack_require__(155); var USE_SYMBOL_AS_UID = __webpack_require__(231); var WellKnownSymbolsStore = shared('wks'); var Symbol = global.Symbol; var symbolFor = Symbol && Symbol['for']; var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; module.exports = function (name) { if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { var description = 'Symbol.' + name; if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { WellKnownSymbolsStore[name] = Symbol[name]; } else if (USE_SYMBOL_AS_UID && symbolFor) { WellKnownSymbolsStore[name] = symbolFor(description); } else { WellKnownSymbolsStore[name] = createWellKnownSymbol(description); } } return WellKnownSymbolsStore[name]; }; /***/ }), /* 5 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }), /* 6 */ /***/ (function(module, exports) { // `IsCallable` abstract operation // https://tc39.es/ecma262/#sec-iscallable module.exports = function (argument) { return typeof argument == 'function'; }; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { var toLength = __webpack_require__(395); // `LengthOfArrayLike` abstract operation // https://tc39.es/ecma262/#sec-lengthofarraylike module.exports = function (obj) { return toLength(obj.length); }; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { var path = __webpack_require__(77); var hasOwn = __webpack_require__(14); var wrappedWellKnownSymbolModule = __webpack_require__(290); var defineProperty = __webpack_require__(17).f; module.exports = function (NAME) { var Symbol = path.Symbol || (path.Symbol = {}); if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, { value: wrappedWellKnownSymbolModule.f(NAME) }); }; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var requireObjectCoercible = __webpack_require__(85); var Object = global.Object; // `ToObject` abstract operation // https://tc39.es/ecma262/#sec-toobject module.exports = function (argument) { return Object(requireObjectCoercible(argument)); }; /***/ }), /* 10 */ /***/ (function(module, exports) { /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; module.exports = isArray; /***/ }), /* 11 */ /***/ (function(module, exports) { function _extends() { module.exports = _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); } module.exports = _extends; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { var isCallable = __webpack_require__(6); module.exports = function (it) { return typeof it == 'object' ? it !== null : isCallable(it); }; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); var create = __webpack_require__(39); var definePropertyModule = __webpack_require__(17); var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] == undefined) { definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { configurable: true, value: create(null) }); } // add a key to Array.prototype[@@unscopables] module.exports = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var toObject = __webpack_require__(9); var hasOwnProperty = uncurryThis({}.hasOwnProperty); // `HasOwnProperty` abstract operation // https://tc39.es/ecma262/#sec-hasownproperty module.exports = Object.hasOwn || function hasOwn(it, key) { return hasOwnProperty(toObject(it), key); }; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isObject = __webpack_require__(12); var String = global.String; var TypeError = global.TypeError; // `Assert: Type(argument) is Object` module.exports = function (argument) { if (isObject(argument)) return argument; throw TypeError(String(argument) + ' is not an object'); }; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); // Detect IE8's incomplete defineProperty implementation module.exports = !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var DESCRIPTORS = __webpack_require__(16); var IE8_DOM_DEFINE = __webpack_require__(232); var anObject = __webpack_require__(15); var toPropertyKey = __webpack_require__(86); var TypeError = global.TypeError; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPropertyKey(P); anObject(Attributes); if (IE8_DOM_DEFINE) try { return $defineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 18 */ /***/ (function(module, exports) { /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value; return value != null && (type == 'object' || type == 'function'); } module.exports = isObject; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); var _PRODUCT_TYPE_HELP_TE; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { ORDER_ID_RE: true, SHIPPING_METHODS: true, DEFAULT_TAX_CATEGORY: true, INVENTORY_TYPE_FINITE: true, INVENTORY_TYPE_INFINITE: true, INFINITE_INVENTORY: true, MAX_TOTAL_ORDER_PRICE: true, MAX_PRODUCT_DIMENSION: true, MAX_MEMBERSHIP_PRODUCTS: true, MAX_SEARCH_LIMIT: true, PRICE_TEMPLATE_CURRENCY_SYMBOL: true, PRICE_TEMPLATE_AMOUNT: true, PRICE_TEMPLATE_CURRENCY_CODE: true, PRICE_TEMPLATE_OPTIONS: true, DEFAULT_PRICE_TEMPLATE_VALUE: true, CSV_CURRENCY_TEMPLATE: true, CSV_INTEGRATION_CURRENCY_TEMPLATE: true, DOWNLOAD_FILES_FAKE_DATA: true, DOWNLOAD_FILES_KEY_PATH: true, DOWNLOAD_FILES_EDITABLE_FIELDS: true, SUBSCRIPTION_INTERVAL_ENUM: true, SUBSCRIPTION_STATUS_ENUM: true, SUBSCRIPTION_STATUS_PRETTY_ENUM: true, STRIPE_SUBSCRIPTION_STATUS_ENUM: true, ACTIVE_STRIPE_SUBSCRIPTION_STATUSES: true, ECOMMERCE_PROVIDER_NAME_ENUM: true, BILLING_METHOD_TYPES: true, PHYSICAL_PRODUCT_TYPE: true, DIGITAL_PRODUCT_TYPE: true, SERVICE_PRODUCT_TYPE: true, MEMBERSHIP_PRODUCT_TYPE: true, ADVANCED_PRODUCT_TYPE: true, TEMPLATE_PRODUCT_TYPES: true, PRODUCT_TYPE_HELP_TEXT: true, DEFAULT_PRODUCT_TYPE_ID: true, DISCOUNTS_CSV_IMPORT_EXPORT_COLUMNS: true, REQUIRED_DISCOUNT_IMPORT_FIELDS: true, STRIPE_DISCONNECT_SUBSCRIPTIONS_ERROR_MESSAGE: true, ORDER_SORT_MODES: true, SUBSCRIPTION_SORT_MODES: true, PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY: true, paypalCurrencyList: true, stripeCurrencyList: true }; Object.defineProperty(exports, "PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY", { enumerable: true, get: function get() { return _bindingContextConstants.PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY; } }); Object.defineProperty(exports, "paypalCurrencyList", { enumerable: true, get: function get() { return _paypalCurrencyList.paypalCurrencyList; } }); Object.defineProperty(exports, "stripeCurrencyList", { enumerable: true, get: function get() { return _stripeCurrencyList.stripeCurrencyList; } }); exports.SUBSCRIPTION_SORT_MODES = exports.ORDER_SORT_MODES = exports.STRIPE_DISCONNECT_SUBSCRIPTIONS_ERROR_MESSAGE = exports.REQUIRED_DISCOUNT_IMPORT_FIELDS = exports.DISCOUNTS_CSV_IMPORT_EXPORT_COLUMNS = exports.DEFAULT_PRODUCT_TYPE_ID = exports.PRODUCT_TYPE_HELP_TEXT = exports.TEMPLATE_PRODUCT_TYPES = exports.ADVANCED_PRODUCT_TYPE = exports.MEMBERSHIP_PRODUCT_TYPE = exports.SERVICE_PRODUCT_TYPE = exports.DIGITAL_PRODUCT_TYPE = exports.PHYSICAL_PRODUCT_TYPE = exports.BILLING_METHOD_TYPES = exports.ECOMMERCE_PROVIDER_NAME_ENUM = exports.ACTIVE_STRIPE_SUBSCRIPTION_STATUSES = exports.STRIPE_SUBSCRIPTION_STATUS_ENUM = exports.SUBSCRIPTION_STATUS_PRETTY_ENUM = exports.SUBSCRIPTION_STATUS_ENUM = exports.SUBSCRIPTION_INTERVAL_ENUM = exports.DOWNLOAD_FILES_EDITABLE_FIELDS = exports.DOWNLOAD_FILES_KEY_PATH = exports.DOWNLOAD_FILES_FAKE_DATA = exports.CSV_INTEGRATION_CURRENCY_TEMPLATE = exports.CSV_CURRENCY_TEMPLATE = exports.DEFAULT_PRICE_TEMPLATE_VALUE = exports.PRICE_TEMPLATE_OPTIONS = exports.PRICE_TEMPLATE_CURRENCY_CODE = exports.PRICE_TEMPLATE_AMOUNT = exports.PRICE_TEMPLATE_CURRENCY_SYMBOL = exports.MAX_SEARCH_LIMIT = exports.MAX_MEMBERSHIP_PRODUCTS = exports.MAX_PRODUCT_DIMENSION = exports.MAX_TOTAL_ORDER_PRICE = exports.INFINITE_INVENTORY = exports.INVENTORY_TYPE_INFINITE = exports.INVENTORY_TYPE_FINITE = exports.DEFAULT_TAX_CATEGORY = exports.SHIPPING_METHODS = exports.ORDER_ID_RE = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _camelCase = _interopRequireDefault(__webpack_require__(706)); var _pluginConstants = __webpack_require__(722); Object.keys(_pluginConstants).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _pluginConstants[key]; } }); }); var _bindingContextConstants = __webpack_require__(723); var _paypalCurrencyList = __webpack_require__(724); var _stripeCurrencyList = __webpack_require__(725); // REGEXES var ORDER_ID_RE = /^[0-9a-f]{5,}$/; // @TODO - Once we extract the Commerce plugin to packages, move `pluginConstants` there. exports.ORDER_ID_RE = ORDER_ID_RE; var SHIPPING_METHOD_FLAT = 'flat-rate'; var SHIPPING_METHOD_PERCENTAGE = 'percentage'; var SHIPPING_METHOD_PRICE = 'price'; var SHIPPING_METHOD_QUANTITY = 'quantity'; var SHIPPING_METHOD_WEIGHT = 'weight'; var SHIPPING_METHODS = Object.freeze({ FLAT: SHIPPING_METHOD_FLAT, PERCENTAGE: SHIPPING_METHOD_PERCENTAGE, PRICE: SHIPPING_METHOD_PRICE, QUANTITY: SHIPPING_METHOD_QUANTITY, WEIGHT: SHIPPING_METHOD_WEIGHT }); exports.SHIPPING_METHODS = SHIPPING_METHODS; var DEFAULT_TAX_CATEGORY = 'standard-taxable'; exports.DEFAULT_TAX_CATEGORY = DEFAULT_TAX_CATEGORY; var INVENTORY_TYPE_FINITE = 'finite'; exports.INVENTORY_TYPE_FINITE = INVENTORY_TYPE_FINITE; var INVENTORY_TYPE_INFINITE = 'infinite'; exports.INVENTORY_TYPE_INFINITE = INVENTORY_TYPE_INFINITE; var INFINITE_INVENTORY = { inventoryType: INVENTORY_TYPE_INFINITE, quantity: 0 }; // Stripe maximum charge. From stripe: The only limit to the maximum amount you can charge a customer // is a technical one. The amount value supports up to eight digits (e.g., a value of 99999999 for a // USD charge of $999,999.99). exports.INFINITE_INVENTORY = INFINITE_INVENTORY; var MAX_TOTAL_ORDER_PRICE = 99999999; exports.MAX_TOTAL_ORDER_PRICE = MAX_TOTAL_ORDER_PRICE; var MAX_PRODUCT_DIMENSION = 9000000000000000; exports.MAX_PRODUCT_DIMENSION = MAX_PRODUCT_DIMENSION; var MAX_MEMBERSHIP_PRODUCTS = 20; exports.MAX_MEMBERSHIP_PRODUCTS = MAX_MEMBERSHIP_PRODUCTS; var MAX_SEARCH_LIMIT = 100; exports.MAX_SEARCH_LIMIT = MAX_SEARCH_LIMIT; function _withDerivedValue(_ref) { var label = _ref.label, _ref$type = _ref.type, type = _ref$type === void 0 ? 'PlainText' : _ref$type, _ref$path = _ref.path, path = _ref$path === void 0 ? (0, _camelCase["default"])(label) : _ref$path, _ref$options = _ref.options, options = _ref$options === void 0 ? { readOnly: false, isNotAddable: false } : _ref$options; return (0, _extends2["default"])({ label: label, type: type }, options, { value: JSON.stringify({ path: path, type: type }) }); } var PRICE_TEMPLATE_CURRENCY_SYMBOL = _withDerivedValue({ label: 'Currency symbol', path: 'symbol' }); exports.PRICE_TEMPLATE_CURRENCY_SYMBOL = PRICE_TEMPLATE_CURRENCY_SYMBOL; var PRICE_TEMPLATE_AMOUNT = _withDerivedValue({ label: 'Amount', type: 'CommercePrice', options: { readOnly: true, isNotAddable: true } }); exports.PRICE_TEMPLATE_AMOUNT = PRICE_TEMPLATE_AMOUNT; var PRICE_TEMPLATE_CURRENCY_CODE = _withDerivedValue({ label: 'Currency code' }); exports.PRICE_TEMPLATE_CURRENCY_CODE = PRICE_TEMPLATE_CURRENCY_CODE; var PRICE_TEMPLATE_OPTIONS = [PRICE_TEMPLATE_CURRENCY_SYMBOL, PRICE_TEMPLATE_AMOUNT, PRICE_TEMPLATE_CURRENCY_CODE]; exports.PRICE_TEMPLATE_OPTIONS = PRICE_TEMPLATE_OPTIONS; var _intoToken = function _intoToken(option) { return "{{wf ".concat(option.value, " }}"); }; var DEFAULT_PRICE_TEMPLATE_VALUE = [_intoToken(PRICE_TEMPLATE_CURRENCY_SYMBOL), ' ', _intoToken(PRICE_TEMPLATE_AMOUNT), ' ', _intoToken(PRICE_TEMPLATE_CURRENCY_CODE)].join(''); exports.DEFAULT_PRICE_TEMPLATE_VALUE = DEFAULT_PRICE_TEMPLATE_VALUE; var CSV_CURRENCY_TEMPLATE = [_intoToken(PRICE_TEMPLATE_CURRENCY_SYMBOL), _intoToken(PRICE_TEMPLATE_AMOUNT)].join(''); exports.CSV_CURRENCY_TEMPLATE = CSV_CURRENCY_TEMPLATE; var CSV_INTEGRATION_CURRENCY_TEMPLATE = [_intoToken(PRICE_TEMPLATE_AMOUNT), ' ', _intoToken(PRICE_TEMPLATE_CURRENCY_CODE)].join(''); exports.CSV_INTEGRATION_CURRENCY_TEMPLATE = CSV_INTEGRATION_CURRENCY_TEMPLATE; var DOWNLOAD_FILES_FAKE_DATA = [{ id: '5d8fcb6d94dd1853060fb3b3', name: 'The modern web design process - Webflow Ebook.pdf', url: 'https://assets-global.website-files.com/5cf6b7202bf8199f50d43e6c/5e9dd8a680b972888929747b_The%20modern%20web%20design%20process%20-%20Webflow%20Ebook.pdf' }, { id: '5d8fcb6d94dd1853060fb3b4', name: 'The freelance web designers guide - Webflow Ebook.pdf', url: 'https://assets-global.website-files.com/5cf6b7202bf8199f50d43e6c/5e9dd8e6abe52b33243a22cf_The%20freelance%20web%20designer%E2%80%99s%20guide%20-%20Webflow%20Ebook.pdf' }]; exports.DOWNLOAD_FILES_FAKE_DATA = DOWNLOAD_FILES_FAKE_DATA; var DOWNLOAD_FILES_KEY_PATH = 'download-files'; exports.DOWNLOAD_FILES_KEY_PATH = DOWNLOAD_FILES_KEY_PATH; var DOWNLOAD_FILES_EDITABLE_FIELDS = { name: true, url: true }; // Subscriptions ---------------------------------------------------- exports.DOWNLOAD_FILES_EDITABLE_FIELDS = DOWNLOAD_FILES_EDITABLE_FIELDS; var SUBSCRIPTION_INTERVAL_ENUM = ['day', 'week', 'month', 'year']; exports.SUBSCRIPTION_INTERVAL_ENUM = SUBSCRIPTION_INTERVAL_ENUM; var SUBSCRIPTION_STATUS_ENUM = { active: 'active', pastdue: 'pastdue', unpaid: 'unpaid', canceled: 'canceled', cancelPending: 'cancelPending', incomplete: 'incomplete', incompleteExpired: 'incompleteExpired', trialing: 'trialing', unknown: "unknown" }; exports.SUBSCRIPTION_STATUS_ENUM = SUBSCRIPTION_STATUS_ENUM; var SUBSCRIPTION_STATUS_PRETTY_ENUM = { active: 'active', pastdue: 'pastdue', unpaid: 'unpaid', canceled: 'canceled', cancelPending: 'cancelPending', incomplete: 'incomplete', incompleteExpired: 'incompleteExpired', trialing: 'in trial', unknown: "unknown" }; exports.SUBSCRIPTION_STATUS_PRETTY_ENUM = SUBSCRIPTION_STATUS_PRETTY_ENUM; var STRIPE_SUBSCRIPTION_STATUS_ENUM = { active: 'active', past_due: 'past_due', unpaid: 'unpaid', canceled: 'canceled', incomplete: 'incomplete', incomplete_expired: 'incomplete_expired', trialing: 'trialing' }; exports.STRIPE_SUBSCRIPTION_STATUS_ENUM = STRIPE_SUBSCRIPTION_STATUS_ENUM; var ACTIVE_STRIPE_SUBSCRIPTION_STATUSES = [STRIPE_SUBSCRIPTION_STATUS_ENUM.active, STRIPE_SUBSCRIPTION_STATUS_ENUM.past_due, STRIPE_SUBSCRIPTION_STATUS_ENUM.trialing]; exports.ACTIVE_STRIPE_SUBSCRIPTION_STATUSES = ACTIVE_STRIPE_SUBSCRIPTION_STATUSES; var ECOMMERCE_PROVIDER_NAME_ENUM = { stripe: 'stripe' }; exports.ECOMMERCE_PROVIDER_NAME_ENUM = ECOMMERCE_PROVIDER_NAME_ENUM; var BILLING_METHOD_TYPES = { subscription: 'subscription', oneTime: 'one-time' }; // Product Types exports.BILLING_METHOD_TYPES = BILLING_METHOD_TYPES; var DEFAULT_PRODUCT_TYPE_PRODUCT_FIELDS = [{ fieldSlug: 'name', required: true }, { fieldSlug: 'slug', required: true }, { fieldSlug: 'sku-properties', required: false }, { fieldSlug: 'category', required: false }, { fieldSlug: 'description', required: false }, { fieldSlug: 'tax-category', required: false }, { fieldSlug: 'default-sku', required: false }, { fieldSlug: 'ec-product-type', required: false }, { fieldSlug: 'options', required: false }]; var DEFAULT_PRODUCT_TYPE_SKU_FIELDS = [{ fieldSlug: 'sku-values', required: false }, { fieldSlug: 'product', required: false }, { fieldSlug: 'main-image', required: false }, { fieldSlug: 'more-images', required: false }, { fieldSlug: 'price', required: true }, { fieldSlug: 'compare-at-price', required: false }, { fieldSlug: 'ec-sku-subscription-plan', required: false }, { fieldSlug: 'sku', required: false }, { fieldSlug: 'ec-sku-billing-method', required: false }, { fieldSlug: 'track-inventory', required: false }, { fieldSlug: 'quantity', required: false }]; var PHYSICAL_PRODUCT_TYPE = { name: 'Physical', id: 'ff42fee0113744f693a764e3431a9cc2', fields: { product: [].concat(DEFAULT_PRODUCT_TYPE_PRODUCT_FIELDS, [{ fieldSlug: 'shippable', required: false }]), sku: [].concat(DEFAULT_PRODUCT_TYPE_SKU_FIELDS, [{ fieldSlug: 'weight', required: false }, { fieldSlug: 'width', required: false }, { fieldSlug: 'height', required: false }, { fieldSlug: 'length', required: false }]) } }; exports.PHYSICAL_PRODUCT_TYPE = PHYSICAL_PRODUCT_TYPE; var DIGITAL_PRODUCT_TYPE = { name: 'Digital', id: 'f22027db68002190aef89a4a2b7ac8a1', fields: { product: [].concat(DEFAULT_PRODUCT_TYPE_PRODUCT_FIELDS), sku: [].concat(DEFAULT_PRODUCT_TYPE_SKU_FIELDS, [{ fieldSlug: 'download-files', required: true }]) } }; exports.DIGITAL_PRODUCT_TYPE = DIGITAL_PRODUCT_TYPE; var SERVICE_PRODUCT_TYPE = { name: 'Service', id: 'c599e43b1a1c34d5a323aedf75d3adf6', fields: { product: [].concat(DEFAULT_PRODUCT_TYPE_PRODUCT_FIELDS), sku: [].concat(DEFAULT_PRODUCT_TYPE_SKU_FIELDS) } }; exports.SERVICE_PRODUCT_TYPE = SERVICE_PRODUCT_TYPE; var MEMBERSHIP_PRODUCT_TYPE = { name: 'Membership', id: 'e348fd487d0102946c9179d2a94bb613', fields: { product: [].concat(DEFAULT_PRODUCT_TYPE_PRODUCT_FIELDS, [{ fieldSlug: 'shippable', required: false }]), sku: [].concat(DEFAULT_PRODUCT_TYPE_SKU_FIELDS, [{ fieldSlug: 'weight', required: false }, { fieldSlug: 'width', required: false }, { fieldSlug: 'height', required: false }, { fieldSlug: 'length', required: false }, { fieldSlug: 'download-files', required: false }, { fieldSlug: 'include-downloads', required: false }]) } }; exports.MEMBERSHIP_PRODUCT_TYPE = MEMBERSHIP_PRODUCT_TYPE; var ADVANCED_PRODUCT_TYPE = { name: 'Advanced', id: 'b6ccc1830db4b1babeb06a9ac5f6dd76' }; exports.ADVANCED_PRODUCT_TYPE = ADVANCED_PRODUCT_TYPE; var TEMPLATE_PRODUCT_TYPES = [PHYSICAL_PRODUCT_TYPE, DIGITAL_PRODUCT_TYPE, SERVICE_PRODUCT_TYPE, MEMBERSHIP_PRODUCT_TYPE, ADVANCED_PRODUCT_TYPE]; // only used to get type ProductTypeId exports.TEMPLATE_PRODUCT_TYPES = TEMPLATE_PRODUCT_TYPES; var templateProductTypeIds = TEMPLATE_PRODUCT_TYPES.reduce(function (ids, t) { ids[t.id] = ''; return ids; }, {}); var PRODUCT_TYPE_HELP_TEXT = (_PRODUCT_TYPE_HELP_TE = {}, (0, _defineProperty2["default"])(_PRODUCT_TYPE_HELP_TE, PHYSICAL_PRODUCT_TYPE.id, 'Physical products are shipped to the customer (e.g., merchandise, apparel).'), (0, _defineProperty2["default"])(_PRODUCT_TYPE_HELP_TE, DIGITAL_PRODUCT_TYPE.id, 'Digital products are immediately downloadable by the customer after checkout (e.g., audio files, ebooks).'), (0, _defineProperty2["default"])(_PRODUCT_TYPE_HELP_TE, SERVICE_PRODUCT_TYPE.id, 'Service products do not require a shipping address during checkout (e.g., classes, consultations).'), (0, _defineProperty2["default"])(_PRODUCT_TYPE_HELP_TE, MEMBERSHIP_PRODUCT_TYPE.id, 'Membership products give users access to gated content through recurring or one-time payment (e.g., subscriptions, one-time membership fee). Membership products require a user login and can only be purchased once.'), (0, _defineProperty2["default"])(_PRODUCT_TYPE_HELP_TE, ADVANCED_PRODUCT_TYPE.id, 'Advanced products provide all available customizable options.'), _PRODUCT_TYPE_HELP_TE); exports.PRODUCT_TYPE_HELP_TEXT = PRODUCT_TYPE_HELP_TEXT; var DEFAULT_PRODUCT_TYPE_ID = PHYSICAL_PRODUCT_TYPE.id; exports.DEFAULT_PRODUCT_TYPE_ID = DEFAULT_PRODUCT_TYPE_ID; var DISCOUNTS_CSV_IMPORT_EXPORT_COLUMNS = ['name', 'code', 'notes', 'type', 'percentOff', 'amountOff', 'validOn', 'expiresOn', 'enabled', // 'active' is being replaced with 'enabled' 'orderMinimum', // archived is disabled until we have UI for it // 'archived', 'totalUsage', 'maxAmountOff', // NOTE: for dot-notation fields to be properly expanded // during import, you need to add the camel-case flattened property to // the 'KEYS_TO_EXPAND' variable in `entrypoints/server/lib/ecommerce/csvImport/discountCsvImport.js` // Example: 'usage.limit.total' -> 'usageLimitTotal' 'usage.limit.total', 'usage.limit.customer', 'appliesTo.scope', 'appliesTo.filter', 'appliesTo.applyOnce']; exports.DISCOUNTS_CSV_IMPORT_EXPORT_COLUMNS = DISCOUNTS_CSV_IMPORT_EXPORT_COLUMNS; var REQUIRED_DISCOUNT_IMPORT_FIELDS = ['name', 'code', 'type', ['percentOff', 'amountOff']]; exports.REQUIRED_DISCOUNT_IMPORT_FIELDS = REQUIRED_DISCOUNT_IMPORT_FIELDS; var STRIPE_DISCONNECT_SUBSCRIPTIONS_ERROR_MESSAGE = 'Stripe disconnect attempted with non-canceled subscriptions'; exports.STRIPE_DISCONNECT_SUBSCRIPTIONS_ERROR_MESSAGE = STRIPE_DISCONNECT_SUBSCRIPTIONS_ERROR_MESSAGE; var ORDER_SORT_MODES = Object.freeze({ '-count': '-purchasedItemsCount -_id', count: 'purchasedItemsCount _id', '-name': '-customerInfo.fullName -_id', name: 'customerInfo.fullName _id', '-orderid': '-orderId', orderid: 'orderId', '-paid': '-customerPaid.unit -customerPaid.value -_id', paid: 'customerPaid.unit customerPaid.value _id', '-status': '-statusCode -_id', status: 'statusCode _id', '-time': '-acceptedOn -_id', time: 'acceptedOn _id' }); exports.ORDER_SORT_MODES = ORDER_SORT_MODES; var SUBSCRIPTION_SORT_MODES = Object.freeze({ '-lastBilled': '-lastInvoiced -_id', lastBilled: 'lastInvoiced _id', '-nextBilling': '-paidUntil -_id', nextBilling: 'paidUntil _id', '-orderid': '-orderId', orderid: 'orderId', '-purchased': '-subCreatedOn -_id', purchased: 'subCreatedOn _id', '-status': '-status -_id', status: 'status _id', '-trialing': '-trialing -_id', trialing: 'trialing _id' }); exports.SUBSCRIPTION_SORT_MODES = SUBSCRIPTION_SORT_MODES; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document, navigator, WEBFLOW_ENV_TEST */ /* eslint-disable no-var */ /** * Webflow: Core site library */ var Webflow = {}; var modules = {}; var primary = []; var secondary = window.Webflow || []; var $ = window.jQuery; var $win = $(window); var $doc = $(document); var isFunction = $.isFunction; var _ = Webflow._ = __webpack_require__(381); var tram = Webflow.tram = __webpack_require__(228) && $.tram; var domready = false; var destroyed = false; tram.config.hideBackface = false; tram.config.keepInherited = true; /** * Webflow.define - Define a named module * @param {string} name * @param {function} factory * @param {object} options * @return {object} */ Webflow.define = function (name, factory, options) { if (modules[name]) { unbindModule(modules[name]); } var instance = modules[name] = factory($, _, options) || {}; bindModule(instance); return instance; }; /** * Webflow.require - Require a named module * @param {string} name * @return {object} */ Webflow.require = function (name) { return modules[name]; }; function bindModule(module) { // If running in Webflow app, subscribe to design/preview events if (Webflow.env()) { isFunction(module.design) && $win.on('__wf_design', module.design); isFunction(module.preview) && $win.on('__wf_preview', module.preview); } // Subscribe to front-end destroy event isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module if (module.ready && isFunction(module.ready)) { addReady(module); } } function addReady(module) { // If domready has already happened, run ready method if (domready) { module.ready(); return; } // Otherwise add ready method to the primary queue (only once) if (_.contains(primary, module.ready)) { return; } primary.push(module.ready); } function unbindModule(module) { // Unsubscribe module from window events isFunction(module.design) && $win.off('__wf_design', module.design); isFunction(module.preview) && $win.off('__wf_preview', module.preview); isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue if (module.ready && isFunction(module.ready)) { removeReady(module); } } function removeReady(module) { primary = _.filter(primary, function (readyFn) { return readyFn !== module.ready; }); } /** * Webflow.push - Add a ready handler into secondary queue * @param {function} ready Callback to invoke on domready */ Webflow.push = function (ready) { // If domready has already happened, invoke handler if (domready) { isFunction(ready) && ready(); return; } // Otherwise push into secondary queue secondary.push(ready); }; /** * Webflow.env - Get the state of the Webflow app * @param {string} mode [optional] * @return {boolean} */ Webflow.env = function (mode) { var designFlag = window.__wf_design; var inApp = typeof designFlag !== 'undefined'; if (!mode) { return inApp; } if (mode === 'design') { return inApp && designFlag; } if (mode === 'preview') { return inApp && !designFlag; } if (mode === 'slug') { return inApp && window.__wf_slug; } if (mode === 'editor') { return window.WebflowEditor; } if (mode === 'test') { return false || window.__wf_test; } if (mode === 'frame') { return window !== window.top; } }; // Feature detects + browser sniffs ಠ_ಠvar userAgent = navigator.userAgent.toLowerCase(); var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices var touchTarget; // Listen for both events to support touch/mouse hybrid devices touch && $doc.on('touchstart mousedown', function (evt) { touchTarget = evt.target; }); /** * Webflow.validClick - validate click target against current touch target * @param {HTMLElement} clickTarget Element being clicked * @return {Boolean} True if click target is valid (always true on non-touch) */ Webflow.validClick = touch ? function (clickTarget) { return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); } : function () { return true; }; /** * Webflow.resize, Webflow.scroll - throttled event proxies */ var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow'; var scrollEvents = 'scroll.webflow ' + resizeEvents; Webflow.resize = eventProxy($win, resizeEvents); Webflow.scroll = eventProxy($win, scrollEvents); Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events function eventProxy(target, types) { // Set up throttled method (using custom frame-based _.throttle) var handlers = []; var proxy = {}; proxy.up = _.throttle(function (evt) { _.each(handlers, function (h) { h(evt); }); }); // Bind events to target if (target && types) { target.on(types, proxy.up); } /** * Add an event handler * @param {function} handler */ proxy.on = function (handler) { if (typeof handler !== 'function') { return; } if (_.contains(handlers, handler)) { return; } handlers.push(handler); }; /** * Remove an event handler * @param {function} handler */ proxy.off = function (handler) { // If no arguments supplied, clear all handlers if (!arguments.length) { handlers = []; return; } // Otherwise, remove handler from the list handlers = _.filter(handlers, function (h) { return h !== handler; }); }; return proxy; } // Webflow.location - Wrap window.location in api Webflow.location = function (url) { window.location = url; }; if (Webflow.env()) { // Ignore redirects inside a Webflow design/edit environment Webflow.location = function () {}; } // Webflow.ready - Call primary and secondary handlers Webflow.ready = function () { domready = true; // Restore modules after destroy if (destroyed) { restoreModules(); // Otherwise run primary ready methods } else { _.each(primary, callReady); } // Run secondary ready methods _.each(secondary, callReady); // Trigger resize Webflow.resize.up(); }; function callReady(readyFn) { isFunction(readyFn) && readyFn(); } function restoreModules() { destroyed = false; _.each(modules, bindModule); } /** * Webflow.load - Add a window load handler that will run even if load event has already happened * @param {function} handler */ var deferLoad; Webflow.load = function (handler) { deferLoad.then(handler); }; function bindLoad() { // Reject any previous deferred (to support destroy) if (deferLoad) { deferLoad.reject(); $win.off('load', deferLoad.resolve); } // Create deferred and bind window load event deferLoad = new $.Deferred(); $win.on('load', deferLoad.resolve); } // Webflow.destroy - Trigger a destroy event for all modules Webflow.destroy = function (options) { options = options || {}; destroyed = true; $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests if (options.domready != null) { domready = options.domready; } // Unbind modules _.each(modules, unbindModule); // Clear any proxy event handlers Webflow.resize.off(); Webflow.scroll.off(); Webflow.redraw.off(); // Clear any queued ready methods primary = []; secondary = []; // If load event has not yet fired, replace the deferred if (deferLoad.state() === 'pending') { bindLoad(); } }; // Listen for domready $(Webflow.ready); // Listen for window.onload and resolve deferred bindLoad(); // Export commonjs module module.exports = window.Webflow = Webflow; /***/ }), /* 21 */ /***/ (function(module, exports) { function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty; /***/ }), /* 22 */ /***/ (function(module, exports) { /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && typeof value == 'object'; } module.exports = isObjectLike; /***/ }), /* 23 */ /***/ (function(module, exports) { var call = Function.prototype.call; module.exports = call.bind ? call.bind(call) : function () { return call.apply(call, arguments); }; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isCallable = __webpack_require__(6); var aFunction = function (argument) { return isCallable(argument) ? argument : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; }; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(66); Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { IX2EngineActionTypes: true, IX2EngineConstants: true }; exports.IX2EngineConstants = exports.IX2EngineActionTypes = void 0; var _triggerEvents = __webpack_require__(408); Object.keys(_triggerEvents).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _triggerEvents[key]; } }); }); var _animationActions = __webpack_require__(248); Object.keys(_animationActions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _animationActions[key]; } }); }); var _triggerInteractions = __webpack_require__(409); Object.keys(_triggerInteractions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _triggerInteractions[key]; } }); }); var _reducedMotion = __webpack_require__(410); Object.keys(_reducedMotion).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _reducedMotion[key]; } }); }); var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(411)); exports.IX2EngineActionTypes = IX2EngineActionTypes; var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(412)); exports.IX2EngineConstants = IX2EngineConstants; /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(68); var requireObjectCoercible = __webpack_require__(85); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isCallable = __webpack_require__(6); var hasOwn = __webpack_require__(14); var createNonEnumerableProperty = __webpack_require__(70); var setGlobal = __webpack_require__(157); var inspectSource = __webpack_require__(117); var InternalStateModule = __webpack_require__(38); var CONFIGURABLE_FUNCTION_NAME = __webpack_require__(233).CONFIGURABLE; var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(String).split('String'); (module.exports = function (O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; var name = options && options.name !== undefined ? options.name : key; var state; if (isCallable(value)) { if (String(name).slice(0, 7) === 'Symbol(') { name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; } if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { createNonEnumerableProperty(value, 'name', name); } state = enforceInternalState(value); if (!state.source) { state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); } } if (O === global) { if (simple) O[key] = value; else setGlobal(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else createNonEnumerableProperty(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { return isCallable(this) && getInternalState(this).source || inspectSource(this); }); /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { var freeGlobal = __webpack_require__(250); /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = freeGlobal || freeSelf || Function('return this')(); module.exports = root; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var aCallable = __webpack_require__(31); var bind = uncurryThis(uncurryThis.bind); // optional / simple context binding module.exports = function (fn, that) { aCallable(fn); return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 30 */ /***/ (function(module, exports) { function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } function _typeof(obj) { if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { module.exports = _typeof = function _typeof(obj) { return _typeof2(obj); }; } else { module.exports = _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); }; } return _typeof(obj); } module.exports = _typeof; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isCallable = __webpack_require__(6); var tryToString = __webpack_require__(113); var TypeError = global.TypeError; // `Assert: IsCallable(argument) is true` module.exports = function (argument) { if (isCallable(argument)) return argument; throw TypeError(tryToString(argument) + ' is not a function'); }; /***/ }), /* 32 */ /***/ (function(module, exports) { var ceil = Math.ceil; var floor = Math.floor; // `ToIntegerOrInfinity` abstract operation // https://tc39.es/ecma262/#sec-tointegerorinfinity module.exports = function (argument) { var number = +argument; // eslint-disable-next-line no-self-compare -- safe return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); }; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(73), getRawTag = __webpack_require__(428), objectToString = __webpack_require__(429); /** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]'; /** Built-in value references. */ var symToStringTag = Symbol ? Symbol.toStringTag : undefined; /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return (symToStringTag && symToStringTag in Object(value)) ? getRawTag(value) : objectToString(value); } module.exports = baseGetTag; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var classof = __webpack_require__(100); var String = global.String; module.exports = function (argument) { if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string'); return String(argument); }; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { var bind = __webpack_require__(29); var uncurryThis = __webpack_require__(3); var IndexedObject = __webpack_require__(68); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var arraySpeciesCreate = __webpack_require__(75); var push = uncurryThis([].push); // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation var createMethod = function (TYPE) { var IS_MAP = TYPE == 1; var IS_FILTER = TYPE == 2; var IS_SOME = TYPE == 3; var IS_EVERY = TYPE == 4; var IS_FIND_INDEX = TYPE == 6; var IS_FILTER_REJECT = TYPE == 7; var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; return function ($this, callbackfn, that, specificCreate) { var O = toObject($this); var self = IndexedObject(O); var boundFunction = bind(callbackfn, that); var length = lengthOfArrayLike(self); var index = 0; var create = specificCreate || arraySpeciesCreate; var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; var value, result; for (;length > index; index++) if (NO_HOLES || index in self) { value = self[index]; result = boundFunction(value, index, O); if (TYPE) { if (IS_MAP) target[index] = result; // map else if (result) switch (TYPE) { case 3: return true; // some case 5: return value; // find case 6: return index; // findIndex case 2: push(target, value); // filter } else switch (TYPE) { case 4: return false; // every case 7: push(target, value); // filterReject } } } return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; }; }; module.exports = { // `Array.prototype.forEach` method // https://tc39.es/ecma262/#sec-array.prototype.foreach forEach: createMethod(0), // `Array.prototype.map` method // https://tc39.es/ecma262/#sec-array.prototype.map map: createMethod(1), // `Array.prototype.filter` method // https://tc39.es/ecma262/#sec-array.prototype.filter filter: createMethod(2), // `Array.prototype.some` method // https://tc39.es/ecma262/#sec-array.prototype.some some: createMethod(3), // `Array.prototype.every` method // https://tc39.es/ecma262/#sec-array.prototype.every every: createMethod(4), // `Array.prototype.find` method // https://tc39.es/ecma262/#sec-array.prototype.find find: createMethod(5), // `Array.prototype.findIndex` method // https://tc39.es/ecma262/#sec-array.prototype.findIndex findIndex: createMethod(6), // `Array.prototype.filterReject` method // https://github.com/tc39/proposal-array-filtering filterReject: createMethod(7) }; /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); var _KEY_FROM_RESERVED_US, _NAMES_FROM_USER_FIEL; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { TEMP_IS_TESTING_FILE_INPUT: true, RESERVED_USER_PREFIX: true, RESERVED_USER_FIELDS: true, KEY_FROM_RESERVED_USER_FIELD: true, NAMES_FROM_USER_FIELDS: true, TEXT_INPUT_TYPE_TO_FIELD_TYPE: true, USYS_UTILITY_KEYS: true, USYS_DATA_ATTRS: true, USYS_DOM_CLASS_NAMES: true, USYS_FORM_TYPES: true, USYS_INPUT_TYPES: true, USYS_INPUT_SIGN_UP_IDS: true, USYS_USER_STATES: true, USYS_PAGE_SETTINGS: true, USYS_RESERVED_SLUGS: true, USYS_PAGE_UTIL_KEYS: true, DEFAULT_STYLES: true, PASSWORD_MIN_LENGTH: true, PASSWORD_MAX_LENGTH: true, SESSION_COOKIE_NAME: true, LOGGEDIN_COOKIE_NAME: true, DEFAULT_SESSION_DURATION_IN_MS: true, DEFAULT_SESSION_TOKEN_DURATION_IN_MS: true, DEFAULT_TOKEN_AGE_MS: true, MAX_NUM_USERS: true, MAX_NUM_GROUPS: true, MIN_GROUP_ID_LENGTH: true, MAX_GROUP_ID_LENGTH: true, USYS_TOKEN_TYPES: true, ACCESS_GROUP_INLINE_PRODUCT_FIELD_SLUG: true, ACCESS_GROUP_ADMISSION_TYPE: true, ACCESS_GROUP_FREE_TYPE: true, SUBSCRIPTION_EMAIL_TYPES: true, MEMBERSHIPS_EMAIL_KEYS: true, EMAIL_TEMPLATE_TYPES: true, CONFIRM_UNSAVED_CHANGES_COPY: true, USER_FIELD_FORM_ID: true, NEW_USER_FIELD_ID: true, USER_FIELD_DEFAULTS: true, DEFAULT_USER_FIELDS: true, SETUP_GUIDE_KEYS: true, SETUP_GUIDE_ALL_KEYS: true, MAX_USER_DATA_FIELDS: true, MAX_UPDATE_USER_DATA_FIELDS: true, USYS_FIELD_PATH: true, USYS_CONTEXT_PATH: true, TEMP_STATE_PATH: true, USER_ACCESS_META_OPTIONS: true, EXCEEDS_MAX_FILE_SIZE_ERROR: true, EXCEEDS_MAX_IMAGE_SIZE_ERROR: true, USER_STATUSES: true, USER_PAGE_SIZE: true }; exports.USER_PAGE_SIZE = exports.USER_STATUSES = exports.EXCEEDS_MAX_IMAGE_SIZE_ERROR = exports.EXCEEDS_MAX_FILE_SIZE_ERROR = exports.USER_ACCESS_META_OPTIONS = exports.TEMP_STATE_PATH = exports.USYS_CONTEXT_PATH = exports.USYS_FIELD_PATH = exports.MAX_UPDATE_USER_DATA_FIELDS = exports.MAX_USER_DATA_FIELDS = exports.SETUP_GUIDE_ALL_KEYS = exports.SETUP_GUIDE_KEYS = exports.DEFAULT_USER_FIELDS = exports.USER_FIELD_DEFAULTS = exports.NEW_USER_FIELD_ID = exports.USER_FIELD_FORM_ID = exports.CONFIRM_UNSAVED_CHANGES_COPY = exports.EMAIL_TEMPLATE_TYPES = exports.MEMBERSHIPS_EMAIL_KEYS = exports.SUBSCRIPTION_EMAIL_TYPES = exports.ACCESS_GROUP_FREE_TYPE = exports.ACCESS_GROUP_ADMISSION_TYPE = exports.ACCESS_GROUP_INLINE_PRODUCT_FIELD_SLUG = exports.USYS_TOKEN_TYPES = exports.MAX_GROUP_ID_LENGTH = exports.MIN_GROUP_ID_LENGTH = exports.MAX_NUM_GROUPS = exports.MAX_NUM_USERS = exports.DEFAULT_TOKEN_AGE_MS = exports.DEFAULT_SESSION_TOKEN_DURATION_IN_MS = exports.DEFAULT_SESSION_DURATION_IN_MS = exports.LOGGEDIN_COOKIE_NAME = exports.SESSION_COOKIE_NAME = exports.PASSWORD_MAX_LENGTH = exports.PASSWORD_MIN_LENGTH = exports.DEFAULT_STYLES = exports.USYS_PAGE_UTIL_KEYS = exports.USYS_RESERVED_SLUGS = exports.USYS_PAGE_SETTINGS = exports.USYS_USER_STATES = exports.USYS_INPUT_SIGN_UP_IDS = exports.USYS_INPUT_TYPES = exports.USYS_FORM_TYPES = exports.USYS_DOM_CLASS_NAMES = exports.USYS_DATA_ATTRS = exports.USYS_UTILITY_KEYS = exports.TEXT_INPUT_TYPE_TO_FIELD_TYPE = exports.NAMES_FROM_USER_FIELDS = exports.KEY_FROM_RESERVED_USER_FIELD = exports.RESERVED_USER_FIELDS = exports.RESERVED_USER_PREFIX = exports.TEMP_IS_TESTING_FILE_INPUT = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _utils = __webpack_require__(354); var _types = __webpack_require__(740); Object.keys(_types).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _types[key]; } }); }); var _errorStates = __webpack_require__(741); Object.keys(_errorStates).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _errorStates[key]; } }); }); var TEMP_IS_TESTING_FILE_INPUT = false; exports.TEMP_IS_TESTING_FILE_INPUT = TEMP_IS_TESTING_FILE_INPUT; var RESERVED_USER_PREFIX = 'wf-user-field-'; exports.RESERVED_USER_PREFIX = RESERVED_USER_PREFIX; var RESERVED_USER_FIELDS = { name: RESERVED_USER_PREFIX + 'name', acceptPrivacy: RESERVED_USER_PREFIX + 'accept-privacy', acceptCommunications: RESERVED_USER_PREFIX + 'accept-communications' }; exports.RESERVED_USER_FIELDS = RESERVED_USER_FIELDS; var KEY_FROM_RESERVED_USER_FIELD = (_KEY_FROM_RESERVED_US = {}, (0, _defineProperty2["default"])(_KEY_FROM_RESERVED_US, RESERVED_USER_PREFIX + 'name', 'name'), (0, _defineProperty2["default"])(_KEY_FROM_RESERVED_US, RESERVED_USER_PREFIX + 'accept-privacy', 'acceptPrivacy'), (0, _defineProperty2["default"])(_KEY_FROM_RESERVED_US, RESERVED_USER_PREFIX + 'accept-communications', 'acceptCommunications'), _KEY_FROM_RESERVED_US); exports.KEY_FROM_RESERVED_USER_FIELD = KEY_FROM_RESERVED_USER_FIELD; var NAMES_FROM_USER_FIELDS = (_NAMES_FROM_USER_FIEL = {}, (0, _defineProperty2["default"])(_NAMES_FROM_USER_FIEL, RESERVED_USER_PREFIX + 'name', 'Name'), (0, _defineProperty2["default"])(_NAMES_FROM_USER_FIEL, RESERVED_USER_PREFIX + 'accept-privacy', 'Accept privacy policy'), (0, _defineProperty2["default"])(_NAMES_FROM_USER_FIEL, RESERVED_USER_PREFIX + 'accept-communications', 'Accept communications'), (0, _defineProperty2["default"])(_NAMES_FROM_USER_FIEL, "PRIVACY_POLICY", 'Accept privacy policy'), (0, _defineProperty2["default"])(_NAMES_FROM_USER_FIEL, "PASSWORD", 'Password'), (0, _defineProperty2["default"])(_NAMES_FROM_USER_FIEL, "EMAIL", 'Email'), _NAMES_FROM_USER_FIEL); exports.NAMES_FROM_USER_FIELDS = NAMES_FROM_USER_FIELDS; var TEXT_INPUT_TYPE_TO_FIELD_TYPE = { text: 'PlainText', password: 'Password', email: 'Email', number: 'PlainText', tel: 'PlainText' }; exports.TEXT_INPUT_TYPE_TO_FIELD_TYPE = TEXT_INPUT_TYPE_TO_FIELD_TYPE; var USYS_UTILITY_KEYS = { 'usys-log-in': 'usys-log-in', 'usys-sign-up': 'usys-sign-up', 'usys-reset-password': 'usys-reset-password', 'usys-update-password': 'usys-update-password', 'usys-access-denied': 'usys-access-denied', 'usys-user-account': 'usys-user-account' }; exports.USYS_UTILITY_KEYS = USYS_UTILITY_KEYS; var USYS_DATA_ATTRS = { formType: 'data-wf-user-form-type', inputType: 'data-wf-user-form-input-type', logout: 'data-wf-user-logout', login: 'data-wf-user-login', formError: 'data-wf-user-form-error', redirectUrl: 'data-wf-user-form-redirect', formVerification: 'data-wf-user-form-verification', userSubscriptions: 'data-wf-user-subscriptions-list', userSubscriptionsEmptyState: 'data-wf-user-subscriptions-empty', userAccount: 'data-wf-user-account', subscriptionCancel: 'data-wf-user-subscription-cancel', userId: 'data-wf-user-id', field: 'data-wf-user-field', fieldType: 'data-wf-user-field-type' }; exports.USYS_DATA_ATTRS = USYS_DATA_ATTRS; var USYS_DOM_CLASS_NAMES = { formSuccess: 'w-form-success', formVerfication: 'w-form-verification', formError: 'w-form-fail' }; exports.USYS_DOM_CLASS_NAMES = USYS_DOM_CLASS_NAMES; var USYS_FORM_TYPES = { login: 'login', signup: 'signup', updatePassword: 'updatePassword', resetPassword: 'resetPassword', account: 'userAccount' }; exports.USYS_FORM_TYPES = USYS_FORM_TYPES; var USYS_INPUT_TYPES = { email: 'email', name: 'name', password: 'password', acceptPrivacy: 'accept-privacy' }; exports.USYS_INPUT_TYPES = USYS_INPUT_TYPES; var USYS_INPUT_SIGN_UP_IDS = { email: 'wf-sign-up-email', name: 'wf-sign-up-name', password: 'wf-sign-up-password', acceptPrivacy: 'wf-sign-up-accept-privacy', acceptCommunications: 'wf-sign-up-accept-communications' }; exports.USYS_INPUT_SIGN_UP_IDS = USYS_INPUT_SIGN_UP_IDS; var USYS_USER_STATES = { loggedIn: 'loggedIn', loggedOut: 'loggedOut' }; // Source of truth for all user systems template page settings exports.USYS_USER_STATES = USYS_USER_STATES; var USYS_PAGE_SETTINGS = { login: { parent: null, sortPos: 0, utilKey: 'usys-log-in', slug: 'log-in', title: 'Log In' }, signup: { parent: null, sortPos: 1, utilKey: 'usys-sign-up', slug: 'sign-up', title: 'Sign Up' }, resetPassword: { parent: null, sortPos: 2, utilKey: 'usys-reset-password', slug: 'reset-password', title: 'Reset Password' }, updatePassword: { parent: null, sortPos: 3, utilKey: 'usys-update-password', slug: 'update-password', title: 'Update Password' }, accessDenied: { parent: null, sortPos: 4, utilKey: 'usys-access-denied', slug: 'access-denied', title: 'Access Denied' }, userAccount: { parent: null, sortPos: 5, utilKey: 'usys-user-account', slug: 'user-account', title: 'User Account' } }; exports.USYS_PAGE_SETTINGS = USYS_PAGE_SETTINGS; var USYS_RESERVED_SLUGS = (0, _utils.values)(USYS_PAGE_SETTINGS).map(function (pageSettings) { return pageSettings.slug; }); exports.USYS_RESERVED_SLUGS = USYS_RESERVED_SLUGS; var USYS_PAGE_UTIL_KEYS = (0, _utils.values)(USYS_PAGE_SETTINGS).map(function (pageSettings) { return pageSettings.utilKey; }); // for brand styling in emails exports.USYS_PAGE_UTIL_KEYS = USYS_PAGE_UTIL_KEYS; var DEFAULT_STYLES = { accentColor: '#468EE5', bgColor: '#F5F6F7', includeWfBrand: true }; // The length expressed here is in bytes, that means that some characters will // count as more than 1 byte, like: á, é, Ã, ó, ú, etc. exports.DEFAULT_STYLES = DEFAULT_STYLES; var PASSWORD_MIN_LENGTH = 8; exports.PASSWORD_MIN_LENGTH = PASSWORD_MIN_LENGTH; var PASSWORD_MAX_LENGTH = 72; // Helper constants. exports.PASSWORD_MAX_LENGTH = PASSWORD_MAX_LENGTH; var SECOND = 1000; var MINUTE = 60 * SECOND; var HOUR = 60 * MINUTE; var DAY = 24 * HOUR; var SESSION_COOKIE_NAME = 'wf_sid'; exports.SESSION_COOKIE_NAME = SESSION_COOKIE_NAME; var LOGGEDIN_COOKIE_NAME = 'wf_loggedin'; exports.LOGGEDIN_COOKIE_NAME = LOGGEDIN_COOKIE_NAME; var DEFAULT_SESSION_DURATION_IN_MS = 7 * DAY; exports.DEFAULT_SESSION_DURATION_IN_MS = DEFAULT_SESSION_DURATION_IN_MS; var DEFAULT_SESSION_TOKEN_DURATION_IN_MS = 4 * HOUR; exports.DEFAULT_SESSION_TOKEN_DURATION_IN_MS = DEFAULT_SESSION_TOKEN_DURATION_IN_MS; var DEFAULT_TOKEN_AGE_MS = HOUR; exports.DEFAULT_TOKEN_AGE_MS = DEFAULT_TOKEN_AGE_MS; var MAX_NUM_USERS = 20000; exports.MAX_NUM_USERS = MAX_NUM_USERS; var MAX_NUM_GROUPS = 20; exports.MAX_NUM_GROUPS = MAX_NUM_GROUPS; var MIN_GROUP_ID_LENGTH = 2; exports.MIN_GROUP_ID_LENGTH = MIN_GROUP_ID_LENGTH; var MAX_GROUP_ID_LENGTH = 2; exports.MAX_GROUP_ID_LENGTH = MAX_GROUP_ID_LENGTH; var USYS_TOKEN_TYPES = { inviteUser: 'inviteUser', resetPassword: 'resetPassword', verifyEmail: 'verifyEmail' }; exports.USYS_TOKEN_TYPES = USYS_TOKEN_TYPES; var ACCESS_GROUP_INLINE_PRODUCT_FIELD_SLUG = 'access-group-membership-product'; exports.ACCESS_GROUP_INLINE_PRODUCT_FIELD_SLUG = ACCESS_GROUP_INLINE_PRODUCT_FIELD_SLUG; var ACCESS_GROUP_ADMISSION_TYPE = { free: 'free', paid: 'paid' }; exports.ACCESS_GROUP_ADMISSION_TYPE = ACCESS_GROUP_ADMISSION_TYPE; var ACCESS_GROUP_FREE_TYPE = { all: 'all', admin: 'admin' }; // **** Emails **** // exports.ACCESS_GROUP_FREE_TYPE = ACCESS_GROUP_FREE_TYPE; var SUBSCRIPTION_EMAIL_TYPES = { PAYMENT_FAILED: 'paymentFailed', PAYMENT_SUCCESSFUL: 'paymentSuccessful', SUBSCRIPTION_CANCELED: 'subscriptionCanceled' }; exports.SUBSCRIPTION_EMAIL_TYPES = SUBSCRIPTION_EMAIL_TYPES; var MEMBERSHIPS_EMAIL_KEYS = { invite: 'invite', resetPassword: 'resetPassword', updatedPassword: 'updatedPassword', welcome: 'welcome', verify: 'verify' }; exports.MEMBERSHIPS_EMAIL_KEYS = MEMBERSHIPS_EMAIL_KEYS; var EMAIL_TEMPLATE_TYPES = { invite: 'MEMBERSHIPS_INVITE', resetPassword: 'MEMBERSHIPS_RESET_PASSWORD', updatedPassword: 'MEMBERSHIPS_UPDATED_PASSWORD', verify: 'MEMBERSHIPS_VERIFY', welcome: 'MEMBERSHIPS_WELCOME' }; exports.EMAIL_TEMPLATE_TYPES = EMAIL_TEMPLATE_TYPES; var CONFIRM_UNSAVED_CHANGES_COPY = { title: 'Continue without saving?', content: 'Your changes will be lost.', iconType: 'warning', submit: { label: 'Continue', intent: 'danger' }, cancel: { label: 'Cancel', intent: 'default' } }; // **** User account settings **** // exports.CONFIRM_UNSAVED_CHANGES_COPY = CONFIRM_UNSAVED_CHANGES_COPY; var USER_FIELD_FORM_ID = 'UserFieldForm'; exports.USER_FIELD_FORM_ID = USER_FIELD_FORM_ID; var NEW_USER_FIELD_ID = 'mint-user-field'; exports.NEW_USER_FIELD_ID = NEW_USER_FIELD_ID; var USER_FIELD_DEFAULTS = { PlainText: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'PlainText', validations: {} }, Email: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'Email', validations: {} }, Bool: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'Bool', validations: {} }, FileRef: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'FileRef', validations: {} }, Option: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'Option', validations: { options: [] } }, Password: { id: NEW_USER_FIELD_ID, name: 'Password', slug: '', required: true, type: 'Password', validations: {} }, Number: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'Number', validations: { min: 0, step: 1 } }, Link: { id: NEW_USER_FIELD_ID, name: '', slug: '', required: false, type: 'Link', validations: {} } }; exports.USER_FIELD_DEFAULTS = USER_FIELD_DEFAULTS; var DEFAULT_USER_FIELDS = [{ id: 'name', name: 'Name', required: false, slug: 'name', type: 'PlainText', validations: {} }, { id: 'email', name: 'Email', required: true, slug: 'email', type: 'Email', validations: {} }, { id: 'password', name: 'Password', required: true, slug: 'password', type: 'Password', validations: {} }, { id: 'acceptPrivacy', name: 'Accept privacy', required: false, slug: 'accept-privacy', type: 'Bool', validations: {} }, { id: 'acceptCommunications', name: 'Accept communications', required: false, slug: 'accept-communications', type: 'Bool', validations: {} }]; // Contains the keys that usysSettings stores exports.DEFAULT_USER_FIELDS = DEFAULT_USER_FIELDS; var SETUP_GUIDE_KEYS = { hasVisitedAccessDeniedPage: 'hasVisitedAccessDeniedPage', hasVisitedLoginPage: 'hasVisitedLoginPage', hasVisitedSignUpPage: 'hasVisitedSignUpPage', hasVisitedUserAccountSettings: 'hasVisitedUserAccountSettings', hasVisitedUserAccountPage: 'hasVisitedUserAccountPage' }; // Contains all the setup guide keys, server and frontend-only exports.SETUP_GUIDE_KEYS = SETUP_GUIDE_KEYS; var SETUP_GUIDE_ALL_KEYS = (0, _extends2["default"])({}, SETUP_GUIDE_KEYS, { hasHostingPlan: 'hasHostingPlan', hasEcommerce: 'hasEcommerce', hasEnabledSSL: 'hasEnabledSSL', hasUsers: 'hasUsers', hasAccessGroups: 'hasAccessGroups', hasRestrictedContent: 'hasRestrictedContent', hasRestrictedProducts: 'hasRestrictedProducts' }); exports.SETUP_GUIDE_ALL_KEYS = SETUP_GUIDE_ALL_KEYS; var MAX_USER_DATA_FIELDS = 20; // `name` and `accept-communications` common fields can also be updated // along with custom fields currently exports.MAX_USER_DATA_FIELDS = MAX_USER_DATA_FIELDS; var MAX_UPDATE_USER_DATA_FIELDS = MAX_USER_DATA_FIELDS + 2; exports.MAX_UPDATE_USER_DATA_FIELDS = MAX_UPDATE_USER_DATA_FIELDS; var USYS_FIELD_PATH = [{ "in": 'Record', at: 'users' }, { "in": 'Record', at: 'field' }]; exports.USYS_FIELD_PATH = USYS_FIELD_PATH; var USYS_CONTEXT_PATH = [{ "in": 'Record', at: 'users' }, { "in": 'Record', at: 'context' }]; exports.USYS_CONTEXT_PATH = USYS_CONTEXT_PATH; var TEMP_PATH = [{ "in": 'Record', at: 'temp' }]; var TEMP_STATE_PATH = [].concat(TEMP_PATH, [{ "in": 'Record', at: 'state' }]); exports.TEMP_STATE_PATH = TEMP_STATE_PATH; var USER_ACCESS_META_OPTIONS = [_types.USYS_ACCESS_TYPES.LOGGED_IN]; exports.USER_ACCESS_META_OPTIONS = USER_ACCESS_META_OPTIONS; var EXCEEDS_MAX_FILE_SIZE_ERROR = 'Maximum size allowed for a file upload is 10000kb / 10mb.'; exports.EXCEEDS_MAX_FILE_SIZE_ERROR = EXCEEDS_MAX_FILE_SIZE_ERROR; var EXCEEDS_MAX_IMAGE_SIZE_ERROR = 'Maximum size allowed for a image upload is 4000kb / 4mb.'; exports.EXCEEDS_MAX_IMAGE_SIZE_ERROR = EXCEEDS_MAX_IMAGE_SIZE_ERROR; var USER_STATUSES = { invited: 'Invited', verified: 'Verified', unverified: 'Unverified' }; exports.USER_STATUSES = USER_STATUSES; var USER_PAGE_SIZE = 100; exports.USER_PAGE_SIZE = USER_PAGE_SIZE; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchAcceptedOrderData(\n $finalizedOrder: commerce_order_finalized_order_args\n ) {\n database {\n id\n commerceOrder(finalizedOrder: $finalizedOrder) {\n id\n total {\n decimalValue\n unit\n }\n userItems {\n count\n product {\n f_name_\n }\n sku {\n id\n }\n price {\n decimalValue\n }\n }\n }\n }\n }\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchCartInfo {\n database @client {\n id\n commerceOrder {\n statusFlags {\n requiresShipping\n isFreeOrder\n hasSubscription\n }\n }\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.trackOrder = exports.fetchOrderStatusFlags = exports.hideElement = exports.showElement = exports.hasSubscription = exports.isFreeOrder = exports.executeLoadingCallbacks = exports.addLoadingCallback = exports.setElementLoading = exports.customDataFormToArray = exports.formToObject = exports.isProtocolHttps = exports.isProductionLikeEnv = exports.triggerRender = exports.findClosestElementByClassName = exports.findClosestElementWithAttribute = exports.findClosestElementByNodeType = exports.findAllElementsByNodeType = exports.findElementByNodeType = exports.safeParseJson = void 0; var _apolloClient = _interopRequireDefault(__webpack_require__(137)); var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var _constants = __webpack_require__(19); /* globals document, window, CustomEvent */ var safeParseJson = function safeParseJson(jsonString) { var json = null; try { if (jsonString != null) { json = JSON.parse(decodeURIComponent(jsonString)); } } catch (e) { if (!(e instanceof SyntaxError && e.message.match(/\bJSON\b/i))) { throw e; } } finally { return json; } }; exports.safeParseJson = safeParseJson; var findElementByNodeType = function findElementByNodeType(type) { var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; return scope.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(type, "\"]")); }; exports.findElementByNodeType = findElementByNodeType; var findAllElementsByNodeType = function findAllElementsByNodeType(type) { var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; return Array.from(scope.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(type, "\"]"))); }; exports.findAllElementsByNodeType = findAllElementsByNodeType; var findClosestElementByNodeType = function findClosestElementByNodeType(nodeType, element) { var target = element; while (target) { if (target instanceof Element && target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === nodeType) { return target; } else { target = target instanceof Element ? target.parentElement : null; } } return target; }; exports.findClosestElementByNodeType = findClosestElementByNodeType; var findClosestElementWithAttribute = function findClosestElementWithAttribute(dataAttribute, element) { var target = element; while (target) { if (target instanceof Element && target.hasAttribute(dataAttribute)) { return target; } else { target = target instanceof Element ? target.parentElement : null; } } return target; }; exports.findClosestElementWithAttribute = findClosestElementWithAttribute; var findClosestElementByClassName = function findClosestElementByClassName(className, element) { var target = element; while (target) { if (target instanceof Element && target.classList.contains(className)) { return target; } else { target = target instanceof Element ? target.parentElement : null; } } return target; }; exports.findClosestElementByClassName = findClosestElementByClassName; var triggerRender = function triggerRender( // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types error) { var isInitial = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var renderEvent = new CustomEvent(_constants.RENDER_TREE_EVENT, { detail: { error: error, isInitial: isInitial } }); window.dispatchEvent(renderEvent); }; exports.triggerRender = triggerRender; var isProductionLikeEnv = function isProductionLikeEnv() { return true || false; }; exports.isProductionLikeEnv = isProductionLikeEnv; var isProtocolHttps = function isProtocolHttps() { return !isProductionLikeEnv() || window.location.protocol === 'https:'; }; // because microsoft edge doesn't support FormData.prototype.get, we are implementing our own // partial version of it, for our specific purposes. this function follows FormData's spec, and will // only return values from elements in a form with a `name` set. unlike FormData returning its own // Map-like object, we just return a POJO. because that's all we need. thank you edge for this journey :) // `toString` is used for our address data generation, as we want the values to be trimmed strings exports.isProtocolHttps = isProtocolHttps; var formToObject = function formToObject(form, toString) { var values = {}; Array.from(form.elements).forEach(function (element) { var name = element.getAttribute('name'); if (name && name !== '') { var value = toString ? String(element.value).trim() : element.value; values[name] = value == null || value === '' ? null : value; } }); return values; }; exports.formToObject = formToObject; var customDataFormToArray = function customDataFormToArray(form) { var customData = []; if (!form || !(form instanceof HTMLFormElement)) { return customData; } Array.from(form.elements).forEach(function (element) { var name = element.getAttribute('name'); if (element instanceof HTMLTextAreaElement && element.value) { customData.push({ name: name ? name : 'Textarea', textArea: element.value }); } else if (element instanceof HTMLInputElement) { if (element.type === 'checkbox') { customData.push({ name: name ? name : 'Checkbox', checkbox: element.checked }); } else if (element.value) { customData.push({ name: name ? name : 'Text Input', textInput: element.value }); } } }); return customData; }; exports.customDataFormToArray = customDataFormToArray; var setElementLoading = function setElementLoading(el) { var tr = window.Webflow.tram(el); tr.set({ opacity: 0.2 }); tr.add('opacity 500ms ease-in-out'); var animate = function animate() { tr.start({ opacity: 0.2 }).then({ opacity: 0.4 }).then(animate); }; animate(); return function () { return tr.destroy(); }; }; exports.setElementLoading = setElementLoading; var loadingCallbacks = []; var addLoadingCallback = function addLoadingCallback(cb) { loadingCallbacks.push(cb); }; exports.addLoadingCallback = addLoadingCallback; var executeLoadingCallbacks = function executeLoadingCallbacks() { var finishLoading; while ((finishLoading = loadingCallbacks.shift()) !== undefined) { finishLoading(); } }; exports.executeLoadingCallbacks = executeLoadingCallbacks; var isFreeOrder = function isFreeOrder(response) { return response && response.data && response.data.database && response.data.database.commerceOrder && response.data.database.commerceOrder.statusFlags && response.data.database.commerceOrder.statusFlags.isFreeOrder === true; }; exports.isFreeOrder = isFreeOrder; var hasSubscription = function hasSubscription(response) { return response && response.data && response.data.database && response.data.database.commerceOrder && response.data.database.commerceOrder.statusFlags && response.data.database.commerceOrder.statusFlags.hasSubscription === true; }; exports.hasSubscription = hasSubscription; var showElement = function showElement(element) { return element.style.removeProperty('display'); }; exports.showElement = showElement; var hideElement = function hideElement(element) { return element.style.setProperty('display', 'none'); }; // the @client directive ensures we only fetch this from the local cache so that we don't wait on network // we can only use this safely inside a rendered cart/checkout/confirmation container // as to render that view, a query had to be made which *always* includes the flags listed below. // if you are adding new flags to this, please ensure that the flags are *always* included // for all types of commerce elements in `packages/systems/dynamo/utils/DynamoQuery/DynamoQuery.js` exports.hideElement = hideElement; var orderStatusFlagsQuery = _graphqlTag["default"](_templateObject()); var fetchOrderStatusFlags = function fetchOrderStatusFlags(apolloClient) { return apolloClient.query({ query: orderStatusFlagsQuery }).then(function (data) { return data && data.data && data.data.database && data.data.database.commerceOrder && data.data.database.commerceOrder.statusFlags; }); }; exports.fetchOrderStatusFlags = fetchOrderStatusFlags; var acceptedOrderDataQuery = _graphqlTag["default"](_templateObject2()); var fetchAcceptedOrderData = function fetchAcceptedOrderData(apolloClient, finalizedOrder) { return apolloClient.query({ query: acceptedOrderDataQuery, variables: { finalizedOrder: finalizedOrder } }).then(function (data) { var _data$data, _data$data$database; return data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : (_data$data$database = _data$data.database) === null || _data$data$database === void 0 ? void 0 : _data$data$database.commerceOrder; }); }; var trackOrder = function trackOrder(apolloClient, finalizedOrder) { // early return if both facebook and google don't exist on the page // we don't need to fetch this data if we're not doing any analytics if (typeof fbq === 'undefined' && typeof gtag === 'undefined') { return; } // check to see if this order was tracked already, and if it was, return early var trackedOrders = {}; try { var storedTrackedOrders = window.localStorage.getItem('wf-seen-orders'); if (storedTrackedOrders) { trackedOrders = JSON.parse(storedTrackedOrders); } } catch (err) { return; } if (trackedOrders[finalizedOrder.orderId]) { return; } // we have to fetch the accepted order data, instead of relying on the pending order data // that's fetched on the order confirmation page, because we only get the purchased items // data if the user has an Order Items element on the page. while i would presume that most // people would keep that element on the page, it's not a guarantee, so we need to separately // fetch it here to ensure that we always send the analytics, regardless of how the user has // customized their order confirmation page. fetchAcceptedOrderData(apolloClient, finalizedOrder).then(function (order) { if (!order) { return; } var _order$total = order.total, decimalValue = _order$total.decimalValue, unit = _order$total.unit; if (typeof fbq !== 'undefined' && typeof fbq === 'function') { fbq('track', 'Purchase', { value: decimalValue, currency: unit, content_ids: (order.userItems || []).map(function (item) { return item.sku.id; }), content_type: 'product', contents: (order.userItems || []).map(function (item) { return { id: item.sku.id, quantity: item.count, item_price: item.price.decimalValue }; }) }); } if (typeof gtag !== 'undefined' && typeof gtag === 'function') { gtag('event', 'purchase', { transaction_id: order.id, value: decimalValue, currency: unit, items: (order.userItems || []).map(function (item) { return { id: item.sku.id, name: item.product.f_name_, quantity: item.count, price: item.price.decimalValue }; }) }); } trackedOrders[finalizedOrder.orderId] = true; try { window.localStorage.setItem('wf-seen-orders', JSON.stringify(trackedOrders)); } catch (err) { return; } }); }; exports.trackOrder = trackOrder; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { var NATIVE_WEAK_MAP = __webpack_require__(393); var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var isObject = __webpack_require__(12); var createNonEnumerableProperty = __webpack_require__(70); var hasOwn = __webpack_require__(14); var shared = __webpack_require__(114); var sharedKey = __webpack_require__(118); var hiddenKeys = __webpack_require__(87); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; var TypeError = global.TypeError; var WeakMap = global.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP || shared.state) { var store = shared.state || (shared.state = new WeakMap()); var wmget = uncurryThis(store.get); var wmhas = uncurryThis(store.has); var wmset = uncurryThis(store.set); set = function (it, metadata) { if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; wmset(store, it, metadata); return metadata; }; get = function (it) { return wmget(store, it) || {}; }; has = function (it) { return wmhas(store, it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); metadata.facade = it; createNonEnumerableProperty(it, STATE, metadata); return metadata; }; get = function (it) { return hasOwn(it, STATE) ? it[STATE] : {}; }; has = function (it) { return hasOwn(it, STATE); }; } module.exports = { set: set, get: get, has: has, enforce: enforce, getterFor: getterFor }; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { /* global ActiveXObject -- old IE, WSH */ var anObject = __webpack_require__(15); var defineProperties = __webpack_require__(237); var enumBugKeys = __webpack_require__(159); var hiddenKeys = __webpack_require__(87); var html = __webpack_require__(238); var documentCreateElement = __webpack_require__(116); var sharedKey = __webpack_require__(118); var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; var SCRIPT = 'script'; var IE_PROTO = sharedKey('IE_PROTO'); var EmptyConstructor = function () { /* empty */ }; var scriptTag = function (content) { return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX = function (activeXDocument) { activeXDocument.write(scriptTag('')); activeXDocument.close(); var temp = activeXDocument.parentWindow.Object; activeXDocument = null; // avoid memory leak return temp; }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var JS = 'java' + SCRIPT + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag('document.F=Object')); iframeDocument.close(); return iframeDocument.F; }; // Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument; var NullProtoObject = function () { try { activeXDocument = new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) // old IE : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument); // WSH var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; // `Object.create` method // https://tc39.es/ecma262/#sec-object.create module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = NullProtoObject(); return Properties === undefined ? result : defineProperties(result, Properties); }; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { var baseMatches = __webpack_require__(415), baseMatchesProperty = __webpack_require__(464), identity = __webpack_require__(96), isArray = __webpack_require__(10), property = __webpack_require__(471); /** * The base implementation of `_.iteratee`. * * @private * @param {*} [value=_.identity] The value to convert to an iteratee. * @returns {Function} Returns the iteratee. */ function baseIteratee(value) { // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. if (typeof value == 'function') { return value; } if (value == null) { return identity; } if (typeof value == 'object') { return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); } return property(value); } module.exports = baseIteratee; /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { var arrayWithoutHoles = __webpack_require__(477); var iterableToArray = __webpack_require__(270); var nonIterableSpread = __webpack_require__(478); function _toConsumableArray(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); } module.exports = _toConsumableArray; /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { var defineProperty = __webpack_require__(17).f; var hasOwn = __webpack_require__(14); var wellKnownSymbol = __webpack_require__(4); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); module.exports = function (it, TAG, STATIC) { if (it && !hasOwn(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); } }; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(5); module.exports = function (METHOD_NAME, argument) { var method = [][METHOD_NAME]; return !!method && fails(function () { // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing method.call(null, argument || function () { throw 1; }, 1); }); }; /***/ }), /* 44 */ /***/ (function(module, exports) { function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } module.exports = _classCallCheck; /***/ }), /* 45 */ /***/ (function(module, exports) { function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } module.exports = _taggedTemplateLiteral; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { var parser = __webpack_require__(727); var parse = parser.parse; // Strip insignificant whitespace // Note that this could do a lot more, such as reorder fields etc. function normalize(string) { return string.replace(/[\s,]+/g, ' ').trim(); } // A map docString -> graphql document var docCache = {}; // A map fragmentName -> [normalized source] var fragmentSourceMap = {}; function cacheKeyFromLoc(loc) { return normalize(loc.source.body.substring(loc.start, loc.end)); } // For testing. function resetCaches() { docCache = {}; fragmentSourceMap = {}; } // Take a unstripped parsed document (query/mutation or even fragment), and // check all fragment definitions, checking for name->source uniqueness. // We also want to make sure only unique fragments exist in the document. var printFragmentWarnings = true; function processFragments(ast) { var astFragmentMap = {}; var definitions = []; for (var i = 0; i < ast.definitions.length; i++) { var fragmentDefinition = ast.definitions[i]; if (fragmentDefinition.kind === 'FragmentDefinition') { var fragmentName = fragmentDefinition.name.value; var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc); // We know something about this fragment if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) { // this is a problem because the app developer is trying to register another fragment with // the same name as one previously registered. So, we tell them about it. if (printFragmentWarnings) { console.warn("Warning: fragment with name " + fragmentName + " already exists.\n" + "graphql-tag enforces all fragment names across your application to be unique; read more about\n" + "this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"); } fragmentSourceMap[fragmentName][sourceKey] = true; } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) { fragmentSourceMap[fragmentName] = {}; fragmentSourceMap[fragmentName][sourceKey] = true; } if (!astFragmentMap[sourceKey]) { astFragmentMap[sourceKey] = true; definitions.push(fragmentDefinition); } } else { definitions.push(fragmentDefinition); } } ast.definitions = definitions; return ast; } function disableFragmentWarnings() { printFragmentWarnings = false; } function stripLoc(doc, removeLocAtThisLevel) { var docType = Object.prototype.toString.call(doc); if (docType === '[object Array]') { return doc.map(function (d) { return stripLoc(d, removeLocAtThisLevel); }); } if (docType !== '[object Object]') { throw new Error('Unexpected input.'); } // We don't want to remove the root loc field so we can use it // for fragment substitution (see below) if (removeLocAtThisLevel && doc.loc) { delete doc.loc; } // https://github.com/apollographql/graphql-tag/issues/40 if (doc.loc) { delete doc.loc.startToken; delete doc.loc.endToken; } var keys = Object.keys(doc); var key; var value; var valueType; for (key in keys) { if (keys.hasOwnProperty(key)) { value = doc[keys[key]]; valueType = Object.prototype.toString.call(value); if (valueType === '[object Object]' || valueType === '[object Array]') { doc[keys[key]] = stripLoc(value, true); } } } return doc; } var experimentalFragmentVariables = false; function parseDocument(doc) { var cacheKey = normalize(doc); if (docCache[cacheKey]) { return docCache[cacheKey]; } var parsed = parse(doc, { experimentalFragmentVariables: experimentalFragmentVariables }); if (!parsed || parsed.kind !== 'Document') { throw new Error('Not a valid GraphQL document.'); } // check that all "new" fragments inside the documents are consistent with // existing fragments of the same name parsed = processFragments(parsed); parsed = stripLoc(parsed, false); docCache[cacheKey] = parsed; return parsed; } function enableExperimentalFragmentVariables() { experimentalFragmentVariables = true; } function disableExperimentalFragmentVariables() { experimentalFragmentVariables = false; } // XXX This should eventually disallow arbitrary string interpolation, like Relay does function gql(/* arguments */) { var args = Array.prototype.slice.call(arguments); var literals = args[0]; // We always get literals[0] and then matching post literals for each arg given var result = (typeof(literals) === "string") ? literals : literals[0]; for (var i = 1; i < args.length; i++) { if (args[i] && args[i].kind && args[i].kind === 'Document') { result += args[i].loc.source.body; } else { result += args[i]; } result += literals[i]; } return parseDocument(result); } // Support typescript, which isn't as nice as Babel about default exports gql.default = gql; gql.resetCaches = resetCaches; gql.disableFragmentWarnings = disableFragmentWarnings; gql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables; gql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables; module.exports = gql; /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { var isFunction = __webpack_require__(72), isLength = __webpack_require__(169); /** * Checks if `value` is array-like. A value is considered array-like if it's * not a function and has a `value.length` that's an integer greater than or * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. * @example * * _.isArrayLike([1, 2, 3]); * // => true * * _.isArrayLike(document.body.children); * // => true * * _.isArrayLike('abc'); * // => true * * _.isArrayLike(_.noop); * // => false */ function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } module.exports = isArrayLike; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(84); // `IsArray` abstract operation // https://tc39.es/ecma262/#sec-isarray // eslint-disable-next-line es/no-array-isarray -- safe module.exports = Array.isArray || function isArray(argument) { return classof(argument) == 'Array'; }; /***/ }), /* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(321); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return _link__WEBPACK_IMPORTED_MODULE_0__["empty"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "from", function() { return _link__WEBPACK_IMPORTED_MODULE_0__["from"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "split", function() { return _link__WEBPACK_IMPORTED_MODULE_0__["split"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _link__WEBPACK_IMPORTED_MODULE_0__["concat"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ApolloLink", function() { return _link__WEBPACK_IMPORTED_MODULE_0__["ApolloLink"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "execute", function() { return _link__WEBPACK_IMPORTED_MODULE_0__["execute"]; }); /* harmony import */ var _linkUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createOperation", function() { return _linkUtils__WEBPACK_IMPORTED_MODULE_1__["createOperation"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "makePromise", function() { return _linkUtils__WEBPACK_IMPORTED_MODULE_1__["makePromise"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toPromise", function() { return _linkUtils__WEBPACK_IMPORTED_MODULE_1__["toPromise"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromPromise", function() { return _linkUtils__WEBPACK_IMPORTED_MODULE_1__["fromPromise"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromError", function() { return _linkUtils__WEBPACK_IMPORTED_MODULE_1__["fromError"]; }); /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(143); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return zen_observable_ts__WEBPACK_IMPORTED_MODULE_2__["default"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js ;(function (global, factory) { true ? module.exports = factory() : undefined }(this, (function () { 'use strict'; var hookCallback; function hooks () { return hookCallback.apply(null, arguments); } // This is done to register the method called with moment() // without creating circular dependencies. function setHookCallback (callback) { hookCallback = callback; } function isArray(input) { return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; } function isObject(input) { // IE8 will treat undefined and null as object if it wasn't for // input != null return input != null && Object.prototype.toString.call(input) === '[object Object]'; } function isObjectEmpty(obj) { if (Object.getOwnPropertyNames) { return (Object.getOwnPropertyNames(obj).length === 0); } else { var k; for (k in obj) { if (obj.hasOwnProperty(k)) { return false; } } return true; } } function isUndefined(input) { return input === void 0; } function isNumber(input) { return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; } function isDate(input) { return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; } function map(arr, fn) { var res = [], i; for (i = 0; i < arr.length; ++i) { res.push(fn(arr[i], i)); } return res; } function hasOwnProp(a, b) { return Object.prototype.hasOwnProperty.call(a, b); } function extend(a, b) { for (var i in b) { if (hasOwnProp(b, i)) { a[i] = b[i]; } } if (hasOwnProp(b, 'toString')) { a.toString = b.toString; } if (hasOwnProp(b, 'valueOf')) { a.valueOf = b.valueOf; } return a; } function createUTC (input, format, locale, strict) { return createLocalOrUTC(input, format, locale, strict, true).utc(); } function defaultParsingFlags() { // We need to deep clone this object. return { empty : false, unusedTokens : [], unusedInput : [], overflow : -2, charsLeftOver : 0, nullInput : false, invalidMonth : null, invalidFormat : false, userInvalidated : false, iso : false, parsedDateParts : [], meridiem : null, rfc2822 : false, weekdayMismatch : false }; } function getParsingFlags(m) { if (m._pf == null) { m._pf = defaultParsingFlags(); } return m._pf; } var some; if (Array.prototype.some) { some = Array.prototype.some; } else { some = function (fun) { var t = Object(this); var len = t.length >>> 0; for (var i = 0; i < len; i++) { if (i in t && fun.call(this, t[i], i, t)) { return true; } } return false; }; } function isValid(m) { if (m._isValid == null) { var flags = getParsingFlags(m); var parsedParts = some.call(flags.parsedDateParts, function (i) { return i != null; }); var isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || (flags.meridiem && parsedParts)); if (m._strict) { isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined; } if (Object.isFrozen == null || !Object.isFrozen(m)) { m._isValid = isNowValid; } else { return isNowValid; } } return m._isValid; } function createInvalid (flags) { var m = createUTC(NaN); if (flags != null) { extend(getParsingFlags(m), flags); } else { getParsingFlags(m).userInvalidated = true; } return m; } // Plugins that add properties should also add the key here (null value), // so we can properly clone ourselves. var momentProperties = hooks.momentProperties = []; function copyConfig(to, from) { var i, prop, val; if (!isUndefined(from._isAMomentObject)) { to._isAMomentObject = from._isAMomentObject; } if (!isUndefined(from._i)) { to._i = from._i; } if (!isUndefined(from._f)) { to._f = from._f; } if (!isUndefined(from._l)) { to._l = from._l; } if (!isUndefined(from._strict)) { to._strict = from._strict; } if (!isUndefined(from._tzm)) { to._tzm = from._tzm; } if (!isUndefined(from._isUTC)) { to._isUTC = from._isUTC; } if (!isUndefined(from._offset)) { to._offset = from._offset; } if (!isUndefined(from._pf)) { to._pf = getParsingFlags(from); } if (!isUndefined(from._locale)) { to._locale = from._locale; } if (momentProperties.length > 0) { for (i = 0; i < momentProperties.length; i++) { prop = momentProperties[i]; val = from[prop]; if (!isUndefined(val)) { to[prop] = val; } } } return to; } var updateInProgress = false; // Moment prototype object function Moment(config) { copyConfig(this, config); this._d = new Date(config._d != null ? config._d.getTime() : NaN); if (!this.isValid()) { this._d = new Date(NaN); } // Prevent infinite loop in case updateOffset creates new moment // objects. if (updateInProgress === false) { updateInProgress = true; hooks.updateOffset(this); updateInProgress = false; } } function isMoment (obj) { return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); } function absFloor (number) { if (number < 0) { // -0 -> 0 return Math.ceil(number) || 0; } else { return Math.floor(number); } } function toInt(argumentForCoercion) { var coercedNumber = +argumentForCoercion, value = 0; if (coercedNumber !== 0 && isFinite(coercedNumber)) { value = absFloor(coercedNumber); } return value; } // compare two arrays, return the number of differences function compareArrays(array1, array2, dontConvert) { var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i; for (i = 0; i < len; i++) { if ((dontConvert && array1[i] !== array2[i]) || (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { diffs++; } } return diffs + lengthDiff; } function warn(msg) { if (hooks.suppressDeprecationWarnings === false && (typeof console !== 'undefined') && console.warn) { console.warn('Deprecation warning: ' + msg); } } function deprecate(msg, fn) { var firstTime = true; return extend(function () { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(null, msg); } if (firstTime) { var args = []; var arg; for (var i = 0; i < arguments.length; i++) { arg = ''; if (typeof arguments[i] === 'object') { arg += '\n[' + i + '] '; for (var key in arguments[0]) { arg += key + ': ' + arguments[0][key] + ', '; } arg = arg.slice(0, -2); // Remove trailing comma and space } else { arg = arguments[i]; } args.push(arg); } warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); firstTime = false; } return fn.apply(this, arguments); }, fn); } var deprecations = {}; function deprecateSimple(name, msg) { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(name, msg); } if (!deprecations[name]) { warn(msg); deprecations[name] = true; } } hooks.suppressDeprecationWarnings = false; hooks.deprecationHandler = null; function isFunction(input) { return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; } function set (config) { var prop, i; for (i in config) { prop = config[i]; if (isFunction(prop)) { this[i] = prop; } else { this['_' + i] = prop; } } this._config = config; // Lenient ordinal parsing accepts just a number in addition to // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. // TODO: Remove "ordinalParse" fallback in next major release. this._dayOfMonthOrdinalParseLenient = new RegExp( (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + (/\d{1,2}/).source); } function mergeConfigs(parentConfig, childConfig) { var res = extend({}, parentConfig), prop; for (prop in childConfig) { if (hasOwnProp(childConfig, prop)) { if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { res[prop] = {}; extend(res[prop], parentConfig[prop]); extend(res[prop], childConfig[prop]); } else if (childConfig[prop] != null) { res[prop] = childConfig[prop]; } else { delete res[prop]; } } } for (prop in parentConfig) { if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) { // make sure changes to properties don't modify parent config res[prop] = extend({}, res[prop]); } } return res; } function Locale(config) { if (config != null) { this.set(config); } } var keys; if (Object.keys) { keys = Object.keys; } else { keys = function (obj) { var i, res = []; for (i in obj) { if (hasOwnProp(obj, i)) { res.push(i); } } return res; }; } var defaultCalendar = { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }; function calendar (key, mom, now) { var output = this._calendar[key] || this._calendar['sameElse']; return isFunction(output) ? output.call(mom, now) : output; } var defaultLongDateFormat = { LTS : 'h:mm:ss A', LT : 'h:mm A', L : 'MM/DD/YYYY', LL : 'MMMM D, YYYY', LLL : 'MMMM D, YYYY h:mm A', LLLL : 'dddd, MMMM D, YYYY h:mm A' }; function longDateFormat (key) { var format = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; if (format || !formatUpper) { return format; } this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { return val.slice(1); }); return this._longDateFormat[key]; } var defaultInvalidDate = 'Invalid date'; function invalidDate () { return this._invalidDate; } var defaultOrdinal = '%d'; var defaultDayOfMonthOrdinalParse = /\d{1,2}/; function ordinal (number) { return this._ordinal.replace('%d', number); } var defaultRelativeTime = { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }; function relativeTime (number, withoutSuffix, string, isFuture) { var output = this._relativeTime[string]; return (isFunction(output)) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number); } function pastFuture (diff, output) { var format = this._relativeTime[diff > 0 ? 'future' : 'past']; return isFunction(format) ? format(output) : format.replace(/%s/i, output); } var aliases = {}; function addUnitAlias (unit, shorthand) { var lowerCase = unit.toLowerCase(); aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; } function normalizeUnits(units) { return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; } function normalizeObjectUnits(inputObject) { var normalizedInput = {}, normalizedProp, prop; for (prop in inputObject) { if (hasOwnProp(inputObject, prop)) { normalizedProp = normalizeUnits(prop); if (normalizedProp) { normalizedInput[normalizedProp] = inputObject[prop]; } } } return normalizedInput; } var priorities = {}; function addUnitPriority(unit, priority) { priorities[unit] = priority; } function getPrioritizedUnits(unitsObj) { var units = []; for (var u in unitsObj) { units.push({unit: u, priority: priorities[u]}); } units.sort(function (a, b) { return a.priority - b.priority; }); return units; } function zeroFill(number, targetLength, forceSign) { var absNumber = '' + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign = number >= 0; return (sign ? (forceSign ? '+' : '') : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; var formatFunctions = {}; var formatTokenFunctions = {}; // token: 'M' // padded: ['MM', 2] // ordinal: 'Mo' // callback: function () { this.month() + 1 } function addFormatToken (token, padded, ordinal, callback) { var func = callback; if (typeof callback === 'string') { func = function () { return this[callback](); }; } if (token) { formatTokenFunctions[token] = func; } if (padded) { formatTokenFunctions[padded[0]] = function () { return zeroFill(func.apply(this, arguments), padded[1], padded[2]); }; } if (ordinal) { formatTokenFunctions[ordinal] = function () { return this.localeData().ordinal(func.apply(this, arguments), token); }; } } function removeFormattingTokens(input) { if (input.match(/\[[\s\S]/)) { return input.replace(/^\[|\]$/g, ''); } return input.replace(/\\/g, ''); } function makeFormatFunction(format) { var array = format.match(formattingTokens), i, length; for (i = 0, length = array.length; i < length; i++) { if (formatTokenFunctions[array[i]]) { array[i] = formatTokenFunctions[array[i]]; } else { array[i] = removeFormattingTokens(array[i]); } } return function (mom) { var output = '', i; for (i = 0; i < length; i++) { output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; } return output; }; } // format date using native date object function formatMoment(m, format) { if (!m.isValid()) { return m.localeData().invalidDate(); } format = expandFormat(format, m.localeData()); formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); return formatFunctions[format](m); } function expandFormat(format, locale) { var i = 5; function replaceLongDateFormatTokens(input) { return locale.longDateFormat(input) || input; } localFormattingTokens.lastIndex = 0; while (i >= 0 && localFormattingTokens.test(format)) { format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); localFormattingTokens.lastIndex = 0; i -= 1; } return format; } var match1 = /\d/; // 0 - 9 var match2 = /\d\d/; // 00 - 99 var match3 = /\d{3}/; // 000 - 999 var match4 = /\d{4}/; // 0000 - 9999 var match6 = /[+-]?\d{6}/; // -999999 - 999999 var match1to2 = /\d\d?/; // 0 - 99 var match3to4 = /\d\d\d\d?/; // 999 - 9999 var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 var match1to3 = /\d{1,3}/; // 0 - 999 var match1to4 = /\d{1,4}/; // 0 - 9999 var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 var matchUnsigned = /\d+/; // 0 - inf var matchSigned = /[+-]?\d+/; // -inf - inf var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 // any word (or two) characters or numbers including two/three word month in arabic. // includes scottish gaelic two word and hyphenated months var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; var regexes = {}; function addRegexToken (token, regex, strictRegex) { regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { return (isStrict && strictRegex) ? strictRegex : regex; }; } function getParseRegexForToken (token, config) { if (!hasOwnProp(regexes, token)) { return new RegExp(unescapeFormat(token)); } return regexes[token](config._strict, config._locale); } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript function unescapeFormat(s) { return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { return p1 || p2 || p3 || p4; })); } function regexEscape(s) { return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } var tokens = {}; function addParseToken (token, callback) { var i, func = callback; if (typeof token === 'string') { token = [token]; } if (isNumber(callback)) { func = function (input, array) { array[callback] = toInt(input); }; } for (i = 0; i < token.length; i++) { tokens[token[i]] = func; } } function addWeekParseToken (token, callback) { addParseToken(token, function (input, array, config, token) { config._w = config._w || {}; callback(input, config._w, config, token); }); } function addTimeToArrayFromToken(token, input, config) { if (input != null && hasOwnProp(tokens, token)) { tokens[token](input, config._a, config, token); } } var YEAR = 0; var MONTH = 1; var DATE = 2; var HOUR = 3; var MINUTE = 4; var SECOND = 5; var MILLISECOND = 6; var WEEK = 7; var WEEKDAY = 8; // FORMATTING addFormatToken('Y', 0, 0, function () { var y = this.year(); return y <= 9999 ? '' + y : '+' + y; }); addFormatToken(0, ['YY', 2], 0, function () { return this.year() % 100; }); addFormatToken(0, ['YYYY', 4], 0, 'year'); addFormatToken(0, ['YYYYY', 5], 0, 'year'); addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES addUnitAlias('year', 'y'); // PRIORITIES addUnitPriority('year', 1); // PARSING addRegexToken('Y', matchSigned); addRegexToken('YY', match1to2, match2); addRegexToken('YYYY', match1to4, match4); addRegexToken('YYYYY', match1to6, match6); addRegexToken('YYYYYY', match1to6, match6); addParseToken(['YYYYY', 'YYYYYY'], YEAR); addParseToken('YYYY', function (input, array) { array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); }); addParseToken('YY', function (input, array) { array[YEAR] = hooks.parseTwoDigitYear(input); }); addParseToken('Y', function (input, array) { array[YEAR] = parseInt(input, 10); }); // HELPERS function daysInYear(year) { return isLeapYear(year) ? 366 : 365; } function isLeapYear(year) { return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; } // HOOKS hooks.parseTwoDigitYear = function (input) { return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); }; // MOMENTS var getSetYear = makeGetSet('FullYear', true); function getIsLeapYear () { return isLeapYear(this.year()); } function makeGetSet (unit, keepTime) { return function (value) { if (value != null) { set$1(this, unit, value); hooks.updateOffset(this, keepTime); return this; } else { return get(this, unit); } }; } function get (mom, unit) { return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; } function set$1 (mom, unit, value) { if (mom.isValid() && !isNaN(value)) { if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); } else { mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); } } } // MOMENTS function stringGet (units) { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](); } return this; } function stringSet (units, value) { if (typeof units === 'object') { units = normalizeObjectUnits(units); var prioritized = getPrioritizedUnits(units); for (var i = 0; i < prioritized.length; i++) { this[prioritized[i].unit](units[prioritized[i].unit]); } } else { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](value); } } return this; } function mod(n, x) { return ((n % x) + x) % x; } var indexOf; if (Array.prototype.indexOf) { indexOf = Array.prototype.indexOf; } else { indexOf = function (o) { // I know var i; for (i = 0; i < this.length; ++i) { if (this[i] === o) { return i; } } return -1; }; } function daysInMonth(year, month) { if (isNaN(year) || isNaN(month)) { return NaN; } var modMonth = mod(month, 12); year += (month - modMonth) / 12; return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); } // FORMATTING addFormatToken('M', ['MM', 2], 'Mo', function () { return this.month() + 1; }); addFormatToken('MMM', 0, 0, function (format) { return this.localeData().monthsShort(this, format); }); addFormatToken('MMMM', 0, 0, function (format) { return this.localeData().months(this, format); }); // ALIASES addUnitAlias('month', 'M'); // PRIORITY addUnitPriority('month', 8); // PARSING addRegexToken('M', match1to2); addRegexToken('MM', match1to2, match2); addRegexToken('MMM', function (isStrict, locale) { return locale.monthsShortRegex(isStrict); }); addRegexToken('MMMM', function (isStrict, locale) { return locale.monthsRegex(isStrict); }); addParseToken(['M', 'MM'], function (input, array) { array[MONTH] = toInt(input) - 1; }); addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid. if (month != null) { array[MONTH] = month; } else { getParsingFlags(config).invalidMonth = input; } }); // LOCALES var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); function localeMonths (m, format) { if (!m) { return isArray(this._months) ? this._months : this._months['standalone']; } return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; } var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); function localeMonthsShort (m, format) { if (!m) { return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone']; } return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; } function handleStrictParse(monthName, format, strict) { var i, ii, mom, llc = monthName.toLocaleLowerCase(); if (!this._monthsParse) { // this is not used this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; for (i = 0; i < 12; ++i) { mom = createUTC([2000, i]); this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); } } if (strict) { if (format === 'MMM') { ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } } else { if (format === 'MMM') { ii = indexOf.call(this._shortMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } } } function localeMonthsParse (monthName, format, strict) { var i, mom, regex; if (this._monthsParseExact) { return handleStrictParse.call(this, monthName, format, strict); } if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; } // TODO: add sorting // Sorting makes sure if one month (or abbr) is a prefix of another // see sorting in computeMonthsParse for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = createUTC([2000, i]); if (strict && !this._longMonthsParse[i]) { this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); } if (!strict && !this._monthsParse[i]) { regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { return i; } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { return i; } else if (!strict && this._monthsParse[i].test(monthName)) { return i; } } } // MOMENTS function setMonth (mom, value) { var dayOfMonth; if (!mom.isValid()) { // No op return mom; } if (typeof value === 'string') { if (/^\d+$/.test(value)) { value = toInt(value); } else { value = mom.localeData().monthsParse(value); // TODO: Another silent failure? if (!isNumber(value)) { return mom; } } } dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); return mom; } function getSetMonth (value) { if (value != null) { setMonth(this, value); hooks.updateOffset(this, true); return this; } else { return get(this, 'Month'); } } function getDaysInMonth () { return daysInMonth(this.year(), this.month()); } var defaultMonthsShortRegex = matchWord; function monthsShortRegex (isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, '_monthsRegex')) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsShortStrictRegex; } else { return this._monthsShortRegex; } } else { if (!hasOwnProp(this, '_monthsShortRegex')) { this._monthsShortRegex = defaultMonthsShortRegex; } return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; } } var defaultMonthsRegex = matchWord; function monthsRegex (isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, '_monthsRegex')) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsStrictRegex; } else { return this._monthsRegex; } } else { if (!hasOwnProp(this, '_monthsRegex')) { this._monthsRegex = defaultMonthsRegex; } return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; } } function computeMonthsParse () { function cmpLenRev(a, b) { return b.length - a.length; } var shortPieces = [], longPieces = [], mixedPieces = [], i, mom; for (i = 0; i < 12; i++) { // make the regex if we don't have it already mom = createUTC([2000, i]); shortPieces.push(this.monthsShort(mom, '')); longPieces.push(this.months(mom, '')); mixedPieces.push(this.months(mom, '')); mixedPieces.push(this.monthsShort(mom, '')); } // Sorting makes sure if one month (or abbr) is a prefix of another it // will match the longer piece. shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); for (i = 0; i < 12; i++) { shortPieces[i] = regexEscape(shortPieces[i]); longPieces[i] = regexEscape(longPieces[i]); } for (i = 0; i < 24; i++) { mixedPieces[i] = regexEscape(mixedPieces[i]); } this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._monthsShortRegex = this._monthsRegex; this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); } function createDate (y, m, d, h, M, s, ms) { // can't just apply() to create a date: // https://stackoverflow.com/q/181348 var date = new Date(y, m, d, h, M, s, ms); // the date constructor remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { date.setFullYear(y); } return date; } function createUTCDate (y) { var date = new Date(Date.UTC.apply(null, arguments)); // the Date.UTC function remaps years 0-99 to 1900-1999 if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { date.setUTCFullYear(y); } return date; } // start-of-first-week - start-of-year function firstWeekOffset(year, dow, doy) { var // first-week day -- which january is always in the first week (4 for iso, 1 for other) fwd = 7 + dow - doy, // first-week day local weekday -- which local weekday is fwd fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; return -fwdlw + fwd - 1; } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday function dayOfYearFromWeeks(year, week, weekday, dow, doy) { var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; if (dayOfYear <= 0) { resYear = year - 1; resDayOfYear = daysInYear(resYear) + dayOfYear; } else if (dayOfYear > daysInYear(year)) { resYear = year + 1; resDayOfYear = dayOfYear - daysInYear(year); } else { resYear = year; resDayOfYear = dayOfYear; } return { year: resYear, dayOfYear: resDayOfYear }; } function weekOfYear(mom, dow, doy) { var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; if (week < 1) { resYear = mom.year() - 1; resWeek = week + weeksInYear(resYear, dow, doy); } else if (week > weeksInYear(mom.year(), dow, doy)) { resWeek = week - weeksInYear(mom.year(), dow, doy); resYear = mom.year() + 1; } else { resYear = mom.year(); resWeek = week; } return { week: resWeek, year: resYear }; } function weeksInYear(year, dow, doy) { var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; } // FORMATTING addFormatToken('w', ['ww', 2], 'wo', 'week'); addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES addUnitAlias('week', 'w'); addUnitAlias('isoWeek', 'W'); // PRIORITIES addUnitPriority('week', 5); addUnitPriority('isoWeek', 5); // PARSING addRegexToken('w', match1to2); addRegexToken('ww', match1to2, match2); addRegexToken('W', match1to2); addRegexToken('WW', match1to2, match2); addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { week[token.substr(0, 1)] = toInt(input); }); // HELPERS // LOCALES function localeWeek (mom) { return weekOfYear(mom, this._week.dow, this._week.doy).week; } var defaultLocaleWeek = { dow : 0, // Sunday is the first day of the week. doy : 6 // The week that contains Jan 1st is the first week of the year. }; function localeFirstDayOfWeek () { return this._week.dow; } function localeFirstDayOfYear () { return this._week.doy; } // MOMENTS function getSetWeek (input) { var week = this.localeData().week(this); return input == null ? week : this.add((input - week) * 7, 'd'); } function getSetISOWeek (input) { var week = weekOfYear(this, 1, 4).week; return input == null ? week : this.add((input - week) * 7, 'd'); } // FORMATTING addFormatToken('d', 0, 'do', 'day'); addFormatToken('dd', 0, 0, function (format) { return this.localeData().weekdaysMin(this, format); }); addFormatToken('ddd', 0, 0, function (format) { return this.localeData().weekdaysShort(this, format); }); addFormatToken('dddd', 0, 0, function (format) { return this.localeData().weekdays(this, format); }); addFormatToken('e', 0, 0, 'weekday'); addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES addUnitAlias('day', 'd'); addUnitAlias('weekday', 'e'); addUnitAlias('isoWeekday', 'E'); // PRIORITY addUnitPriority('day', 11); addUnitPriority('weekday', 11); addUnitPriority('isoWeekday', 11); // PARSING addRegexToken('d', match1to2); addRegexToken('e', match1to2); addRegexToken('E', match1to2); addRegexToken('dd', function (isStrict, locale) { return locale.weekdaysMinRegex(isStrict); }); addRegexToken('ddd', function (isStrict, locale) { return locale.weekdaysShortRegex(isStrict); }); addRegexToken('dddd', function (isStrict, locale) { return locale.weekdaysRegex(isStrict); }); addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid if (weekday != null) { week.d = weekday; } else { getParsingFlags(config).invalidWeekday = input; } }); addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { week[token] = toInt(input); }); // HELPERS function parseWeekday(input, locale) { if (typeof input !== 'string') { return input; } if (!isNaN(input)) { return parseInt(input, 10); } input = locale.weekdaysParse(input); if (typeof input === 'number') { return input; } return null; } function parseIsoWeekday(input, locale) { if (typeof input === 'string') { return locale.weekdaysParse(input) % 7 || 7; } return isNaN(input) ? null : input; } // LOCALES var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); function localeWeekdays (m, format) { if (!m) { return isArray(this._weekdays) ? this._weekdays : this._weekdays['standalone']; } return isArray(this._weekdays) ? this._weekdays[m.day()] : this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; } var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); function localeWeekdaysShort (m) { return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; } var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); function localeWeekdaysMin (m) { return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; } function handleStrictParse$1(weekdayName, format, strict) { var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); if (!this._weekdaysParse) { this._weekdaysParse = []; this._shortWeekdaysParse = []; this._minWeekdaysParse = []; for (i = 0; i < 7; ++i) { mom = createUTC([2000, 1]).day(i); this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); } } if (strict) { if (format === 'dddd') { ii = indexOf.call(this._weekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format === 'ddd') { ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } } else { if (format === 'dddd') { ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format === 'ddd') { ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } } } function localeWeekdaysParse (weekdayName, format, strict) { var i, mom, regex; if (this._weekdaysParseExact) { return handleStrictParse$1.call(this, weekdayName, format, strict); } if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; this._shortWeekdaysParse = []; this._fullWeekdaysParse = []; } for (i = 0; i < 7; i++) { // make the regex if we don't have it already mom = createUTC([2000, 1]).day(i); if (strict && !this._fullWeekdaysParse[i]) { this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); } if (!this._weekdaysParse[i]) { regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); } // test the regex if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { return i; } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { return i; } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { return i; } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { return i; } } } // MOMENTS function getSetDayOfWeek (input) { if (!this.isValid()) { return input != null ? this : NaN; } var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); if (input != null) { input = parseWeekday(input, this.localeData()); return this.add(input - day, 'd'); } else { return day; } } function getSetLocaleDayOfWeek (input) { if (!this.isValid()) { return input != null ? this : NaN; } var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; return input == null ? weekday : this.add(input - weekday, 'd'); } function getSetISODayOfWeek (input) { if (!this.isValid()) { return input != null ? this : NaN; } // behaves the same as moment#day except // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) // as a setter, sunday should belong to the previous week. if (input != null) { var weekday = parseIsoWeekday(input, this.localeData()); return this.day(this.day() % 7 ? weekday : weekday - 7); } else { return this.day() || 7; } } var defaultWeekdaysRegex = matchWord; function weekdaysRegex (isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysStrictRegex; } else { return this._weekdaysRegex; } } else { if (!hasOwnProp(this, '_weekdaysRegex')) { this._weekdaysRegex = defaultWeekdaysRegex; } return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; } } var defaultWeekdaysShortRegex = matchWord; function weekdaysShortRegex (isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysShortStrictRegex; } else { return this._weekdaysShortRegex; } } else { if (!hasOwnProp(this, '_weekdaysShortRegex')) { this._weekdaysShortRegex = defaultWeekdaysShortRegex; } return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } } var defaultWeekdaysMinRegex = matchWord; function weekdaysMinRegex (isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, '_weekdaysRegex')) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysMinStrictRegex; } else { return this._weekdaysMinRegex; } } else { if (!hasOwnProp(this, '_weekdaysMinRegex')) { this._weekdaysMinRegex = defaultWeekdaysMinRegex; } return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } } function computeWeekdaysParse () { function cmpLenRev(a, b) { return b.length - a.length; } var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i, mom, minp, shortp, longp; for (i = 0; i < 7; i++) { // make the regex if we don't have it already mom = createUTC([2000, 1]).day(i); minp = this.weekdaysMin(mom, ''); shortp = this.weekdaysShort(mom, ''); longp = this.weekdays(mom, ''); minPieces.push(minp); shortPieces.push(shortp); longPieces.push(longp); mixedPieces.push(minp); mixedPieces.push(shortp); mixedPieces.push(longp); } // Sorting makes sure if one weekday (or abbr) is a prefix of another it // will match the longer piece. minPieces.sort(cmpLenRev); shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); for (i = 0; i < 7; i++) { shortPieces[i] = regexEscape(shortPieces[i]); longPieces[i] = regexEscape(longPieces[i]); mixedPieces[i] = regexEscape(mixedPieces[i]); } this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); this._weekdaysShortRegex = this._weekdaysRegex; this._weekdaysMinRegex = this._weekdaysRegex; this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); } // FORMATTING function hFormat() { return this.hours() % 12 || 12; } function kFormat() { return this.hours() || 24; } addFormatToken('H', ['HH', 2], 0, 'hour'); addFormatToken('h', ['hh', 2], 0, hFormat); addFormatToken('k', ['kk', 2], 0, kFormat); addFormatToken('hmm', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); }); addFormatToken('hmmss', 0, 0, function () { return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); addFormatToken('Hmm', 0, 0, function () { return '' + this.hours() + zeroFill(this.minutes(), 2); }); addFormatToken('Hmmss', 0, 0, function () { return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); function meridiem (token, lowercase) { addFormatToken(token, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); }); } meridiem('a', true); meridiem('A', false); // ALIASES addUnitAlias('hour', 'h'); // PRIORITY addUnitPriority('hour', 13); // PARSING function matchMeridiem (isStrict, locale) { return locale._meridiemParse; } addRegexToken('a', matchMeridiem); addRegexToken('A', matchMeridiem); addRegexToken('H', match1to2); addRegexToken('h', match1to2); addRegexToken('k', match1to2); addRegexToken('HH', match1to2, match2); addRegexToken('hh', match1to2, match2); addRegexToken('kk', match1to2, match2); addRegexToken('hmm', match3to4); addRegexToken('hmmss', match5to6); addRegexToken('Hmm', match3to4); addRegexToken('Hmmss', match5to6); addParseToken(['H', 'HH'], HOUR); addParseToken(['k', 'kk'], function (input, array, config) { var kInput = toInt(input); array[HOUR] = kInput === 24 ? 0 : kInput; }); addParseToken(['a', 'A'], function (input, array, config) { config._isPm = config._locale.isPM(input); config._meridiem = input; }); addParseToken(['h', 'hh'], function (input, array, config) { array[HOUR] = toInt(input); getParsingFlags(config).bigHour = true; }); addParseToken('hmm', function (input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); getParsingFlags(config).bigHour = true; }); addParseToken('hmmss', function (input, array, config) { var pos1 = input.length - 4; var pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); getParsingFlags(config).bigHour = true; }); addParseToken('Hmm', function (input, array, config) { var pos = input.length - 2; array[HOUR] = toInt(input.substr(0, pos)); array[MINUTE] = toInt(input.substr(pos)); }); addParseToken('Hmmss', function (input, array, config) { var pos1 = input.length - 4; var pos2 = input.length - 2; array[HOUR] = toInt(input.substr(0, pos1)); array[MINUTE] = toInt(input.substr(pos1, 2)); array[SECOND] = toInt(input.substr(pos2)); }); // LOCALES function localeIsPM (input) { // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays // Using charAt should be more compatible. return ((input + '').toLowerCase().charAt(0) === 'p'); } var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; function localeMeridiem (hours, minutes, isLower) { if (hours > 11) { return isLower ? 'pm' : 'PM'; } else { return isLower ? 'am' : 'AM'; } } // MOMENTS // Setting the hour should keep the time, because the user explicitly // specified which hour they want. So trying to maintain the same hour (in // a new timezone) makes sense. Adding/subtracting hours does not follow // this rule. var getSetHour = makeGetSet('Hours', true); var baseConfig = { calendar: defaultCalendar, longDateFormat: defaultLongDateFormat, invalidDate: defaultInvalidDate, ordinal: defaultOrdinal, dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, relativeTime: defaultRelativeTime, months: defaultLocaleMonths, monthsShort: defaultLocaleMonthsShort, week: defaultLocaleWeek, weekdays: defaultLocaleWeekdays, weekdaysMin: defaultLocaleWeekdaysMin, weekdaysShort: defaultLocaleWeekdaysShort, meridiemParse: defaultLocaleMeridiemParse }; // internal storage for locale config files var locales = {}; var localeFamilies = {}; var globalLocale; function normalizeLocale(key) { return key ? key.toLowerCase().replace('_', '-') : key; } // pick the locale from the array // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root function chooseLocale(names) { var i = 0, j, next, locale, split; while (i < names.length) { split = normalizeLocale(names[i]).split('-'); j = split.length; next = normalizeLocale(names[i + 1]); next = next ? next.split('-') : null; while (j > 0) { locale = loadLocale(split.slice(0, j).join('-')); if (locale) { return locale; } if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { //the next array item is better than a shallower substring of this one break; } j--; } i++; } return globalLocale; } function loadLocale(name) { var oldLocale = null; // TODO: Find a better way to register and load all the locales in Node if (!locales[name] && (typeof module !== 'undefined') && module && module.exports) { try { oldLocale = globalLocale._abbr; var aliasedRequire = require; __webpack_require__(750)("./" + name); getSetGlobalLocale(oldLocale); } catch (e) {} } return locales[name]; } // This function will load locale and then set the global locale. If // no arguments are passed in, it will simply return the current global // locale key. function getSetGlobalLocale (key, values) { var data; if (key) { if (isUndefined(values)) { data = getLocale(key); } else { data = defineLocale(key, values); } if (data) { // moment.duration._locale = moment._locale = data; globalLocale = data; } else { if ((typeof console !== 'undefined') && console.warn) { //warn user if arguments are passed but the locale could not be set console.warn('Locale ' + key + ' not found. Did you forget to load it?'); } } } return globalLocale._abbr; } function defineLocale (name, config) { if (config !== null) { var locale, parentConfig = baseConfig; config.abbr = name; if (locales[name] != null) { deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); parentConfig = locales[name]._config; } else if (config.parentLocale != null) { if (locales[config.parentLocale] != null) { parentConfig = locales[config.parentLocale]._config; } else { locale = loadLocale(config.parentLocale); if (locale != null) { parentConfig = locale._config; } else { if (!localeFamilies[config.parentLocale]) { localeFamilies[config.parentLocale] = []; } localeFamilies[config.parentLocale].push({ name: name, config: config }); return null; } } } locales[name] = new Locale(mergeConfigs(parentConfig, config)); if (localeFamilies[name]) { localeFamilies[name].forEach(function (x) { defineLocale(x.name, x.config); }); } // backwards compat for now: also set the locale // make sure we set the locale AFTER all child locales have been // created, so we won't end up with the child locale set. getSetGlobalLocale(name); return locales[name]; } else { // useful for testing delete locales[name]; return null; } } function updateLocale(name, config) { if (config != null) { var locale, tmpLocale, parentConfig = baseConfig; // MERGE tmpLocale = loadLocale(name); if (tmpLocale != null) { parentConfig = tmpLocale._config; } config = mergeConfigs(parentConfig, config); locale = new Locale(config); locale.parentLocale = locales[name]; locales[name] = locale; // backwards compat for now: also set the locale getSetGlobalLocale(name); } else { // pass null for config to unupdate, useful for tests if (locales[name] != null) { if (locales[name].parentLocale != null) { locales[name] = locales[name].parentLocale; } else if (locales[name] != null) { delete locales[name]; } } } return locales[name]; } // returns locale data function getLocale (key) { var locale; if (key && key._locale && key._locale._abbr) { key = key._locale._abbr; } if (!key) { return globalLocale; } if (!isArray(key)) { //short-circuit everything else locale = loadLocale(key); if (locale) { return locale; } key = [key]; } return chooseLocale(key); } function listLocales() { return keys(locales); } function checkOverflow (m) { var overflow; var a = m._a; if (a && getParsingFlags(m).overflow === -2) { overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { overflow = DATE; } if (getParsingFlags(m)._overflowWeeks && overflow === -1) { overflow = WEEK; } if (getParsingFlags(m)._overflowWeekday && overflow === -1) { overflow = WEEKDAY; } getParsingFlags(m).overflow = overflow; } return m; } // Pick the first defined of two or three arguments. function defaults(a, b, c) { if (a != null) { return a; } if (b != null) { return b; } return c; } function currentDateArray(config) { // hooks is actually the exported moment object var nowValue = new Date(hooks.now()); if (config._useUTC) { return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; } return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } // convert an array to a date. // the array should mirror the parameters below // note: all values past the year are optional and will default to the lowest possible value. // [year, month, day , hour, minute, second, millisecond] function configFromArray (config) { var i, date, input = [], currentDate, expectedWeekday, yearToUse; if (config._d) { return; } currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { dayOfYearFromWeekInfo(config); } //if the day of the year is set, figure out what it is if (config._dayOfYear != null) { yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { getParsingFlags(config)._overflowDayOfYear = true; } date = createUTCDate(yearToUse, 0, config._dayOfYear); config._a[MONTH] = date.getUTCMonth(); config._a[DATE] = date.getUTCDate(); } // Default to current date. // * if no year, month, day of month are given, default to today // * if day of month is given, default month and year // * if month is given, default only year // * if year is given, don't default anything for (i = 0; i < 3 && config._a[i] == null; ++i) { config._a[i] = input[i] = currentDate[i]; } // Zero out whatever was not defaulted, including time for (; i < 7; i++) { config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; } // Check for 24:00:00.000 if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { config._nextDay = true; config._a[HOUR] = 0; } config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed // with parseZone. if (config._tzm != null) { config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } if (config._nextDay) { config._a[HOUR] = 24; } // check for mismatching day of week if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { getParsingFlags(config).weekdayMismatch = true; } } function dayOfYearFromWeekInfo(config) { var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; w = config._w; if (w.GG != null || w.W != null || w.E != null) { dow = 1; doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on // how we interpret now (local, utc, fixed offset). So create // a now version of current config (take local/utc/offset flags, and // create now). weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); week = defaults(w.W, 1); weekday = defaults(w.E, 1); if (weekday < 1 || weekday > 7) { weekdayOverflow = true; } } else { dow = config._locale._week.dow; doy = config._locale._week.doy; var curWeek = weekOfYear(createLocal(), dow, doy); weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week. week = defaults(w.w, curWeek.week); if (w.d != null) { // weekday -- low day numbers are considered next week weekday = w.d; if (weekday < 0 || weekday > 6) { weekdayOverflow = true; } } else if (w.e != null) { // local weekday -- counting starts from begining of week weekday = w.e + dow; if (w.e < 0 || w.e > 6) { weekdayOverflow = true; } } else { // default to begining of week weekday = dow; } } if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { getParsingFlags(config)._overflowWeeks = true; } else if (weekdayOverflow != null) { getParsingFlags(config)._overflowWeekday = true; } else { temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); config._a[YEAR] = temp.year; config._dayOfYear = temp.dayOfYear; } } // iso 8601 regex // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; var isoDates = [ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], ['GGGG-[W]WW', /\d{4}-W\d\d/, false], ['YYYY-DDD', /\d{4}-\d{3}/], ['YYYY-MM', /\d{4}-\d\d/, false], ['YYYYYYMMDD', /[+-]\d{10}/], ['YYYYMMDD', /\d{8}/], // YYYYMM is NOT allowed by the standard ['GGGG[W]WWE', /\d{4}W\d{3}/], ['GGGG[W]WW', /\d{4}W\d{2}/, false], ['YYYYDDD', /\d{7}/] ]; // iso time formats and regexes var isoTimes = [ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], ['HH:mm:ss', /\d\d:\d\d:\d\d/], ['HH:mm', /\d\d:\d\d/], ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], ['HHmmss', /\d\d\d\d\d\d/], ['HHmm', /\d\d\d\d/], ['HH', /\d\d/] ]; var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; // date from iso format function configFromISO(config) { var i, l, string = config._i, match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat; if (match) { getParsingFlags(config).iso = true; for (i = 0, l = isoDates.length; i < l; i++) { if (isoDates[i][1].exec(match[1])) { dateFormat = isoDates[i][0]; allowTime = isoDates[i][2] !== false; break; } } if (dateFormat == null) { config._isValid = false; return; } if (match[3]) { for (i = 0, l = isoTimes.length; i < l; i++) { if (isoTimes[i][1].exec(match[3])) { // match[2] should be 'T' or space timeFormat = (match[2] || ' ') + isoTimes[i][0]; break; } } if (timeFormat == null) { config._isValid = false; return; } } if (!allowTime && timeFormat != null) { config._isValid = false; return; } if (match[4]) { if (tzRegex.exec(match[4])) { tzFormat = 'Z'; } else { config._isValid = false; return; } } config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); configFromStringAndFormat(config); } else { config._isValid = false; } } // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { var result = [ untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10) ]; if (secondStr) { result.push(parseInt(secondStr, 10)); } return result; } function untruncateYear(yearStr) { var year = parseInt(yearStr, 10); if (year <= 49) { return 2000 + year; } else if (year <= 999) { return 1900 + year; } return year; } function preprocessRFC2822(s) { // Remove comments and folding whitespace and replace multiple-spaces with a single space return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } function checkWeekday(weekdayStr, parsedInput, config) { if (weekdayStr) { // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); if (weekdayProvided !== weekdayActual) { getParsingFlags(config).weekdayMismatch = true; config._isValid = false; return false; } } return true; } var obsOffsets = { UT: 0, GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; function calculateOffset(obsOffset, militaryOffset, numOffset) { if (obsOffset) { return obsOffsets[obsOffset]; } else if (militaryOffset) { // the only allowed military tz is Z return 0; } else { var hm = parseInt(numOffset, 10); var m = hm % 100, h = (hm - m) / 100; return h * 60 + m; } } // date and time from ref 2822 format function configFromRFC2822(config) { var match = rfc2822.exec(preprocessRFC2822(config._i)); if (match) { var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); if (!checkWeekday(match[1], parsedArray, config)) { return; } config._a = parsedArray; config._tzm = calculateOffset(match[8], match[9], match[10]); config._d = createUTCDate.apply(null, config._a); config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); getParsingFlags(config).rfc2822 = true; } else { config._isValid = false; } } // date from iso format or fallback function configFromString(config) { var matched = aspNetJsonRegex.exec(config._i); if (matched !== null) { config._d = new Date(+matched[1]); return; } configFromISO(config); if (config._isValid === false) { delete config._isValid; } else { return; } configFromRFC2822(config); if (config._isValid === false) { delete config._isValid; } else { return; } // Final attempt, use Input Fallback hooks.createFromInputFallback(config); } hooks.createFromInputFallback = deprecate( 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged and will be removed in an upcoming major release. Please refer to ' + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) { config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); } ); // constant that refers to the ISO standard hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form hooks.RFC_2822 = function () {}; // date from string and format string function configFromStringAndFormat(config) { // TODO: Move this to another part of the creation flow to prevent circular deps if (config._f === hooks.ISO_8601) { configFromISO(config); return; } if (config._f === hooks.RFC_2822) { configFromRFC2822(config); return; } config._a = []; getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC` var string = '' + config._i, i, parsedInput, tokens, token, skipped, stringLength = string.length, totalParsedInputLength = 0; tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; for (i = 0; i < tokens.length; i++) { token = tokens[i]; parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; // console.log('token', token, 'parsedInput', parsedInput, // 'regex', getParseRegexForToken(token, config)); if (parsedInput) { skipped = string.substr(0, string.indexOf(parsedInput)); if (skipped.length > 0) { getParsingFlags(config).unusedInput.push(skipped); } string = string.slice(string.indexOf(parsedInput) + parsedInput.length); totalParsedInputLength += parsedInput.length; } // don't parse if it's not a known token if (formatTokenFunctions[token]) { if (parsedInput) { getParsingFlags(config).empty = false; } else { getParsingFlags(config).unusedTokens.push(token); } addTimeToArrayFromToken(token, parsedInput, config); } else if (config._strict && !parsedInput) { getParsingFlags(config).unusedTokens.push(token); } } // add remaining unparsed input length to the string getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; if (string.length > 0) { getParsingFlags(config).unusedInput.push(string); } // clear _12h flag if hour is <= 12 if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { getParsingFlags(config).bigHour = undefined; } getParsingFlags(config).parsedDateParts = config._a.slice(0); getParsingFlags(config).meridiem = config._meridiem; // handle meridiem config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); configFromArray(config); checkOverflow(config); } function meridiemFixWrap (locale, hour, meridiem) { var isPm; if (meridiem == null) { // nothing to do return hour; } if (locale.meridiemHour != null) { return locale.meridiemHour(hour, meridiem); } else if (locale.isPM != null) { // Fallback isPm = locale.isPM(meridiem); if (isPm && hour < 12) { hour += 12; } if (!isPm && hour === 12) { hour = 0; } return hour; } else { // this is not supposed to happen return hour; } } // date from string and array of format strings function configFromStringAndArray(config) { var tempConfig, bestMoment, scoreToBeat, i, currentScore; if (config._f.length === 0) { getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } for (i = 0; i < config._f.length; i++) { currentScore = 0; tempConfig = copyConfig({}, config); if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } tempConfig._f = config._f[i]; configFromStringAndFormat(tempConfig); if (!isValid(tempConfig)) { continue; } // if there is any input that was not parsed add a penalty for that format currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; getParsingFlags(tempConfig).score = currentScore; if (scoreToBeat == null || currentScore < scoreToBeat) { scoreToBeat = currentScore; bestMoment = tempConfig; } } extend(config, bestMoment || tempConfig); } function configFromObject(config) { if (config._d) { return; } var i = normalizeObjectUnits(config._i); config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { return obj && parseInt(obj, 10); }); configFromArray(config); } function createFromConfig (config) { var res = new Moment(checkOverflow(prepareConfig(config))); if (res._nextDay) { // Adding is smart enough around DST res.add(1, 'd'); res._nextDay = undefined; } return res; } function prepareConfig (config) { var input = config._i, format = config._f; config._locale = config._locale || getLocale(config._l); if (input === null || (format === undefined && input === '')) { return createInvalid({nullInput: true}); } if (typeof input === 'string') { config._i = input = config._locale.preparse(input); } if (isMoment(input)) { return new Moment(checkOverflow(input)); } else if (isDate(input)) { config._d = input; } else if (isArray(format)) { configFromStringAndArray(config); } else if (format) { configFromStringAndFormat(config); } else { configFromInput(config); } if (!isValid(config)) { config._d = null; } return config; } function configFromInput(config) { var input = config._i; if (isUndefined(input)) { config._d = new Date(hooks.now()); } else if (isDate(input)) { config._d = new Date(input.valueOf()); } else if (typeof input === 'string') { configFromString(config); } else if (isArray(input)) { config._a = map(input.slice(0), function (obj) { return parseInt(obj, 10); }); configFromArray(config); } else if (isObject(input)) { configFromObject(config); } else if (isNumber(input)) { // from milliseconds config._d = new Date(input); } else { hooks.createFromInputFallback(config); } } function createLocalOrUTC (input, format, locale, strict, isUTC) { var c = {}; if (locale === true || locale === false) { strict = locale; locale = undefined; } if ((isObject(input) && isObjectEmpty(input)) || (isArray(input) && input.length === 0)) { input = undefined; } // object construction must be done this way. // https://github.com/moment/moment/issues/1423 c._isAMomentObject = true; c._useUTC = c._isUTC = isUTC; c._l = locale; c._i = input; c._f = format; c._strict = strict; return createFromConfig(c); } function createLocal (input, format, locale, strict) { return createLocalOrUTC(input, format, locale, strict, false); } var prototypeMin = deprecate( 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other < this ? this : other; } else { return createInvalid(); } } ); var prototypeMax = deprecate( 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other > this ? this : other; } else { return createInvalid(); } } ); // Pick a moment m from moments so that m[fn](other) is true for all // other. This relies on the function fn to be transitive. // // moments should either be an array of moment objects or an array, whose // first element is an array of moment objects. function pickBy(fn, moments) { var res, i; if (moments.length === 1 && isArray(moments[0])) { moments = moments[0]; } if (!moments.length) { return createLocal(); } res = moments[0]; for (i = 1; i < moments.length; ++i) { if (!moments[i].isValid() || moments[i][fn](res)) { res = moments[i]; } } return res; } // TODO: Use [].sort instead? function min () { var args = [].slice.call(arguments, 0); return pickBy('isBefore', args); } function max () { var args = [].slice.call(arguments, 0); return pickBy('isAfter', args); } var now = function () { return Date.now ? Date.now() : +(new Date()); }; var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; function isDurationValid(m) { for (var key in m) { if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { return false; } } var unitHasDecimal = false; for (var i = 0; i < ordering.length; ++i) { if (m[ordering[i]]) { if (unitHasDecimal) { return false; // only allow non-integers for smallest unit } if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { unitHasDecimal = true; } } } return true; } function isValid$1() { return this._isValid; } function createInvalid$1() { return createDuration(NaN); } function Duration (duration) { var normalizedInput = normalizeObjectUnits(duration), years = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months = normalizedInput.month || 0, weeks = normalizedInput.week || 0, days = normalizedInput.day || 0, hours = normalizedInput.hour || 0, minutes = normalizedInput.minute || 0, seconds = normalizedInput.second || 0, milliseconds = normalizedInput.millisecond || 0; this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove this._milliseconds = +milliseconds + seconds * 1e3 + // 1000 minutes * 6e4 + // 1000 * 60 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 // Because of dateAddRemove treats 24 hours as different from a // day when working around DST, we need to store them separately this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing // which months you are are talking about, so we have to store // it separately. this._months = +months + quarters * 3 + years * 12; this._data = {}; this._locale = getLocale(); this._bubble(); } function isDuration (obj) { return obj instanceof Duration; } function absRound (number) { if (number < 0) { return Math.round(-1 * number) * -1; } else { return Math.round(number); } } // FORMATTING function offset (token, separator) { addFormatToken(token, 0, 0, function () { var offset = this.utcOffset(); var sign = '+'; if (offset < 0) { offset = -offset; sign = '-'; } return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); }); } offset('Z', ':'); offset('ZZ', ''); // PARSING addRegexToken('Z', matchShortOffset); addRegexToken('ZZ', matchShortOffset); addParseToken(['Z', 'ZZ'], function (input, array, config) { config._useUTC = true; config._tzm = offsetFromString(matchShortOffset, input); }); // HELPERS // timezone chunker // '+10:00' > ['10', '00'] // '-1530' > ['-15', '30'] var chunkOffset = /([\+\-]|\d\d)/gi; function offsetFromString(matcher, string) { var matches = (string || '').match(matcher); if (matches === null) { return null; } var chunk = matches[matches.length - 1] || []; var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; var minutes = +(parts[1] * 60) + toInt(parts[2]); return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; } // Return a moment from input, that is local/utc/zone equivalent to model. function cloneWithOffset(input, model) { var res, diff; if (model._isUTC) { res = model.clone(); diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api. res._d.setTime(res._d.valueOf() + diff); hooks.updateOffset(res, false); return res; } else { return createLocal(input).local(); } } function getDateOffset (m) { // On Firefox.24 Date#getTimezoneOffset returns a floating point. // https://github.com/moment/moment/pull/1871 return -Math.round(m._d.getTimezoneOffset() / 15) * 15; } // HOOKS // This function will be called whenever a moment is mutated. // It is intended to keep the offset in sync with the timezone. hooks.updateOffset = function () {}; // MOMENTS // keepLocalTime = true means only change the timezone, without // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset // +0200, so we adjust the time as needed, to be valid. // // Keeping the time actually adds/subtracts (one hour) // from the actual represented time. That is why we call updateOffset // a second time. In case it wants us to change the offset again // _changeInProgress == true case, then we have to adjust, because // there is no such time in the given timezone. function getSetOffset (input, keepLocalTime, keepMinutes) { var offset = this._offset || 0, localAdjust; if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { if (typeof input === 'string') { input = offsetFromString(matchShortOffset, input); if (input === null) { return this; } } else if (Math.abs(input) < 16 && !keepMinutes) { input = input * 60; } if (!this._isUTC && keepLocalTime) { localAdjust = getDateOffset(this); } this._offset = input; this._isUTC = true; if (localAdjust != null) { this.add(localAdjust, 'm'); } if (offset !== input) { if (!keepLocalTime || this._changeInProgress) { addSubtract(this, createDuration(input - offset, 'm'), 1, false); } else if (!this._changeInProgress) { this._changeInProgress = true; hooks.updateOffset(this, true); this._changeInProgress = null; } } return this; } else { return this._isUTC ? offset : getDateOffset(this); } } function getSetZone (input, keepLocalTime) { if (input != null) { if (typeof input !== 'string') { input = -input; } this.utcOffset(input, keepLocalTime); return this; } else { return -this.utcOffset(); } } function setOffsetToUTC (keepLocalTime) { return this.utcOffset(0, keepLocalTime); } function setOffsetToLocal (keepLocalTime) { if (this._isUTC) { this.utcOffset(0, keepLocalTime); this._isUTC = false; if (keepLocalTime) { this.subtract(getDateOffset(this), 'm'); } } return this; } function setOffsetToParsedOffset () { if (this._tzm != null) { this.utcOffset(this._tzm, false, true); } else if (typeof this._i === 'string') { var tZone = offsetFromString(matchOffset, this._i); if (tZone != null) { this.utcOffset(tZone); } else { this.utcOffset(0, true); } } return this; } function hasAlignedHourOffset (input) { if (!this.isValid()) { return false; } input = input ? createLocal(input).utcOffset() : 0; return (this.utcOffset() - input) % 60 === 0; } function isDaylightSavingTime () { return ( this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() ); } function isDaylightSavingTimeShifted () { if (!isUndefined(this._isDSTShifted)) { return this._isDSTShifted; } var c = {}; copyConfig(c, this); c = prepareConfig(c); if (c._a) { var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0; } else { this._isDSTShifted = false; } return this._isDSTShifted; } function isLocal () { return this.isValid() ? !this._isUTC : false; } function isUtcOffset () { return this.isValid() ? this._isUTC : false; } function isUtc () { return this.isValid() ? this._isUTC && this._offset === 0 : false; } // ASP.NET json date format regex var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere // and further modified to allow for strings containing both week and day var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function createDuration (input, key) { var duration = input, // matching against regexp is expensive, do it on demand match = null, sign, ret, diffRes; if (isDuration(input)) { duration = { ms : input._milliseconds, d : input._days, M : input._months }; } else if (isNumber(input)) { duration = {}; if (key) { duration[key] = input; } else { duration.milliseconds = input; } } else if (!!(match = aspNetRegex.exec(input))) { sign = (match[1] === '-') ? -1 : 1; duration = { y : 0, d : toInt(match[DATE]) * sign, h : toInt(match[HOUR]) * sign, m : toInt(match[MINUTE]) * sign, s : toInt(match[SECOND]) * sign, ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match }; } else if (!!(match = isoRegex.exec(input))) { sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1; duration = { y : parseIso(match[2], sign), M : parseIso(match[3], sign), w : parseIso(match[4], sign), d : parseIso(match[5], sign), h : parseIso(match[6], sign), m : parseIso(match[7], sign), s : parseIso(match[8], sign) }; } else if (duration == null) {// checks for null or undefined duration = {}; } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); duration = {}; duration.ms = diffRes.milliseconds; duration.M = diffRes.months; } ret = new Duration(duration); if (isDuration(input) && hasOwnProp(input, '_locale')) { ret._locale = input._locale; } return ret; } createDuration.fn = Duration.prototype; createDuration.invalid = createInvalid$1; function parseIso (inp, sign) { // We'd normally use ~~inp for this, but unfortunately it also // converts floats to ints. // inp may be undefined, so careful calling replace on it. var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it return (isNaN(res) ? 0 : res) * sign; } function positiveMomentsDifference(base, other) { var res = {milliseconds: 0, months: 0}; res.months = other.month() - base.month() + (other.year() - base.year()) * 12; if (base.clone().add(res.months, 'M').isAfter(other)) { --res.months; } res.milliseconds = +other - +(base.clone().add(res.months, 'M')); return res; } function momentsDifference(base, other) { var res; if (!(base.isValid() && other.isValid())) { return {milliseconds: 0, months: 0}; } other = cloneWithOffset(other, base); if (base.isBefore(other)) { res = positiveMomentsDifference(base, other); } else { res = positiveMomentsDifference(other, base); res.milliseconds = -res.milliseconds; res.months = -res.months; } return res; } // TODO: remove 'name' arg after deprecation is removed function createAdder(direction, name) { return function (val, period) { var dur, tmp; //invert the arguments, but complain about it if (period !== null && !isNaN(+period)) { deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); tmp = val; val = period; period = tmp; } val = typeof val === 'string' ? +val : val; dur = createDuration(val, period); addSubtract(this, dur, direction); return this; }; } function addSubtract (mom, duration, isAdding, updateOffset) { var milliseconds = duration._milliseconds, days = absRound(duration._days), months = absRound(duration._months); if (!mom.isValid()) { // No op return; } updateOffset = updateOffset == null ? true : updateOffset; if (months) { setMonth(mom, get(mom, 'Month') + months * isAdding); } if (days) { set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); } if (milliseconds) { mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); } if (updateOffset) { hooks.updateOffset(mom, days || months); } } var add = createAdder(1, 'add'); var subtract = createAdder(-1, 'subtract'); function getCalendarFormat(myMoment, now) { var diff = myMoment.diff(now, 'days', true); return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse'; } function calendar$1 (time, formats) { // We want to compare the start of today, vs this. // Getting start-of-today depends on whether we're local/utc/offset or not. var now = time || createLocal(), sod = cloneWithOffset(now, this).startOf('day'), format = hooks.calendarFormat(this, sod) || 'sameElse'; var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); return this.format(output || this.localeData().calendar(format, this, createLocal(now))); } function clone () { return new Moment(this); } function isAfter (input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); if (units === 'millisecond') { return this.valueOf() > localInput.valueOf(); } else { return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } function isBefore (input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); if (units === 'millisecond') { return this.valueOf() < localInput.valueOf(); } else { return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } function isBetween (from, to, units, inclusivity) { inclusivity = inclusivity || '()'; return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); } function isSame (input, units) { var localInput = isMoment(input) ? input : createLocal(input), inputMs; if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units || 'millisecond'); if (units === 'millisecond') { return this.valueOf() === localInput.valueOf(); } else { inputMs = localInput.valueOf(); return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); } } function isSameOrAfter (input, units) { return this.isSame(input, units) || this.isAfter(input,units); } function isSameOrBefore (input, units) { return this.isSame(input, units) || this.isBefore(input,units); } function diff (input, units, asFloat) { var that, zoneDelta, output; if (!this.isValid()) { return NaN; } that = cloneWithOffset(input, this); if (!that.isValid()) { return NaN; } zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; units = normalizeUnits(units); switch (units) { case 'year': output = monthDiff(this, that) / 12; break; case 'month': output = monthDiff(this, that); break; case 'quarter': output = monthDiff(this, that) / 3; break; case 'second': output = (this - that) / 1e3; break; // 1000 case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst default: output = this - that; } return asFloat ? output : absFloor(output); } function monthDiff (a, b) { // difference in months var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), // b is in (anchor - 1 month, anchor + 1 month) anchor = a.clone().add(wholeMonthDiff, 'months'), anchor2, adjust; if (b - anchor < 0) { anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month adjust = (b - anchor) / (anchor - anchor2); } else { anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month adjust = (b - anchor) / (anchor2 - anchor); } //check for negative zero, return zero if negative zero return -(wholeMonthDiff + adjust) || 0; } hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; function toString () { return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); } function toISOString(keepOffset) { if (!this.isValid()) { return null; } var utc = keepOffset !== true; var m = utc ? this.clone().utc() : this; if (m.year() < 0 || m.year() > 9999) { return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); } if (isFunction(Date.prototype.toISOString)) { // native implementation is ~50x faster, use it when we can if (utc) { return this.toDate().toISOString(); } else { return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); } } return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); } /** * Return a human readable representation of a moment that can * also be evaluated to get a new moment which is the same * * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects */ function inspect () { if (!this.isValid()) { return 'moment.invalid(/* ' + this._i + ' */)'; } var func = 'moment'; var zone = ''; if (!this.isLocal()) { func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; zone = 'Z'; } var prefix = '[' + func + '("]'; var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; var datetime = '-MM-DD[T]HH:mm:ss.SSS'; var suffix = zone + '[")]'; return this.format(prefix + year + datetime + suffix); } function format (inputString) { if (!inputString) { inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; } var output = formatMoment(this, inputString); return this.localeData().postformat(output); } function from (time, withoutSuffix) { if (this.isValid() && ((isMoment(time) && time.isValid()) || createLocal(time).isValid())) { return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function fromNow (withoutSuffix) { return this.from(createLocal(), withoutSuffix); } function to (time, withoutSuffix) { if (this.isValid() && ((isMoment(time) && time.isValid()) || createLocal(time).isValid())) { return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function toNow (withoutSuffix) { return this.to(createLocal(), withoutSuffix); } // If passed a locale key, it will set the locale for this // instance. Otherwise, it will return the locale configuration // variables for this instance. function locale (key) { var newLocaleData; if (key === undefined) { return this._locale._abbr; } else { newLocaleData = getLocale(key); if (newLocaleData != null) { this._locale = newLocaleData; } return this; } } var lang = deprecate( 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) { if (key === undefined) { return this.localeData(); } else { return this.locale(key); } } ); function localeData () { return this._locale; } function startOf (units) { units = normalizeUnits(units); // the following switch intentionally omits break keywords // to utilize falling through the cases. switch (units) { case 'year': this.month(0); /* falls through */ case 'quarter': case 'month': this.date(1); /* falls through */ case 'week': case 'isoWeek': case 'day': case 'date': this.hours(0); /* falls through */ case 'hour': this.minutes(0); /* falls through */ case 'minute': this.seconds(0); /* falls through */ case 'second': this.milliseconds(0); } // weeks are a special case if (units === 'week') { this.weekday(0); } if (units === 'isoWeek') { this.isoWeekday(1); } // quarters are also special if (units === 'quarter') { this.month(Math.floor(this.month() / 3) * 3); } return this; } function endOf (units) { units = normalizeUnits(units); if (units === undefined || units === 'millisecond') { return this; } // 'date' is an alias for 'day', so it should be considered as such. if (units === 'date') { units = 'day'; } return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); } function valueOf () { return this._d.valueOf() - ((this._offset || 0) * 60000); } function unix () { return Math.floor(this.valueOf() / 1000); } function toDate () { return new Date(this.valueOf()); } function toArray () { var m = this; return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; } function toObject () { var m = this; return { years: m.year(), months: m.month(), date: m.date(), hours: m.hours(), minutes: m.minutes(), seconds: m.seconds(), milliseconds: m.milliseconds() }; } function toJSON () { // new Date(NaN).toJSON() === null return this.isValid() ? this.toISOString() : null; } function isValid$2 () { return isValid(this); } function parsingFlags () { return extend({}, getParsingFlags(this)); } function invalidAt () { return getParsingFlags(this).overflow; } function creationData() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } // FORMATTING addFormatToken(0, ['gg', 2], 0, function () { return this.weekYear() % 100; }); addFormatToken(0, ['GG', 2], 0, function () { return this.isoWeekYear() % 100; }); function addWeekYearFormatToken (token, getter) { addFormatToken(0, [token, token.length], 0, getter); } addWeekYearFormatToken('gggg', 'weekYear'); addWeekYearFormatToken('ggggg', 'weekYear'); addWeekYearFormatToken('GGGG', 'isoWeekYear'); addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES addUnitAlias('weekYear', 'gg'); addUnitAlias('isoWeekYear', 'GG'); // PRIORITY addUnitPriority('weekYear', 1); addUnitPriority('isoWeekYear', 1); // PARSING addRegexToken('G', matchSigned); addRegexToken('g', matchSigned); addRegexToken('GG', match1to2, match2); addRegexToken('gg', match1to2, match2); addRegexToken('GGGG', match1to4, match4); addRegexToken('gggg', match1to4, match4); addRegexToken('GGGGG', match1to6, match6); addRegexToken('ggggg', match1to6, match6); addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { week[token.substr(0, 2)] = toInt(input); }); addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { week[token] = hooks.parseTwoDigitYear(input); }); // MOMENTS function getSetWeekYear (input) { return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); } function getSetISOWeekYear (input) { return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4); } function getISOWeeksInYear () { return weeksInYear(this.year(), 1, 4); } function getWeeksInYear () { var weekInfo = this.localeData()._week; return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); } function getSetWeekYearHelper(input, week, weekday, dow, doy) { var weeksTarget; if (input == null) { return weekOfYear(this, dow, doy).year; } else { weeksTarget = weeksInYear(input, dow, doy); if (week > weeksTarget) { week = weeksTarget; } return setWeekAll.call(this, input, week, weekday, dow, doy); } } function setWeekAll(weekYear, week, weekday, dow, doy) { var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); this.year(date.getUTCFullYear()); this.month(date.getUTCMonth()); this.date(date.getUTCDate()); return this; } // FORMATTING addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES addUnitAlias('quarter', 'Q'); // PRIORITY addUnitPriority('quarter', 7); // PARSING addRegexToken('Q', match1); addParseToken('Q', function (input, array) { array[MONTH] = (toInt(input) - 1) * 3; }); // MOMENTS function getSetQuarter (input) { return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); } // FORMATTING addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES addUnitAlias('date', 'D'); // PRIORITY addUnitPriority('date', 9); // PARSING addRegexToken('D', match1to2); addRegexToken('DD', match1to2, match2); addRegexToken('Do', function (isStrict, locale) { // TODO: Remove "ordinalParse" fallback in next major release. return isStrict ? (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : locale._dayOfMonthOrdinalParseLenient; }); addParseToken(['D', 'DD'], DATE); addParseToken('Do', function (input, array) { array[DATE] = toInt(input.match(match1to2)[0]); }); // MOMENTS var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES addUnitAlias('dayOfYear', 'DDD'); // PRIORITY addUnitPriority('dayOfYear', 4); // PARSING addRegexToken('DDD', match1to3); addRegexToken('DDDD', match3); addParseToken(['DDD', 'DDDD'], function (input, array, config) { config._dayOfYear = toInt(input); }); // HELPERS // MOMENTS function getSetDayOfYear (input) { var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); } // FORMATTING addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES addUnitAlias('minute', 'm'); // PRIORITY addUnitPriority('minute', 14); // PARSING addRegexToken('m', match1to2); addRegexToken('mm', match1to2, match2); addParseToken(['m', 'mm'], MINUTE); // MOMENTS var getSetMinute = makeGetSet('Minutes', false); // FORMATTING addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES addUnitAlias('second', 's'); // PRIORITY addUnitPriority('second', 15); // PARSING addRegexToken('s', match1to2); addRegexToken('ss', match1to2, match2); addParseToken(['s', 'ss'], SECOND); // MOMENTS var getSetSecond = makeGetSet('Seconds', false); // FORMATTING addFormatToken('S', 0, 0, function () { return ~~(this.millisecond() / 100); }); addFormatToken(0, ['SS', 2], 0, function () { return ~~(this.millisecond() / 10); }); addFormatToken(0, ['SSS', 3], 0, 'millisecond'); addFormatToken(0, ['SSSS', 4], 0, function () { return this.millisecond() * 10; }); addFormatToken(0, ['SSSSS', 5], 0, function () { return this.millisecond() * 100; }); addFormatToken(0, ['SSSSSS', 6], 0, function () { return this.millisecond() * 1000; }); addFormatToken(0, ['SSSSSSS', 7], 0, function () { return this.millisecond() * 10000; }); addFormatToken(0, ['SSSSSSSS', 8], 0, function () { return this.millisecond() * 100000; }); addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { return this.millisecond() * 1000000; }); // ALIASES addUnitAlias('millisecond', 'ms'); // PRIORITY addUnitPriority('millisecond', 16); // PARSING addRegexToken('S', match1to3, match1); addRegexToken('SS', match1to3, match2); addRegexToken('SSS', match1to3, match3); var token; for (token = 'SSSS'; token.length <= 9; token += 'S') { addRegexToken(token, matchUnsigned); } function parseMs(input, array) { array[MILLISECOND] = toInt(('0.' + input) * 1000); } for (token = 'S'; token.length <= 9; token += 'S') { addParseToken(token, parseMs); } // MOMENTS var getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING addFormatToken('z', 0, 0, 'zoneAbbr'); addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS function getZoneAbbr () { return this._isUTC ? 'UTC' : ''; } function getZoneName () { return this._isUTC ? 'Coordinated Universal Time' : ''; } var proto = Moment.prototype; proto.add = add; proto.calendar = calendar$1; proto.clone = clone; proto.diff = diff; proto.endOf = endOf; proto.format = format; proto.from = from; proto.fromNow = fromNow; proto.to = to; proto.toNow = toNow; proto.get = stringGet; proto.invalidAt = invalidAt; proto.isAfter = isAfter; proto.isBefore = isBefore; proto.isBetween = isBetween; proto.isSame = isSame; proto.isSameOrAfter = isSameOrAfter; proto.isSameOrBefore = isSameOrBefore; proto.isValid = isValid$2; proto.lang = lang; proto.locale = locale; proto.localeData = localeData; proto.max = prototypeMax; proto.min = prototypeMin; proto.parsingFlags = parsingFlags; proto.set = stringSet; proto.startOf = startOf; proto.subtract = subtract; proto.toArray = toArray; proto.toObject = toObject; proto.toDate = toDate; proto.toISOString = toISOString; proto.inspect = inspect; proto.toJSON = toJSON; proto.toString = toString; proto.unix = unix; proto.valueOf = valueOf; proto.creationData = creationData; proto.year = getSetYear; proto.isLeapYear = getIsLeapYear; proto.weekYear = getSetWeekYear; proto.isoWeekYear = getSetISOWeekYear; proto.quarter = proto.quarters = getSetQuarter; proto.month = getSetMonth; proto.daysInMonth = getDaysInMonth; proto.week = proto.weeks = getSetWeek; proto.isoWeek = proto.isoWeeks = getSetISOWeek; proto.weeksInYear = getWeeksInYear; proto.isoWeeksInYear = getISOWeeksInYear; proto.date = getSetDayOfMonth; proto.day = proto.days = getSetDayOfWeek; proto.weekday = getSetLocaleDayOfWeek; proto.isoWeekday = getSetISODayOfWeek; proto.dayOfYear = getSetDayOfYear; proto.hour = proto.hours = getSetHour; proto.minute = proto.minutes = getSetMinute; proto.second = proto.seconds = getSetSecond; proto.millisecond = proto.milliseconds = getSetMillisecond; proto.utcOffset = getSetOffset; proto.utc = setOffsetToUTC; proto.local = setOffsetToLocal; proto.parseZone = setOffsetToParsedOffset; proto.hasAlignedHourOffset = hasAlignedHourOffset; proto.isDST = isDaylightSavingTime; proto.isLocal = isLocal; proto.isUtcOffset = isUtcOffset; proto.isUtc = isUtc; proto.isUTC = isUtc; proto.zoneAbbr = getZoneAbbr; proto.zoneName = getZoneName; proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); function createUnix (input) { return createLocal(input * 1000); } function createInZone () { return createLocal.apply(null, arguments).parseZone(); } function preParsePostFormat (string) { return string; } var proto$1 = Locale.prototype; proto$1.calendar = calendar; proto$1.longDateFormat = longDateFormat; proto$1.invalidDate = invalidDate; proto$1.ordinal = ordinal; proto$1.preparse = preParsePostFormat; proto$1.postformat = preParsePostFormat; proto$1.relativeTime = relativeTime; proto$1.pastFuture = pastFuture; proto$1.set = set; proto$1.months = localeMonths; proto$1.monthsShort = localeMonthsShort; proto$1.monthsParse = localeMonthsParse; proto$1.monthsRegex = monthsRegex; proto$1.monthsShortRegex = monthsShortRegex; proto$1.week = localeWeek; proto$1.firstDayOfYear = localeFirstDayOfYear; proto$1.firstDayOfWeek = localeFirstDayOfWeek; proto$1.weekdays = localeWeekdays; proto$1.weekdaysMin = localeWeekdaysMin; proto$1.weekdaysShort = localeWeekdaysShort; proto$1.weekdaysParse = localeWeekdaysParse; proto$1.weekdaysRegex = weekdaysRegex; proto$1.weekdaysShortRegex = weekdaysShortRegex; proto$1.weekdaysMinRegex = weekdaysMinRegex; proto$1.isPM = localeIsPM; proto$1.meridiem = localeMeridiem; function get$1 (format, index, field, setter) { var locale = getLocale(); var utc = createUTC().set(setter, index); return locale[field](utc, format); } function listMonthsImpl (format, index, field) { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; if (index != null) { return get$1(format, index, field, 'month'); } var i; var out = []; for (i = 0; i < 12; i++) { out[i] = get$1(format, i, field, 'month'); } return out; } // () // (5) // (fmt, 5) // (fmt) // (true) // (true, 5) // (true, fmt, 5) // (true, fmt) function listWeekdaysImpl (localeSorted, format, index, field) { if (typeof localeSorted === 'boolean') { if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } else { format = localeSorted; index = format; localeSorted = false; if (isNumber(format)) { index = format; format = undefined; } format = format || ''; } var locale = getLocale(), shift = localeSorted ? locale._week.dow : 0; if (index != null) { return get$1(format, (index + shift) % 7, field, 'day'); } var i; var out = []; for (i = 0; i < 7; i++) { out[i] = get$1(format, (i + shift) % 7, field, 'day'); } return out; } function listMonths (format, index) { return listMonthsImpl(format, index, 'months'); } function listMonthsShort (format, index) { return listMonthsImpl(format, index, 'monthsShort'); } function listWeekdays (localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); } function listWeekdaysShort (localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); } function listWeekdaysMin (localeSorted, format, index) { return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); } getSetGlobalLocale('en', { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal : function (number) { var b = number % 10, output = (toInt(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; } }); // Side effect imports hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); var mathAbs = Math.abs; function abs () { var data = this._data; this._milliseconds = mathAbs(this._milliseconds); this._days = mathAbs(this._days); this._months = mathAbs(this._months); data.milliseconds = mathAbs(data.milliseconds); data.seconds = mathAbs(data.seconds); data.minutes = mathAbs(data.minutes); data.hours = mathAbs(data.hours); data.months = mathAbs(data.months); data.years = mathAbs(data.years); return this; } function addSubtract$1 (duration, input, value, direction) { var other = createDuration(input, value); duration._milliseconds += direction * other._milliseconds; duration._days += direction * other._days; duration._months += direction * other._months; return duration._bubble(); } // supports only 2.0-style add(1, 's') or add(duration) function add$1 (input, value) { return addSubtract$1(this, input, value, 1); } // supports only 2.0-style subtract(1, 's') or subtract(duration) function subtract$1 (input, value) { return addSubtract$1(this, input, value, -1); } function absCeil (number) { if (number < 0) { return Math.floor(number); } else { return Math.ceil(number); } } function bubble () { var milliseconds = this._milliseconds; var days = this._days; var months = this._months; var data = this._data; var seconds, minutes, hours, years, monthsFromDays; // if we have a mix of positive and negative values, bubble down first // check: https://github.com/moment/moment/issues/2166 if (!((milliseconds >= 0 && days >= 0 && months >= 0) || (milliseconds <= 0 && days <= 0 && months <= 0))) { milliseconds += absCeil(monthsToDays(months) + days) * 864e5; days = 0; months = 0; } // The following code bubbles up values, see the tests for // examples of what that means. data.milliseconds = milliseconds % 1000; seconds = absFloor(milliseconds / 1000); data.seconds = seconds % 60; minutes = absFloor(seconds / 60); data.minutes = minutes % 60; hours = absFloor(minutes / 60); data.hours = hours % 24; days += absFloor(hours / 24); // convert days to months monthsFromDays = absFloor(daysToMonths(days)); months += monthsFromDays; days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year years = absFloor(months / 12); months %= 12; data.days = days; data.months = months; data.years = years; return this; } function daysToMonths (days) { // 400 years have 146097 days (taking into account leap year rules) // 400 years have 12 months === 4800 return days * 4800 / 146097; } function monthsToDays (months) { // the reverse of daysToMonths return months * 146097 / 4800; } function as (units) { if (!this.isValid()) { return NaN; } var days; var months; var milliseconds = this._milliseconds; units = normalizeUnits(units); if (units === 'month' || units === 'year') { days = this._days + milliseconds / 864e5; months = this._months + daysToMonths(days); return units === 'month' ? months : months / 12; } else { // handle milliseconds separately because of floating point math errors (issue #1867) days = this._days + Math.round(monthsToDays(this._months)); switch (units) { case 'week' : return days / 7 + milliseconds / 6048e5; case 'day' : return days + milliseconds / 864e5; case 'hour' : return days * 24 + milliseconds / 36e5; case 'minute' : return days * 1440 + milliseconds / 6e4; case 'second' : return days * 86400 + milliseconds / 1000; // Math.floor prevents floating point math errors here case 'millisecond': return Math.floor(days * 864e5) + milliseconds; default: throw new Error('Unknown unit ' + units); } } } // TODO: Use this.as('ms')? function valueOf$1 () { if (!this.isValid()) { return NaN; } return ( this._milliseconds + this._days * 864e5 + (this._months % 12) * 2592e6 + toInt(this._months / 12) * 31536e6 ); } function makeAs (alias) { return function () { return this.as(alias); }; } var asMilliseconds = makeAs('ms'); var asSeconds = makeAs('s'); var asMinutes = makeAs('m'); var asHours = makeAs('h'); var asDays = makeAs('d'); var asWeeks = makeAs('w'); var asMonths = makeAs('M'); var asYears = makeAs('y'); function clone$1 () { return createDuration(this); } function get$2 (units) { units = normalizeUnits(units); return this.isValid() ? this[units + 's']() : NaN; } function makeGetter(name) { return function () { return this.isValid() ? this._data[name] : NaN; }; } var milliseconds = makeGetter('milliseconds'); var seconds = makeGetter('seconds'); var minutes = makeGetter('minutes'); var hours = makeGetter('hours'); var days = makeGetter('days'); var months = makeGetter('months'); var years = makeGetter('years'); function weeks () { return absFloor(this.days() / 7); } var round = Math.round; var thresholds = { ss: 44, // a few seconds to seconds s : 45, // seconds to minute m : 45, // minutes to hour h : 22, // hours to day d : 26, // days to month M : 11 // months to year }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); } function relativeTime$1 (posNegDuration, withoutSuffix, locale) { var duration = createDuration(posNegDuration).abs(); var seconds = round(duration.as('s')); var minutes = round(duration.as('m')); var hours = round(duration.as('h')); var days = round(duration.as('d')); var months = round(duration.as('M')); var years = round(duration.as('y')); var a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days] || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years]; a[2] = withoutSuffix; a[3] = +posNegDuration > 0; a[4] = locale; return substituteTimeAgo.apply(null, a); } // This function allows you to set the rounding function for relative time strings function getSetRelativeTimeRounding (roundingFunction) { if (roundingFunction === undefined) { return round; } if (typeof(roundingFunction) === 'function') { round = roundingFunction; return true; } return false; } // This function allows you to set a threshold for relative time strings function getSetRelativeTimeThreshold (threshold, limit) { if (thresholds[threshold] === undefined) { return false; } if (limit === undefined) { return thresholds[threshold]; } thresholds[threshold] = limit; if (threshold === 's') { thresholds.ss = limit - 1; } return true; } function humanize (withSuffix) { if (!this.isValid()) { return this.localeData().invalidDate(); } var locale = this.localeData(); var output = relativeTime$1(this, !withSuffix, locale); if (withSuffix) { output = locale.pastFuture(+this, output); } return locale.postformat(output); } var abs$1 = Math.abs; function sign(x) { return ((x > 0) - (x < 0)) || +x; } function toISOString$1() { // for ISO strings we do not use the normal bubbling rules: // * milliseconds bubble up until they become hours // * days do not bubble at all // * months bubble up until they become years // This is because there is no context-free conversion between hours and days // (think of clock changes) // and also not between days and months (28-31 days per month) if (!this.isValid()) { return this.localeData().invalidDate(); } var seconds = abs$1(this._milliseconds) / 1000; var days = abs$1(this._days); var months = abs$1(this._months); var minutes, hours, years; // 3600 seconds -> 60 minutes -> 1 hour minutes = absFloor(seconds / 60); hours = absFloor(minutes / 60); seconds %= 60; minutes %= 60; // 12 months -> 1 year years = absFloor(months / 12); months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js var Y = years; var M = months; var D = days; var h = hours; var m = minutes; var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; var total = this.asSeconds(); if (!total) { // this is the same as C#'s (Noda) and python (isodate)... // but not other JS (goog.date) return 'P0D'; } var totalSign = total < 0 ? '-' : ''; var ymSign = sign(this._months) !== sign(total) ? '-' : ''; var daysSign = sign(this._days) !== sign(total) ? '-' : ''; var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; return totalSign + 'P' + (Y ? ymSign + Y + 'Y' : '') + (M ? ymSign + M + 'M' : '') + (D ? daysSign + D + 'D' : '') + ((h || m || s) ? 'T' : '') + (h ? hmsSign + h + 'H' : '') + (m ? hmsSign + m + 'M' : '') + (s ? hmsSign + s + 'S' : ''); } var proto$2 = Duration.prototype; proto$2.isValid = isValid$1; proto$2.abs = abs; proto$2.add = add$1; proto$2.subtract = subtract$1; proto$2.as = as; proto$2.asMilliseconds = asMilliseconds; proto$2.asSeconds = asSeconds; proto$2.asMinutes = asMinutes; proto$2.asHours = asHours; proto$2.asDays = asDays; proto$2.asWeeks = asWeeks; proto$2.asMonths = asMonths; proto$2.asYears = asYears; proto$2.valueOf = valueOf$1; proto$2._bubble = bubble; proto$2.clone = clone$1; proto$2.get = get$2; proto$2.milliseconds = milliseconds; proto$2.seconds = seconds; proto$2.minutes = minutes; proto$2.hours = hours; proto$2.days = days; proto$2.weeks = weeks; proto$2.months = months; proto$2.years = years; proto$2.humanize = humanize; proto$2.toISOString = toISOString$1; proto$2.toString = toISOString$1; proto$2.toJSON = toISOString$1; proto$2.locale = locale; proto$2.localeData = localeData; proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); proto$2.lang = lang; // Side effect imports // FORMATTING addFormatToken('X', 0, 0, 'unix'); addFormatToken('x', 0, 0, 'valueOf'); // PARSING addRegexToken('x', matchSigned); addRegexToken('X', matchTimestamp); addParseToken('X', function (input, array, config) { config._d = new Date(parseFloat(input, 10) * 1000); }); addParseToken('x', function (input, array, config) { config._d = new Date(toInt(input)); }); // Side effect imports hooks.version = '2.22.2'; setHookCallback(createLocal); hooks.fn = proto; hooks.min = min; hooks.max = max; hooks.now = now; hooks.utc = createUTC; hooks.unix = createUnix; hooks.months = listMonths; hooks.isDate = isDate; hooks.locale = getSetGlobalLocale; hooks.invalid = createInvalid; hooks.duration = createDuration; hooks.isMoment = isMoment; hooks.weekdays = listWeekdays; hooks.parseZone = createInZone; hooks.localeData = getLocale; hooks.isDuration = isDuration; hooks.monthsShort = listMonthsShort; hooks.weekdaysMin = listWeekdaysMin; hooks.defineLocale = defineLocale; hooks.updateLocale = updateLocale; hooks.locales = listLocales; hooks.weekdaysShort = listWeekdaysShort; hooks.normalizeUnits = normalizeUnits; hooks.relativeTimeRounding = getSetRelativeTimeRounding; hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; hooks.calendarFormat = getCalendarFormat; hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats hooks.HTML5_FMT = { DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> DATE: 'YYYY-MM-DD', // <input type="date" /> TIME: 'HH:mm', // <input type="time" /> TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> WEEK: 'YYYY-[W]WW', // <input type="week" /> MONTH: 'YYYY-MM' // <input type="month" /> }; return hooks; }))); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(93)(module))) /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.showElement = showElement; exports.showAndFocusElement = showAndFocusElement; exports.hideElement = hideElement; exports.getDomParser = getDomParser; exports.disableSubmit = disableSubmit; exports.resetSubmit = resetSubmit; exports.getRedirectPath = getRedirectPath; exports.redirectWithUsrdir = redirectWithUsrdir; exports.handleRedirect = handleRedirect; exports.handleErrorNode = exports.getErrorAttrName = exports.userSystemsRequestClient = void 0; var _apolloClient = __webpack_require__(311); /* globals window, HTMLElement, HTMLInputElement, */ var GQL_QUERY_PATH = '/.wf_graphql/usys/apollo'; var userSystemsRequestClient = (0, _apolloClient.createApolloClient)({ path: GQL_QUERY_PATH, useCsrf: true, maxAttempts: 5 }); /** If you are hiding a previous element that could have focus please use showAndFocusElement instead. */ exports.userSystemsRequestClient = userSystemsRequestClient; function showElement(el) { if (el) { el.style.display = 'block'; } } /** Show and focus an element, helpful for our common pattern of hiding form inputs when we show success states */ function showAndFocusElement(el) { if (el) { el.style.display = 'block'; el.focus(); } } function hideElement(el) { if (el) { el.style.display = 'none'; } } /** * Returns an API used for parsing strings into DOM nodes */ function getDomParser() { var domParser = new window.DOMParser(); return { /** * Returns an html node for an encoded string * @param {string} str - Encoded string to parse */ getHtmlFromString: function getHtmlFromString(str) { var decodedString = decodeURIComponent(str); var parsedHtml = domParser.parseFromString(decodedString, 'text/html'); if (!parsedHtml || !parsedHtml.body || !parsedHtml.body.firstChild) return null; return parsedHtml.body.firstChild; } }; } var getErrorAttrName = function getErrorAttrName(errorAttr, errorCode) { var formattedErrorCode = errorCode.replace('_', '-').toLowerCase(); return "".concat(errorAttr, "-").concat(formattedErrorCode, "-error"); }; exports.getErrorAttrName = getErrorAttrName; var handleErrorNode = function handleErrorNode(errorMsgNode, errorStateNode, errorCode, errorAttrPrefix, defaultErrorCopy) { // get the error copy from the data attribute var errorAttr = getErrorAttrName(errorAttrPrefix, errorCode); var errorCopy = errorMsgNode && errorMsgNode.getAttribute(errorAttr); // announce the contents of the div to ATs errorMsgNode.setAttribute('aria-live', 'assertive'); // set the message text to the error message or default copy if it is null errorMsgNode.textContent = errorCopy ? errorCopy : defaultErrorCopy; // show the error state Element showElement(errorStateNode); }; exports.handleErrorNode = handleErrorNode; function disableSubmit(submit) { if (!(submit instanceof HTMLInputElement)) return ''; // Disable submit submit.setAttribute('disabled', 'true'); // Store previous value var value = submit.getAttribute('value'); // Show wait text var waitText = submit.getAttribute('data-wait'); if (waitText) submit.setAttribute('value', waitText); return value !== null && value !== void 0 ? value : ''; } function resetSubmit(submit, text) { if (!(submit instanceof HTMLInputElement)) return; // Reenable submit submit.removeAttribute('disabled'); // Reset text submit.setAttribute('value', text); } function getRedirectPath() { var queryString = window.location.search; var redirectParam = queryString.match(/[?|&]usredir=([^&]+)/g); if (!redirectParam) return undefined; var encodedPath = redirectParam[0].substring('?usredir='.length); return decodeURIComponent(encodedPath); } function redirectWithUsrdir(location) { var redirectParam = getRedirectPath(); var encodedPath; if (redirectParam) { encodedPath = redirectParam[0].substring('?usredir='.length); } else { encodedPath = encodeURIComponent(window.location.pathname); } window.location = location + "?usredir=".concat(encodedPath); } function handleRedirect(defaultRedirectPath) { var includeDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var redirectPath = getRedirectPath(); if (redirectPath) { return includeDelay ? setTimeout(function () { return window.Webflow.location(redirectPath); }, 3000) : window.Webflow.location(redirectPath); } if (!defaultRedirectPath) return; return includeDelay ? setTimeout(function () { return window.Webflow.location(defaultRedirectPath); }, 3000) : window.Webflow.location(defaultRedirectPath); } /***/ }), /* 52 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var userAgent = __webpack_require__(54); var process = global.process; var Deno = global.Deno; var versions = process && process.versions || Deno && Deno.version; var v8 = versions && versions.v8; var match, version; if (v8) { match = v8.split('.'); // in old Chrome, versions of V8 isn't V8 = Chrome / 10 // but their correct versions are not interesting for us version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); } // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` // so check `userAgent` even if `.v8` exists, but 0 if (!version && userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version = +match[1]; } } module.exports = version; /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { var getBuiltIn = __webpack_require__(24); module.exports = getBuiltIn('navigator', 'userAgent') || ''; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { var aCallable = __webpack_require__(31); // `GetMethod` abstract operation // https://tc39.es/ecma262/#sec-getmethod module.exports = function (V, P) { var func = V[P]; return func == null ? undefined : aCallable(func); }; /***/ }), /* 56 */ /***/ (function(module, exports) { module.exports = false; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { var baseIsNative = __webpack_require__(427), getValue = __webpack_require__(432); /** * Gets the native function at `key` of `object`. * * @private * @param {Object} object The object to query. * @param {string} key The key of the method to get. * @returns {*} Returns the function if it's native, else `undefined`. */ function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : undefined; } module.exports = getNative; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeKeys = __webpack_require__(259), baseKeys = __webpack_require__(170), isArrayLike = __webpack_require__(47); /** * Creates an array of the own enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. See the * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * for more details. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keys(new Foo); * // => ['a', 'b'] (iteration order is not guaranteed) * * _.keys('hi'); * // => ['0', '1'] */ function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } module.exports = keys; /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { var DataView = __webpack_require__(460), Map = __webpack_require__(165), Promise = __webpack_require__(461), Set = __webpack_require__(462), WeakMap = __webpack_require__(261), baseGetTag = __webpack_require__(33), toSource = __webpack_require__(251); /** `Object#toString` result references. */ var mapTag = '[object Map]', objectTag = '[object Object]', promiseTag = '[object Promise]', setTag = '[object Set]', weakMapTag = '[object WeakMap]'; var dataViewTag = '[object DataView]'; /** Used to detect maps, sets, and weakmaps. */ var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap); /** * Gets the `toStringTag` of `value`. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || (Map && getTag(new Map) != mapTag) || (Promise && getTag(Promise.resolve()) != promiseTag) || (Set && getTag(new Set) != setTag) || (WeakMap && getTag(new WeakMap) != weakMapTag)) { getTag = function(value) { var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : undefined, ctorString = Ctor ? toSource(Ctor) : ''; if (ctorString) { switch (ctorString) { case dataViewCtorString: return dataViewTag; case mapCtorString: return mapTag; case promiseCtorString: return promiseTag; case setCtorString: return setTag; case weakMapCtorString: return weakMapTag; } } return result; }; } module.exports = getTag; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { var baseGet = __webpack_require__(171); /** * Gets the value at `path` of `object`. If the resolved value is * `undefined`, the `defaultValue` is returned in its place. * * @static * @memberOf _ * @since 3.7.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @param {*} [defaultValue] The value returned for `undefined` resolved values. * @returns {*} Returns the resolved value. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.get(object, 'a[0].b.c'); * // => 3 * * _.get(object, ['a', '0', 'b', 'c']); * // => 3 * * _.get(object, 'a.b.c', 'default'); * // => 'default' */ function get(object, path, defaultValue) { var result = object == null ? undefined : baseGet(object, path); return result === undefined ? defaultValue : result; } module.exports = get; /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { var baseToString = __webpack_require__(467); /** * Converts `value` to a string. An empty string is returned for `null` * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {string} Returns the converted string. * @example * * _.toString(null); * // => '' * * _.toString(-0); * // => '-0' * * _.toString([1, 2, 3]); * // => '1,2,3' */ function toString(value) { return value == null ? '' : baseToString(value); } module.exports = toString; /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.print = print; var _visitor = __webpack_require__(138); /** * Converts an AST into a string, using one set of reasonable * formatting rules. */ function print(ast) { return (0, _visitor.visit)(ast, { leave: printDocASTReducer }); } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var printDocASTReducer = { Name: function Name(node) { return node.value; }, Variable: function Variable(node) { return '$' + node.name; }, // Document Document: function Document(node) { return join(node.definitions, '\n\n') + '\n'; }, OperationDefinition: function OperationDefinition(node) { var op = node.operation; var name = node.name; var varDefs = wrap('(', join(node.variableDefinitions, ', '), ')'); var directives = join(node.directives, ' '); var selectionSet = node.selectionSet; // Anonymous queries with no directives or variable definitions can use // the query short form. return !name && !directives && !varDefs && op === 'query' ? selectionSet : join([op, join([name, varDefs]), directives, selectionSet], ' '); }, VariableDefinition: function VariableDefinition(_ref) { var variable = _ref.variable, type = _ref.type, defaultValue = _ref.defaultValue; return variable + ': ' + type + wrap(' = ', defaultValue); }, SelectionSet: function SelectionSet(_ref2) { var selections = _ref2.selections; return block(selections); }, Field: function Field(_ref3) { var alias = _ref3.alias, name = _ref3.name, args = _ref3.arguments, directives = _ref3.directives, selectionSet = _ref3.selectionSet; return join([wrap('', alias, ': ') + name + wrap('(', join(args, ', '), ')'), join(directives, ' '), selectionSet], ' '); }, Argument: function Argument(_ref4) { var name = _ref4.name, value = _ref4.value; return name + ': ' + value; }, // Fragments FragmentSpread: function FragmentSpread(_ref5) { var name = _ref5.name, directives = _ref5.directives; return '...' + name + wrap(' ', join(directives, ' ')); }, InlineFragment: function InlineFragment(_ref6) { var typeCondition = _ref6.typeCondition, directives = _ref6.directives, selectionSet = _ref6.selectionSet; return join(['...', wrap('on ', typeCondition), join(directives, ' '), selectionSet], ' '); }, FragmentDefinition: function FragmentDefinition(_ref7) { var name = _ref7.name, typeCondition = _ref7.typeCondition, variableDefinitions = _ref7.variableDefinitions, directives = _ref7.directives, selectionSet = _ref7.selectionSet; return ( // Note: fragment variable definitions are experimental and may be changed // or removed in the future. 'fragment ' + name + wrap('(', join(variableDefinitions, ', '), ')') + ' ' + ('on ' + typeCondition + ' ' + wrap('', join(directives, ' '), ' ')) + selectionSet ); }, // Value IntValue: function IntValue(_ref8) { var value = _ref8.value; return value; }, FloatValue: function FloatValue(_ref9) { var value = _ref9.value; return value; }, StringValue: function StringValue(_ref10, key) { var value = _ref10.value, isBlockString = _ref10.block; return isBlockString ? printBlockString(value, key === 'description') : JSON.stringify(value); }, BooleanValue: function BooleanValue(_ref11) { var value = _ref11.value; return value ? 'true' : 'false'; }, NullValue: function NullValue() { return 'null'; }, EnumValue: function EnumValue(_ref12) { var value = _ref12.value; return value; }, ListValue: function ListValue(_ref13) { var values = _ref13.values; return '[' + join(values, ', ') + ']'; }, ObjectValue: function ObjectValue(_ref14) { var fields = _ref14.fields; return '{' + join(fields, ', ') + '}'; }, ObjectField: function ObjectField(_ref15) { var name = _ref15.name, value = _ref15.value; return name + ': ' + value; }, // Directive Directive: function Directive(_ref16) { var name = _ref16.name, args = _ref16.arguments; return '@' + name + wrap('(', join(args, ', '), ')'); }, // Type NamedType: function NamedType(_ref17) { var name = _ref17.name; return name; }, ListType: function ListType(_ref18) { var type = _ref18.type; return '[' + type + ']'; }, NonNullType: function NonNullType(_ref19) { var type = _ref19.type; return type + '!'; }, // Type System Definitions SchemaDefinition: function SchemaDefinition(_ref20) { var directives = _ref20.directives, operationTypes = _ref20.operationTypes; return join(['schema', join(directives, ' '), block(operationTypes)], ' '); }, OperationTypeDefinition: function OperationTypeDefinition(_ref21) { var operation = _ref21.operation, type = _ref21.type; return operation + ': ' + type; }, ScalarTypeDefinition: addDescription(function (_ref22) { var name = _ref22.name, directives = _ref22.directives; return join(['scalar', name, join(directives, ' ')], ' '); }), ObjectTypeDefinition: addDescription(function (_ref23) { var name = _ref23.name, interfaces = _ref23.interfaces, directives = _ref23.directives, fields = _ref23.fields; return join(['type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' '); }), FieldDefinition: addDescription(function (_ref24) { var name = _ref24.name, args = _ref24.arguments, type = _ref24.type, directives = _ref24.directives; return name + wrap('(', join(args, ', '), ')') + ': ' + type + wrap(' ', join(directives, ' ')); }), InputValueDefinition: addDescription(function (_ref25) { var name = _ref25.name, type = _ref25.type, defaultValue = _ref25.defaultValue, directives = _ref25.directives; return join([name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')], ' '); }), InterfaceTypeDefinition: addDescription(function (_ref26) { var name = _ref26.name, directives = _ref26.directives, fields = _ref26.fields; return join(['interface', name, join(directives, ' '), block(fields)], ' '); }), UnionTypeDefinition: addDescription(function (_ref27) { var name = _ref27.name, directives = _ref27.directives, types = _ref27.types; return join(['union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' '); }), EnumTypeDefinition: addDescription(function (_ref28) { var name = _ref28.name, directives = _ref28.directives, values = _ref28.values; return join(['enum', name, join(directives, ' '), block(values)], ' '); }), EnumValueDefinition: addDescription(function (_ref29) { var name = _ref29.name, directives = _ref29.directives; return join([name, join(directives, ' ')], ' '); }), InputObjectTypeDefinition: addDescription(function (_ref30) { var name = _ref30.name, directives = _ref30.directives, fields = _ref30.fields; return join(['input', name, join(directives, ' '), block(fields)], ' '); }), ScalarTypeExtension: function ScalarTypeExtension(_ref31) { var name = _ref31.name, directives = _ref31.directives; return join(['extend scalar', name, join(directives, ' ')], ' '); }, ObjectTypeExtension: function ObjectTypeExtension(_ref32) { var name = _ref32.name, interfaces = _ref32.interfaces, directives = _ref32.directives, fields = _ref32.fields; return join(['extend type', name, wrap('implements ', join(interfaces, ' & ')), join(directives, ' '), block(fields)], ' '); }, InterfaceTypeExtension: function InterfaceTypeExtension(_ref33) { var name = _ref33.name, directives = _ref33.directives, fields = _ref33.fields; return join(['extend interface', name, join(directives, ' '), block(fields)], ' '); }, UnionTypeExtension: function UnionTypeExtension(_ref34) { var name = _ref34.name, directives = _ref34.directives, types = _ref34.types; return join(['extend union', name, join(directives, ' '), types && types.length !== 0 ? '= ' + join(types, ' | ') : ''], ' '); }, EnumTypeExtension: function EnumTypeExtension(_ref35) { var name = _ref35.name, directives = _ref35.directives, values = _ref35.values; return join(['extend enum', name, join(directives, ' '), block(values)], ' '); }, InputObjectTypeExtension: function InputObjectTypeExtension(_ref36) { var name = _ref36.name, directives = _ref36.directives, fields = _ref36.fields; return join(['extend input', name, join(directives, ' '), block(fields)], ' '); }, DirectiveDefinition: addDescription(function (_ref37) { var name = _ref37.name, args = _ref37.arguments, locations = _ref37.locations; return 'directive @' + name + wrap('(', join(args, ', '), ')') + ' on ' + join(locations, ' | '); }) }; function addDescription(cb) { return function (node) { return join([node.description, cb(node)], '\n'); }; } /** * Given maybeArray, print an empty string if it is null or empty, otherwise * print all items together separated by separator if provided */ function join(maybeArray, separator) { return maybeArray ? maybeArray.filter(function (x) { return x; }).join(separator || '') : ''; } /** * Given array, print each item on its own line, wrapped in an * indented "{ }" block. */ function block(array) { return array && array.length !== 0 ? '{\n' + indent(join(array, '\n')) + '\n}' : ''; } /** * If maybeString is not null or empty, then wrap with start and end, otherwise * print an empty string. */ function wrap(start, maybeString, end) { return maybeString ? start + maybeString + (end || '') : ''; } function indent(maybeString) { return maybeString && ' ' + maybeString.replace(/\n/g, '\n '); } /** * Print a block string in the indented block form by adding a leading and * trailing blank line. However, if a block string starts with whitespace and is * a single-line, adding a leading blank line would strip that whitespace. */ function printBlockString(value, isDescription) { var escaped = value.replace(/"""/g, '\\"""'); return (value[0] === ' ' || value[0] === '\t') && value.indexOf('\n') === -1 ? '"""' + escaped.replace(/"$/, '"\n') + '"""' : '"""\n' + (isDescription ? escaped : indent(escaped)) + '\n"""'; } /***/ }), /* 63 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _directives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(312); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirectiveInfoFromField", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["getDirectiveInfoFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shouldInclude", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["shouldInclude"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flattenSelections", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["flattenSelections"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirectiveNames", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["getDirectiveNames"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasDirectives", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["hasDirectives"]; }); /* harmony import */ var _fragments__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(313); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFragmentQueryDocument", function() { return _fragments__WEBPACK_IMPORTED_MODULE_1__["getFragmentQueryDocument"]; }); /* harmony import */ var _getFromAST__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(200); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMutationDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getMutationDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkDocument", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["checkDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getOperationDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinitionOrDie", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getOperationDefinitionOrDie"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getOperationName"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinitions", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getFragmentDefinitions"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getQueryDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getQueryDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getFragmentDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMainDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getMainDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFragmentMap", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["createFragmentMap"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultValues", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getDefaultValues"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variablesInOperation", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["variablesInOperation"]; }); /* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(314); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeDirectivesFromDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["removeDirectivesFromDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addTypenameToDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["addTypenameToDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeConnectionDirectiveFromDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["removeConnectionDirectiveFromDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirectivesFromDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["getDirectivesFromDocument"]; }); /* harmony import */ var _storeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(140); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isScalarValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isScalarValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isNumberValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isNumberValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "valueToObjectRepresentation", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["valueToObjectRepresentation"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "storeKeyNameFromField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["storeKeyNameFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getStoreKeyName", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["getStoreKeyName"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "argumentsObjectFromField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["argumentsObjectFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resultKeyNameFromField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["resultKeyNameFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isInlineFragment", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isInlineFragment"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIdValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isIdValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toIdValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["toIdValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isJsonValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isJsonValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "valueFromNode", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["valueFromNode"]; }); /* harmony import */ var _util_assign__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(201); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return _util_assign__WEBPACK_IMPORTED_MODULE_5__["assign"]; }); /* harmony import */ var _util_cloneDeep__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(202); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneDeep", function() { return _util_cloneDeep__WEBPACK_IMPORTED_MODULE_6__["cloneDeep"]; }); /* harmony import */ var _util_environment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(142); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getEnv", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["getEnv"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEnv", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isEnv"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isProduction", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isProduction"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDevelopment", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isDevelopment"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isTest", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isTest"]; }); /* harmony import */ var _util_errorHandling__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(315); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryFunctionOrLogError", function() { return _util_errorHandling__WEBPACK_IMPORTED_MODULE_8__["tryFunctionOrLogError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "graphQLResultHasError", function() { return _util_errorHandling__WEBPACK_IMPORTED_MODULE_8__["graphQLResultHasError"]; }); /* harmony import */ var _util_isEqual__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(316); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEqual", function() { return _util_isEqual__WEBPACK_IMPORTED_MODULE_9__["isEqual"]; }); /* harmony import */ var _util_maybeDeepFreeze__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(317); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maybeDeepFreeze", function() { return _util_maybeDeepFreeze__WEBPACK_IMPORTED_MODULE_10__["maybeDeepFreeze"]; }); /* harmony import */ var _util_warnOnce__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(318); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnOnceInDevelopment", function() { return _util_warnOnce__WEBPACK_IMPORTED_MODULE_11__["warnOnceInDevelopment"]; }); /* harmony import */ var _util_stripSymbols__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(319); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stripSymbols", function() { return _util_stripSymbols__WEBPACK_IMPORTED_MODULE_12__["stripSymbols"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 64 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateOperation", function() { return validateOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LinkError", function() { return LinkError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTerminating", function() { return isTerminating; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toPromise", function() { return toPromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makePromise", function() { return makePromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromPromise", function() { return fromPromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromError", function() { return fromError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transformOperation", function() { return transformOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createOperation", function() { return createOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getKey", function() { return getKey; }); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(143); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(graphql_language_printer__WEBPACK_IMPORTED_MODULE_2__); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; function validateOperation(operation) { var OPERATION_FIELDS = [ 'query', 'operationName', 'variables', 'extensions', 'context', ]; for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) { var key = _a[_i]; if (OPERATION_FIELDS.indexOf(key) < 0) { throw new Error("illegal argument: " + key); } } return operation; } var LinkError = /** @class */ (function (_super) { __extends(LinkError, _super); function LinkError(message, link) { var _this = _super.call(this, message) || this; _this.link = link; return _this; } return LinkError; }(Error)); function isTerminating(link) { return link.request.length <= 1; } function toPromise(observable) { var completed = false; return new Promise(function (resolve, reject) { observable.subscribe({ next: function (data) { if (completed) { console.warn("Promise Wrapper does not support multiple results from Observable"); } else { completed = true; resolve(data); } }, error: reject, }); }); } // backwards compat var makePromise = toPromise; function fromPromise(promise) { return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) { promise .then(function (value) { observer.next(value); observer.complete(); }) .catch(observer.error.bind(observer)); }); } function fromError(errorValue) { return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_1__["default"](function (observer) { observer.error(errorValue); }); } function transformOperation(operation) { var transformedOperation = { variables: operation.variables || {}, extensions: operation.extensions || {}, operationName: operation.operationName, query: operation.query, }; // best guess at an operation name if (!transformedOperation.operationName) { transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getOperationName"])(transformedOperation.query) : ''; } return transformedOperation; } function createOperation(starting, operation) { var context = __assign({}, starting); var setContext = function (next) { if (typeof next === 'function') { context = __assign({}, context, next(context)); } else { context = __assign({}, context, next); } }; var getContext = function () { return (__assign({}, context)); }; Object.defineProperty(operation, 'setContext', { enumerable: false, value: setContext, }); Object.defineProperty(operation, 'getContext', { enumerable: false, value: getContext, }); Object.defineProperty(operation, 'toKey', { enumerable: false, value: function () { return getKey(operation); }, }); return operation; } function getKey(operation) { // XXX we're assuming here that variables will be serialized in the same order. // that might not always be true return Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_2__["print"])(operation.query) + "|" + JSON.stringify(operation.variables) + "|" + operation.operationName; } //# sourceMappingURL=linkUtils.js.map /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); var _classCallCheck2 = _interopRequireDefault2(__webpack_require__(44)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _stripeStore = __webpack_require__(109); var enumeratePrototypeProps = function enumeratePrototypeProps(obj) { var propNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; if (obj == null) { return propNames; } return propNames.concat(enumeratePrototypeProps(Object.getPrototypeOf(obj))).concat(Object.keys(obj)); }; var createEventProxy = function createEventProxy(event, currentTarget) { var propertyDefinitions = enumeratePrototypeProps(event).filter(function (propName) { return propName !== 'currentTarget'; }).reduce(function (proxies, propName) { proxies[propName] = // $FlowFixMe Object.keys is "unsound", always infers `string` as output typeof event[propName] === 'function' ? // Proxy all the event methods so they will act on the original event: // $FlowFixMe Object.keys is "unsound", always infers `string` as output { value: function value() { return event[propName].apply(event, arguments); } } : // Proxy static props/getters because invoking them directly may result in "Illegal invokation" error. // $FlowFixMe Object.keys is "unsound", always infers `string` as output { get: function get() { return event[propName]; } }; return proxies; }, {}); var retargetedEvent = Object.create(event, (0, _extends2["default"])({ // set currentTarget to the matched node: currentTarget: { value: currentTarget } }, propertyDefinitions)); return retargetedEvent; }; var EventHandlerProxyWithApolloClient = // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types function EventHandlerProxyWithApolloClient(apolloClient, stripeStore) { var _this = this; (0, _classCallCheck2["default"])(this, EventHandlerProxyWithApolloClient); (0, _defineProperty2["default"])(this, "on", function (eventName, eventMatcher, handler) { var existingHandlers = _this.eventHandlers[eventName] instanceof Array ? _this.eventHandlers[eventName] : []; _this.eventHandlers[eventName] = [].concat((0, _toConsumableArray2["default"])(existingHandlers), [_this.createHandlerProxy(eventName, eventMatcher, handler)]); return _this; }); (0, _defineProperty2["default"])(this, "createHandlerProxy", function (eventName, eventMatcher, handler) { return function (event) { var match = eventMatcher(event); var eventProxy = match instanceof Element ? createEventProxy(event, match) : event; if (match) { handler(eventProxy, _this.apolloClient, _this.stripeStore); } }; }); (0, _defineProperty2["default"])(this, "attachHandlers", function (target) { Object.keys(_this.eventHandlers).forEach(function (eventName) { var handlerProxies = _this.eventHandlers[eventName]; handlerProxies.forEach(function (handlerProxy) { return target.addEventListener(eventName, handlerProxy, true); }); }); return _this; }); (0, _defineProperty2["default"])(this, "removeHandlers", function (target) { Object.keys(_this.eventHandlers).forEach(function (eventName) { var handlerProxies = _this.eventHandlers[eventName]; handlerProxies.forEach(function (handlerProxy) { return target.removeEventListener(eventName, handlerProxy, true); }); }); return _this; }); this.eventHandlers = {}; this.apolloClient = apolloClient; this.stripeStore = stripeStore; }; exports["default"] = EventHandlerProxyWithApolloClient; /***/ }), /* 66 */ /***/ (function(module, exports) { function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } module.exports = _interopRequireWildcard; /***/ }), /* 67 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var fails = __webpack_require__(5); var classof = __webpack_require__(84); var Object = global.Object; var split = uncurryThis(''.split); // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins -- safe return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) == 'String' ? split(it, '') : Object(it); } : Object; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); module.exports = uncurryThis({}.isPrototypeOf); /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var definePropertyModule = __webpack_require__(17); var createPropertyDescriptor = __webpack_require__(67); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(66); Object.defineProperty(exports, "__esModule", { value: true }); exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exports.IX2BrowserSupport = void 0; var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(163)); exports.IX2BrowserSupport = IX2BrowserSupport; var IX2Easings = _interopRequireWildcard(__webpack_require__(267)); exports.IX2Easings = IX2Easings; var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(269)); exports.IX2EasingUtils = IX2EasingUtils; var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(479)); exports.IX2ElementsReducer = IX2ElementsReducer; var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(271)); exports.IX2VanillaPlugins = IX2VanillaPlugins; var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(481)); exports.IX2VanillaUtils = IX2VanillaUtils; /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isObject = __webpack_require__(18); /** `Object#toString` result references. */ var asyncTag = '[object AsyncFunction]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', proxyTag = '[object Proxy]'; /** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a function, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value) { if (!isObject(value)) { return false; } // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 9 which returns 'object' for typed arrays and other constructors. var tag = baseGetTag(value); return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } module.exports = isFunction; /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(28); /** Built-in value references. */ var Symbol = root.Symbol; module.exports = Symbol; /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(28), stubFalse = __webpack_require__(457); /** Detect free variable `exports`. */ var freeExports = true && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; /** Built-in value references. */ var Buffer = moduleExports ? root.Buffer : undefined; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; /** * Checks if `value` is a buffer. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. * @example * * _.isBuffer(new Buffer(2)); * // => true * * _.isBuffer(new Uint8Array(2)); * // => false */ var isBuffer = nativeIsBuffer || stubFalse; module.exports = isBuffer; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(93)(module))) /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { var arraySpeciesConstructor = __webpack_require__(288); // `ArraySpeciesCreate` abstract operation // https://tc39.es/ecma262/#sec-arrayspeciescreate module.exports = function (originalArray, length) { return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); }; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var fails = __webpack_require__(5); var isCallable = __webpack_require__(6); var classof = __webpack_require__(100); var getBuiltIn = __webpack_require__(24); var inspectSource = __webpack_require__(117); var noop = function () { /* empty */ }; var empty = []; var construct = getBuiltIn('Reflect', 'construct'); var constructorRegExp = /^\s*(?:class|function)\b/; var exec = uncurryThis(constructorRegExp.exec); var INCORRECT_TO_STRING = !constructorRegExp.exec(noop); var isConstructorModern = function (argument) { if (!isCallable(argument)) return false; try { construct(noop, empty, argument); return true; } catch (error) { return false; } }; var isConstructorLegacy = function (argument) { if (!isCallable(argument)) return false; switch (classof(argument)) { case 'AsyncFunction': case 'GeneratorFunction': case 'AsyncGeneratorFunction': return false; // we can't check .prototype since constructors produced by .bind haven't it } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument)); }; // `IsConstructor` abstract operation // https://tc39.es/ecma262/#sec-isconstructor module.exports = !construct || fails(function () { var called; return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () { called = true; }) || called; }) ? isConstructorLegacy : isConstructorModern; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); module.exports = global; /***/ }), /* 78 */ /***/ (function(module, exports) { // shim for using process in browser var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it // don't break things. But we need to wrap it in a try catch in case it is // wrapped in strict mode code which doesn't define any globals. It's inside a // function because try/catches deoptimize in certain engines. var cachedSetTimeout; var cachedClearTimeout; function defaultSetTimout() { throw new Error('setTimeout has not been defined'); } function defaultClearTimeout () { throw new Error('clearTimeout has not been defined'); } (function () { try { if (typeof setTimeout === 'function') { cachedSetTimeout = setTimeout; } else { cachedSetTimeout = defaultSetTimout; } } catch (e) { cachedSetTimeout = defaultSetTimout; } try { if (typeof clearTimeout === 'function') { cachedClearTimeout = clearTimeout; } else { cachedClearTimeout = defaultClearTimeout; } } catch (e) { cachedClearTimeout = defaultClearTimeout; } } ()) function runTimeout(fun) { if (cachedSetTimeout === setTimeout) { //normal enviroments in sane situations return setTimeout(fun, 0); } // if setTimeout wasn't available but was latter defined if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { cachedSetTimeout = setTimeout; return setTimeout(fun, 0); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedSetTimeout(fun, 0); } catch(e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedSetTimeout.call(null, fun, 0); } catch(e){ // 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 return cachedSetTimeout.call(this, fun, 0); } } } function runClearTimeout(marker) { if (cachedClearTimeout === clearTimeout) { //normal enviroments in sane situations return clearTimeout(marker); } // if clearTimeout wasn't available but was latter defined if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { cachedClearTimeout = clearTimeout; return clearTimeout(marker); } try { // when when somebody has screwed with setTimeout but no I.E. maddness return cachedClearTimeout(marker); } catch (e){ try { // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally return cachedClearTimeout.call(null, marker); } catch (e){ // 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. // Some versions of I.E. have different rules for clearTimeout vs setTimeout return cachedClearTimeout.call(this, marker); } } } var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { if (!draining || !currentQueue) { return; } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); } else { queueIndex = -1; } if (queue.length) { drainQueue(); } } function drainQueue() { if (draining) { return; } var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; while(len) { currentQueue = queue; queue = []; while (++queueIndex < len) { if (currentQueue) { currentQueue[queueIndex].run(); } } queueIndex = -1; len = queue.length; } currentQueue = null; draining = false; runClearTimeout(timeout); } process.nextTick = function (fun) { var args = new Array(arguments.length - 1); if (arguments.length > 1) { for (var i = 1; i < arguments.length; i++) { args[i - 1] = arguments[i]; } } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { runTimeout(drainQueue); } }; // v8 likes predictible objects function Item(fun, array) { this.fun = fun; this.array = array; } Item.prototype.run = function () { this.fun.apply(null, this.array); }; process.title = 'browser'; process.browser = true; process.env = {}; process.argv = []; process.version = ''; // empty string to avoid regexp issues process.versions = {}; function noop() {} process.on = noop; process.addListener = noop; process.once = noop; process.off = noop; process.removeListener = noop; process.removeAllListeners = noop; process.emit = noop; process.prependListener = noop; process.prependOnceListener = noop; process.listeners = function (name) { return [] } process.binding = function (name) { throw new Error('process.binding is not supported'); }; process.cwd = function () { return '/' }; process.chdir = function (dir) { throw new Error('process.chdir is not supported'); }; process.umask = function() { return 0; }; /***/ }), /* 79 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NetworkStatus", function() { return NetworkStatus; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNetworkRequestInFlight", function() { return isNetworkRequestInFlight; }); /** * The current status of a query’s execution in our system. */ var NetworkStatus; (function (NetworkStatus) { /** * The query has never been run before and the query is now currently running. A query will still * have this network status even if a partial data result was returned from the cache, but a * query was dispatched anyway. */ NetworkStatus[NetworkStatus["loading"] = 1] = "loading"; /** * If `setVariables` was called and a query was fired because of that then the network status * will be `setVariables` until the result of that query comes back. */ NetworkStatus[NetworkStatus["setVariables"] = 2] = "setVariables"; /** * Indicates that `fetchMore` was called on this query and that the query created is currently in * flight. */ NetworkStatus[NetworkStatus["fetchMore"] = 3] = "fetchMore"; /** * Similar to the `setVariables` network status. It means that `refetch` was called on a query * and the refetch request is currently in flight. */ NetworkStatus[NetworkStatus["refetch"] = 4] = "refetch"; /** * Indicates that a polling query is currently in flight. So for example if you are polling a * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever * a poll request has been sent but not resolved. */ NetworkStatus[NetworkStatus["poll"] = 6] = "poll"; /** * No request is in flight for this query, and no errors happened. Everything is OK. */ NetworkStatus[NetworkStatus["ready"] = 7] = "ready"; /** * No request is in flight for this query, but one or more errors were detected. */ NetworkStatus[NetworkStatus["error"] = 8] = "error"; })(NetworkStatus || (NetworkStatus = {})); /** * Returns true if there is currently a network request in flight according to a given network * status. */ function isNetworkRequestInFlight(networkStatus) { return networkStatus < 7; } //# sourceMappingURL=networkStatus.js.map /***/ }), /* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _default = { log: function log() { if (false) { var _console; } }, error: function error() { if (false) { var _console2; } } }; exports["default"] = _default; /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { var arrayWithHoles = __webpack_require__(356); var iterableToArrayLimit = __webpack_require__(747); var nonIterableRest = __webpack_require__(357); function _slicedToArray(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); } module.exports = _slicedToArray; /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject8() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CancelSiteUserSubscription($subscriptionId: String!) {\n ecommerceCancelSubscriptionForSiteUser(subscriptionId: $subscriptionId) {\n ok\n }\n }\n"]); _templateObject8 = function _templateObject8() { return data; }; return data; } function _templateObject7() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UserVerifyEmail($verifyToken: String!, $redirectPath: String) {\n usysVerifyEmail(verifyToken: $verifyToken, redirectPath: $redirectPath) {\n ok\n }\n }\n"]); _templateObject7 = function _templateObject7() { return data; }; return data; } function _templateObject6() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UserUpdatePasswordRequest($authPassword: String!, $token: String!) {\n usysUpdatePassword(authPassword: $authPassword, token: $token) {\n ok\n }\n }\n"]); _templateObject6 = function _templateObject6() { return data; }; return data; } function _templateObject5() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UserResetPasswordRequest($email: String!) {\n usysResetPassword(email: $email) {\n ok\n }\n }\n"]); _templateObject5 = function _templateObject5() { return data; }; return data; } function _templateObject4() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UserLogoutRequest {\n usysDestroySession {\n ok\n }\n }\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UserSignupRequest(\n $email: String!\n $name: String!\n $acceptPrivacy: Boolean\n $acceptCommunications: Boolean\n $authPassword: String!\n $inviteToken: String\n $redirectPath: String\n $data: usys_update_user_data\n ) {\n usysCreateUser(\n email: $email\n name: $name\n acceptPrivacy: $acceptPrivacy\n acceptCommunications: $acceptCommunications\n authPassword: $authPassword\n inviteToken: $inviteToken\n redirectPath: $redirectPath\n data: $data\n ) {\n user {\n id\n email\n name\n createdOn\n emailVerified\n }\n }\n }\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UpdateUsysUserData(\n $data: usys_update_user_data!\n ) {\n usysUpdateUserData(\n data: $data\n ) {\n data {\n ", "\n }\n }\n }\n "]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation UserLoginRequest($email: String!, $authPassword: String!) {\n usysCreateSession(email: $email, authPassword: $authPassword) {\n user {\n id\n email\n createdOn\n emailVerified\n }\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.buildUpdateUsysUserDataMutation = buildUpdateUsysUserDataMutation; exports.cancelSubscriptionMutation = exports.verifyEmailMutation = exports.updatePasswordMutation = exports.resetPasswordMutation = exports.logoutMutation = exports.signupMutation = exports.loginMutation = void 0; var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var loginMutation = _graphqlTag["default"](_templateObject()); exports.loginMutation = loginMutation; function buildUpdateUsysUserDataMutation(dataFields) { return _graphqlTag["default"](_templateObject2(), dataFields.map(function (field) { var base = "".concat(field.key, ": ").concat(field.type, "(id: \"").concat(field.id, "\")"); if (field.type === 'option') { return base + '{\n slug \n}'; } return base; }).join('\n')); } var signupMutation = _graphqlTag["default"](_templateObject3()); exports.signupMutation = signupMutation; var logoutMutation = _graphqlTag["default"](_templateObject4()); exports.logoutMutation = logoutMutation; var resetPasswordMutation = _graphqlTag["default"](_templateObject5()); exports.resetPasswordMutation = resetPasswordMutation; var updatePasswordMutation = _graphqlTag["default"](_templateObject6()); exports.updatePasswordMutation = updatePasswordMutation; var verifyEmailMutation = _graphqlTag["default"](_templateObject7()); exports.verifyEmailMutation = verifyEmailMutation; var cancelSubscriptionMutation = _graphqlTag["default"](_templateObject8()); exports.cancelSubscriptionMutation = cancelSubscriptionMutation; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var call = __webpack_require__(23); var propertyIsEnumerableModule = __webpack_require__(154); var createPropertyDescriptor = __webpack_require__(67); var toIndexedObject = __webpack_require__(26); var toPropertyKey = __webpack_require__(86); var hasOwn = __webpack_require__(14); var IE8_DOM_DEFINE = __webpack_require__(232); // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPropertyKey(P); if (IE8_DOM_DEFINE) try { return $getOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); }; /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var toString = uncurryThis({}.toString); var stringSlice = uncurryThis(''.slice); module.exports = function (it) { return stringSlice(toString(it), 8, -1); }; /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var TypeError = global.TypeError; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { var toPrimitive = __webpack_require__(230); var isSymbol = __webpack_require__(112); // `ToPropertyKey` abstract operation // https://tc39.es/ecma262/#sec-topropertykey module.exports = function (argument) { var key = toPrimitive(argument, 'string'); return isSymbol(key) ? key : key + ''; }; /***/ }), /* 87 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { var internalObjectKeys = __webpack_require__(235); var enumBugKeys = __webpack_require__(159); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames // eslint-disable-next-line es/no-object-getownpropertynames -- safe exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }), /* 89 */ /***/ (function(module, exports, __webpack_require__) { var toIntegerOrInfinity = __webpack_require__(32); var max = Math.max; var min = Math.min; // Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). module.exports = function (index, length) { var integer = toIntegerOrInfinity(index); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; /***/ }), /* 90 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.clone = clone; exports.addLast = addLast; exports.addFirst = addFirst; exports.removeLast = removeLast; exports.removeFirst = removeFirst; exports.insert = insert; exports.removeAt = removeAt; exports.replaceAt = replaceAt; exports.getIn = getIn; exports.set = set; exports.setIn = setIn; exports.update = update; exports.updateIn = updateIn; exports.merge = merge; exports.mergeDeep = mergeDeep; exports.mergeIn = mergeIn; exports.omit = omit; exports.addDefaults = addDefaults; /*! * Timm * * Immutability helpers with fast reads and acceptable writes. * * @copyright Guillermo Grau Panea 2016 * @license MIT */ var INVALID_ARGS = 'INVALID_ARGS'; // =============================================== // ### Helpers // =============================================== function throwStr(msg) { throw new Error(msg); } function getKeysAndSymbols(obj) { var keys = Object.keys(obj); if (Object.getOwnPropertySymbols) { return keys.concat(Object.getOwnPropertySymbols(obj)); } return keys; } var hasOwnProperty = {}.hasOwnProperty; function clone(obj) { if (Array.isArray(obj)) return obj.slice(); var keys = getKeysAndSymbols(obj); var out = {}; for (var i = 0; i < keys.length; i++) { var key = keys[i]; out[key] = obj[key]; } return out; } function doMerge(fAddDefaults, fDeep, first) { var out = first; !(out != null) && throwStr( false ? undefined : INVALID_ARGS); var fChanged = false; for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { rest[_key - 3] = arguments[_key]; } for (var idx = 0; idx < rest.length; idx++) { var obj = rest[idx]; if (obj == null) continue; var keys = getKeysAndSymbols(obj); if (!keys.length) continue; for (var j = 0; j <= keys.length; j++) { var key = keys[j]; if (fAddDefaults && out[key] !== undefined) continue; var nextVal = obj[key]; if (fDeep && isObject(out[key]) && isObject(nextVal)) { nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); } if (nextVal === undefined || nextVal === out[key]) continue; if (!fChanged) { fChanged = true; out = clone(out); } out[key] = nextVal; } } return out; } function isObject(o) { var type = typeof o === 'undefined' ? 'undefined' : _typeof(o); return o != null && (type === 'object' || type === 'function'); } // _deepFreeze = (obj) -> // Object.freeze obj // for key in Object.getOwnPropertyNames obj // val = obj[key] // if isObject(val) and not Object.isFrozen val // _deepFreeze val // obj // =============================================== // -- ### Arrays // =============================================== // -- #### addLast() // -- Returns a new array with an appended item or items. // -- // -- Usage: `addLast<T>(array: Array<T>, val: Array<T>|T): Array<T>` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = addLast(arr, 'c') // -- // ['a', 'b', 'c'] // -- arr2 === arr // -- // false // -- arr3 = addLast(arr, ['c', 'd']) // -- // ['a', 'b', 'c', 'd'] // -- ``` // `array.concat(val)` also handles the scalar case, // but is apparently very slow function addLast(array, val) { if (Array.isArray(val)) return array.concat(val); return array.concat([val]); } // -- #### addFirst() // -- Returns a new array with a prepended item or items. // -- // -- Usage: `addFirst<T>(array: Array<T>, val: Array<T>|T): Array<T>` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = addFirst(arr, 'c') // -- // ['c', 'a', 'b'] // -- arr2 === arr // -- // false // -- arr3 = addFirst(arr, ['c', 'd']) // -- // ['c', 'd', 'a', 'b'] // -- ``` function addFirst(array, val) { if (Array.isArray(val)) return val.concat(array); return [val].concat(array); } // -- #### removeLast() // -- Returns a new array removing the last item. // -- // -- Usage: `removeLast<T>(array: Array<T>): Array<T>` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = removeLast(arr) // -- // ['a'] // -- arr2 === arr // -- // false // -- // -- // The same array is returned if there are no changes: // -- arr3 = [] // -- removeLast(arr3) === arr3 // -- // true // -- ``` function removeLast(array) { if (!array.length) return array; return array.slice(0, array.length - 1); } // -- #### removeFirst() // -- Returns a new array removing the first item. // -- // -- Usage: `removeFirst<T>(array: Array<T>): Array<T>` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = removeFirst(arr) // -- // ['b'] // -- arr2 === arr // -- // false // -- // -- // The same array is returned if there are no changes: // -- arr3 = [] // -- removeFirst(arr3) === arr3 // -- // true // -- ``` function removeFirst(array) { if (!array.length) return array; return array.slice(1); } // -- #### insert() // -- Returns a new array obtained by inserting an item or items // -- at a specified index. // -- // -- Usage: `insert<T>(array: Array<T>, idx: number, val: Array<T>|T): Array<T>` // -- // -- ```js // -- arr = ['a', 'b', 'c'] // -- arr2 = insert(arr, 1, 'd') // -- // ['a', 'd', 'b', 'c'] // -- arr2 === arr // -- // false // -- insert(arr, 1, ['d', 'e']) // -- // ['a', 'd', 'e', 'b', 'c'] // -- ``` function insert(array, idx, val) { return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); } // -- #### removeAt() // -- Returns a new array obtained by removing an item at // -- a specified index. // -- // -- Usage: `removeAt<T>(array: Array<T>, idx: number): Array<T>` // -- // -- ```js // -- arr = ['a', 'b', 'c'] // -- arr2 = removeAt(arr, 1) // -- // ['a', 'c'] // -- arr2 === arr // -- // false // -- // -- // The same array is returned if there are no changes: // -- removeAt(arr, 4) === arr // -- // true // -- ``` function removeAt(array, idx) { if (idx >= array.length || idx < 0) return array; return array.slice(0, idx).concat(array.slice(idx + 1)); } // -- #### replaceAt() // -- Returns a new array obtained by replacing an item at // -- a specified index. If the provided item is the same as // -- (*referentially equal to*) the previous item at that position, // -- the original array is returned. // -- // -- Usage: `replaceAt<T>(array: Array<T>, idx: number, newItem: T): Array<T>` // -- // -- ```js // -- arr = ['a', 'b', 'c'] // -- arr2 = replaceAt(arr, 1, 'd') // -- // ['a', 'd', 'c'] // -- arr2 === arr // -- // false // -- // -- // The same object is returned if there are no changes: // -- replaceAt(arr, 1, 'b') === arr // -- // true // -- ``` function replaceAt(array, idx, newItem) { if (array[idx] === newItem) return array; var len = array.length; var result = Array(len); for (var i = 0; i < len; i++) { result[i] = array[i]; } result[idx] = newItem; return result; } // =============================================== // -- ### Collections (objects and arrays) // =============================================== // -- The following types are used throughout this section // -- ```js // -- type ArrayOrObject = Array<any>|Object; // -- type Key = number|string; // -- ``` // -- #### getIn() // -- Returns a value from an object at a given path. Works with // -- nested arrays and objects. If the path does not exist, it returns // -- `undefined`. // -- // -- Usage: `getIn(obj: ?ArrayOrObject, path: Array<Key>): any` // -- // -- ```js // -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: ['a', 'b', 'c'] } // -- getIn(obj, ['d', 'd1']) // -- // 3 // -- getIn(obj, ['e', 1]) // -- // 'b' // -- ``` function getIn(obj, path) { !Array.isArray(path) && throwStr( false ? undefined : INVALID_ARGS); if (obj == null) return undefined; var ptr = obj; for (var i = 0; i < path.length; i++) { var key = path[i]; ptr = ptr != null ? ptr[key] : undefined; if (ptr === undefined) return ptr; } return ptr; } // -- #### set() // -- Returns a new object with a modified attribute. // -- If the provided value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- // -- Usage: `set<T>(obj: ?T, key: Key, val: any): T` // -- // -- ```js // -- obj = { a: 1, b: 2, c: 3 } // -- obj2 = set(obj, 'b', 5) // -- // { a: 1, b: 5, c: 3 } // -- obj2 === obj // -- // false // -- // -- // The same object is returned if there are no changes: // -- set(obj, 'b', 2) === obj // -- // true // -- ``` function set(obj, key, val) { var fallback = typeof key === 'number' ? [] : {}; var finalObj = obj == null ? fallback : obj; if (finalObj[key] === val) return finalObj; var obj2 = clone(finalObj); obj2[key] = val; return obj2; } // -- #### setIn() // -- Returns a new object with a modified **nested** attribute. // -- // -- Notes: // -- // -- * If the provided value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- * If the path does not exist, it will be created before setting // -- the new value. // -- // -- Usage: `setIn<T: ArrayOrObject>(obj: T, path: Array<Key>, val: any): T` // -- // -- ```js // -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } // -- obj2 = setIn(obj, ['d', 'd1'], 4) // -- // { a: 1, b: 2, d: { d1: 4, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } // -- obj2 === obj // -- // false // -- obj2.d === obj.d // -- // false // -- obj2.e === obj.e // -- // true // -- // -- // The same object is returned if there are no changes: // -- obj3 = setIn(obj, ['d', 'd1'], 3) // -- // { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } // -- obj3 === obj // -- // true // -- obj3.d === obj.d // -- // true // -- obj3.e === obj.e // -- // true // -- // -- // ... unknown paths create intermediate keys. Numeric segments are treated as array indices: // -- setIn({ a: 3 }, ['unknown', 0, 'path'], 4) // -- // { a: 3, unknown: [{ path: 4 }] } // -- ``` function doSetIn(obj, path, val, idx) { var newValue = void 0; var key = path[idx]; if (idx === path.length - 1) { newValue = val; } else { var nestedObj = isObject(obj) && isObject(obj[key]) ? obj[key] : typeof path[idx + 1] === 'number' ? [] : {}; newValue = doSetIn(nestedObj, path, val, idx + 1); } return set(obj, key, newValue); } function setIn(obj, path, val) { if (!path.length) return val; return doSetIn(obj, path, val, 0); } // -- #### update() // -- Returns a new object with a modified attribute, // -- calculated via a user-provided callback based on the current value. // -- If the calculated value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- // -- Usage: `update<T: ArrayOrObject>(obj: T, key: Key, // -- fnUpdate: (prevValue: any) => any): T` // -- // -- ```js // -- obj = { a: 1, b: 2, c: 3 } // -- obj2 = update(obj, 'b', (val) => val + 1) // -- // { a: 1, b: 3, c: 3 } // -- obj2 === obj // -- // false // -- // -- // The same object is returned if there are no changes: // -- update(obj, 'b', (val) => val) === obj // -- // true // -- ``` function update(obj, key, fnUpdate) { var prevVal = obj == null ? undefined : obj[key]; var nextVal = fnUpdate(prevVal); return set(obj, key, nextVal); } // -- #### updateIn() // -- Returns a new object with a modified **nested** attribute, // -- calculated via a user-provided callback based on the current value. // -- If the calculated value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- // -- Usage: `updateIn<T: ArrayOrObject>(obj: T, path: Array<Key>, // -- fnUpdate: (prevValue: any) => any): T` // -- // -- ```js // -- obj = { a: 1, d: { d1: 3, d2: 4 } } // -- obj2 = updateIn(obj, ['d', 'd1'], (val) => val + 1) // -- // { a: 1, d: { d1: 4, d2: 4 } } // -- obj2 === obj // -- // false // -- // -- // The same object is returned if there are no changes: // -- obj3 = updateIn(obj, ['d', 'd1'], (val) => val) // -- // { a: 1, d: { d1: 3, d2: 4 } } // -- obj3 === obj // -- // true // -- ``` function updateIn(obj, path, fnUpdate) { var prevVal = getIn(obj, path); var nextVal = fnUpdate(prevVal); return setIn(obj, path, nextVal); } // -- #### merge() // -- Returns a new object built as follows: the overlapping keys from the // -- second one overwrite the corresponding entries from the first one. // -- Similar to `Object.assign()`, but immutable. // -- // -- Usage: // -- // -- * `merge(obj1: Object, obj2: ?Object): Object` // -- * `merge(obj1: Object, ...objects: Array<?Object>): Object` // -- // -- The unmodified `obj1` is returned if `obj2` does not *provide something // -- new to* `obj1`, i.e. if either of the following // -- conditions are true: // -- // -- * `obj2` is `null` or `undefined` // -- * `obj2` is an object, but it is empty // -- * All attributes of `obj2` are `undefined` // -- * All attributes of `obj2` are referentially equal to the // -- corresponding attributes of `obj1` // -- // -- Note that `undefined` attributes in `obj2` do not modify the // -- corresponding attributes in `obj1`. // -- // -- ```js // -- obj1 = { a: 1, b: 2, c: 3 } // -- obj2 = { c: 4, d: 5 } // -- obj3 = merge(obj1, obj2) // -- // { a: 1, b: 2, c: 4, d: 5 } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- merge(obj1, { c: 3 }) === obj1 // -- // true // -- ``` function merge(a, b, c, d, e, f) { for (var _len2 = arguments.length, rest = Array(_len2 > 6 ? _len2 - 6 : 0), _key2 = 6; _key2 < _len2; _key2++) { rest[_key2 - 6] = arguments[_key2]; } return rest.length ? doMerge.call.apply(doMerge, [null, false, false, a, b, c, d, e, f].concat(rest)) : doMerge(false, false, a, b, c, d, e, f); } // -- #### mergeDeep() // -- Returns a new object built as follows: the overlapping keys from the // -- second one overwrite the corresponding entries from the first one. // -- If both the first and second entries are objects they are merged recursively. // -- Similar to `Object.assign()`, but immutable, and deeply merging. // -- // -- Usage: // -- // -- * `mergeDeep(obj1: Object, obj2: ?Object): Object` // -- * `mergeDeep(obj1: Object, ...objects: Array<?Object>): Object` // -- // -- The unmodified `obj1` is returned if `obj2` does not *provide something // -- new to* `obj1`, i.e. if either of the following // -- conditions are true: // -- // -- * `obj2` is `null` or `undefined` // -- * `obj2` is an object, but it is empty // -- * All attributes of `obj2` are `undefined` // -- * All attributes of `obj2` are referentially equal to the // -- corresponding attributes of `obj1` // -- // -- Note that `undefined` attributes in `obj2` do not modify the // -- corresponding attributes in `obj1`. // -- // -- ```js // -- obj1 = { a: 1, b: 2, c: { a: 1 } } // -- obj2 = { b: 3, c: { b: 2 } } // -- obj3 = mergeDeep(obj1, obj2) // -- // { a: 1, b: 3, c: { a: 1, b: 2 } } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- mergeDeep(obj1, { c: { a: 1 } }) === obj1 // -- // true // -- ``` function mergeDeep(a, b, c, d, e, f) { for (var _len3 = arguments.length, rest = Array(_len3 > 6 ? _len3 - 6 : 0), _key3 = 6; _key3 < _len3; _key3++) { rest[_key3 - 6] = arguments[_key3]; } return rest.length ? doMerge.call.apply(doMerge, [null, false, true, a, b, c, d, e, f].concat(rest)) : doMerge(false, true, a, b, c, d, e, f); } // -- #### mergeIn() // -- Similar to `merge()`, but merging the value at a given nested path. // -- Note that the returned type is the same as that of the first argument. // -- // -- Usage: // -- // -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, obj2: ?Object): T` // -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, // -- ...objects: Array<?Object>): T` // -- // -- ```js // -- obj1 = { a: 1, d: { b: { d1: 3, d2: 4 } } } // -- obj2 = { d3: 5 } // -- obj3 = mergeIn(obj1, ['d', 'b'], obj2) // -- // { a: 1, d: { b: { d1: 3, d2: 4, d3: 5 } } } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- mergeIn(obj1, ['d', 'b'], { d2: 4 }) === obj1 // -- // true // -- ``` function mergeIn(a, path, b, c, d, e, f) { var prevVal = getIn(a, path); if (prevVal == null) prevVal = {}; var nextVal = void 0; for (var _len4 = arguments.length, rest = Array(_len4 > 7 ? _len4 - 7 : 0), _key4 = 7; _key4 < _len4; _key4++) { rest[_key4 - 7] = arguments[_key4]; } if (rest.length) { nextVal = doMerge.call.apply(doMerge, [null, false, false, prevVal, b, c, d, e, f].concat(rest)); } else { nextVal = doMerge(false, false, prevVal, b, c, d, e, f); } return setIn(a, path, nextVal); } // -- #### omit() // -- Returns an object excluding one or several attributes. // -- // -- Usage: `omit(obj: Object, attrs: Array<string>|string): Object` // // -- ```js // -- obj = { a: 1, b: 2, c: 3, d: 4 } // -- omit(obj, 'a') // -- // { b: 2, c: 3, d: 4 } // -- omit(obj, ['b', 'c']) // -- // { a: 1, d: 4 } // -- // -- // The same object is returned if there are no changes: // -- omit(obj, 'z') === obj1 // -- // true // -- ``` function omit(obj, attrs) { var omitList = Array.isArray(attrs) ? attrs : [attrs]; var fDoSomething = false; for (var i = 0; i < omitList.length; i++) { if (hasOwnProperty.call(obj, omitList[i])) { fDoSomething = true; break; } } if (!fDoSomething) return obj; var out = {}; var keys = getKeysAndSymbols(obj); for (var _i = 0; _i < keys.length; _i++) { var key = keys[_i]; if (omitList.indexOf(key) >= 0) continue; out[key] = obj[key]; } return out; } // -- #### addDefaults() // -- Returns a new object built as follows: `undefined` keys in the first one // -- are filled in with the corresponding values from the second one // -- (even if they are `null`). // -- // -- Usage: // -- // -- * `addDefaults(obj: Object, defaults: Object): Object` // -- * `addDefaults(obj: Object, ...defaultObjects: Array<?Object>): Object` // -- // -- ```js // -- obj1 = { a: 1, b: 2, c: 3 } // -- obj2 = { c: 4, d: 5, e: null } // -- obj3 = addDefaults(obj1, obj2) // -- // { a: 1, b: 2, c: 3, d: 5, e: null } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- addDefaults(obj1, { c: 4 }) === obj1 // -- // true // -- ``` function addDefaults(a, b, c, d, e, f) { for (var _len5 = arguments.length, rest = Array(_len5 > 6 ? _len5 - 6 : 0), _key5 = 6; _key5 < _len5; _key5++) { rest[_key5 - 6] = arguments[_key5]; } return rest.length ? doMerge.call.apply(doMerge, [null, true, false, a, b, c, d, e, f].concat(rest)) : doMerge(true, false, a, b, c, d, e, f); } // =============================================== // ### Public API // =============================================== var timm = { clone: clone, addLast: addLast, addFirst: addFirst, removeLast: removeLast, removeFirst: removeFirst, insert: insert, removeAt: removeAt, replaceAt: replaceAt, getIn: getIn, // eslint-disable-next-line object-shorthand set: set, // so that flow doesn't complain setIn: setIn, update: update, updateIn: updateIn, merge: merge, mergeDeep: mergeDeep, mergeIn: mergeIn, omit: omit, addDefaults: addDefaults }; exports.default = timm; /***/ }), /* 91 */ /***/ (function(module, exports) { /** * Performs a * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * comparison between two values to determine if they are equivalent. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * * var object = { 'a': 1 }; * var other = { 'a': 1 }; * * _.eq(object, object); * // => true * * _.eq(object, other); * // => false * * _.eq('a', 'a'); * // => true * * _.eq('a', Object('a')); * // => false * * _.eq(NaN, NaN); * // => true */ function eq(value, other) { return value === other || (value !== value && other !== other); } module.exports = eq; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { var baseIsArguments = __webpack_require__(456), isObjectLike = __webpack_require__(22); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Built-in value references. */ var propertyIsEnumerable = objectProto.propertyIsEnumerable; /** * Checks if `value` is likely an `arguments` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, * else `false`. * @example * * _.isArguments(function() { return arguments; }()); * // => true * * _.isArguments([1, 2, 3]); * // => false */ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); }; module.exports = isArguments; /***/ }), /* 93 */ /***/ (function(module, exports) { module.exports = function(module) { if (!module.webpackPolyfill) { module.deprecate = function() {}; module.paths = []; // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { var baseIsTypedArray = __webpack_require__(458), baseUnary = __webpack_require__(126), nodeUtil = __webpack_require__(127); /* Node.js helper references. */ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; /** * Checks if `value` is classified as a typed array. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. * @example * * _.isTypedArray(new Uint8Array); * // => true * * _.isTypedArray([]); * // => false */ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; module.exports = isTypedArray; /***/ }), /* 95 */ /***/ (function(module, exports, __webpack_require__) { var isSymbol = __webpack_require__(130); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; /** * Converts `value` to a string key if it's not a string or symbol. * * @private * @param {*} value The value to inspect. * @returns {string|symbol} Returns the key. */ function toKey(value) { if (typeof value == 'string' || isSymbol(value)) { return value; } var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } module.exports = toKey; /***/ }), /* 96 */ /***/ (function(module, exports) { /** * This method returns the first argument it receives. * * @static * @since 0.1.0 * @memberOf _ * @category Util * @param {*} value Any value. * @returns {*} Returns `value`. * @example * * var object = { 'a': 1 }; * * console.log(_.identity(object) === object); * // => true */ function identity(value) { return value; } module.exports = identity; /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { var defineProperty = __webpack_require__(278); /** * The base implementation of `assignValue` and `assignMergeValue` without * value checks. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function baseAssignValue(object, key, value) { if (key == '__proto__' && defineProperty) { defineProperty(object, key, { 'configurable': true, 'enumerable': true, 'value': value, 'writable': true }); } else { object[key] = value; } } module.exports = baseAssignValue; /***/ }), /* 98 */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeKeys = __webpack_require__(259), baseKeysIn = __webpack_require__(500), isArrayLike = __webpack_require__(47); /** * Creates an array of the own and inherited enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @since 3.0.0 * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keysIn(new Foo); * // => ['a', 'b', 'c'] (iteration order is not guaranteed) */ function keysIn(object) { return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); } module.exports = keysIn; /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toPropertyKey = __webpack_require__(86); var definePropertyModule = __webpack_require__(17); var createPropertyDescriptor = __webpack_require__(67); module.exports = function (object, key, value) { var propertyKey = toPropertyKey(key); if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); else object[propertyKey] = value; }; /***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var TO_STRING_TAG_SUPPORT = __webpack_require__(186); var isCallable = __webpack_require__(6); var classofRaw = __webpack_require__(84); var wellKnownSymbol = __webpack_require__(4); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var Object = global.Object; // ES3 wrong here var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (error) { /* empty */ } }; // getting tag from ES6+ `Object.prototype.toString` module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { var O, tag, result; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag // builtinTag case : CORRECT_ARGUMENTS ? classofRaw(O) // ES3 arguments fallback : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result; }; /***/ }), /* 101 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); var wellKnownSymbol = __webpack_require__(4); var V8_VERSION = __webpack_require__(53); var SPECIES = wellKnownSymbol('species'); module.exports = function (METHOD_NAME) { // We can't use this feature detection in V8 since it causes // deoptimization and serious performance degradation // https://github.com/zloirock/core-js/issues/677 return V8_VERSION >= 51 || !fails(function () { var array = []; var constructor = array.constructor = {}; constructor[SPECIES] = function () { return { foo: 1 }; }; return array[METHOD_NAME](Boolean).foo !== 1; }); }; /***/ }), /* 102 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); module.exports = uncurryThis([].slice); /***/ }), /* 103 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 104 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var call = __webpack_require__(23); var aCallable = __webpack_require__(31); var anObject = __webpack_require__(15); var tryToString = __webpack_require__(113); var getIteratorMethod = __webpack_require__(105); var TypeError = global.TypeError; module.exports = function (argument, usingIterator) { var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator; if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument)); throw TypeError(tryToString(argument) + ' is not iterable'); }; /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(100); var getMethod = __webpack_require__(55); var Iterators = __webpack_require__(103); var wellKnownSymbol = __webpack_require__(4); var ITERATOR = wellKnownSymbol('iterator'); module.exports = function (it) { if (it != undefined) return getMethod(it, ITERATOR) || getMethod(it, '@@iterator') || Iterators[classof(it)]; }; /***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(84); var global = __webpack_require__(1); module.exports = classof(global.process) == 'process'; /***/ }), /* 107 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FetchType", function() { return FetchType; }); var FetchType; (function (FetchType) { FetchType[FetchType["normal"] = 1] = "normal"; FetchType[FetchType["refetch"] = 2] = "refetch"; FetchType[FetchType["poll"] = 3] = "poll"; })(FetchType || (FetchType = {})); //# sourceMappingURL=types.js.map /***/ }), /* 108 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _directives__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(327); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirectiveInfoFromField", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["getDirectiveInfoFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shouldInclude", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["shouldInclude"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flattenSelections", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["flattenSelections"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirectiveNames", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["getDirectiveNames"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasDirectives", function() { return _directives__WEBPACK_IMPORTED_MODULE_0__["hasDirectives"]; }); /* harmony import */ var _fragments__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(328); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFragmentQueryDocument", function() { return _fragments__WEBPACK_IMPORTED_MODULE_1__["getFragmentQueryDocument"]; }); /* harmony import */ var _getFromAST__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(207); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMutationDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getMutationDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "checkDocument", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["checkDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getOperationDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinitionOrDie", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getOperationDefinitionOrDie"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getOperationName"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinitions", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getFragmentDefinitions"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getQueryDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getQueryDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getFragmentDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getMainDefinition", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getMainDefinition"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createFragmentMap", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["createFragmentMap"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultValues", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["getDefaultValues"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "variablesInOperation", function() { return _getFromAST__WEBPACK_IMPORTED_MODULE_2__["variablesInOperation"]; }); /* harmony import */ var _transform__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(329); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeDirectivesFromDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["removeDirectivesFromDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addTypenameToDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["addTypenameToDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeConnectionDirectiveFromDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["removeConnectionDirectiveFromDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDirectivesFromDocument", function() { return _transform__WEBPACK_IMPORTED_MODULE_3__["getDirectivesFromDocument"]; }); /* harmony import */ var _storeUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(145); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isScalarValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isScalarValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isNumberValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isNumberValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "valueToObjectRepresentation", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["valueToObjectRepresentation"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "storeKeyNameFromField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["storeKeyNameFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getStoreKeyName", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["getStoreKeyName"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "argumentsObjectFromField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["argumentsObjectFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "resultKeyNameFromField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["resultKeyNameFromField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isField", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isField"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isInlineFragment", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isInlineFragment"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isIdValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isIdValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toIdValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["toIdValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isJsonValue", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["isJsonValue"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "valueFromNode", function() { return _storeUtils__WEBPACK_IMPORTED_MODULE_4__["valueFromNode"]; }); /* harmony import */ var _util_assign__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(208); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return _util_assign__WEBPACK_IMPORTED_MODULE_5__["assign"]; }); /* harmony import */ var _util_cloneDeep__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(209); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "cloneDeep", function() { return _util_cloneDeep__WEBPACK_IMPORTED_MODULE_6__["cloneDeep"]; }); /* harmony import */ var _util_environment__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(146); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getEnv", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["getEnv"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEnv", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isEnv"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isProduction", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isProduction"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isDevelopment", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isDevelopment"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isTest", function() { return _util_environment__WEBPACK_IMPORTED_MODULE_7__["isTest"]; }); /* harmony import */ var _util_errorHandling__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(330); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tryFunctionOrLogError", function() { return _util_errorHandling__WEBPACK_IMPORTED_MODULE_8__["tryFunctionOrLogError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "graphQLResultHasError", function() { return _util_errorHandling__WEBPACK_IMPORTED_MODULE_8__["graphQLResultHasError"]; }); /* harmony import */ var _util_isEqual__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(331); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEqual", function() { return _util_isEqual__WEBPACK_IMPORTED_MODULE_9__["isEqual"]; }); /* harmony import */ var _util_maybeDeepFreeze__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(332); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "maybeDeepFreeze", function() { return _util_maybeDeepFreeze__WEBPACK_IMPORTED_MODULE_10__["maybeDeepFreeze"]; }); /* harmony import */ var _util_warnOnce__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(333); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "warnOnceInDevelopment", function() { return _util_warnOnce__WEBPACK_IMPORTED_MODULE_11__["warnOnceInDevelopment"]; }); /* harmony import */ var _util_stripSymbols__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(334); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stripSymbols", function() { return _util_stripSymbols__WEBPACK_IMPORTED_MODULE_12__["stripSymbols"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); var _classCallCheck2 = _interopRequireDefault2(__webpack_require__(44)); var _createClass2 = _interopRequireDefault2(__webpack_require__(149)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.generateShippingOptionsFromMethods = exports.generateDisplayItemsFromOrder = exports.StripeStore = void 0; var _StyleMapObserver = _interopRequireDefault(__webpack_require__(341)); var _debug = _interopRequireDefault(__webpack_require__(80)); var _constants = __webpack_require__(19); /* globals window */ var StripeStore = /*#__PURE__*/ function () { function StripeStore(docElement) { (0, _classCallCheck2["default"])(this, StripeStore); if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } var stripeJsElement = docElement.querySelector("[".concat(_constants.STRIPE_ECOMMERCE_KEY, "]")); if (!stripeJsElement) { this.store = { initialized: false, stripe: {}, elements: [], elementInstances: [], cartPaymentRequests: [], styleMapObservers: {} }; return _debug["default"].error("Stripe has not been set up for this project – Go to the project's Ecommerce Payment settings in the Designer to link Stripe."); } var ecommKey = stripeJsElement.getAttribute(_constants.STRIPE_ECOMMERCE_KEY); var ecommAccountId = stripeJsElement.getAttribute(_constants.STRIPE_ECOMMERCE_ACCOUNT_ID); var stripeOpts = ecommAccountId ? { stripeAccount: ecommAccountId, apiVersion: '2020-03-02' } : null; var stripe = window.Stripe(ecommKey, stripeOpts); this.store = { initialized: true, stripe: stripe, elements: [], elementInstances: [], cartPaymentRequests: [], styleMapObservers: {} }; } (0, _createClass2["default"])(StripeStore, [{ key: "isInitialized", value: function isInitialized() { return this.store.initialized; } }, { key: "getStripeInstance", value: function getStripeInstance() { return this.store.stripe; } }, { key: "getElementsInstance", value: function getElementsInstance(index) { return this.store.elements[index]; } }, { key: "getElement", value: function getElement(type, index) { return this.store.elementInstances[index][type]; } }, { key: "createElementsInstance", value: function createElementsInstance(index) { if (this.store.elements[index]) { throw new Error("Storage already exists for checkout form instance ".concat(index)); } else { var stripeInstance = this.getStripeInstance(); this.store.elements[index] = stripeInstance.elements(); this.store.elementInstances[index] = {}; } } // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types }, { key: "createElement", value: function createElement(type, index, options) { if (!this.isInitialized()) { throw new Error("Stripe has not been set up for this project – Go to the project's Ecommerce Payment settings in the Designer to link Stripe."); } if (this.store.elementInstances[index][type]) { throw new Error("Stripe Element of type ".concat(type, " for instance ").concat(index, " already exists on this page")); } var el = this.store.elements[index].create(type, options); this.store.elementInstances[index][type] = el; return el; } // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types }, { key: "updateCartPaymentRequest", value: function updateCartPaymentRequest(index, orderData, siteData) { var stripeInstance = this.getStripeInstance(); var requiresShipping = Boolean(orderData.statusFlags.requiresShipping); var options = { country: siteData.businessAddress.country || siteData.defaultCountry || 'US', currency: siteData.defaultCurrency.toLowerCase(), total: { amount: orderData.subtotal.value, label: 'Subtotal', pending: true }, displayItems: generateDisplayItemsFromOrder(orderData, false), requestPayerName: true, requestPayerEmail: true, requestPayerPhone: false, requestShipping: requiresShipping }; try { this.store.cartPaymentRequests[index] = stripeInstance.paymentRequest(options); } catch (error) { var ignoreError = false; // Stripe errors are `IntegrationError`s if (error.name === 'IntegrationError') { var unsupportedCountryPattern = /country should be one of the following strings(?:.*)You specified: (.*)./; var matches = error.message.match(unsupportedCountryPattern); ignoreError = Boolean(matches); } // We want the error to carry on if it's not exactly what we're looking for. if (!ignoreError) { throw error; } else { console.error(error); } } return this.store.cartPaymentRequests[index]; } }, { key: "getCartPaymentRequest", value: function getCartPaymentRequest(index) { return this.store.cartPaymentRequests[index]; } }]); return StripeStore; }(); exports.StripeStore = StripeStore; var generateDisplayItemsFromOrder = function generateDisplayItemsFromOrder( // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types orderData, showExtraItems) { return [].concat((0, _toConsumableArray2["default"])(orderData.userItems.map(function (item) { return { label: "".concat(item.product.f_name_, " ").concat(item.count > 1 ? "(".concat(item.count, ")") : ''), amount: item.rowTotal.value }; })), (0, _toConsumableArray2["default"])(showExtraItems ? orderData.extraItems.map(function (item) { return { label: item.name, amount: item.price.value }; }) : [])); }; exports.generateDisplayItemsFromOrder = generateDisplayItemsFromOrder; var generateShippingOptionsFromMethods = function generateShippingOptionsFromMethods(shippingMethods) { return shippingMethods.map(function (method) { return { id: method.id, label: method.name, detail: method.description || '', amount: method.price.value }; }); }; exports.generateShippingOptionsFromMethods = generateShippingOptionsFromMethods; /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { var assignValue = __webpack_require__(178), baseAssignValue = __webpack_require__(97); /** * Copies properties of `source` to `object`. * * @private * @param {Object} source The object to copy properties from. * @param {Array} props The property identifiers to copy. * @param {Object} [object={}] The object to copy properties to. * @param {Function} [customizer] The function to customize copied values. * @returns {Object} Returns `object`. */ function copyObject(source, props, object, customizer) { var isNew = !object; object || (object = {}); var index = -1, length = props.length; while (++index < length) { var key = props[index]; var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined; if (newValue === undefined) { newValue = source[key]; } if (isNew) { baseAssignValue(object, key, newValue); } else { assignValue(object, key, newValue); } } return object; } module.exports = copyObject; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DATE_FORMAT_OPTIONS = exports.DATETIME_FORMAT_OPTIONS = exports.SHARED_ALLOWED_FIELD_TYPES = exports.MIN_COLLECTION_LIST_OFFSET = exports.MAX_NESTED_COLLECTION_LIST_LIMIT = exports.MAX_COLLECTION_LIST_LIMIT = exports.DYNAMIC_CONTENT_COMPLEXITY_LIMIT = exports.DEFAULT_COLLECTION_LIMIT = exports.DEFAULT_NESTED_COLLECTION_LIMIT = exports.COLLECTION_TYPES = exports.SCHEDULED_PUBLISH_GRACE_PERIOD_IN_MS = exports.SCHEDULED_PUBLISH_LIMIT_IN_MS = exports.SCHEDULED_PUBLISH_GRANULARITY_IN_MIN = exports.SET_FIELD_MAX_ITEMS = exports.QUERY_FILTER_FOR_STATES = exports.NON_EXISTING_ITEM_ID = exports.CONDITION_INVISIBLE_CLASS = exports.CLASS_NAME_W_DYN_BIND_EMPTY = exports.TENSES_TO_HUMAN_PHRASES_MAP = exports.TENSES_ENUM = exports.PAST = exports.FUTURE = exports.TIME_INTERVALS_ENUM = void 0; // Internal useful constants. var SECOND = 1000; var MINUTE = 60 * SECOND; var HOUR = 60 * MINUTE; var DAY = 24 * HOUR; var YEAR = 365 * DAY; // Intervals of time related to Dates in Collection List Filters var TIME_INTERVALS_ENUM = { days: 'days', weeks: 'weeks', months: 'months', years: 'years' }; // Tenses of time related to Dates for Collection List Filters exports.TIME_INTERVALS_ENUM = TIME_INTERVALS_ENUM; var FUTURE = 'FUTURE'; exports.FUTURE = FUTURE; var PAST = 'PAST'; exports.PAST = PAST; var TENSES_ENUM = { FUTURE: FUTURE, PAST: PAST }; exports.TENSES_ENUM = TENSES_ENUM; var TENSES_TO_HUMAN_PHRASES_MAP = { FUTURE: 'in the future', PAST: 'in the past' }; exports.TENSES_TO_HUMAN_PHRASES_MAP = TENSES_TO_HUMAN_PHRASES_MAP; var CLASS_NAME_W_DYN_BIND_EMPTY = 'w-dyn-bind-empty'; exports.CLASS_NAME_W_DYN_BIND_EMPTY = CLASS_NAME_W_DYN_BIND_EMPTY; var CONDITION_INVISIBLE_CLASS = 'w-condition-invisible'; exports.CONDITION_INVISIBLE_CLASS = CONDITION_INVISIBLE_CLASS; var NON_EXISTING_ITEM_ID = '000000000000000000000000'; exports.NON_EXISTING_ITEM_ID = NON_EXISTING_ITEM_ID; var FILTER_FOR_ALL = 'ALL'; var FILTER_FOR_ANY = 'ANY'; var QUERY_FILTER_FOR_STATES = { ALL: FILTER_FOR_ALL, ANY: FILTER_FOR_ANY }; // The maximum number of items a set field can contain. exports.QUERY_FILTER_FOR_STATES = QUERY_FILTER_FOR_STATES; var SET_FIELD_MAX_ITEMS = 25; /** * Granularity in minutes used to schedule publishes. For example: 8:00, 8:05, * etc. */ exports.SET_FIELD_MAX_ITEMS = SET_FIELD_MAX_ITEMS; var SCHEDULED_PUBLISH_GRANULARITY_IN_MIN = 5; /** * How far in the future an item can be scheduled for SIP. */ exports.SCHEDULED_PUBLISH_GRANULARITY_IN_MIN = SCHEDULED_PUBLISH_GRANULARITY_IN_MIN; var SCHEDULED_PUBLISH_LIMIT_IN_MS = 5 * YEAR; /** * Grace period to execute a scheduled publish. Let's say something is scheduled * to publish at 8:10 and it's 8:20. Is it still ok to publish? */ exports.SCHEDULED_PUBLISH_LIMIT_IN_MS = SCHEDULED_PUBLISH_LIMIT_IN_MS; var SCHEDULED_PUBLISH_GRACE_PERIOD_IN_MS = 30 * MINUTE; /* An enum of the types of collections in our app. This allows us to handle * cases based on collection type by using the function getCollectionType */ exports.SCHEDULED_PUBLISH_GRACE_PERIOD_IN_MS = SCHEDULED_PUBLISH_GRACE_PERIOD_IN_MS; var COLLECTION_TYPES = { CATEGORIES: 'CATEGORIES', CMS_COLLECTIONS: 'CMS_COLLECTIONS', PRODUCTS: 'PRODUCTS', SKUS: 'SKUS' }; exports.COLLECTION_TYPES = COLLECTION_TYPES; var DEFAULT_NESTED_COLLECTION_LIMIT = 5; exports.DEFAULT_NESTED_COLLECTION_LIMIT = DEFAULT_NESTED_COLLECTION_LIMIT; var DEFAULT_COLLECTION_LIMIT = 100; exports.DEFAULT_COLLECTION_LIMIT = DEFAULT_COLLECTION_LIMIT; var DYNAMIC_CONTENT_COMPLEXITY_LIMIT = 2400; exports.DYNAMIC_CONTENT_COMPLEXITY_LIMIT = DYNAMIC_CONTENT_COMPLEXITY_LIMIT; var MAX_COLLECTION_LIST_LIMIT = DEFAULT_COLLECTION_LIMIT; exports.MAX_COLLECTION_LIST_LIMIT = MAX_COLLECTION_LIST_LIMIT; var MAX_NESTED_COLLECTION_LIST_LIMIT = DEFAULT_NESTED_COLLECTION_LIMIT; exports.MAX_NESTED_COLLECTION_LIST_LIMIT = MAX_NESTED_COLLECTION_LIST_LIMIT; var MIN_COLLECTION_LIST_OFFSET = 0; exports.MIN_COLLECTION_LIST_OFFSET = MIN_COLLECTION_LIST_OFFSET; var SHARED_ALLOWED_FIELD_TYPES = { innerHTML: { PlainText: 'innerText', HighlightedText: 'innerText', RichText: 'innerHTML', Number: 'innerText', Video: 'innerHTML', Option: 'innerText', Date: 'innerText', Phone: 'innerText', Email: 'innerText', CommercePrice: 'innerHTML', Link: 'innerText', ImageRef: false, FileRef: false, ItemRef: false, CommercePropValues: 'innerText' }, 'style.color': { Color: true }, 'style.background-color': { Color: true }, 'style.border-color': { Color: true }, 'style.background-image': { ImageRef: true }, src: ['ImageRef'], alt: ['PlainText', 'Option', 'Number', 'Date', 'Phone', 'Email', 'Video', 'Link'], href: ['Phone', 'Email', 'Video', 'Link', 'FileRef'], id: ['PlainText'], "for": ['PlainText'], value: ['Number', 'PlainText'], checked: ['Bool'], dataWHref: ['PlainText'] }; exports.SHARED_ALLOWED_FIELD_TYPES = SHARED_ALLOWED_FIELD_TYPES; var DATETIME_FORMAT_OPTIONS = ['MMMM D, YYYY', 'MMMM D, YYYY h:mm A', 'MMMM D, YYYY H:mm', 'MMM D, YYYY', 'MMM D, YYYY h:mm A', 'MMM D, YYYY H:mm', 'dddd, MMMM D, YYYY', 'M/D/YYYY', 'M.D.YYYY', 'D/M/YYYY', 'D.M.YYYY', 'M/D/YYYY h:mm A', 'M/D/YYYY H:mm', 'M.D.YYYY h:mm A', 'M.D.YYYY H:mm', 'D/M/YYYY h:mm A', 'D/M/YYYY H:mm', 'D.M.YYYY h:mm A', 'D.M.YYYY H:mm', 'M/D/YY', 'M.D.YY', 'D/M/YY', 'D.M.YY', 'M/D/YY h:mm a', 'M/D/YY H:mm', 'M.D.YY h:mm a', 'M.D.YY H:mm', 'D/M/YY h:mm a', 'D/M/YY H:mm', 'D.M.YY h:mm a', 'D.M.YY H:mm', 'YYYY-MM-DD', 'YYYY-MM-DD h:mm a', 'YYYY-MM-DD H:mm', 'MMM D', 'D MMM', 'MMMM YYYY', 'MMM YYYY', 'MM/YYYY', 'h:mm a', 'H:mm', 'D', 'DD', 'ddd', 'dddd', 'M', 'MM', 'MMM', 'MMMM', 'YY', 'YYYY']; exports.DATETIME_FORMAT_OPTIONS = DATETIME_FORMAT_OPTIONS; var DATE_FORMAT_OPTIONS = DATETIME_FORMAT_OPTIONS.filter(function (format) { return !/[hHmaA]/.test(format); }); exports.DATE_FORMAT_OPTIONS = DATE_FORMAT_OPTIONS; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var getBuiltIn = __webpack_require__(24); var isCallable = __webpack_require__(6); var isPrototypeOf = __webpack_require__(69); var USE_SYMBOL_AS_UID = __webpack_require__(231); var Object = global.Object; module.exports = USE_SYMBOL_AS_UID ? function (it) { return typeof it == 'symbol'; } : function (it) { var $Symbol = getBuiltIn('Symbol'); return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); }; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var String = global.String; module.exports = function (argument) { try { return String(argument); } catch (error) { return 'Object'; } }; /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var setGlobal = __webpack_require__(157); var SHARED = '__core-js_shared__'; var store = global[SHARED] || setGlobal(SHARED, {}); module.exports = store; /***/ }), /* 115 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var id = 0; var postfix = Math.random(); var toString = uncurryThis(1.0.toString); module.exports = function (key) { return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); }; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isObject = __webpack_require__(12); var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var isCallable = __webpack_require__(6); var store = __webpack_require__(114); var functionToString = uncurryThis(Function.toString); // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper if (!isCallable(store.inspectSource)) { store.inspectSource = function (it) { return functionToString(it); }; } module.exports = store.inspectSource; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(156); var uid = __webpack_require__(115); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); var isCallable = __webpack_require__(6); var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : isCallable(detection) ? fails(detection) : !!detection; }; var normalize = isForced.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced.data = {}; var NATIVE = isForced.NATIVE = 'N'; var POLYFILL = isForced.POLYFILL = 'P'; module.exports = isForced; /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { var ListCache = __webpack_require__(121), stackClear = __webpack_require__(422), stackDelete = __webpack_require__(423), stackGet = __webpack_require__(424), stackHas = __webpack_require__(425), stackSet = __webpack_require__(426); /** * Creates a stack cache object to store key-value pairs. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function Stack(entries) { var data = this.__data__ = new ListCache(entries); this.size = data.size; } // Add methods to `Stack`. Stack.prototype.clear = stackClear; Stack.prototype['delete'] = stackDelete; Stack.prototype.get = stackGet; Stack.prototype.has = stackHas; Stack.prototype.set = stackSet; module.exports = Stack; /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { var listCacheClear = __webpack_require__(417), listCacheDelete = __webpack_require__(418), listCacheGet = __webpack_require__(419), listCacheHas = __webpack_require__(420), listCacheSet = __webpack_require__(421); /** * Creates an list cache object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function ListCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } // Add methods to `ListCache`. ListCache.prototype.clear = listCacheClear; ListCache.prototype['delete'] = listCacheDelete; ListCache.prototype.get = listCacheGet; ListCache.prototype.has = listCacheHas; ListCache.prototype.set = listCacheSet; module.exports = ListCache; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { var eq = __webpack_require__(91); /** * Gets the index at which the `key` is found in `array` of key-value pairs. * * @private * @param {Array} array The array to inspect. * @param {*} key The key to search for. * @returns {number} Returns the index of the matched value, else `-1`. */ function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq(array[length][0], key)) { return length; } } return -1; } module.exports = assocIndexOf; /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57); /* Built-in method references that are verified to be native. */ var nativeCreate = getNative(Object, 'create'); module.exports = nativeCreate; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { var isKeyable = __webpack_require__(441); /** * Gets the data for `map`. * * @private * @param {Object} map The map to query. * @param {string} key The reference key. * @returns {*} Returns the map data. */ function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; } module.exports = getMapData; /***/ }), /* 125 */ /***/ (function(module, exports) { /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; /** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\d*)$/; /** * Checks if `value` is a valid array-like index. * * @private * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value, length) { var type = typeof value; length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (type == 'number' || (type != 'symbol' && reIsUint.test(value))) && (value > -1 && value % 1 == 0 && value < length); } module.exports = isIndex; /***/ }), /* 126 */ /***/ (function(module, exports) { /** * The base implementation of `_.unary` without support for storing metadata. * * @private * @param {Function} func The function to cap arguments for. * @returns {Function} Returns the new capped function. */ function baseUnary(func) { return function(value) { return func(value); }; } module.exports = baseUnary; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(250); /** Detect free variable `exports`. */ var freeExports = true && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; /** Detect free variable `process` from Node.js. */ var freeProcess = moduleExports && freeGlobal.process; /** Used to access faster Node.js helpers. */ var nodeUtil = (function() { try { // Use `util.types` for Node.js 10+. var types = freeModule && freeModule.require && freeModule.require('util').types; if (types) { return types; } // Legacy `process.binding('util')` for Node.js < 10. return freeProcess && freeProcess.binding && freeProcess.binding('util'); } catch (e) {} }()); module.exports = nodeUtil; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(93)(module))) /***/ }), /* 128 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Checks if `value` is likely a prototype object. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. */ function isPrototype(value) { var Ctor = value && value.constructor, proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; return value === proto; } module.exports = isPrototype; /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { var isArray = __webpack_require__(10), isKey = __webpack_require__(172), stringToPath = __webpack_require__(465), toString = __webpack_require__(61); /** * Casts `value` to a path array if it's not one. * * @private * @param {*} value The value to inspect. * @param {Object} [object] The object to query keys on. * @returns {Array} Returns the cast property path array. */ function castPath(value, object) { if (isArray(value)) { return value; } return isKey(value, object) ? [value] : stringToPath(toString(value)); } module.exports = castPath; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var symbolTag = '[object Symbol]'; /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return typeof value == 'symbol' || (isObjectLike(value) && baseGetTag(value) == symbolTag); } module.exports = isSymbol; /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { var baseFor = __webpack_require__(274), keys = __webpack_require__(58); /** * The base implementation of `_.forOwn` without support for iteratee shorthands. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForOwn(object, iteratee) { return object && baseFor(object, iteratee, keys); } module.exports = baseForOwn; /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { var overArg = __webpack_require__(260); /** Built-in value references. */ var getPrototype = overArg(Object.getPrototypeOf, Object); module.exports = getPrototype; /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18); /** Built-in value references. */ var objectCreate = Object.create; /** * The base implementation of `_.create` without support for assigning * properties to the created object. * * @private * @param {Object} proto The object to inherit from. * @returns {Object} Returns the new object. */ var baseCreate = (function() { function object() {} return function(proto) { if (!isObject(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object.prototype = proto; var result = new object; object.prototype = undefined; return result; }; }()); module.exports = baseCreate; /***/ }), /* 134 */ /***/ (function(module, exports) { var FunctionPrototype = Function.prototype; var apply = FunctionPrototype.apply; var bind = FunctionPrototype.bind; var call = FunctionPrototype.call; // eslint-disable-next-line es/no-reflect -- safe module.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () { return call.apply(apply, arguments); }); /***/ }), /* 135 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isPrototypeOf = __webpack_require__(69); var TypeError = global.TypeError; module.exports = function (it, Prototype) { if (isPrototypeOf(Prototype, it)) return it; throw TypeError('Incorrect invocation'); }; /***/ }), /* 136 */ /***/ (function(module, exports, __webpack_require__) { var redefine = __webpack_require__(27); module.exports = function (target, src, options) { for (var key in src) redefine(target, key, src[key], options); return target; }; /***/ }), /* 137 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "printAST", function() { return graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"]; }); /* harmony import */ var _core_ObservableQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(139); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ObservableQuery", function() { return _core_ObservableQuery__WEBPACK_IMPORTED_MODULE_1__["ObservableQuery"]; }); /* harmony import */ var _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NetworkStatus", function() { return _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"]; }); /* harmony import */ var _core_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(107); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FetchType", function() { return _core_types__WEBPACK_IMPORTED_MODULE_3__["FetchType"]; }); /* harmony import */ var _errors_ApolloError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(144); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ApolloError", function() { return _errors_ApolloError__WEBPACK_IMPORTED_MODULE_4__["ApolloError"]; }); /* harmony import */ var _ApolloClient__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(322); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ApolloClient", function() { return _ApolloClient__WEBPACK_IMPORTED_MODULE_5__["default"]; }); // export the client as both default and named /* harmony default export */ __webpack_exports__["default"] = (_ApolloClient__WEBPACK_IMPORTED_MODULE_5__["default"]); //# sourceMappingURL=index.js.map /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.visit = visit; exports.visitInParallel = visitInParallel; exports.visitWithTypeInfo = visitWithTypeInfo; exports.getVisitFn = getVisitFn; /** * A visitor is comprised of visit functions, which are called on each node * during the visitor's traversal. */ /** * A visitor is provided to visit, it contains the collection of * relevant functions to be called during the visitor's traversal. */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ var QueryDocumentKeys = exports.QueryDocumentKeys = { Name: [], Document: ['definitions'], OperationDefinition: ['name', 'variableDefinitions', 'directives', 'selectionSet'], VariableDefinition: ['variable', 'type', 'defaultValue'], Variable: ['name'], SelectionSet: ['selections'], Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'], Argument: ['name', 'value'], FragmentSpread: ['name', 'directives'], InlineFragment: ['typeCondition', 'directives', 'selectionSet'], FragmentDefinition: ['name', // Note: fragment variable definitions are experimental and may be changed // or removed in the future. 'variableDefinitions', 'typeCondition', 'directives', 'selectionSet'], IntValue: [], FloatValue: [], StringValue: [], BooleanValue: [], NullValue: [], EnumValue: [], ListValue: ['values'], ObjectValue: ['fields'], ObjectField: ['name', 'value'], Directive: ['name', 'arguments'], NamedType: ['name'], ListType: ['type'], NonNullType: ['type'], SchemaDefinition: ['directives', 'operationTypes'], OperationTypeDefinition: ['type'], ScalarTypeDefinition: ['description', 'name', 'directives'], ObjectTypeDefinition: ['description', 'name', 'interfaces', 'directives', 'fields'], FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'], InputValueDefinition: ['description', 'name', 'type', 'defaultValue', 'directives'], InterfaceTypeDefinition: ['description', 'name', 'directives', 'fields'], UnionTypeDefinition: ['description', 'name', 'directives', 'types'], EnumTypeDefinition: ['description', 'name', 'directives', 'values'], EnumValueDefinition: ['description', 'name', 'directives'], InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'], ScalarTypeExtension: ['name', 'directives'], ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'], InterfaceTypeExtension: ['name', 'directives', 'fields'], UnionTypeExtension: ['name', 'directives', 'types'], EnumTypeExtension: ['name', 'directives', 'values'], InputObjectTypeExtension: ['name', 'directives', 'fields'], DirectiveDefinition: ['description', 'name', 'arguments', 'locations'] }; /** * A KeyMap describes each the traversable properties of each kind of node. */ var BREAK = exports.BREAK = {}; /** * visit() will walk through an AST using a depth first traversal, calling * the visitor's enter function at each node in the traversal, and calling the * leave function after visiting that node and all of its child nodes. * * By returning different values from the enter and leave functions, the * behavior of the visitor can be altered, including skipping over a sub-tree of * the AST (by returning false), editing the AST by returning a value or null * to remove the value, or to stop the whole traversal by returning BREAK. * * When using visit() to edit an AST, the original AST will not be modified, and * a new version of the AST with the changes applied will be returned from the * visit function. * * const editedAST = visit(ast, { * enter(node, key, parent, path, ancestors) { * // @return * // undefined: no action * // false: skip visiting this node * // visitor.BREAK: stop visiting altogether * // null: delete this node * // any value: replace this node with the returned value * }, * leave(node, key, parent, path, ancestors) { * // @return * // undefined: no action * // false: no action * // visitor.BREAK: stop visiting altogether * // null: delete this node * // any value: replace this node with the returned value * } * }); * * Alternatively to providing enter() and leave() functions, a visitor can * instead provide functions named the same as the kinds of AST nodes, or * enter/leave visitors at a named key, leading to four permutations of * visitor API: * * 1) Named visitors triggered when entering a node a specific kind. * * visit(ast, { * Kind(node) { * // enter the "Kind" node * } * }) * * 2) Named visitors that trigger upon entering and leaving a node of * a specific kind. * * visit(ast, { * Kind: { * enter(node) { * // enter the "Kind" node * } * leave(node) { * // leave the "Kind" node * } * } * }) * * 3) Generic visitors that trigger upon entering and leaving any node. * * visit(ast, { * enter(node) { * // enter any node * }, * leave(node) { * // leave any node * } * }) * * 4) Parallel visitors for entering and leaving nodes of a specific kind. * * visit(ast, { * enter: { * Kind(node) { * // enter the "Kind" node * } * }, * leave: { * Kind(node) { * // leave the "Kind" node * } * } * }) */ function visit(root, visitor) { var visitorKeys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : QueryDocumentKeys; /* eslint-disable no-undef-init */ var stack = undefined; var inArray = Array.isArray(root); var keys = [root]; var index = -1; var edits = []; var node = undefined; var key = undefined; var parent = undefined; var path = []; var ancestors = []; var newRoot = root; /* eslint-enable no-undef-init */ do { index++; var isLeaving = index === keys.length; var isEdited = isLeaving && edits.length !== 0; if (isLeaving) { key = ancestors.length === 0 ? undefined : path[path.length - 1]; node = parent; parent = ancestors.pop(); if (isEdited) { if (inArray) { node = node.slice(); } else { var clone = {}; for (var k in node) { if (node.hasOwnProperty(k)) { clone[k] = node[k]; } } node = clone; } var editOffset = 0; for (var ii = 0; ii < edits.length; ii++) { var editKey = edits[ii][0]; var editValue = edits[ii][1]; if (inArray) { editKey -= editOffset; } if (inArray && editValue === null) { node.splice(editKey, 1); editOffset++; } else { node[editKey] = editValue; } } } index = stack.index; keys = stack.keys; edits = stack.edits; inArray = stack.inArray; stack = stack.prev; } else { key = parent ? inArray ? index : keys[index] : undefined; node = parent ? parent[key] : newRoot; if (node === null || node === undefined) { continue; } if (parent) { path.push(key); } } var result = void 0; if (!Array.isArray(node)) { if (!isNode(node)) { throw new Error('Invalid AST Node: ' + JSON.stringify(node)); } var visitFn = getVisitFn(visitor, node.kind, isLeaving); if (visitFn) { result = visitFn.call(visitor, node, key, parent, path, ancestors); if (result === BREAK) { break; } if (result === false) { if (!isLeaving) { path.pop(); continue; } } else if (result !== undefined) { edits.push([key, result]); if (!isLeaving) { if (isNode(result)) { node = result; } else { path.pop(); continue; } } } } } if (result === undefined && isEdited) { edits.push([key, node]); } if (isLeaving) { path.pop(); } else { stack = { inArray: inArray, index: index, keys: keys, edits: edits, prev: stack }; inArray = Array.isArray(node); keys = inArray ? node : visitorKeys[node.kind] || []; index = -1; edits = []; if (parent) { ancestors.push(parent); } parent = node; } } while (stack !== undefined); if (edits.length !== 0) { newRoot = edits[edits.length - 1][1]; } return newRoot; } function isNode(maybeNode) { return Boolean(maybeNode && typeof maybeNode.kind === 'string'); } /** * Creates a new visitor instance which delegates to many visitors to run in * parallel. Each visitor will be visited for each node before moving on. * * If a prior visitor edits a node, no following visitors will see that node. */ function visitInParallel(visitors) { var skipping = new Array(visitors.length); return { enter: function enter(node) { for (var i = 0; i < visitors.length; i++) { if (!skipping[i]) { var fn = getVisitFn(visitors[i], node.kind, /* isLeaving */false); if (fn) { var result = fn.apply(visitors[i], arguments); if (result === false) { skipping[i] = node; } else if (result === BREAK) { skipping[i] = BREAK; } else if (result !== undefined) { return result; } } } } }, leave: function leave(node) { for (var i = 0; i < visitors.length; i++) { if (!skipping[i]) { var fn = getVisitFn(visitors[i], node.kind, /* isLeaving */true); if (fn) { var result = fn.apply(visitors[i], arguments); if (result === BREAK) { skipping[i] = BREAK; } else if (result !== undefined && result !== false) { return result; } } } else if (skipping[i] === node) { skipping[i] = null; } } } }; } /** * Creates a new visitor instance which maintains a provided TypeInfo instance * along with visiting visitor. */ function visitWithTypeInfo(typeInfo, visitor) { return { enter: function enter(node) { typeInfo.enter(node); var fn = getVisitFn(visitor, node.kind, /* isLeaving */false); if (fn) { var result = fn.apply(visitor, arguments); if (result !== undefined) { typeInfo.leave(node); if (isNode(result)) { typeInfo.enter(result); } } return result; } }, leave: function leave(node) { var fn = getVisitFn(visitor, node.kind, /* isLeaving */true); var result = void 0; if (fn) { result = fn.apply(visitor, arguments); } typeInfo.leave(node); return result; } }; } /** * Given a visitor instance, if it is leaving or not, and a node kind, return * the function the visitor runtime should call. */ function getVisitFn(visitor, kind, isLeaving) { var kindVisitor = visitor[kind]; if (kindVisitor) { if (!isLeaving && typeof kindVisitor === 'function') { // { Kind() {} } return kindVisitor; } var kindSpecificVisitor = isLeaving ? kindVisitor.leave : kindVisitor.enter; if (typeof kindSpecificVisitor === 'function') { // { Kind: { enter() {}, leave() {} } } return kindSpecificVisitor; } } else { var specificVisitor = isLeaving ? visitor.leave : visitor.enter; if (specificVisitor) { if (typeof specificVisitor === 'function') { // { enter() {}, leave() {} } return specificVisitor; } var specificKindVisitor = specificVisitor[kind]; if (typeof specificKindVisitor === 'function') { // { enter: { Kind() {} }, leave: { Kind() {} } } return specificKindVisitor; } } } } /***/ }), /* 139 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasError", function() { return hasError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObservableQuery", function() { return ObservableQuery; }); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var _networkStatus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79); /* harmony import */ var _util_Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(320); /* harmony import */ var _errors_ApolloError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(144); /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(107); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var hasError = function (storeValue, policy) { if (policy === void 0) { policy = 'none'; } return storeValue && ((storeValue.graphQLErrors && storeValue.graphQLErrors.length > 0 && policy === 'none') || storeValue.networkError); }; var ObservableQuery = /** @class */ (function (_super) { __extends(ObservableQuery, _super); function ObservableQuery(_a) { var scheduler = _a.scheduler, options = _a.options, _b = _a.shouldSubscribe, shouldSubscribe = _b === void 0 ? true : _b; var _this = _super.call(this, function (observer) { return _this.onSubscribe(observer); }) || this; // active state _this.isCurrentlyPolling = false; _this.isTornDown = false; // query information _this.options = options; _this.variables = options.variables || {}; _this.queryId = scheduler.queryManager.generateQueryId(); _this.shouldSubscribe = shouldSubscribe; // related classes _this.scheduler = scheduler; _this.queryManager = scheduler.queryManager; // interal data stores _this.observers = []; _this.subscriptionHandles = []; return _this; } ObservableQuery.prototype.result = function () { var that = this; return new Promise(function (resolve, reject) { var subscription; var observer = { next: function (result) { resolve(result); // Stop the query within the QueryManager if we can before // this function returns. // // We do this in order to prevent observers piling up within // the QueryManager. Notice that we only fully unsubscribe // from the subscription in a setTimeout(..., 0) call. This call can // actually be handled by the browser at a much later time. If queries // are fired in the meantime, observers that should have been removed // from the QueryManager will continue to fire, causing an unnecessary // performance hit. if (!that.observers.some(function (obs) { return obs !== observer; })) { that.queryManager.removeQuery(that.queryId); } setTimeout(function () { subscription.unsubscribe(); }, 0); }, error: function (error) { reject(error); }, }; subscription = that.subscribe(observer); }); }; /** * Return the result of the query from the local cache as well as some fetching status * `loading` and `networkStatus` allow to know if a request is in flight * `partial` lets you know if the result from the local cache is complete or partial * @return {result: Object, loading: boolean, networkStatus: number, partial: boolean} */ ObservableQuery.prototype.currentResult = function () { if (this.isTornDown) { return { data: this.lastError ? {} : this.lastResult ? this.lastResult.data : {}, error: this.lastError, loading: false, networkStatus: _networkStatus__WEBPACK_IMPORTED_MODULE_1__["NetworkStatus"].error, }; } var queryStoreValue = this.queryManager.queryStore.get(this.queryId); if (hasError(queryStoreValue, this.options.errorPolicy)) { return { data: {}, loading: false, networkStatus: queryStoreValue.networkStatus, error: new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_3__["ApolloError"]({ graphQLErrors: queryStoreValue.graphQLErrors, networkError: queryStoreValue.networkError, }), }; } var _a = this.queryManager.getCurrentQueryResult(this), data = _a.data, partial = _a.partial; var queryLoading = !queryStoreValue || queryStoreValue.networkStatus === _networkStatus__WEBPACK_IMPORTED_MODULE_1__["NetworkStatus"].loading; // We need to be careful about the loading state we show to the user, to try // and be vaguely in line with what the user would have seen from .subscribe() // but to still provide useful information synchronously when the query // will not end up hitting the server. // See more: https://github.com/apollostack/apollo-client/issues/707 // Basically: is there a query in flight right now (modolo the next tick)? var loading = (this.options.fetchPolicy === 'network-only' && queryLoading) || (partial && this.options.fetchPolicy !== 'cache-only'); // if there is nothing in the query store, it means this query hasn't fired yet or it has been cleaned up. Therefore the // network status is dependent on queryLoading. var networkStatus; if (queryStoreValue) { networkStatus = queryStoreValue.networkStatus; } else { networkStatus = loading ? _networkStatus__WEBPACK_IMPORTED_MODULE_1__["NetworkStatus"].loading : _networkStatus__WEBPACK_IMPORTED_MODULE_1__["NetworkStatus"].ready; } var result = { data: data, loading: Object(_networkStatus__WEBPACK_IMPORTED_MODULE_1__["isNetworkRequestInFlight"])(networkStatus), networkStatus: networkStatus, }; if (queryStoreValue && queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') { result.errors = queryStoreValue.graphQLErrors; } if (!partial) { var stale = false; this.lastResult = __assign({}, result, { stale: stale }); } return __assign({}, result, { partial: partial }); }; // Returns the last result that observer.next was called with. This is not the same as // currentResult! If you're not sure which you need, then you probably need currentResult. ObservableQuery.prototype.getLastResult = function () { return this.lastResult; }; ObservableQuery.prototype.getLastError = function () { return this.lastError; }; ObservableQuery.prototype.resetLastResults = function () { delete this.lastResult; delete this.lastError; this.isTornDown = false; }; ObservableQuery.prototype.refetch = function (variables) { var fetchPolicy = this.options.fetchPolicy; // early return if trying to read from cache during refetch if (fetchPolicy === 'cache-only') { return Promise.reject(new Error('cache-only fetchPolicy option should not be used together with query refetch.')); } if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isEqual"])(this.variables, variables)) { // update observable variables this.variables = Object.assign({}, this.variables, variables); } if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isEqual"])(this.options.variables, this.variables)) { // Update the existing options with new variables this.options.variables = Object.assign({}, this.options.variables, this.variables); } // Override fetchPolicy for this call only // only network-only and no-cache are safe to use var isNetworkFetchPolicy = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache'; var combinedOptions = __assign({}, this.options, { fetchPolicy: isNetworkFetchPolicy ? fetchPolicy : 'network-only' }); return this.queryManager .fetchQuery(this.queryId, combinedOptions, _types__WEBPACK_IMPORTED_MODULE_4__["FetchType"].refetch) .then(function (result) { return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["maybeDeepFreeze"])(result); }); }; ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) { var _this = this; // early return if no update Query if (!fetchMoreOptions.updateQuery) { throw new Error('updateQuery option is required. This function defines how to update the query data with the new results.'); } var combinedOptions; return Promise.resolve() .then(function () { var qid = _this.queryManager.generateQueryId(); if (fetchMoreOptions.query) { // fetch a new query combinedOptions = fetchMoreOptions; } else { // fetch the same query with a possibly new variables combinedOptions = __assign({}, _this.options, fetchMoreOptions, { variables: Object.assign({}, _this.variables, fetchMoreOptions.variables) }); } combinedOptions.fetchPolicy = 'network-only'; return _this.queryManager.fetchQuery(qid, combinedOptions, _types__WEBPACK_IMPORTED_MODULE_4__["FetchType"].normal, _this.queryId); }) .then(function (fetchMoreResult) { _this.updateQuery(function (previousResult) { return fetchMoreOptions.updateQuery(previousResult, { fetchMoreResult: fetchMoreResult.data, variables: combinedOptions.variables, }); }); return fetchMoreResult; }); }; // XXX the subscription variables are separate from the query variables. // if you want to update subscription variables, right now you have to do that separately, // and you can only do it by stopping the subscription and then subscribing again with new variables. ObservableQuery.prototype.subscribeToMore = function (options) { var _this = this; var subscription = this.queryManager .startGraphQLSubscription({ query: options.document, variables: options.variables, }) .subscribe({ next: function (data) { if (options.updateQuery) { _this.updateQuery(function (previous, _a) { var variables = _a.variables; return options.updateQuery(previous, { subscriptionData: data, variables: variables, }); }); } }, error: function (err) { if (options.onError) { options.onError(err); return; } console.error('Unhandled GraphQL subscription error', err); }, }); this.subscriptionHandles.push(subscription); return function () { var i = _this.subscriptionHandles.indexOf(subscription); if (i >= 0) { _this.subscriptionHandles.splice(i, 1); subscription.unsubscribe(); } }; }; // Note: if the query is not active (there are no subscribers), the promise // will return null immediately. ObservableQuery.prototype.setOptions = function (opts) { var oldOptions = this.options; this.options = Object.assign({}, this.options, opts); if (opts.pollInterval) { this.startPolling(opts.pollInterval); } else if (opts.pollInterval === 0) { this.stopPolling(); } // If fetchPolicy went from cache-only to something else, or from something else to network-only var tryFetch = (oldOptions.fetchPolicy !== 'network-only' && opts.fetchPolicy === 'network-only') || (oldOptions.fetchPolicy === 'cache-only' && opts.fetchPolicy !== 'cache-only') || (oldOptions.fetchPolicy === 'standby' && opts.fetchPolicy !== 'standby') || false; return this.setVariables(this.options.variables, tryFetch, opts.fetchResults); }; /** * Update the variables of this observable query, and fetch the new results * if they've changed. If you want to force new results, use `refetch`. * * Note: if the variables have not changed, the promise will return the old * results immediately, and the `next` callback will *not* fire. * * Note: if the query is not active (there are no subscribers), the promise * will return null immediately. * * @param variables: The new set of variables. If there are missing variables, * the previous values of those variables will be used. * * @param tryFetch: Try and fetch new results even if the variables haven't * changed (we may still just hit the store, but if there's nothing in there * this will refetch) * * @param fetchResults: Option to ignore fetching results when updating variables * */ ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) { if (tryFetch === void 0) { tryFetch = false; } if (fetchResults === void 0) { fetchResults = true; } // since setVariables restarts the subscription, we reset the tornDown status this.isTornDown = false; var newVariables = variables ? variables : this.variables; if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isEqual"])(newVariables, this.variables) && !tryFetch) { // If we have no observers, then we don't actually want to make a network // request. As soon as someone observes the query, the request will kick // off. For now, we just store any changes. (See #1077) if (this.observers.length === 0 || !fetchResults) { return new Promise(function (resolve) { return resolve(); }); } return this.result(); } else { this.variables = newVariables; this.options.variables = newVariables; // See comment above if (this.observers.length === 0) { return new Promise(function (resolve) { return resolve(); }); } // Use the same options as before, but with new variables return this.queryManager .fetchQuery(this.queryId, __assign({}, this.options, { variables: this.variables })) .then(function (result) { return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["maybeDeepFreeze"])(result); }); } }; ObservableQuery.prototype.updateQuery = function (mapFn) { var _a = this.queryManager.getQueryWithPreviousResult(this.queryId), previousResult = _a.previousResult, variables = _a.variables, document = _a.document; var newResult = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["tryFunctionOrLogError"])(function () { return mapFn(previousResult, { variables: variables }); }); if (newResult) { this.queryManager.dataStore.markUpdateQueryResult(document, variables, newResult); this.queryManager.broadcastQueries(); } }; ObservableQuery.prototype.stopPolling = function () { if (this.isCurrentlyPolling) { this.scheduler.stopPollingQuery(this.queryId); this.options.pollInterval = undefined; this.isCurrentlyPolling = false; } }; ObservableQuery.prototype.startPolling = function (pollInterval) { if (this.options.fetchPolicy === 'cache-first' || this.options.fetchPolicy === 'cache-only') { throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.'); } if (this.isCurrentlyPolling) { this.scheduler.stopPollingQuery(this.queryId); this.isCurrentlyPolling = false; } this.options.pollInterval = pollInterval; this.isCurrentlyPolling = true; this.scheduler.startPollingQuery(this.options, this.queryId); }; ObservableQuery.prototype.onSubscribe = function (observer) { var _this = this; // Zen Observable has its own error function, in order to log correctly // we need to declare a custom error if nothing is passed if (observer._subscription && observer._subscription._observer && !observer._subscription._observer.error) { observer._subscription._observer.error = function (error) { console.error('Unhandled error', error.message, error.stack); }; } this.observers.push(observer); // Deliver initial result if (observer.next && this.lastResult) observer.next(this.lastResult); if (observer.error && this.lastError) observer.error(this.lastError); // setup the query if it hasn't been done before if (this.observers.length === 1) this.setUpQuery(); return function () { _this.observers = _this.observers.filter(function (obs) { return obs !== observer; }); if (_this.observers.length === 0) { _this.tearDownQuery(); } }; }; ObservableQuery.prototype.setUpQuery = function () { var _this = this; if (this.shouldSubscribe) { this.queryManager.addObservableQuery(this.queryId, this); } if (!!this.options.pollInterval) { if (this.options.fetchPolicy === 'cache-first' || this.options.fetchPolicy === 'cache-only') { throw new Error('Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.'); } this.isCurrentlyPolling = true; this.scheduler.startPollingQuery(this.options, this.queryId); } var observer = { next: function (result) { _this.lastResult = result; _this.observers.forEach(function (obs) { return obs.next && obs.next(result); }); }, error: function (error) { _this.lastError = error; _this.observers.forEach(function (obs) { return obs.error && obs.error(error); }); }, }; this.queryManager.startQuery(this.queryId, this.options, this.queryManager.queryListenerForObserver(this.queryId, this.options, observer)); }; ObservableQuery.prototype.tearDownQuery = function () { this.isTornDown = true; if (this.isCurrentlyPolling) { this.scheduler.stopPollingQuery(this.queryId); this.isCurrentlyPolling = false; } // stop all active GraphQL subscriptions this.subscriptionHandles.forEach(function (sub) { return sub.unsubscribe(); }); this.subscriptionHandles = []; this.queryManager.removeObservableQuery(this.queryId); this.queryManager.stopQuery(this.queryId); this.observers = []; }; return ObservableQuery; }(_util_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); //# sourceMappingURL=ObservableQuery.js.map /***/ }), /* 140 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScalarValue", function() { return isScalarValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumberValue", function() { return isNumberValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueToObjectRepresentation", function() { return valueToObjectRepresentation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storeKeyNameFromField", function() { return storeKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStoreKeyName", function() { return getStoreKeyName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "argumentsObjectFromField", function() { return argumentsObjectFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultKeyNameFromField", function() { return resultKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isField", function() { return isField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInlineFragment", function() { return isInlineFragment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIdValue", function() { return isIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toIdValue", function() { return toIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isJsonValue", function() { return isJsonValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueFromNode", function() { return valueFromNode; }); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(141); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0__); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; function isScalarValue(value) { return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1; } function isNumberValue(value) { return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1; } function isStringValue(value) { return value.kind === 'StringValue'; } function isBooleanValue(value) { return value.kind === 'BooleanValue'; } function isIntValue(value) { return value.kind === 'IntValue'; } function isFloatValue(value) { return value.kind === 'FloatValue'; } function isVariable(value) { return value.kind === 'Variable'; } function isObjectValue(value) { return value.kind === 'ObjectValue'; } function isListValue(value) { return value.kind === 'ListValue'; } function isEnumValue(value) { return value.kind === 'EnumValue'; } function isNullValue(value) { return value.kind === 'NullValue'; } function valueToObjectRepresentation(argObj, name, value, variables) { if (isIntValue(value) || isFloatValue(value)) { argObj[name.value] = Number(value.value); } else if (isBooleanValue(value) || isStringValue(value)) { argObj[name.value] = value.value; } else if (isObjectValue(value)) { var nestedArgObj_1 = {}; value.fields.map(function (obj) { return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables); }); argObj[name.value] = nestedArgObj_1; } else if (isVariable(value)) { var variableValue = (variables || {})[value.name.value]; argObj[name.value] = variableValue; } else if (isListValue(value)) { argObj[name.value] = value.values.map(function (listValue) { var nestedArgArrayObj = {}; valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables); return nestedArgArrayObj[name.value]; }); } else if (isEnumValue(value)) { argObj[name.value] = value.value; } else if (isNullValue(value)) { argObj[name.value] = null; } else { throw new Error("The inline argument \"" + name.value + "\" of kind \"" + value.kind + "\" is not supported.\n Use variables instead of inline arguments to overcome this limitation."); } } function storeKeyNameFromField(field, variables) { var directivesObj = null; if (field.directives) { directivesObj = {}; field.directives.forEach(function (directive) { directivesObj[directive.name.value] = {}; if (directive.arguments) { directive.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables); }); } }); } var argObj = null; if (field.arguments && field.arguments.length) { argObj = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj, name, value, variables); }); } return getStoreKeyName(field.name.value, argObj, directivesObj); } var KNOWN_DIRECTIVES = [ 'connection', 'include', 'skip', 'client', 'rest', 'export', ]; function getStoreKeyName(fieldName, args, directives) { if (directives && directives['connection'] && directives['connection']['key']) { if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) { var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : []; filterKeys.sort(); var queryArgs_1 = args; var filteredArgs_1 = {}; filterKeys.forEach(function (key) { filteredArgs_1[key] = queryArgs_1[key]; }); return directives['connection']['key'] + "(" + JSON.stringify(filteredArgs_1) + ")"; } else { return directives['connection']['key']; } } var completeFieldName = fieldName; if (args) { // We can't use `JSON.stringify` here since it's non-deterministic, // and can lead to different store key names being created even though // the `args` object used during creation has the same properties/values. var stringifiedArgs = fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default()(args); completeFieldName += "(" + stringifiedArgs + ")"; } if (directives) { Object.keys(directives).forEach(function (key) { if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return; if (directives[key] && Object.keys(directives[key]).length) { completeFieldName += "@" + key + "(" + JSON.stringify(directives[key]) + ")"; } else { completeFieldName += "@" + key; } }); } return completeFieldName; } function argumentsObjectFromField(field, variables) { if (field.arguments && field.arguments.length) { var argObj_1 = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj_1, name, value, variables); }); return argObj_1; } return null; } function resultKeyNameFromField(field) { return field.alias ? field.alias.value : field.name.value; } function isField(selection) { return selection.kind === 'Field'; } function isInlineFragment(selection) { return selection.kind === 'InlineFragment'; } function isIdValue(idObject) { return idObject && idObject.type === 'id'; } function toIdValue(idConfig, generated) { if (generated === void 0) { generated = false; } return __assign({ type: 'id', generated: generated }, (typeof idConfig === 'string' ? { id: idConfig, typename: undefined } : idConfig)); } function isJsonValue(jsonObject) { return (jsonObject != null && typeof jsonObject === 'object' && jsonObject.type === 'json'); } function defaultValueFromVariable(node) { throw new Error("Variable nodes are not supported by valueFromNode"); } /** * Evaluate a ValueNode and yield its value in its natural JS form. */ function valueFromNode(node, onVariable) { if (onVariable === void 0) { onVariable = defaultValueFromVariable; } switch (node.kind) { case 'Variable': return onVariable(node); case 'NullValue': return null; case 'IntValue': return parseInt(node.value, 10); case 'FloatValue': return parseFloat(node.value); case 'ListValue': return node.values.map(function (v) { return valueFromNode(v, onVariable); }); case 'ObjectValue': { var value = {}; for (var _i = 0, _a = node.fields; _i < _a.length; _i++) { var field = _a[_i]; value[field.name.value] = valueFromNode(field.value, onVariable); } return value; } default: return node.value; } } //# sourceMappingURL=storeUtils.js.map /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (data, opts) { if (!opts) opts = {}; if (typeof opts === 'function') opts = { cmp: opts }; var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false; var cmp = opts.cmp && (function (f) { return function (node) { return function (a, b) { var aobj = { key: a, value: node[a] }; var bobj = { key: b, value: node[b] }; return f(aobj, bobj); }; }; })(opts.cmp); var seen = []; return (function stringify (node) { if (node && node.toJSON && typeof node.toJSON === 'function') { node = node.toJSON(); } if (node === undefined) return; if (typeof node == 'number') return isFinite(node) ? '' + node : 'null'; if (typeof node !== 'object') return JSON.stringify(node); var i, out; if (Array.isArray(node)) { out = '['; for (i = 0; i < node.length; i++) { if (i) out += ','; out += stringify(node[i]) || 'null'; } return out + ']'; } if (node === null) return 'null'; if (seen.indexOf(node) !== -1) { if (cycles) return JSON.stringify('__cycle__'); throw new TypeError('Converting circular structure to JSON'); } var seenIndex = seen.push(node) - 1; var keys = Object.keys(node).sort(cmp && cmp(node)); out = ''; for (i = 0; i < keys.length; i++) { var key = keys[i]; var value = stringify(node[key]); if (!value) continue; if (out) out += ','; out += JSON.stringify(key) + ':' + value; } seen.splice(seenIndex, 1); return '{' + out + '}'; })(data); }; /***/ }), /* 142 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEnv", function() { return getEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEnv", function() { return isEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProduction", function() { return isProduction; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDevelopment", function() { return isDevelopment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTest", function() { return isTest; }); function getEnv() { if (typeof process !== 'undefined' && "production") { return "production"; } // default environment return 'development'; } function isEnv(env) { return getEnv() === env; } function isProduction() { return isEnv('production') === true; } function isDevelopment() { return isEnv('development') === true; } function isTest() { return isEnv('test') === true; } //# sourceMappingURL=environment.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(78))) /***/ }), /* 143 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _zenObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(203); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return _zenObservable__WEBPACK_IMPORTED_MODULE_0__["Observable"]; }); /* harmony default export */ __webpack_exports__["default"] = (_zenObservable__WEBPACK_IMPORTED_MODULE_0__["Observable"]); //# sourceMappingURL=index.js.map /***/ }), /* 144 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isApolloError", function() { return isApolloError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApolloError", function() { return ApolloError; }); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); function isApolloError(err) { return err.hasOwnProperty('graphQLErrors'); } // Sets the error message on this error according to the // the GraphQL and network errors that are present. // If the error message has already been set through the // constructor or otherwise, this function is a nop. var generateErrorMessage = function (err) { var message = ''; // If we have GraphQL errors present, add that to the error message. if (Array.isArray(err.graphQLErrors) && err.graphQLErrors.length !== 0) { err.graphQLErrors.forEach(function (graphQLError) { var errorMessage = graphQLError ? graphQLError.message : 'Error message not found.'; message += "GraphQL error: " + errorMessage + "\n"; }); } if (err.networkError) { message += 'Network error: ' + err.networkError.message + '\n'; } // strip newline from the end of the message message = message.replace(/\n$/, ''); return message; }; var ApolloError = /** @class */ (function (_super) { __extends(ApolloError, _super); // Constructs an instance of ApolloError given a GraphQLError // or a network error. Note that one of these has to be a valid // value or the constructed error will be meaningless. function ApolloError(_a) { var graphQLErrors = _a.graphQLErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo; var _this = _super.call(this, errorMessage) || this; _this.graphQLErrors = graphQLErrors || []; _this.networkError = networkError || null; if (!errorMessage) { _this.message = generateErrorMessage(_this); } else { _this.message = errorMessage; } _this.extraInfo = extraInfo; // We're not using `Object.setPrototypeOf` here as it isn't fully // supported on Android (see issue #3236). _this.__proto__ = ApolloError.prototype; return _this; } return ApolloError; }(Error)); //# sourceMappingURL=ApolloError.js.map /***/ }), /* 145 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScalarValue", function() { return isScalarValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumberValue", function() { return isNumberValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueToObjectRepresentation", function() { return valueToObjectRepresentation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storeKeyNameFromField", function() { return storeKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStoreKeyName", function() { return getStoreKeyName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "argumentsObjectFromField", function() { return argumentsObjectFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultKeyNameFromField", function() { return resultKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isField", function() { return isField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInlineFragment", function() { return isInlineFragment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIdValue", function() { return isIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toIdValue", function() { return toIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isJsonValue", function() { return isJsonValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueFromNode", function() { return valueFromNode; }); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(141); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0__); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function isScalarValue(value) { return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1; } function isNumberValue(value) { return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1; } function isStringValue(value) { return value.kind === 'StringValue'; } function isBooleanValue(value) { return value.kind === 'BooleanValue'; } function isIntValue(value) { return value.kind === 'IntValue'; } function isFloatValue(value) { return value.kind === 'FloatValue'; } function isVariable(value) { return value.kind === 'Variable'; } function isObjectValue(value) { return value.kind === 'ObjectValue'; } function isListValue(value) { return value.kind === 'ListValue'; } function isEnumValue(value) { return value.kind === 'EnumValue'; } function isNullValue(value) { return value.kind === 'NullValue'; } function valueToObjectRepresentation(argObj, name, value, variables) { if (isIntValue(value) || isFloatValue(value)) { argObj[name.value] = Number(value.value); } else if (isBooleanValue(value) || isStringValue(value)) { argObj[name.value] = value.value; } else if (isObjectValue(value)) { var nestedArgObj_1 = {}; value.fields.map(function (obj) { return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables); }); argObj[name.value] = nestedArgObj_1; } else if (isVariable(value)) { var variableValue = (variables || {})[value.name.value]; argObj[name.value] = variableValue; } else if (isListValue(value)) { argObj[name.value] = value.values.map(function (listValue) { var nestedArgArrayObj = {}; valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables); return nestedArgArrayObj[name.value]; }); } else if (isEnumValue(value)) { argObj[name.value] = value.value; } else if (isNullValue(value)) { argObj[name.value] = null; } else { throw new Error("The inline argument \"" + name.value + "\" of kind \"" + value.kind + "\"" + 'is not supported. Use variables instead of inline arguments to ' + 'overcome this limitation.'); } } function storeKeyNameFromField(field, variables) { var directivesObj = null; if (field.directives) { directivesObj = {}; field.directives.forEach(function (directive) { directivesObj[directive.name.value] = {}; if (directive.arguments) { directive.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables); }); } }); } var argObj = null; if (field.arguments && field.arguments.length) { argObj = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj, name, value, variables); }); } return getStoreKeyName(field.name.value, argObj, directivesObj); } var KNOWN_DIRECTIVES = [ 'connection', 'include', 'skip', 'client', 'rest', 'export', ]; function getStoreKeyName(fieldName, args, directives) { if (directives && directives['connection'] && directives['connection']['key']) { if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) { var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : []; filterKeys.sort(); var queryArgs_1 = args; var filteredArgs_1 = {}; filterKeys.forEach(function (key) { filteredArgs_1[key] = queryArgs_1[key]; }); return directives['connection']['key'] + "(" + JSON.stringify(filteredArgs_1) + ")"; } else { return directives['connection']['key']; } } var completeFieldName = fieldName; if (args) { var stringifiedArgs = fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_0___default()(args); completeFieldName += "(" + stringifiedArgs + ")"; } if (directives) { Object.keys(directives).forEach(function (key) { if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return; if (directives[key] && Object.keys(directives[key]).length) { completeFieldName += "@" + key + "(" + JSON.stringify(directives[key]) + ")"; } else { completeFieldName += "@" + key; } }); } return completeFieldName; } function argumentsObjectFromField(field, variables) { if (field.arguments && field.arguments.length) { var argObj_1 = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj_1, name, value, variables); }); return argObj_1; } return null; } function resultKeyNameFromField(field) { return field.alias ? field.alias.value : field.name.value; } function isField(selection) { return selection.kind === 'Field'; } function isInlineFragment(selection) { return selection.kind === 'InlineFragment'; } function isIdValue(idObject) { return idObject && idObject.type === 'id' && typeof idObject.generated === 'boolean'; } function toIdValue(idConfig, generated) { if (generated === void 0) { generated = false; } return __assign({ type: 'id', generated: generated }, (typeof idConfig === 'string' ? { id: idConfig, typename: undefined } : idConfig)); } function isJsonValue(jsonObject) { return (jsonObject != null && typeof jsonObject === 'object' && jsonObject.type === 'json'); } function defaultValueFromVariable(node) { throw new Error("Variable nodes are not supported by valueFromNode"); } function valueFromNode(node, onVariable) { if (onVariable === void 0) { onVariable = defaultValueFromVariable; } switch (node.kind) { case 'Variable': return onVariable(node); case 'NullValue': return null; case 'IntValue': return parseInt(node.value, 10); case 'FloatValue': return parseFloat(node.value); case 'ListValue': return node.values.map(function (v) { return valueFromNode(v, onVariable); }); case 'ObjectValue': { var value = {}; for (var _i = 0, _a = node.fields; _i < _a.length; _i++) { var field = _a[_i]; value[field.name.value] = valueFromNode(field.value, onVariable); } return value; } default: return node.value; } } //# sourceMappingURL=storeUtils.js.map /***/ }), /* 146 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEnv", function() { return getEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEnv", function() { return isEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProduction", function() { return isProduction; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDevelopment", function() { return isDevelopment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTest", function() { return isTest; }); function getEnv() { if (typeof process !== 'undefined' && "production") { return "production"; } return 'development'; } function isEnv(env) { return getEnv() === env; } function isProduction() { return isEnv('production') === true; } function isDevelopment() { return isEnv('development') === true; } function isTest() { return isEnv('test') === true; } //# sourceMappingURL=environment.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(78))) /***/ }), /* 147 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InvariantError", function() { return InvariantError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "invariant", function() { return invariant; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "process", function() { return processStub; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(691); var genericMessage = "Invariant Violation"; var _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) { obj.__proto__ = proto; return obj; } : _a; var InvariantError = /** @class */ (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(InvariantError, _super); function InvariantError(message) { if (message === void 0) { message = genericMessage; } var _this = _super.call(this, typeof message === "number" ? genericMessage + ": " + message + " (see https://github.com/apollographql/invariant-packages)" : message) || this; _this.framesToPop = 1; _this.name = genericMessage; setPrototypeOf(_this, InvariantError.prototype); return _this; } return InvariantError; }(Error)); function invariant(condition, message) { if (!condition) { throw new InvariantError(message); } } function wrapConsoleMethod(method) { return function () { return console[method].apply(console, arguments); }; } (function (invariant) { invariant.warn = wrapConsoleMethod("warn"); invariant.error = wrapConsoleMethod("error"); })(invariant || (invariant = {})); // Code that uses ts-invariant with rollup-plugin-invariant may want to // import this process stub to avoid errors evaluating process.env.NODE_ENV. // However, because most ESM-to-CJS compilers will rewrite the process import // as tsInvariant.process, which prevents proper replacement by minifiers, we // also attempt to define the stub globally when it is not already defined. var processStub = { env: {} }; if (typeof process === "object") { processStub = process; } else try { // Using Function to evaluate this assignment in global scope also escapes // the strict mode of the current module, thereby allowing the assignment. // Inspired by https://github.com/facebook/regenerator/pull/369. Function("stub", "process = stub")(processStub); } catch (atLeastWeTried) { // The assignment can fail if a Content Security Policy heavy-handedly // forbids Function usage. In those environments, developers should take // extra care to replace process.env.NODE_ENV in their production builds, // or define an appropriate global.process polyfill. } var invariant$1 = invariant; /* harmony default export */ __webpack_exports__["default"] = (invariant$1); //# sourceMappingURL=invariant.esm.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(78))) /***/ }), /* 148 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "equal", function() { return equal; }); var _a = Object.prototype, toString = _a.toString, hasOwnProperty = _a.hasOwnProperty; var previousComparisons = new Map(); /** * Performs a deep equality check on two JavaScript values, tolerating cycles. */ function equal(a, b) { try { return check(a, b); } finally { previousComparisons.clear(); } } function check(a, b) { // If the two values are strictly equal, our job is easy. if (a === b) { return true; } // Object.prototype.toString returns a representation of the runtime type of // the given value that is considerably more precise than typeof. var aTag = toString.call(a); var bTag = toString.call(b); // If the runtime types of a and b are different, they could maybe be equal // under some interpretation of equality, but for simplicity and performance // we just return false instead. if (aTag !== bTag) { return false; } switch (aTag) { case '[object Array]': // Arrays are a lot like other objects, but we can cheaply compare their // lengths as a short-cut before comparing their elements. if (a.length !== b.length) return false; // Fall through to object case... case '[object Object]': { if (previouslyCompared(a, b)) return true; var aKeys = Object.keys(a); var bKeys = Object.keys(b); // If `a` and `b` have a different number of enumerable keys, they // must be different. var keyCount = aKeys.length; if (keyCount !== bKeys.length) return false; // Now make sure they have the same keys. for (var k = 0; k < keyCount; ++k) { if (!hasOwnProperty.call(b, aKeys[k])) { return false; } } // Finally, check deep equality of all child properties. for (var k = 0; k < keyCount; ++k) { var key = aKeys[k]; if (!check(a[key], b[key])) { return false; } } return true; } case '[object Error]': return a.name === b.name && a.message === b.message; case '[object Number]': // Handle NaN, which is !== itself. if (a !== a) return b !== b; // Fall through to shared +a === +b case... case '[object Boolean]': case '[object Date]': return +a === +b; case '[object RegExp]': case '[object String]': return a == "" + b; case '[object Map]': case '[object Set]': { if (a.size !== b.size) return false; if (previouslyCompared(a, b)) return true; var aIterator = a.entries(); var isMap = aTag === '[object Map]'; while (true) { var info = aIterator.next(); if (info.done) break; // If a instanceof Set, aValue === aKey. var _a = info.value, aKey = _a[0], aValue = _a[1]; // So this works the same way for both Set and Map. if (!b.has(aKey)) { return false; } // However, we care about deep equality of values only when dealing // with Map structures. if (isMap && !check(aValue, b.get(aKey))) { return false; } } return true; } } // Otherwise the values are not equal. return false; } function previouslyCompared(a, b) { // Though cyclic references can make an object graph appear infinite from the // perspective of a depth-first traversal, the graph still contains a finite // number of distinct object references. We use the previousComparisons cache // to avoid comparing the same pair of object references more than once, which // guarantees termination (even if we end up comparing every object in one // graph to every object in the other graph, which is extremely unlikely), // while still allowing weird isomorphic structures (like rings with different // lengths) a chance to pass the equality test. var bSet = previousComparisons.get(a); if (bSet) { // Return true here because we can be sure false will be returned somewhere // else if the objects are not equivalent. if (bSet.has(b)) return true; } else { previousComparisons.set(a, bSet = new Set); } bSet.add(b); return false; } /* harmony default export */ __webpack_exports__["default"] = (equal); //# sourceMappingURL=equality.esm.js.map /***/ }), /* 149 */ /***/ (function(module, exports) { function _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); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } module.exports = _createClass; /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _RenderingUtils = __webpack_require__(744); Object.keys(_RenderingUtils).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _RenderingUtils[key]; } }); }); /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.renderTree = exports.applySkuBoundConditionalVisibility = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _Transformers = __webpack_require__(368); var _escape = _interopRequireDefault(__webpack_require__(225)); var _cloneDeep = _interopRequireDefault(__webpack_require__(791)); var _transform = _interopRequireDefault(__webpack_require__(806)); var _constants = __webpack_require__(19); var _constants2 = __webpack_require__(111); var _RenderingUtils = __webpack_require__(150); var _commerceUtils = __webpack_require__(37); var _DynamoFormattingUtils = __webpack_require__(369); var _Commerce = __webpack_require__(355); /* globals window, document, HTMLElement */ var allowedFieldTypes = (0, _extends2["default"])({}, _constants2.SHARED_ALLOWED_FIELD_TYPES, { 'data-commerce-sku-id': ['ItemRef'] }); var isBindingPropToFieldTypeAllowed = function isBindingPropToFieldTypeAllowed(bindingProperty, type) { var allowedTypes = allowedFieldTypes[bindingProperty]; return allowedTypes instanceof Array ? allowedTypes.indexOf(type) > -1 : allowedTypes && type in allowedTypes; }; var getIn = function getIn(object, path) { var nextDotIndex = path.indexOf('.'); if (object == null) { return null; } if (nextDotIndex !== -1) { var pathPart = path.slice(0, nextDotIndex); var restOfPath = path.slice(nextDotIndex + 1, path.length); return getIn(object[pathPart], restOfPath); } return object[path]; }; var applyBindingsMutation = function applyBindingsMutation(_ref) { var bindingProperty = _ref.bindingProperty, type = _ref.type, filter = _ref.filter, path = _ref.path, timezone = _ref.timezone, pageLinkHrefPrefix = _ref.pageLinkHrefPrefix, _ref$collectionSlugMa = _ref.collectionSlugMap, collectionSlugMap = _ref$collectionSlugMa === void 0 ? {} : _ref$collectionSlugMa, data = _ref.data, node = _ref.node, _ref$emailLinkSubject = _ref.emailLinkSubject, emailLinkSubject = _ref$emailLinkSubject === void 0 ? '' : _ref$emailLinkSubject; if (!isBindingPropToFieldTypeAllowed(bindingProperty, type)) { return; } var prefix = 'data.'; var suffix = ''; if (type === 'ImageRef' && bindingProperty === 'src') { suffix = '.url'; } var rawValue; if (type === 'CommercePropValues') { rawValue = getCommercePropValue(data, "".concat(prefix).concat(path)); } else { rawValue = getIn(data, "".concat(prefix).concat(path).concat(suffix)); } var transformedValue = (0, _Transformers.transformers)(rawValue, filter, { timezone: timezone, pageLinkHrefPrefix: pageLinkHrefPrefix, collectionSlugMap: collectionSlugMap, currencySettings: window.__WEBFLOW_CURRENCY_SETTINGS }); var detailPageHref = filter.type === 'detailPage' ? transformedValue : null; var propertyMutator = getPropertyMutator(bindingProperty, emailLinkSubject, detailPageHref); if (typeof propertyMutator === 'function') { propertyMutator(node, type, transformedValue); } }; var applyBindings = function applyBindings(bindings, data, node) { if (bindings == null) { return; } bindings.forEach(function (binding) { Object.keys(binding).forEach(function (bindingProperty) { var bindingValue = binding[bindingProperty]; var type = bindingValue.type, filter = bindingValue.filter, path = bindingValue.dataPath, timezone = bindingValue.timezone, pageLinkHrefPrefix = bindingValue.pageLinkHrefPrefix, collectionSlugMap = bindingValue.collectionSlugMap, emailLinkSubject = bindingValue.emailLinkSubject; applyBindingsMutation({ bindingProperty: bindingProperty, type: type, filter: filter, path: path, timezone: timezone, pageLinkHrefPrefix: pageLinkHrefPrefix, collectionSlugMap: collectionSlugMap, data: data, node: node, emailLinkSubject: emailLinkSubject }); }); }); }; var applyConditionalVisibility = function applyConditionalVisibility(conditionData, data, node) { if (!conditionData) { return; } var dataPath = conditionData.dataPath, meta = conditionData.meta; var prefixedDataPath = "data.".concat(dataPath); // manually construct item when the condition is bound to Product Options var item = meta && meta.type === 'CommercePropValues' ? { name: getIn(data, "".concat(prefixedDataPath, ".name")), value: getCommercePropValue(data, prefixedDataPath) } : getIn(data, prefixedDataPath); (0, _RenderingUtils.applyConditionToNode)(node, item, conditionData, true); }; var applySkuBoundConditionalVisibility = function applySkuBoundConditionalVisibility(_ref2) { var conditionData = _ref2.conditionData, newSkuItem = _ref2.newSkuItem, node = _ref2.node; var condition = conditionData.condition; var skuConditionData = (0, _transform["default"])(condition.fields, function (data, val, field) { var skuField = field.split('default-sku:'); if (skuField.length > 1) { data[skuField[1]] = val; return data; } }); // Need to flatten the inventory quantity to allow cond vis bound to inventory counts var inventoryQuantity = newSkuItem.inventory.type === 'infinite' ? null : newSkuItem.inventory.quantity; var itemWithFlattenedInventory = (0, _extends2["default"])({}, newSkuItem, { ecSkuInventoryQuantity: inventoryQuantity }); (0, _RenderingUtils.applyConditionToNode)(node, itemWithFlattenedInventory, (0, _extends2["default"])({}, conditionData, { condition: { fields: skuConditionData } }), true); }; exports.applySkuBoundConditionalVisibility = applySkuBoundConditionalVisibility; var createStyleMutator = function createStyleMutator(property) { return function (node, type, value) { if (!(node instanceof HTMLElement && typeof value === 'string')) { return; } if (type === 'ImageRef') { node.style.setProperty(property, "url(".concat(value, ")")); } node.style.setProperty(property, value); }; }; var createAttributeMutator = function createAttributeMutator(attribute) { return function (node, type, value) { var sanitizedString = value != null ? String(value) : ''; node.setAttribute(attribute, sanitizedString); if (attribute === 'src' && sanitizedString) { (0, _RenderingUtils.removeWDynBindEmptyClass)(node); } }; }; var valueMutator = function valueMutator(node, type, value) { if (node.hasRendered) { return; } var sanitizedString; // if it's a select element, and we have no value, we default to the last value // this was added for the case of the first render of the country select field // so that it isn't a blank select box when it's a new order without a country set if (node.tagName === 'SELECT') { sanitizedString = value != null ? String(value) : node.value || ''; } else { sanitizedString = value != null ? String(value) : ''; } node.setAttribute('value', sanitizedString); if (node.tagName === 'INPUT' && String(node.type).toLowerCase() === 'text') { node.hasRendered = true; } node.value = sanitizedString; }; var checkedMutator = function checkedMutator(node, type, value) { node.checked = Boolean(value); }; var aspectRatio = function aspectRatio(_ref3) { var height = _ref3.height, width = _ref3.width; return height && width ? height / width : 0; }; var mutators = { innerHTML: function innerHTML(node, type, value) { var originalValue = value; if (type === 'Video') { /* TODO handle also innerHTML Video Links For example, innerHTML: [ { id: 'video-id', slug: 'video', type: 'Video', }, { id: 'url', slug: 'url', type: 'Link', }, ], */ value = value != null && value.metadata != null && typeof value.metadata.html === 'string' ? value.metadata.html : null; } var valueString = value != null ? String(value) : ''; if (allowedFieldTypes.innerHTML[type] === 'innerHTML') { node.innerHTML = valueString; } else if (allowedFieldTypes.innerHTML[type] === 'innerText') { node.innerHTML = (0, _escape["default"])(valueString); } // Videos have their `padding-top` style set automatically to make them responsive, and are a locked style. // This is usually done in `shared/render/plugins/Embed/Video.jsx` on the server render. However, the render-time value // when rendering the cart is `0`, as the server does not have the associated data from the binding passed to it at // render-time, since we're not getting that data until we do the client-side render, after fetching the cart data. // So, along with setting the proper innerHTML binding for the embed itself, we also have to do an exception here // and set the `padding-top` to the video's aspect ratio (height over width). if (type === 'Video' && originalValue && originalValue.metadata && node instanceof HTMLElement) { node.style.setProperty('padding-top', "".concat(aspectRatio(originalValue.metadata) * 100, "%")); } if (node.innerHTML) { (0, _RenderingUtils.removeWDynBindEmptyClass)(node); } }, 'style.color': createStyleMutator('color'), 'style.background-color': createStyleMutator('background-color'), 'style.border-color': createStyleMutator('border-color'), 'style.background-image': createStyleMutator('background-image'), src: createAttributeMutator('src'), alt: createAttributeMutator('alt'), id: createAttributeMutator('id'), "for": createAttributeMutator('for'), value: valueMutator, checked: checkedMutator, 'data-commerce-sku-id': createAttributeMutator('data-commerce-sku-id') }; var hrefMutator = function hrefMutator(emailLinkSubject, detailPageHref) { return function (node, type, value) { if (detailPageHref) { node.setAttribute('href', String(detailPageHref) || '#'); } if (value) { var href = String(value); switch (type) { case 'Phone': { node.setAttribute('href', (0, _DynamoFormattingUtils.formatPhone)(href, 'href')); break; } case 'Email': { var subject; try { subject = encodeURIComponent(emailLinkSubject); } catch (e) { subject = ''; } var formattedEmail = (0, _DynamoFormattingUtils.formatEmail)(href, subject, 'href'); node.setAttribute('href', formattedEmail || '#'); break; } default: { node.setAttribute('href', href); break; } } } else { node.setAttribute('href', '#'); } }; }; var getPropertyMutator = function getPropertyMutator(bindingProperty, emailLinkSubject, detailPageHref) { if (bindingProperty === 'href' || detailPageHref) { return hrefMutator(emailLinkSubject, detailPageHref); } if (typeof mutators[bindingProperty] === 'function') { return mutators[bindingProperty]; } return null; }; var getCommercePropValue = function getCommercePropValue(data, path) { var option = getIn(data, path); if (option) { var pathToOptionAsArray = path.split('.'); var pathToCommercePropValues = pathToOptionAsArray.slice(0, pathToOptionAsArray.indexOf('product')).concat(['sku', 'f_sku_values_3dr']).join('.'); var skuValues = getIn(data, pathToCommercePropValues); if (Array.isArray(skuValues)) { return (0, _Commerce.getProductOptionValueName)(option, (0, _Commerce.simplifySkuValues)(skuValues)); } } return ''; }; var getTemplateScript = function getTemplateScript(node) { var templateId = node.getAttribute(_constants.WF_TEMPLATE_ID_DATA_KEY); var templateScript = templateId && node.parentElement && node.parentElement.querySelector("#".concat(templateId)); return templateScript; }; var createDomFragment = function createDomFragment(html) { var div = document.createElement('div'); div.innerHTML = html; return div.children[0]; }; var getTemplateString = function getTemplateString(node, index) { var templateScript = getTemplateScript(node); var rawTemplateContent = templateScript && templateScript.textContent; var instanceRegEx = /([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}_instance-)\d+/gi; var decodedTemplate = rawTemplateContent && decodeURIComponent(rawTemplateContent).replace(instanceRegEx, "$1".concat(index)); if (Boolean(decodedTemplate) && node.hasAttribute(_constants.WF_COLLECTION_DATA_KEY)) { var collectionPath = node.getAttribute(_constants.WF_COLLECTION_DATA_KEY); if (collectionPath && typeof collectionPath === 'string') { var searchTerm = encodeURIComponent("".concat((0, _escape["default"])(collectionPath), "[]")).replace(/\./g, '\\.'); var templateSearchTerm = encodeURIComponent("".concat((0, _escape["default"])(collectionPath)).concat(encodeURIComponent('[]'))).replace(/\./g, '\\.'); var collectionPathRegExp = new RegExp("".concat(searchTerm, "|").concat(templateSearchTerm), 'g'); return decodedTemplate && decodedTemplate.replace(collectionPathRegExp, "".concat(collectionPath, ".").concat(index)); } } return decodedTemplate; }; var getTemplateCollection = function getTemplateCollection(node, data) { var collectionPath = node.hasAttribute(_constants.WF_COLLECTION_DATA_KEY) && node.getAttribute(_constants.WF_COLLECTION_DATA_KEY); return collectionPath ? getIn(data, "data.".concat(collectionPath)) : []; }; var checkForAndApplyTemplateCollection = function checkForAndApplyTemplateCollection(node, data) { if (node && node.hasAttribute(_constants.WF_TEMPLATE_ID_DATA_KEY)) { var collection = getTemplateCollection(node, data); node.innerHTML = ''; if (collection != null && collection.length > 0) { for (var index = 0; index < collection.length; index++) { var templateString = getTemplateString(node, index); var template = templateString && createDomFragment(templateString); if (template instanceof Element) { if (typeof node.append === 'function') { node.append(renderTree(template, data)); } else if (typeof node.appendChild === 'function') { node.appendChild(renderTree(template, data)); } else { throw new Error('Could not append child to node'); } } } } } }; var checkForAndApplyBindings = function checkForAndApplyBindings(node, data) { if (node && node.hasAttribute(_constants.WF_BINDING_DATA_KEY)) { var bindingData = (0, _commerceUtils.safeParseJson)(node.getAttribute(_constants.WF_BINDING_DATA_KEY)); applyBindings(bindingData, data, node); } }; var checkForAndApplyConditionalVisibility = function checkForAndApplyConditionalVisibility(node, data) { if (node && node.hasAttribute(_constants.WF_CONDITION_DATA_KEY)) { var conditionData = (0, _commerceUtils.safeParseJson)(node.getAttribute(_constants.WF_CONDITION_DATA_KEY)); applyConditionalVisibility(conditionData, data, node); } }; var renderTree = function renderTree(tree, data) { data = flattenOrderData(data); return (0, _RenderingUtils.walkDOM)(tree, function (node) { checkForAndApplyTemplateCollection(node, data); checkForAndApplyBindings(node, data); checkForAndApplyConditionalVisibility(node, data); }); }; exports.renderTree = renderTree; var shippingDataReplacementPaths = { cardProvider: ['customerInfo', 'stripePayment', 'card', 'provider'], cardLastFour: ['customerInfo', 'stripePayment', 'card', 'last4'], cardExpiresMonth: ['customerInfo', 'stripePayment', 'card', 'expires', 'month'], cardExpiresYear: ['customerInfo', 'stripePayment', 'card', 'expires', 'year'], customerEmail: ['customerInfo', 'identity', 'email'], shippingAddressAddressee: ['customerInfo', 'shippingAddress', 'addressee'], shippingAddressLine1: ['customerInfo', 'shippingAddress', 'line1'], shippingAddressLine2: ['customerInfo', 'shippingAddress', 'line2'], shippingAddressCity: ['customerInfo', 'shippingAddress', 'city'], shippingAddressState: ['customerInfo', 'shippingAddress', 'state'], shippingAddressCountry: ['customerInfo', 'shippingAddress', 'country'], shippingAddressPostalCode: ['customerInfo', 'shippingAddress', 'postalCode'], billingAddressAddressee: ['customerInfo', 'billingAddress', 'addressee'], billingAddressLine1: ['customerInfo', 'billingAddress', 'line1'], billingAddressLine2: ['customerInfo', 'billingAddress', 'line2'], billingAddressCity: ['customerInfo', 'billingAddress', 'city'], billingAddressPostalCode: ['customerInfo', 'billingAddress', 'postalCode'], billingAddressState: ['customerInfo', 'billingAddress', 'state'], billingAddressCountry: ['customerInfo', 'billingAddress', 'country'], requiresShipping: ['statusFlags', 'requiresShipping'], hasDownloads: ['statusFlags', 'hasDownloads'] }; var flattenCustomData = function flattenCustomData(customData) { return customData.reduce(function (flattenedData, data) { if (data.textArea) { flattenedData.additionalTextArea = data.textArea; } else if (data.textInput) { flattenedData.additionalTextInput = data.textInput; } else if (data.checkbox !== null) { flattenedData.additionalCheckbox = data.checkbox; } return flattenedData; }, {}); }; var flattenOrderData = function flattenOrderData(data) { var orderExists = data && data.data && data.data.database && data.data.database.commerceOrder !== null; if (!orderExists) { return data; } // $FlowIgnore commerceOrder is defined if we've gotten here var commerceOrder = data.data.database.commerceOrder; // $FlowIgnore commerceOrder is defined if we've gotten here var paymentProcessor = commerceOrder.paymentProcessor; // $FlowIgnore commerceOrder is defined if we've gotten here var availableShippingMethods = commerceOrder.availableShippingMethods || []; var selectedShippingMethod = availableShippingMethods.find(function (shippingMethod) { return shippingMethod.selected === true; }); // $FlowIgnore commerceOrder is defined if we've gotten here var flattenedCustomData = commerceOrder.customData ? flattenCustomData(commerceOrder.customData) : {}; var flattenedOrderData = (0, _extends2["default"])({}, commerceOrder, { shippingMethodName: selectedShippingMethod && selectedShippingMethod.name, shippingMethodDescription: selectedShippingMethod && selectedShippingMethod.description }, flattenedCustomData); // We have to deep clone the data here, as the properties from the data // returned by Apollo are read-only. var clonedData = (0, _cloneDeep["default"])(data); clonedData.data.database.commerceOrder = Object.keys(shippingDataReplacementPaths).reduce(function (updatedData, flattenPath) { // Override cardProvider for PayPal order if (flattenPath === 'cardProvider' && paymentProcessor === 'paypal') { updatedData = (0, _extends2["default"])({}, updatedData, { cardProvider: 'PayPal' }); return updatedData; } var replacementFrom = shippingDataReplacementPaths[flattenPath]; var replacementData = replacementFrom.reduce(function (acc, key) { return acc && acc[key]; }, updatedData); updatedData[flattenPath] = replacementData; return updatedData; }, flattenedOrderData); return clonedData; }; /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.applyDiscount = exports.redirectToOrderConfirmation = exports.orderRequiresAdditionalAction = exports.getOrderDataFromGraphQLResponse = exports.createAttemptSubmitOrderRequest = exports.renderCheckoutFormContainers = exports.createUpdateObfuscatedOrderAddressMutation = exports.createRecalcOrderEstimationsMutation = exports.createStripePaymentMethodMutation = exports.createCustomDataMutation = exports.createOrderShippingMethodMutation = exports.createOrderAddressMutation = exports.createOrderIdentityMutation = exports.beforeUnloadHandler = exports.showErrorMessageForError = exports.updateErrorMessage = exports.initializeStripeElements = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _apolloClient = _interopRequireDefault(__webpack_require__(137)); var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var _commerceUtils = __webpack_require__(37); var _StyleMapObserver = _interopRequireDefault(__webpack_require__(341)); var _stripeStore = __webpack_require__(109); var _constants = __webpack_require__(19); var _rendering = __webpack_require__(151); var _webPaymentsEvents = __webpack_require__(226); var _checkoutMutations = __webpack_require__(376); /* globals window, document, Event, HTMLInputElement */ var syncStylesToStripeElement = function syncStylesToStripeElement(stripeElement) { return function (appliedStyles) { stripeElement.update({ style: _StyleMapObserver["default"].appliedStylesToStripeElementStyles(appliedStyles) }); }; }; var initializeStripeElements = function initializeStripeElements(store) { if (window.Webflow.env('design') || window.Webflow.env('preview') || !store.isInitialized()) { return; } var checkoutFormContainers = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER); var cartWrappers = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER); var allStripeElements = [].concat((0, _toConsumableArray2["default"])(checkoutFormContainers), (0, _toConsumableArray2["default"])(cartWrappers)); allStripeElements.forEach(function (element, index) { store.createElementsInstance(index); element.setAttribute(_constants.STRIPE_ELEMENT_INSTANCE, String(index)); }); var stripeElements = document.querySelectorAll("[".concat(_constants.STRIPE_ELEMENT_TYPE, "]")); Array.from(stripeElements).forEach(function (element) { var type = element.getAttribute(_constants.STRIPE_ELEMENT_TYPE); if (!type) { throw new Error('Stripe element missing type string'); } var checkoutFormContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, element); if (!checkoutFormContainer) { return; } var index = parseInt(checkoutFormContainer.getAttribute(_constants.STRIPE_ELEMENT_INSTANCE), 10); var el = store.createElement(type, index, { style: (0, _commerceUtils.safeParseJson)(element.getAttribute(_constants.STRIPE_ELEMENT_STYLE) || '{}'), classes: { focus: '-wfp-focus' } }); el.mount(element); // eslint-disable-next-line no-unused-vars var styleMapObserver = new _StyleMapObserver["default"](element, { onChange: syncStylesToStripeElement(el) }); }); }; exports.initializeStripeElements = initializeStripeElements; var errorCodeToCheckoutErrorType = function errorCodeToCheckoutErrorType(code, msg) { switch (code) { case 'OrderTotalRange': if (msg && msg.match(/too small/i)) { return 'minimum'; } else { return 'info'; } case 'OrderExtrasChanged': return 'extras'; case 'PriceChanged': return 'pricing'; case 'StripeRejected': return 'billing'; case 'NeedShippingAddress': case 'InvalidShippingAddress': case 'NeedShippingMethod': return 'shipping'; case 'NeedPaymentMethod': case 'StripeFailure': return 'payment'; case 'ItemNotFound': return 'product'; // 'InvalidDiscount' has been renamed to 'DiscountInvalid', but it needs // to be listed here to support sites that haven't been published since this change. case 'InvalidDiscount': case 'DiscountInvalid': case 'DiscountDoesNotExist': { return 'invalid-discount'; } case 'DiscountExpired': { return 'expired-discount'; } case 'DiscountUsageReached': { return 'usage-reached-discount'; } case 'DiscountRequirementsNotMet': { return 'requirements-not-met'; } default: return 'info'; } }; // eslint-disable-next-line flowtype/no-weak-types var getErrorType = function getErrorType(error) { if (error.graphQLErrors && error.graphQLErrors.length > 0) { return errorCodeToCheckoutErrorType(error.graphQLErrors[0].code, error.graphQLErrors[0].message); } if (error.code) { return errorCodeToCheckoutErrorType(error.code, error.message); } return 'info'; }; // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types var updateErrorMessage = function updateErrorMessage(element, error) { var errorText = element.querySelector(_constants.CART_CHECKOUT_ERROR_MESSAGE_SELECTOR); if (!errorText) { return; } // Handle Stripe.js client-side errors. We use Stripe.js's error message // as this error typically indicates that the user forgot to enter part of // their CC, or entered invalid data. The more specific the error, the more // helpful it will be for the user. if (error.type && error.type === 'validation_error') { errorText.textContent = error.message; return; } var errorType = getErrorType(error); // Get the default error message incase the node does not have the error attribute yet. var errorData = _constants.CHECKOUT_ERRORS[errorType.toUpperCase().replace(/\W/g, '_')] || {}; var defaultErrorMessage = errorData.copy; var errorMessage = errorText.getAttribute((0, _constants.getCheckoutErrorMessageForType)(errorType)) || defaultErrorMessage; errorText.textContent = errorMessage; if (errorData.requiresRefresh) { errorText.setAttribute(_constants.NEEDS_REFRESH, 'true'); } else { errorText.removeAttribute(_constants.NEEDS_REFRESH); } if (errorType === 'shipping') { updateRequiredFields(error); } }; exports.updateErrorMessage = updateErrorMessage; var elementNameByGraphQLError = { MISSING_STATE: 'address_state' }; var updateRequiredFields = function updateRequiredFields(error) { if (!error.graphQLErrors || error.graphQLErrors.length === 0) { return; } var invalidShippingAddressError = error.graphQLErrors.find(function (gqlError) { return gqlError.code === 'InvalidShippingAddress'; }); if (!invalidShippingAddressError) { return; } invalidShippingAddressError.problems.forEach(function (problem) { var type = problem.type; var elementName = elementNameByGraphQLError[type]; if (!elementName) { return; } var element = document.getElementsByName(elementName)[0]; if (!(element instanceof HTMLInputElement)) { return; } element.required = true; // IE11 doesn't support the reportValidity API if (typeof element.reportValidity === 'function') { element.reportValidity(); } }); }; var showErrorMessageForError = function showErrorMessageForError(err, scope) { var errorState = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE, scope); if (errorState) { errorState.style.removeProperty('display'); updateErrorMessage(errorState, err); } }; exports.showErrorMessageForError = showErrorMessageForError; var beforeUnloadHandler = function beforeUnloadHandler(e) { e.preventDefault(); e.returnValue = ''; }; exports.beforeUnloadHandler = beforeUnloadHandler; var createOrderIdentityMutation = function createOrderIdentityMutation(apolloClient, email) { return apolloClient.mutate({ mutation: _checkoutMutations.updateOrderIdentityMutation, variables: { email: email } }); }; exports.createOrderIdentityMutation = createOrderIdentityMutation; var createOrderAddressMutation = function createOrderAddressMutation(apolloClient, addressInfo) { return apolloClient.mutate({ mutation: _checkoutMutations.updateOrderAddressMutation, variables: addressInfo }); }; exports.createOrderAddressMutation = createOrderAddressMutation; var createOrderShippingMethodMutation = function createOrderShippingMethodMutation(apolloClient, id) { return apolloClient.mutate({ mutation: _checkoutMutations.updateOrderShippingMethodMutation, variables: { id: id } }); }; exports.createOrderShippingMethodMutation = createOrderShippingMethodMutation; var createCustomDataMutation = function createCustomDataMutation(apolloClient, customData) { return apolloClient.mutate({ mutation: _checkoutMutations.updateCustomData, variables: { customData: customData } }); }; exports.createCustomDataMutation = createCustomDataMutation; var createStripePaymentMethodMutation = function createStripePaymentMethodMutation(apolloClient, id) { return apolloClient.mutate({ mutation: _checkoutMutations.updateOrderStripePaymentMethodMutation, variables: { paymentMethod: id } }); }; exports.createStripePaymentMethodMutation = createStripePaymentMethodMutation; var createRecalcOrderEstimationsMutation = function createRecalcOrderEstimationsMutation(apolloClient) { return apolloClient.mutate({ mutation: _checkoutMutations.recalcOrderEstimationsMutation, errorPolicy: 'ignore' }); }; exports.createRecalcOrderEstimationsMutation = createRecalcOrderEstimationsMutation; var createUpdateObfuscatedOrderAddressMutation = function createUpdateObfuscatedOrderAddressMutation(apolloClient, addressInfo) { return apolloClient.mutate({ mutation: _checkoutMutations.updateObfuscatedOrderAddressMutation, variables: addressInfo }); }; exports.createUpdateObfuscatedOrderAddressMutation = createUpdateObfuscatedOrderAddressMutation; var renderCheckout = function renderCheckout(checkout, data, prevFocusedInput) { (0, _rendering.renderTree)(checkout, data); var shippingMethodsList = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_LIST, checkout); var shippingMethodsEmpty = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_EMPTY_STATE, checkout); var shippingAddressWrapper = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER, checkout); var billingAddressWrapper = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER, checkout); var billingAddressToggle = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX, checkout); var paymentInfoWrapper = checkout.querySelector('.w-commerce-commercecheckoutpaymentinfowrapper'); if (!(shippingMethodsList instanceof Element) || !(shippingAddressWrapper instanceof Element) || !(billingAddressWrapper instanceof Element) || !(billingAddressToggle instanceof HTMLInputElement) || !(paymentInfoWrapper instanceof Element)) { return; } if (data.data && data.data.database && data.data.database.commerceOrder) { var _data$data$database$c = data.data.database.commerceOrder, availableShippingMethods = _data$data$database$c.availableShippingMethods, _data$data$database$c2 = _data$data$database$c.statusFlags, requiresShipping = _data$data$database$c2.requiresShipping, isFreeOrder = _data$data$database$c2.isFreeOrder, shippingAddressRequiresPostalCode = _data$data$database$c2.shippingAddressRequiresPostalCode, billingAddressRequiresPostalCode = _data$data$database$c2.billingAddressRequiresPostalCode, hasSubscription = _data$data$database$c2.hasSubscription; var shippingZipField = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_ZIP_FIELD, shippingAddressWrapper); if (shippingZipField instanceof HTMLInputElement) { shippingZipField.required = shippingAddressRequiresPostalCode; } var billingZipField = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_ZIP_FIELD, billingAddressWrapper); if (billingZipField instanceof HTMLInputElement) { billingZipField.required = billingAddressRequiresPostalCode; } var paypalElement = document.querySelector("[".concat(_constants.PAYPAL_ELEMENT_INSTANCE, "]")); var paypalButton = checkout.querySelector("[".concat(_constants.PAYPAL_BUTTON_ELEMENT_INSTANCE, "]")); if (paypalElement && paypalButton) { if (isFreeOrder || hasSubscription) { (0, _commerceUtils.hideElement)(paypalButton); } else { (0, _commerceUtils.showElement)(paypalButton); } } // Edge case: need to make sure if billing address is hidden because of default "same as shipping" checked, but // toggle itself is hidden because doesn't require shipping, the billing address is still visible if (!requiresShipping && billingAddressToggle.checked && billingAddressToggle.parentElement && billingAddressToggle.parentElement.classList.contains('w-condition-invisible')) { (0, _commerceUtils.showElement)(billingAddressWrapper); } if (!availableShippingMethods || availableShippingMethods.length < 1) { (0, _commerceUtils.hideElement)(shippingMethodsList); // TODO: remove this ugliness when we've properly constrained & restructured the checkout form // It is possible to remove the empty state so we can't return early, but don't want to crash here if (shippingMethodsEmpty instanceof Element) { (0, _commerceUtils.showElement)(shippingMethodsEmpty); } } else { // TODO remove after migration if (shippingMethodsEmpty instanceof Element) { (0, _commerceUtils.hideElement)(shippingMethodsEmpty); } (0, _commerceUtils.showElement)(shippingMethodsList); } if (isFreeOrder) { (0, _commerceUtils.hideElement)(paymentInfoWrapper); } else if (!isFreeOrder && paymentInfoWrapper.style.getPropertyValue('display') === 'none') { // was previously hidden (0, _commerceUtils.showElement)(paymentInfoWrapper); } } else { (0, _commerceUtils.hideElement)(shippingMethodsList); // TODO remove after migration if (shippingMethodsEmpty instanceof Element) { (0, _commerceUtils.showElement)(shippingMethodsEmpty); } (0, _commerceUtils.showElement)(paymentInfoWrapper); } if (data.errors.length === 0 && prevFocusedInput) { var prevFocusedInputEle = document.getElementById(prevFocusedInput); if (!prevFocusedInputEle) { prevFocusedInputEle = document.querySelector("[data-wf-bindings=\"".concat(prevFocusedInput, "\"]")); } if (prevFocusedInputEle) { prevFocusedInputEle.focus(); } } }; var runRenderOnCheckoutElement = function runRenderOnCheckoutElement(checkoutFormContainer, data, errors, stripeStore, prevFocusedInput) { renderCheckout(checkoutFormContainer, (0, _extends2["default"])({}, data, { errors: errors.concat(data.errors).filter(Boolean) }), prevFocusedInput); if (stripeStore) { (0, _webPaymentsEvents.updateWebPaymentsButton)(checkoutFormContainer, data, stripeStore); } }; var renderCheckoutFormContainers = function renderCheckoutFormContainers(checkoutFormContainers, errors, apolloClient, stripeStore, prevFocusedInput) { if (checkoutFormContainers.length === 0) { return; } checkoutFormContainers.forEach(function (checkoutFormContainer) { var queryOptions = { query: _graphqlTag["default"](_templateObject(), checkoutFormContainer.getAttribute(_constants.CHECKOUT_QUERY)), fetchPolicy: 'network-only', // errorPolicy is set to `all` so that we continue to get the cart data when an error occurs // this is important in cases like when the address entered doesn't have a shipping zone, as that returns // a graphQL error, but we still want to render what the customer has entered errorPolicy: 'all' }; apolloClient.query(queryOptions).then(function (data) { if (data.data && data.data.database && data.data.database.commerceOrder && data.data.database.commerceOrder.availableShippingMethods) { var _data$data$database$c3 = data.data.database.commerceOrder, availableShippingMethods = _data$data$database$c3.availableShippingMethods, requiresShipping = _data$data$database$c3.statusFlags.requiresShipping; var selectedMethod = availableShippingMethods.find(function (method) { return method.selected === true; }); if (!selectedMethod && requiresShipping) { var id = availableShippingMethods[0] ? availableShippingMethods[0].id : null; return createOrderShippingMethodMutation(apolloClient, id).then(function () { return createRecalcOrderEstimationsMutation(apolloClient); }).then(function () { return apolloClient.query(queryOptions); }).then(function (newData) { runRenderOnCheckoutElement(checkoutFormContainer, newData, errors, stripeStore, prevFocusedInput); }); } } if (data.data && data.data.database && data.data.database.commerceOrder && data.data.database.commerceOrder.statusFlags && data.data.database.commerceOrder.statusFlags.shouldRecalc) { return createRecalcOrderEstimationsMutation(apolloClient).then(function () { return apolloClient.query(queryOptions); }).then(function (newData) { runRenderOnCheckoutElement(checkoutFormContainer, newData, errors, stripeStore, prevFocusedInput); }); } else { runRenderOnCheckoutElement(checkoutFormContainer, data, errors, stripeStore, prevFocusedInput); } })["catch"](function (err) { errors.push(err); renderCheckout(checkoutFormContainer, { errors: errors }, prevFocusedInput); }); }); }; exports.renderCheckoutFormContainers = renderCheckoutFormContainers; var createAttemptSubmitOrderRequest = function createAttemptSubmitOrderRequest(apolloClient, variables) { return apolloClient.mutate({ mutation: _checkoutMutations.attemptSubmitOrderMutation, variables: variables }); }; // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types exports.createAttemptSubmitOrderRequest = createAttemptSubmitOrderRequest; var getOrderDataFromGraphQLResponse = function getOrderDataFromGraphQLResponse(data) { return data && data.data && data.data.ecommerceAttemptSubmitOrder; }; exports.getOrderDataFromGraphQLResponse = getOrderDataFromGraphQLResponse; var orderRequiresAdditionalAction = function orderRequiresAdditionalAction(status) { return status === _constants.REQUIRES_ACTION; }; exports.orderRequiresAdditionalAction = orderRequiresAdditionalAction; var redirectToOrderConfirmation = function redirectToOrderConfirmation( // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types order) { var isPayPal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var redirectUrl = "/order-confirmation?orderId=".concat(order.orderId, "&token=").concat(order.token); if (isPayPal) { var message = { isWebflow: true, type: 'success', detail: redirectUrl }; window.parent.postMessage(JSON.stringify(message), window.location.origin); } else { window.location.href = redirectUrl; } }; exports.redirectToOrderConfirmation = redirectToOrderConfirmation; var applyDiscount = function applyDiscount(apolloClient, variables) { return apolloClient.mutate({ mutation: _checkoutMutations.applyDiscountMutation, variables: variables }); }; exports.applyDiscount = applyDiscount; /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ // eslint-disable-next-line strict var IXEvents = __webpack_require__(386); function dispatchCustomEvent(element, eventName) { var event = document.createEvent('CustomEvent'); event.initCustomEvent(eventName, true, true, null); element.dispatchEvent(event); } /** * Webflow: IX Event triggers for other modules */ var $ = window.jQuery; var api = {}; var namespace = '.w-ix'; var eventTriggers = { reset: function reset(i, el) { IXEvents.triggers.reset(i, el); }, intro: function intro(i, el) { IXEvents.triggers.intro(i, el); dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); }, outro: function outro(i, el) { IXEvents.triggers.outro(i, el); dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); } }; api.triggers = {}; api.types = { INTRO: 'w-ix-intro' + namespace, OUTRO: 'w-ix-outro' + namespace }; $.extend(api.triggers, eventTriggers); module.exports = api; /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : $propertyIsEnumerable; /***/ }), /* 155 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable es/no-symbol -- required for testing */ var V8_VERSION = __webpack_require__(53); var fails = __webpack_require__(5); // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { var symbol = Symbol(); // Chrome 38 Symbol has incorrect toString conversion // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances return !String(symbol) || !(Object(symbol) instanceof Symbol) || // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances !Symbol.sham && V8_VERSION && V8_VERSION < 41; }); /***/ }), /* 156 */ /***/ (function(module, exports, __webpack_require__) { var IS_PURE = __webpack_require__(56); var store = __webpack_require__(114); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.19.0', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2021 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 157 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { defineProperty(global, key, { value: value, configurable: true, writable: true }); } catch (error) { global[key] = value; } return value; }; /***/ }), /* 158 */ /***/ (function(module, exports, __webpack_require__) { var toIndexedObject = __webpack_require__(26); var toAbsoluteIndex = __webpack_require__(89); var lengthOfArrayLike = __webpack_require__(7); // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject($this); var length = lengthOfArrayLike(O); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare -- NaN check if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; module.exports = { // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes includes: createMethod(true), // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof indexOf: createMethod(false) }; /***/ }), /* 159 */ /***/ (function(module, exports) { // IE8- don't enum bug keys module.exports = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; /***/ }), /* 160 */ /***/ (function(module, exports, __webpack_require__) { var internalObjectKeys = __webpack_require__(235); var enumBugKeys = __webpack_require__(159); // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys // eslint-disable-next-line es/no-object-keys -- safe module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), /* 161 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); /* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(241); /* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243); /** * These are private action types reserved by Redux. * For any unknown actions, you must return the current state. * If the current state is undefined, you must return the initial state. * Do not reference these action types directly in your code. */ var ActionTypes = { INIT: '@@redux/INIT' }; /** * Creates a Redux store that holds the state tree. * The only way to change the data in the store is to call `dispatch()` on it. * * There should only be a single store in your app. To specify how different * parts of the state tree respond to actions, you may combine several reducers * into a single reducer function by using `combineReducers`. * * @param {Function} reducer A function that returns the next state tree, given * the current state tree and the action to handle. * * @param {any} [preloadedState] The initial state. You may optionally specify it * to hydrate the state from the server in universal apps, or to restore a * previously serialized user session. * If you use `combineReducers` to produce the root reducer function, this must be * an object with the same shape as `combineReducers` keys. * * @param {Function} enhancer The store enhancer. You may optionally specify it * to enhance the store with third-party capabilities such as middleware, * time travel, persistence, etc. The only store enhancer that ships with Redux * is `applyMiddleware()`. * * @returns {Store} A Redux store that lets you read the state, dispatch actions * and subscribe to changes. */ function createStore(reducer, preloadedState, enhancer) { var _ref2; if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { enhancer = preloadedState; preloadedState = undefined; } if (typeof enhancer !== 'undefined') { if (typeof enhancer !== 'function') { throw new Error('Expected the enhancer to be a function.'); } return enhancer(createStore)(reducer, preloadedState); } if (typeof reducer !== 'function') { throw new Error('Expected the reducer to be a function.'); } var currentReducer = reducer; var currentState = preloadedState; var currentListeners = []; var nextListeners = currentListeners; var isDispatching = false; function ensureCanMutateNextListeners() { if (nextListeners === currentListeners) { nextListeners = currentListeners.slice(); } } /** * Reads the state tree managed by the store. * * @returns {any} The current state tree of your application. */ function getState() { return currentState; } /** * Adds a change listener. It will be called any time an action is dispatched, * and some part of the state tree may potentially have changed. You may then * call `getState()` to read the current state tree inside the callback. * * You may call `dispatch()` from a change listener, with the following * caveats: * * 1. The subscriptions are snapshotted just before every `dispatch()` call. * If you subscribe or unsubscribe while the listeners are being invoked, this * will not have any effect on the `dispatch()` that is currently in progress. * However, the next `dispatch()` call, whether nested or not, will use a more * recent snapshot of the subscription list. * * 2. The listener should not expect to see all state changes, as the state * might have been updated multiple times during a nested `dispatch()` before * the listener is called. It is, however, guaranteed that all subscribers * registered before the `dispatch()` started will be called with the latest * state by the time it exits. * * @param {Function} listener A callback to be invoked on every dispatch. * @returns {Function} A function to remove this change listener. */ function subscribe(listener) { if (typeof listener !== 'function') { throw new Error('Expected listener to be a function.'); } var isSubscribed = true; ensureCanMutateNextListeners(); nextListeners.push(listener); return function unsubscribe() { if (!isSubscribed) { return; } isSubscribed = false; ensureCanMutateNextListeners(); var index = nextListeners.indexOf(listener); nextListeners.splice(index, 1); }; } /** * Dispatches an action. It is the only way to trigger a state change. * * The `reducer` function, used to create the store, will be called with the * current state tree and the given `action`. Its return value will * be considered the **next** state of the tree, and the change listeners * will be notified. * * The base implementation only supports plain object actions. If you want to * dispatch a Promise, an Observable, a thunk, or something else, you need to * wrap your store creating function into the corresponding middleware. For * example, see the documentation for the `redux-thunk` package. Even the * middleware will eventually dispatch plain object actions using this method. * * @param {Object} action A plain object representing “what changedâ€. It is * a good idea to keep actions serializable so you can record and replay user * sessions, or use the time travelling `redux-devtools`. An action must have * a `type` property which may not be `undefined`. It is a good idea to use * string constants for action types. * * @returns {Object} For convenience, the same action object you dispatched. * * Note that, if you use a custom middleware, it may wrap `dispatch()` to * return something else (for example, a Promise you can await). */ function dispatch(action) { if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); } if (typeof action.type === 'undefined') { throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); } if (isDispatching) { throw new Error('Reducers may not dispatch actions.'); } try { isDispatching = true; currentState = currentReducer(currentState, action); } finally { isDispatching = false; } var listeners = currentListeners = nextListeners; for (var i = 0; i < listeners.length; i++) { listeners[i](); } return action; } /** * Replaces the reducer currently used by the store to calculate the state. * * You might need this if your app implements code splitting and you want to * load some of the reducers dynamically. You might also need this if you * implement a hot reloading mechanism for Redux. * * @param {Function} nextReducer The reducer for the store to use instead. * @returns {void} */ function replaceReducer(nextReducer) { if (typeof nextReducer !== 'function') { throw new Error('Expected the nextReducer to be a function.'); } currentReducer = nextReducer; dispatch({ type: ActionTypes.INIT }); } /** * Interoperability point for observable/reactive libraries. * @returns {observable} A minimal observable of state changes. * For more information, see the observable proposal: * https://github.com/zenparsing/es-observable */ function observable() { var _ref; var outerSubscribe = subscribe; return _ref = { /** * The minimal observable subscription method. * @param {Object} observer Any object that can be used as an observer. * The observer object should have a `next` method. * @returns {subscription} An object with an `unsubscribe` method that can * be used to unsubscribe the observable from the store, and prevent further * emission of values from the observable. */ subscribe: function subscribe(observer) { if (typeof observer !== 'object') { throw new TypeError('Expected the observer to be an object.'); } function observeState() { if (observer.next) { observer.next(getState()); } } observeState(); var unsubscribe = outerSubscribe(observeState); return { unsubscribe: unsubscribe }; } }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { return this; }, _ref; } // When a store is created, an "INIT" action is dispatched so that every // reducer returns their initial state. This effectively populates // the initial state tree. dispatch({ type: ActionTypes.INIT }); return _ref2 = { dispatch: dispatch, subscribe: subscribe, getState: getState, replaceReducer: replaceReducer }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; } /***/ }), /* 162 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); /** * Composes single-argument functions from right to left. The rightmost * function can take multiple arguments as it provides the signature for * the resulting composite function. * * @param {...Function} funcs The functions to compose. * @returns {Function} A function obtained by composing the argument functions * from right to left. For example, compose(f, g, h) is identical to doing * (...args) => f(g(h(...args))). */ function compose() { for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } if (funcs.length === 0) { return function (arg) { return arg; }; } if (funcs.length === 1) { return funcs[0]; } var last = funcs[funcs.length - 1]; var rest = funcs.slice(0, -1); return function () { return rest.reduceRight(function (composed, f) { return f(composed); }, last.apply(undefined, arguments)); }; } /***/ }), /* 163 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROWSER_ENV = void 0; var _find = _interopRequireDefault(__webpack_require__(164)); /* eslint-env browser */ var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe exports.IS_BROWSER_ENV = IS_BROWSER_ENV; var withBrowser = function withBrowser(fn, fallback) { if (IS_BROWSER_ENV) { return fn(); } return fallback; }; exports.withBrowser = withBrowser; var ELEMENT_MATCHES = withBrowser(function () { return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { return key in Element.prototype; }); }); exports.ELEMENT_MATCHES = ELEMENT_MATCHES; var FLEX_PREFIXED = withBrowser(function () { var el = document.createElement('i'); var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; var none = ''; try { var length = values.length; for (var i = 0; i < length; i++) { var value = values[i]; el.style.display = value; if (el.style.display === value) { return value; } } return none; } catch (err) { return none; } }, 'flex'); exports.FLEX_PREFIXED = FLEX_PREFIXED; var TRANSFORM_PREFIXED = withBrowser(function () { var el = document.createElement('i'); if (el.style.transform == null) { var prefixes = ['Webkit', 'Moz', 'ms']; var suffix = 'Transform'; var length = prefixes.length; for (var i = 0; i < length; i++) { var prop = prefixes[i] + suffix; // $FlowFixMe if (el.style[prop] !== undefined) { return prop; } } } return 'transform'; }, 'transform'); // $FlowFixMe exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; /***/ }), /* 164 */ /***/ (function(module, exports, __webpack_require__) { var createFind = __webpack_require__(249), findIndex = __webpack_require__(473); /** * Iterates over elements of `collection`, returning the first element * `predicate` returns truthy for. The predicate is invoked with three * arguments: (value, index|key, collection). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false }, * { 'user': 'pebbles', 'age': 1, 'active': true } * ]; * * _.find(users, function(o) { return o.age < 40; }); * // => object for 'barney' * * // The `_.matches` iteratee shorthand. * _.find(users, { 'age': 1, 'active': true }); * // => object for 'pebbles' * * // The `_.matchesProperty` iteratee shorthand. * _.find(users, ['active', false]); * // => object for 'fred' * * // The `_.property` iteratee shorthand. * _.find(users, 'active'); * // => object for 'barney' */ var find = createFind(findIndex); module.exports = find; /***/ }), /* 165 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57), root = __webpack_require__(28); /* Built-in method references that are verified to be native. */ var Map = getNative(root, 'Map'); module.exports = Map; /***/ }), /* 166 */ /***/ (function(module, exports, __webpack_require__) { var mapCacheClear = __webpack_require__(433), mapCacheDelete = __webpack_require__(440), mapCacheGet = __webpack_require__(442), mapCacheHas = __webpack_require__(443), mapCacheSet = __webpack_require__(444); /** * Creates a map cache object to store key-value pairs. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function MapCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } // Add methods to `MapCache`. MapCache.prototype.clear = mapCacheClear; MapCache.prototype['delete'] = mapCacheDelete; MapCache.prototype.get = mapCacheGet; MapCache.prototype.has = mapCacheHas; MapCache.prototype.set = mapCacheSet; module.exports = MapCache; /***/ }), /* 167 */ /***/ (function(module, exports) { /** * Appends the elements of `values` to `array`. * * @private * @param {Array} array The array to modify. * @param {Array} values The values to append. * @returns {Array} Returns `array`. */ function arrayPush(array, values) { var index = -1, length = values.length, offset = array.length; while (++index < length) { array[offset + index] = values[index]; } return array; } module.exports = arrayPush; /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { var arrayFilter = __webpack_require__(454), stubArray = __webpack_require__(258); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Built-in value references. */ var propertyIsEnumerable = objectProto.propertyIsEnumerable; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols; /** * Creates an array of the own enumerable symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ var getSymbols = !nativeGetSymbols ? stubArray : function(object) { if (object == null) { return []; } object = Object(object); return arrayFilter(nativeGetSymbols(object), function(symbol) { return propertyIsEnumerable.call(object, symbol); }); }; module.exports = getSymbols; /***/ }), /* 169 */ /***/ (function(module, exports) { /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; /** * Checks if `value` is a valid array-like length. * * **Note:** This method is loosely based on * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. * @example * * _.isLength(3); * // => true * * _.isLength(Number.MIN_VALUE); * // => false * * _.isLength(Infinity); * // => false * * _.isLength('3'); * // => false */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } module.exports = isLength; /***/ }), /* 170 */ /***/ (function(module, exports, __webpack_require__) { var isPrototype = __webpack_require__(128), nativeKeys = __webpack_require__(459); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != 'constructor') { result.push(key); } } return result; } module.exports = baseKeys; /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { var castPath = __webpack_require__(129), toKey = __webpack_require__(95); /** * The base implementation of `_.get` without support for default values. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @returns {*} Returns the resolved value. */ function baseGet(object, path) { path = castPath(path, object); var index = 0, length = path.length; while (object != null && index < length) { object = object[toKey(path[index++])]; } return (index && index == length) ? object : undefined; } module.exports = baseGet; /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { var isArray = __webpack_require__(10), isSymbol = __webpack_require__(130); /** Used to match property names within property paths. */ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; /** * Checks if `value` is a property name and not a property path. * * @private * @param {*} value The value to check. * @param {Object} [object] The object to query keys on. * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ function isKey(value, object) { if (isArray(value)) { return false; } var type = typeof value; if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) { return true; } return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || (object != null && value in Object(object)); } module.exports = isKey; /***/ }), /* 173 */ /***/ (function(module, exports) { /** * A specialized version of `_.map` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } module.exports = arrayMap; /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { var toFinite = __webpack_require__(474); /** * Converts `value` to an integer. * * **Note:** This method is loosely based on * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); * // => 0 * * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { var result = toFinite(value), remainder = result % 1; return result === result ? (remainder ? result - remainder : result) : 0; } module.exports = toInteger; /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { var baseTrim = __webpack_require__(475), isObject = __webpack_require__(18), isSymbol = __webpack_require__(130); /** Used as references for various `Number` constants. */ var NAN = 0 / 0; /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; /** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i; /** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i; /** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt; /** * Converts `value` to a number. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * * _.toNumber(3.2); * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 * * _.toNumber(Infinity); * // => Infinity * * _.toNumber('3.2'); * // => 3.2 */ function toNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } if (isObject(value)) { var other = typeof value.valueOf == 'function' ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } if (typeof value != 'string') { return value === 0 ? value : +value; } value = baseTrim(value); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } module.exports = toNumber; /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { var baseForOwn = __webpack_require__(131), createBaseEach = __webpack_require__(484); /** * The base implementation of `_.forEach` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array|Object} Returns `collection`. */ var baseEach = createBaseEach(baseForOwn); module.exports = baseEach; /***/ }), /* 177 */ /***/ (function(module, exports) { /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = '\\ufe0e\\ufe0f'; /** Used to compose unicode capture groups. */ var rsZWJ = '\\u200d'; /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); /** * Checks if `string` contains Unicode symbols. * * @private * @param {string} string The string to inspect. * @returns {boolean} Returns `true` if a symbol is found, else `false`. */ function hasUnicode(string) { return reHasUnicode.test(string); } module.exports = hasUnicode; /***/ }), /* 178 */ /***/ (function(module, exports, __webpack_require__) { var baseAssignValue = __webpack_require__(97), eq = __webpack_require__(91); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Assigns `value` to `key` of `object` if the existing value is not equivalent * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function assignValue(object, key, value) { var objValue = object[key]; if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || (value === undefined && !(key in object))) { baseAssignValue(object, key, value); } } module.exports = assignValue; /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { var arrayEach = __webpack_require__(180), baseEach = __webpack_require__(176), castFunction = __webpack_require__(504), isArray = __webpack_require__(10); /** * Iterates over elements of `collection` and invokes `iteratee` for each element. * The iteratee is invoked with three arguments: (value, index|key, collection). * Iteratee functions may exit iteration early by explicitly returning `false`. * * **Note:** As with other "Collections" methods, objects with a "length" * property are iterated like arrays. To avoid this behavior use `_.forIn` * or `_.forOwn` for object iteration. * * @static * @memberOf _ * @since 0.1.0 * @alias each * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array|Object} Returns `collection`. * @see _.forEachRight * @example * * _.forEach([1, 2], function(value) { * console.log(value); * }); * // => Logs `1` then `2`. * * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { * console.log(key); * }); * // => Logs 'a' then 'b' (iteration order is not guaranteed). */ function forEach(collection, iteratee) { var func = isArray(collection) ? arrayEach : baseEach; return func(collection, castFunction(iteratee)); } module.exports = forEach; /***/ }), /* 180 */ /***/ (function(module, exports) { /** * A specialized version of `_.forEach` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEach(array, iteratee) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (iteratee(array[index], index, array) === false) { break; } } return array; } module.exports = arrayEach; /***/ }), /* 181 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.mediaQueriesDefined = exports.viewportWidthChanged = exports.actionListPlaybackChanged = exports.elementStateChanged = exports.instanceRemoved = exports.instanceStarted = exports.instanceAdded = exports.parameterChanged = exports.animationFrameChanged = exports.eventStateChanged = exports.testFrameRendered = exports.eventListenerAdded = exports.clearRequested = exports.stopRequested = exports.playbackRequested = exports.previewRequested = exports.sessionStopped = exports.sessionStarted = exports.sessionInitialized = exports.rawDataImported = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _constants = __webpack_require__(25); var _shared = __webpack_require__(71); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it var rawDataImported = function rawDataImported(rawData) { return { type: IX2_RAW_DATA_IMPORTED, payload: (0, _extends2["default"])({}, reifyState(rawData)) }; }; exports.rawDataImported = rawDataImported; var sessionInitialized = function sessionInitialized(_ref) { var hasBoundaryNodes = _ref.hasBoundaryNodes, reducedMotion = _ref.reducedMotion; return { type: IX2_SESSION_INITIALIZED, payload: { hasBoundaryNodes: hasBoundaryNodes, reducedMotion: reducedMotion } }; }; exports.sessionInitialized = sessionInitialized; var sessionStarted = function sessionStarted() { return { type: IX2_SESSION_STARTED }; }; exports.sessionStarted = sessionStarted; var sessionStopped = function sessionStopped() { return { type: IX2_SESSION_STOPPED }; }; exports.sessionStopped = sessionStopped; var previewRequested = function previewRequested(_ref2) { var rawData = _ref2.rawData, defer = _ref2.defer; return { type: IX2_PREVIEW_REQUESTED, payload: { defer: defer, rawData: rawData } }; }; exports.previewRequested = previewRequested; var playbackRequested = function playbackRequested(_ref3) { var _ref3$actionTypeId = _ref3.actionTypeId, actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, actionListId = _ref3.actionListId, actionItemId = _ref3.actionItemId, eventId = _ref3.eventId, allowEvents = _ref3.allowEvents, immediate = _ref3.immediate, testManual = _ref3.testManual, verbose = _ref3.verbose, rawData = _ref3.rawData; return { type: IX2_PLAYBACK_REQUESTED, payload: { actionTypeId: actionTypeId, actionListId: actionListId, actionItemId: actionItemId, testManual: testManual, eventId: eventId, allowEvents: allowEvents, immediate: immediate, verbose: verbose, rawData: rawData } }; }; exports.playbackRequested = playbackRequested; var stopRequested = function stopRequested(actionListId) { return { type: IX2_STOP_REQUESTED, payload: { actionListId: actionListId } }; }; exports.stopRequested = stopRequested; var clearRequested = function clearRequested() { return { type: IX2_CLEAR_REQUESTED }; }; exports.clearRequested = clearRequested; var eventListenerAdded = function eventListenerAdded(target, listenerParams) { return { type: IX2_EVENT_LISTENER_ADDED, payload: { target: target, listenerParams: listenerParams } }; }; exports.eventListenerAdded = eventListenerAdded; var testFrameRendered = function testFrameRendered() { var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; return { type: IX2_TEST_FRAME_RENDERED, payload: { step: step } }; }; exports.testFrameRendered = testFrameRendered; var eventStateChanged = function eventStateChanged(stateKey, newState) { return { type: IX2_EVENT_STATE_CHANGED, payload: { stateKey: stateKey, newState: newState } }; }; exports.eventStateChanged = eventStateChanged; var animationFrameChanged = function animationFrameChanged(now, parameters) { return { type: IX2_ANIMATION_FRAME_CHANGED, payload: { now: now, parameters: parameters } }; }; exports.animationFrameChanged = animationFrameChanged; var parameterChanged = function parameterChanged(key, value) { return { type: IX2_PARAMETER_CHANGED, payload: { key: key, value: value } }; }; exports.parameterChanged = parameterChanged; var instanceAdded = function instanceAdded(options) { return { type: IX2_INSTANCE_ADDED, payload: (0, _extends2["default"])({}, options) }; }; exports.instanceAdded = instanceAdded; var instanceStarted = function instanceStarted(instanceId, time) { return { type: IX2_INSTANCE_STARTED, payload: { instanceId: instanceId, time: time } }; }; exports.instanceStarted = instanceStarted; var instanceRemoved = function instanceRemoved(instanceId) { return { type: IX2_INSTANCE_REMOVED, payload: { instanceId: instanceId } }; }; exports.instanceRemoved = instanceRemoved; var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { return { type: IX2_ELEMENT_STATE_CHANGED, payload: { elementId: elementId, actionTypeId: actionTypeId, current: current, actionItem: actionItem } }; }; exports.elementStateChanged = elementStateChanged; var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { var actionListId = _ref4.actionListId, isPlaying = _ref4.isPlaying; return { type: IX2_ACTION_LIST_PLAYBACK_CHANGED, payload: { actionListId: actionListId, isPlaying: isPlaying } }; }; exports.actionListPlaybackChanged = actionListPlaybackChanged; var viewportWidthChanged = function viewportWidthChanged(_ref5) { var width = _ref5.width, mediaQueries = _ref5.mediaQueries; return { type: IX2_VIEWPORT_WIDTH_CHANGED, payload: { width: width, mediaQueries: mediaQueries } }; }; exports.viewportWidthChanged = viewportWidthChanged; var mediaQueriesDefined = function mediaQueriesDefined() { return { type: IX2_MEDIA_QUERIES_DEFINED }; }; exports.mediaQueriesDefined = mediaQueriesDefined; /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { var baseCreate = __webpack_require__(133), baseLodash = __webpack_require__(183); /** * The base constructor for creating `lodash` wrapper objects. * * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable explicit method chain sequences. */ function LodashWrapper(value, chainAll) { this.__wrapped__ = value; this.__actions__ = []; this.__chain__ = !!chainAll; this.__index__ = 0; this.__values__ = undefined; } LodashWrapper.prototype = baseCreate(baseLodash.prototype); LodashWrapper.prototype.constructor = LodashWrapper; module.exports = LodashWrapper; /***/ }), /* 183 */ /***/ (function(module, exports) { /** * The function whose prototype chain sequence wrappers inherit from. * * @private */ function baseLodash() { // No operation performed. } module.exports = baseLodash; /***/ }), /* 184 */ /***/ (function(module, exports, __webpack_require__) { var baseCreate = __webpack_require__(133), baseLodash = __webpack_require__(183); /** Used as references for the maximum length and index of an array. */ var MAX_ARRAY_LENGTH = 4294967295; /** * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. * * @private * @constructor * @param {*} value The value to wrap. */ function LazyWrapper(value) { this.__wrapped__ = value; this.__actions__ = []; this.__dir__ = 1; this.__filtered__ = false; this.__iteratees__ = []; this.__takeCount__ = MAX_ARRAY_LENGTH; this.__views__ = []; } // Ensure `LazyWrapper` is an instance of `baseLodash`. LazyWrapper.prototype = baseCreate(baseLodash.prototype); LazyWrapper.prototype.constructor = LazyWrapper; module.exports = LazyWrapper; /***/ }), /* 185 */ /***/ (function(module, exports) { /** * Copies the values of `source` to `array`. * * @private * @param {Array} source The array to copy values from. * @param {Array} [array=[]] The array to copy values to. * @returns {Array} Returns `array`. */ function copyArray(source, array) { var index = -1, length = source.length; array || (array = Array(length)); while (++index < length) { array[index] = source[index]; } return array; } module.exports = copyArray; /***/ }), /* 186 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var test = {}; test[TO_STRING_TAG] = 'z'; module.exports = String(test) === '[object z]'; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { var TO_STRING_TAG_SUPPORT = __webpack_require__(186); var redefine = __webpack_require__(27); var toString = __webpack_require__(535); // `Object.prototype.toString` method // https://tc39.es/ecma262/#sec-object.prototype.tostring if (!TO_STRING_TAG_SUPPORT) { redefine(Object.prototype, 'toString', toString, { unsafe: true }); } /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toIndexedObject = __webpack_require__(26); var addToUnscopables = __webpack_require__(13); var Iterators = __webpack_require__(103); var InternalStateModule = __webpack_require__(38); var defineIterator = __webpack_require__(189); var ARRAY_ITERATOR = 'Array Iterator'; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); // `Array.prototype.entries` method // https://tc39.es/ecma262/#sec-array.prototype.entries // `Array.prototype.keys` method // https://tc39.es/ecma262/#sec-array.prototype.keys // `Array.prototype.values` method // https://tc39.es/ecma262/#sec-array.prototype.values // `Array.prototype[@@iterator]` method // https://tc39.es/ecma262/#sec-array.prototype-@@iterator // `CreateArrayIterator` internal method // https://tc39.es/ecma262/#sec-createarrayiterator module.exports = defineIterator(Array, 'Array', function (iterated, kind) { setInternalState(this, { type: ARRAY_ITERATOR, target: toIndexedObject(iterated), // target index: 0, // next index kind: kind // kind }); // `%ArrayIteratorPrototype%.next` method // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next }, function () { var state = getInternalState(this); var target = state.target; var kind = state.kind; var index = state.index++; if (!target || index >= target.length) { state.target = undefined; return { value: undefined, done: true }; } if (kind == 'keys') return { value: index, done: false }; if (kind == 'values') return { value: target[index], done: false }; return { value: [index, target[index]], done: false }; }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% // https://tc39.es/ecma262/#sec-createunmappedargumentsobject // https://tc39.es/ecma262/#sec-createmappedargumentsobject Iterators.Arguments = Iterators.Array; // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var call = __webpack_require__(23); var IS_PURE = __webpack_require__(56); var FunctionName = __webpack_require__(233); var isCallable = __webpack_require__(6); var createIteratorConstructor = __webpack_require__(190); var getPrototypeOf = __webpack_require__(191); var setPrototypeOf = __webpack_require__(192); var setToStringTag = __webpack_require__(42); var createNonEnumerableProperty = __webpack_require__(70); var redefine = __webpack_require__(27); var wellKnownSymbol = __webpack_require__(4); var Iterators = __webpack_require__(103); var IteratorsCore = __webpack_require__(293); var PROPER_FUNCTION_NAME = FunctionName.PROPER; var CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE; var IteratorPrototype = IteratorsCore.IteratorPrototype; var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; var ITERATOR = wellKnownSymbol('iterator'); var KEYS = 'keys'; var VALUES = 'values'; var ENTRIES = 'entries'; var returnThis = function () { return this; }; module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { createIteratorConstructor(IteratorConstructor, NAME, next); var getIterationMethod = function (KIND) { if (KIND === DEFAULT && defaultIterator) return defaultIterator; if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; switch (KIND) { case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; } return function () { return new IteratorConstructor(this); }; }; var TO_STRING_TAG = NAME + ' Iterator'; var INCORRECT_VALUES_NAME = false; var IterablePrototype = Iterable.prototype; var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; var CurrentIteratorPrototype, methods, KEY; // fix native if (anyNativeIterator) { CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { if (setPrototypeOf) { setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) { redefine(CurrentIteratorPrototype, ITERATOR, returnThis); } } // Set @@toStringTag to native iterators setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; } } // fix Array.prototype.{ values, @@iterator }.name in V8 / FF if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) { createNonEnumerableProperty(IterablePrototype, 'name', VALUES); } else { INCORRECT_VALUES_NAME = true; defaultIterator = function values() { return call(nativeIterator, this); }; } } // export additional methods if (DEFAULT) { methods = { values: getIterationMethod(VALUES), keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), entries: getIterationMethod(ENTRIES) }; if (FORCED) for (KEY in methods) { if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { redefine(IterablePrototype, KEY, methods[KEY]); } } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); } // define iterator if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT }); } Iterators[NAME] = defaultIterator; return methods; }; /***/ }), /* 190 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var IteratorPrototype = __webpack_require__(293).IteratorPrototype; var create = __webpack_require__(39); var createPropertyDescriptor = __webpack_require__(67); var setToStringTag = __webpack_require__(42); var Iterators = __webpack_require__(103); var returnThis = function () { return this; }; module.exports = function (IteratorConstructor, NAME, next) { var TO_STRING_TAG = NAME + ' Iterator'; IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); Iterators[TO_STRING_TAG] = returnThis; return IteratorConstructor; }; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var hasOwn = __webpack_require__(14); var isCallable = __webpack_require__(6); var toObject = __webpack_require__(9); var sharedKey = __webpack_require__(118); var CORRECT_PROTOTYPE_GETTER = __webpack_require__(555); var IE_PROTO = sharedKey('IE_PROTO'); var Object = global.Object; var ObjectPrototype = Object.prototype; // `Object.getPrototypeOf` method // https://tc39.es/ecma262/#sec-object.getprototypeof module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { var object = toObject(O); if (hasOwn(object, IE_PROTO)) return object[IE_PROTO]; var constructor = object.constructor; if (isCallable(constructor) && object instanceof constructor) { return constructor.prototype; } return object instanceof Object ? ObjectPrototype : null; }; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable no-proto -- safe */ var uncurryThis = __webpack_require__(3); var anObject = __webpack_require__(15); var aPossiblePrototype = __webpack_require__(556); // `Object.setPrototypeOf` method // https://tc39.es/ecma262/#sec-object.setprototypeof // Works with __proto__ only. Old v8 can't work with null proto objects. // eslint-disable-next-line es/no-object-setprototypeof -- safe module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { var CORRECT_SETTER = false; var test = {}; var setter; try { // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set); setter(test, []); CORRECT_SETTER = test instanceof Array; } catch (error) { /* empty */ } return function setPrototypeOf(O, proto) { anObject(O); aPossiblePrototype(proto); if (CORRECT_SETTER) setter(O, proto); else O.__proto__ = proto; return O; }; }() : undefined); /***/ }), /* 193 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); var ITERATOR = wellKnownSymbol('iterator'); var SAFE_CLOSING = false; try { var called = 0; var iteratorWithReturn = { next: function () { return { done: !!called++ }; }, 'return': function () { SAFE_CLOSING = true; } }; iteratorWithReturn[ITERATOR] = function () { return this; }; // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing Array.from(iteratorWithReturn, function () { throw 2; }); } catch (error) { /* empty */ } module.exports = function (exec, SKIP_CLOSING) { if (!SKIP_CLOSING && !SAFE_CLOSING) return false; var ITERATION_SUPPORT = false; try { var object = {}; object[ITERATOR] = function () { return { next: function () { return { done: ITERATION_SUPPORT = true }; } }; }; exec(object); } catch (error) { /* empty */ } return ITERATION_SUPPORT; }; /***/ }), /* 194 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $forEach = __webpack_require__(35).forEach; var arrayMethodIsStrict = __webpack_require__(43); var STRICT_METHOD = arrayMethodIsStrict('forEach'); // `Array.prototype.forEach` method implementation // https://tc39.es/ecma262/#sec-array.prototype.foreach module.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) { return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); // eslint-disable-next-line es/no-array-prototype-foreach -- safe } : [].forEach; /***/ }), /* 195 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var getBuiltIn = __webpack_require__(24); var definePropertyModule = __webpack_require__(17); var wellKnownSymbol = __webpack_require__(4); var DESCRIPTORS = __webpack_require__(16); var SPECIES = wellKnownSymbol('species'); module.exports = function (CONSTRUCTOR_NAME) { var Constructor = getBuiltIn(CONSTRUCTOR_NAME); var defineProperty = definePropertyModule.f; if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { defineProperty(Constructor, SPECIES, { configurable: true, get: function () { return this; } }); } }; /***/ }), /* 196 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var bind = __webpack_require__(29); var call = __webpack_require__(23); var anObject = __webpack_require__(15); var tryToString = __webpack_require__(113); var isArrayIteratorMethod = __webpack_require__(296); var lengthOfArrayLike = __webpack_require__(7); var isPrototypeOf = __webpack_require__(69); var getIterator = __webpack_require__(104); var getIteratorMethod = __webpack_require__(105); var iteratorClose = __webpack_require__(295); var TypeError = global.TypeError; var Result = function (stopped, result) { this.stopped = stopped; this.result = result; }; var ResultPrototype = Result.prototype; module.exports = function (iterable, unboundFunction, options) { var that = options && options.that; var AS_ENTRIES = !!(options && options.AS_ENTRIES); var IS_ITERATOR = !!(options && options.IS_ITERATOR); var INTERRUPTED = !!(options && options.INTERRUPTED); var fn = bind(unboundFunction, that); var iterator, iterFn, index, length, result, next, step; var stop = function (condition) { if (iterator) iteratorClose(iterator, 'normal', condition); return new Result(true, condition); }; var callFn = function (value) { if (AS_ENTRIES) { anObject(value); return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); } return INTERRUPTED ? fn(value, stop) : fn(value); }; if (IS_ITERATOR) { iterator = iterable; } else { iterFn = getIteratorMethod(iterable); if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable'); // optimisation for array iterators if (isArrayIteratorMethod(iterFn)) { for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) { result = callFn(iterable[index]); if (result && isPrototypeOf(ResultPrototype, result)) return result; } return new Result(false); } iterator = getIterator(iterable, iterFn); } next = iterator.next; while (!(step = call(next, iterator)).done) { try { result = callFn(step.value); } catch (error) { iteratorClose(iterator, 'throw', error); } if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; } return new Result(false); }; /***/ }), /* 197 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); // `thisNumberValue` abstract operation // https://tc39.es/ecma262/#sec-thisnumbervalue module.exports = uncurryThis(1.0.valueOf); /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var requireObjectCoercible = __webpack_require__(85); var toString = __webpack_require__(34); var whitespaces = __webpack_require__(199); var replace = uncurryThis(''.replace); var whitespace = '[' + whitespaces + ']'; var ltrim = RegExp('^' + whitespace + whitespace + '*'); var rtrim = RegExp(whitespace + whitespace + '*$'); // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation var createMethod = function (TYPE) { return function ($this) { var string = toString(requireObjectCoercible($this)); if (TYPE & 1) string = replace(string, ltrim, ''); if (TYPE & 2) string = replace(string, rtrim, ''); return string; }; }; module.exports = { // `String.prototype.{ trimLeft, trimStart }` methods // https://tc39.es/ecma262/#sec-string.prototype.trimstart start: createMethod(1), // `String.prototype.{ trimRight, trimEnd }` methods // https://tc39.es/ecma262/#sec-string.prototype.trimend end: createMethod(2), // `String.prototype.trim` method // https://tc39.es/ecma262/#sec-string.prototype.trim trim: createMethod(3) }; /***/ }), /* 199 */ /***/ (function(module, exports) { // a string of all valid unicode whitespaces module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; /***/ }), /* 200 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMutationDefinition", function() { return getMutationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkDocument", function() { return checkDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinition", function() { return getOperationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinitionOrDie", function() { return getOperationDefinitionOrDie; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return getOperationName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinitions", function() { return getFragmentDefinitions; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueryDefinition", function() { return getQueryDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinition", function() { return getFragmentDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMainDefinition", function() { return getMainDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFragmentMap", function() { return createFragmentMap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultValues", function() { return getDefaultValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "variablesInOperation", function() { return variablesInOperation; }); /* harmony import */ var _util_assign__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(201); /* harmony import */ var _storeUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(140); function getMutationDefinition(doc) { checkDocument(doc); var mutationDef = doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.operation === 'mutation'; })[0]; if (!mutationDef) { throw new Error('Must contain a mutation definition.'); } return mutationDef; } // Checks the document for errors and throws an exception if there is an error. function checkDocument(doc) { if (doc.kind !== 'Document') { throw new Error("Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql"); } var operations = doc.definitions .filter(function (d) { return d.kind !== 'FragmentDefinition'; }) .map(function (definition) { if (definition.kind !== 'OperationDefinition') { throw new Error("Schema type definitions not allowed in queries. Found: \"" + definition.kind + "\""); } return definition; }); if (operations.length > 1) { throw new Error("Ambiguous GraphQL document: contains " + operations.length + " operations"); } } function getOperationDefinition(doc) { checkDocument(doc); return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0]; } function getOperationDefinitionOrDie(document) { var def = getOperationDefinition(document); if (!def) { throw new Error("GraphQL document is missing an operation"); } return def; } function getOperationName(doc) { return (doc.definitions .filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.name; }) .map(function (x) { return x.name.value; })[0] || null); } // Returns the FragmentDefinitions from a particular document as an array function getFragmentDefinitions(doc) { return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; }); } function getQueryDefinition(doc) { var queryDef = getOperationDefinition(doc); if (!queryDef || queryDef.operation !== 'query') { throw new Error('Must contain a query definition.'); } return queryDef; } function getFragmentDefinition(doc) { if (doc.kind !== 'Document') { throw new Error("Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql"); } if (doc.definitions.length > 1) { throw new Error('Fragment must have exactly one definition.'); } var fragmentDef = doc.definitions[0]; if (fragmentDef.kind !== 'FragmentDefinition') { throw new Error('Must be a fragment definition.'); } return fragmentDef; } /** * Returns the first operation definition found in this document. * If no operation definition is found, the first fragment definition will be returned. * If no definitions are found, an error will be thrown. */ function getMainDefinition(queryDoc) { checkDocument(queryDoc); var fragmentDefinition; for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) { var definition = _a[_i]; if (definition.kind === 'OperationDefinition') { var operation = definition.operation; if (operation === 'query' || operation === 'mutation' || operation === 'subscription') { return definition; } } if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) { // we do this because we want to allow multiple fragment definitions // to precede an operation definition. fragmentDefinition = definition; } } if (fragmentDefinition) { return fragmentDefinition; } throw new Error('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.'); } // Utility function that takes a list of fragment definitions and makes a hash out of them // that maps the name of the fragment to the fragment definition. function createFragmentMap(fragments) { if (fragments === void 0) { fragments = []; } var symTable = {}; fragments.forEach(function (fragment) { symTable[fragment.name.value] = fragment; }); return symTable; } function getDefaultValues(definition) { if (definition && definition.variableDefinitions && definition.variableDefinitions.length) { var defaultValues = definition.variableDefinitions .filter(function (_a) { var defaultValue = _a.defaultValue; return defaultValue; }) .map(function (_a) { var variable = _a.variable, defaultValue = _a.defaultValue; var defaultValueObj = {}; Object(_storeUtils__WEBPACK_IMPORTED_MODULE_1__["valueToObjectRepresentation"])(defaultValueObj, variable.name, defaultValue); return defaultValueObj; }); return _util_assign__WEBPACK_IMPORTED_MODULE_0__["assign"].apply(void 0, [{}].concat(defaultValues)); } return {}; } /** * Returns the names of all variables declared by the operation. */ function variablesInOperation(operation) { var names = new Set(); if (operation.variableDefinitions) { for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) { var definition = _a[_i]; names.add(definition.variable.name.value); } } return names; } //# sourceMappingURL=getFromAST.js.map /***/ }), /* 201 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; }); function assign(target) { var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } sources.forEach(function (source) { if (typeof source === 'undefined' || source === null) { return; } Object.keys(source).forEach(function (key) { target[key] = source[key]; }); }); return target; } //# sourceMappingURL=assign.js.map /***/ }), /* 202 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneDeep", function() { return cloneDeep; }); /** * Deeply clones a value to create a new instance. */ function cloneDeep(value) { // If the value is an array, create a new array where every item has been cloned. if (Array.isArray(value)) { return value.map(function (item) { return cloneDeep(item); }); } // If the value is an object, go through all of the object’s properties and add them to a new // object. if (value !== null && typeof value === 'object') { var nextValue = {}; for (var key in value) { if (value.hasOwnProperty(key)) { nextValue[key] = cloneDeep(value[key]); } } return nextValue; } // Otherwise this is some primitive value and it is therefore immutable so we can just return it // directly. return value; } //# sourceMappingURL=cloneDeep.js.map /***/ }), /* 203 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); /* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); /* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zen_observable__WEBPACK_IMPORTED_MODULE_0__); var Observable = zen_observable__WEBPACK_IMPORTED_MODULE_0___default.a; //# sourceMappingURL=zenObservable.js.map /***/ }), /* 204 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(669).Observable; /***/ }), /* 205 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OperationBatcher", function() { return OperationBatcher; }); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; // QueryBatcher doesn't fire requests immediately. Requests that were enqueued within // a certain amount of time (configurable through `batchInterval`) will be batched together // into one query. var OperationBatcher = /** @class */ (function () { function OperationBatcher(_a) { var batchInterval = _a.batchInterval, _b = _a.batchMax, batchMax = _b === void 0 ? 0 : _b, batchHandler = _a.batchHandler, _c = _a.batchKey, batchKey = _c === void 0 ? function () { return ''; } : _c; this.queuedRequests = new Map(); this.batchInterval = batchInterval; this.batchMax = batchMax; this.batchHandler = batchHandler; this.batchKey = batchKey; } OperationBatcher.prototype.enqueueRequest = function (request) { var _this = this; var requestCopy = __assign({}, request); var queued = false; var key = this.batchKey(request.operation); if (!requestCopy.observable) { requestCopy.observable = new apollo_link__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (observer) { if (!_this.queuedRequests.has(key)) { _this.queuedRequests.set(key, []); } if (!queued) { _this.queuedRequests.get(key).push(requestCopy); queued = true; } //called for each subscriber, so need to save all listeners(next, error, complete) requestCopy.next = requestCopy.next || []; if (observer.next) requestCopy.next.push(observer.next.bind(observer)); requestCopy.error = requestCopy.error || []; if (observer.error) requestCopy.error.push(observer.error.bind(observer)); requestCopy.complete = requestCopy.complete || []; if (observer.complete) requestCopy.complete.push(observer.complete.bind(observer)); // The first enqueued request triggers the queue consumption after `batchInterval` milliseconds. if (_this.queuedRequests.get(key).length === 1) { _this.scheduleQueueConsumption(key); } // When amount of requests reaches `batchMax`, trigger the queue consumption without waiting on the `batchInterval`. if (_this.queuedRequests.get(key).length === _this.batchMax) { _this.consumeQueue(key); } }); } return requestCopy.observable; }; // Consumes the queue. // Returns a list of promises (one for each query). OperationBatcher.prototype.consumeQueue = function (key) { if (key === void 0) { key = ''; } var queuedRequests = this.queuedRequests.get(key); if (!queuedRequests) { return; } this.queuedRequests.delete(key); var requests = queuedRequests.map(function (queuedRequest) { return queuedRequest.operation; }); var forwards = queuedRequests.map(function (queuedRequest) { return queuedRequest.forward; }); var observables = []; var nexts = []; var errors = []; var completes = []; queuedRequests.forEach(function (batchableRequest, index) { observables.push(batchableRequest.observable); nexts.push(batchableRequest.next); errors.push(batchableRequest.error); completes.push(batchableRequest.complete); }); var batchedObservable = this.batchHandler(requests, forwards) || apollo_link__WEBPACK_IMPORTED_MODULE_0__["Observable"].of(); var onError = function (error) { //each callback list in batch errors.forEach(function (rejecters) { if (rejecters) { //each subscriber to request rejecters.forEach(function (e) { return e(error); }); } }); }; batchedObservable.subscribe({ next: function (results) { if (!Array.isArray(results)) { results = [results]; } if (nexts.length !== results.length) { var error = new Error("server returned results with length " + results.length + ", expected length of " + nexts.length); error.result = results; return onError(error); } results.forEach(function (result, index) { // attach the raw response to the context for usage requests[index].setContext({ response: result }); if (nexts[index]) { nexts[index].forEach(function (next) { return next(result); }); } }); }, error: onError, complete: function () { completes.forEach(function (complete) { if (complete) { //each subscriber to request complete.forEach(function (c) { return c(); }); } }); }, }); return observables; }; OperationBatcher.prototype.scheduleQueueConsumption = function (key) { var _this = this; if (key === void 0) { key = ''; } setTimeout(function () { if (_this.queuedRequests.get(key) && _this.queuedRequests.get(key).length) { _this.consumeQueue(key); } }, this.batchInterval); }; return OperationBatcher; }()); //# sourceMappingURL=batching.js.map /***/ }), /* 206 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultDataIdFromObject", function() { return defaultDataIdFromObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InMemoryCache", function() { return InMemoryCache; }); /* harmony import */ var _fixPolyfills__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(681); /* harmony import */ var _fixPolyfills__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_fixPolyfills__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var apollo_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(682); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(108); /* harmony import */ var _fragmentMatcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(210); /* harmony import */ var _readFromStore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(211); /* harmony import */ var _writeToStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(214); /* harmony import */ var _depTrackingCache__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(213); /* harmony import */ var _optimism__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(212); /* harmony import */ var _recordingCache__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(216); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); } return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var defaultConfig = { fragmentMatcher: new _fragmentMatcher__WEBPACK_IMPORTED_MODULE_3__["HeuristicFragmentMatcher"](), dataIdFromObject: defaultDataIdFromObject, addTypename: true, }; function defaultDataIdFromObject(result) { if (result.__typename) { if (result.id !== undefined) { return result.__typename + ":" + result.id; } if (result._id !== undefined) { return result.__typename + ":" + result._id; } } return null; } var InMemoryCache = (function (_super) { __extends(InMemoryCache, _super); function InMemoryCache(config) { if (config === void 0) { config = {}; } var _this = _super.call(this) || this; _this.optimistic = []; _this.watches = new Set(); _this.typenameDocumentCache = new Map(); _this.cacheKeyRoot = new _optimism__WEBPACK_IMPORTED_MODULE_7__["CacheKeyNode"](); _this.silenceBroadcast = false; _this.config = __assign({}, defaultConfig, config); if (_this.config.customResolvers) { console.warn('customResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating customResolvers in the next major version.'); _this.config.cacheRedirects = _this.config.customResolvers; } if (_this.config.cacheResolvers) { console.warn('cacheResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating cacheResolvers in the next major version.'); _this.config.cacheRedirects = _this.config.cacheResolvers; } _this.addTypename = _this.config.addTypename; _this.data = Object(_depTrackingCache__WEBPACK_IMPORTED_MODULE_6__["defaultNormalizedCacheFactory"])(); _this.storeReader = new _readFromStore__WEBPACK_IMPORTED_MODULE_4__["StoreReader"](_this.cacheKeyRoot); _this.storeWriter = new _writeToStore__WEBPACK_IMPORTED_MODULE_5__["StoreWriter"](); var cache = _this; var maybeBroadcastWatch = cache.maybeBroadcastWatch; _this.maybeBroadcastWatch = Object(_optimism__WEBPACK_IMPORTED_MODULE_7__["wrap"])(function (c) { return maybeBroadcastWatch.call(_this, c); }, { makeCacheKey: function (c) { if (c.optimistic && cache.optimistic.length > 0) { return; } if (c.previousResult) { return; } if (cache.data instanceof _depTrackingCache__WEBPACK_IMPORTED_MODULE_6__["DepTrackingCache"]) { return cache.cacheKeyRoot.lookup(c.query, JSON.stringify(c.variables)); } } }); return _this; } InMemoryCache.prototype.restore = function (data) { if (data) this.data.replace(data); return this; }; InMemoryCache.prototype.extract = function (optimistic) { if (optimistic === void 0) { optimistic = false; } if (optimistic && this.optimistic.length > 0) { var patches = this.optimistic.map(function (opt) { return opt.data; }); return Object.assign.apply(Object, [{}, this.data.toObject()].concat(patches)); } return this.data.toObject(); }; InMemoryCache.prototype.read = function (query) { if (query.rootId && this.data.get(query.rootId) === undefined) { return null; } var store = (query.optimistic && this.optimistic.length) ? Object(_depTrackingCache__WEBPACK_IMPORTED_MODULE_6__["defaultNormalizedCacheFactory"])(this.extract(true)) : this.data; return this.storeReader.readQueryFromStore({ store: store, query: this.transformDocument(query.query), variables: query.variables, rootId: query.rootId, fragmentMatcherFunction: this.config.fragmentMatcher.match, previousResult: query.previousResult, config: this.config, }); }; InMemoryCache.prototype.write = function (write) { this.storeWriter.writeResultToStore({ dataId: write.dataId, result: write.result, variables: write.variables, document: this.transformDocument(write.query), store: this.data, dataIdFromObject: this.config.dataIdFromObject, fragmentMatcherFunction: this.config.fragmentMatcher.match, }); this.broadcastWatches(); }; InMemoryCache.prototype.diff = function (query) { var store = (query.optimistic && this.optimistic.length) ? Object(_depTrackingCache__WEBPACK_IMPORTED_MODULE_6__["defaultNormalizedCacheFactory"])(this.extract(true)) : this.data; return this.storeReader.diffQueryAgainstStore({ store: store, query: this.transformDocument(query.query), variables: query.variables, returnPartialData: query.returnPartialData, previousResult: query.previousResult, fragmentMatcherFunction: this.config.fragmentMatcher.match, config: this.config, }); }; InMemoryCache.prototype.watch = function (watch) { var _this = this; this.watches.add(watch); return function () { _this.watches.delete(watch); }; }; InMemoryCache.prototype.evict = function (query) { throw new Error("eviction is not implemented on InMemory Cache"); }; InMemoryCache.prototype.reset = function () { this.data.clear(); this.broadcastWatches(); return Promise.resolve(); }; InMemoryCache.prototype.removeOptimistic = function (id) { var _this = this; var toPerform = this.optimistic.filter(function (item) { return item.id !== id; }); this.optimistic = []; toPerform.forEach(function (change) { _this.recordOptimisticTransaction(change.transaction, change.id); }); this.broadcastWatches(); }; InMemoryCache.prototype.performTransaction = function (transaction) { var alreadySilenced = this.silenceBroadcast; this.silenceBroadcast = true; transaction(this); if (!alreadySilenced) { this.silenceBroadcast = false; } this.broadcastWatches(); }; InMemoryCache.prototype.recordOptimisticTransaction = function (transaction, id) { var _this = this; this.silenceBroadcast = true; var patch = Object(_recordingCache__WEBPACK_IMPORTED_MODULE_8__["record"])(this.extract(true), function (recordingCache) { var dataCache = _this.data; _this.data = recordingCache; _this.performTransaction(transaction); _this.data = dataCache; }); this.optimistic.push({ id: id, transaction: transaction, data: patch, }); this.silenceBroadcast = false; this.broadcastWatches(); }; InMemoryCache.prototype.transformDocument = function (document) { if (this.addTypename) { var result = this.typenameDocumentCache.get(document); if (!result) { result = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_2__["addTypenameToDocument"])(document); this.typenameDocumentCache.set(document, result); this.typenameDocumentCache.set(result, result); } return result; } return document; }; InMemoryCache.prototype.readQuery = function (options, optimistic) { if (optimistic === void 0) { optimistic = false; } return this.read({ query: options.query, variables: options.variables, optimistic: optimistic, }); }; InMemoryCache.prototype.readFragment = function (options, optimistic) { if (optimistic === void 0) { optimistic = false; } return this.read({ query: this.transformDocument(Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_2__["getFragmentQueryDocument"])(options.fragment, options.fragmentName)), variables: options.variables, rootId: options.id, optimistic: optimistic, }); }; InMemoryCache.prototype.writeQuery = function (options) { this.write({ dataId: 'ROOT_QUERY', result: options.data, query: this.transformDocument(options.query), variables: options.variables, }); }; InMemoryCache.prototype.writeFragment = function (options) { this.write({ dataId: options.id, result: options.data, query: this.transformDocument(Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_2__["getFragmentQueryDocument"])(options.fragment, options.fragmentName)), variables: options.variables, }); }; InMemoryCache.prototype.broadcastWatches = function () { var _this = this; if (!this.silenceBroadcast) { var optimistic_1 = this.optimistic.length > 0; this.watches.forEach(function (c) { _this.maybeBroadcastWatch(c); if (optimistic_1) { _this.maybeBroadcastWatch.dirty(c); } }); } }; InMemoryCache.prototype.maybeBroadcastWatch = function (c) { c.callback(this.diff({ query: c.query, variables: c.variables, previousResult: c.previousResult && c.previousResult(), optimistic: c.optimistic, })); }; return InMemoryCache; }(apollo_cache__WEBPACK_IMPORTED_MODULE_1__["ApolloCache"])); //# sourceMappingURL=inMemoryCache.js.map /***/ }), /* 207 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMutationDefinition", function() { return getMutationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkDocument", function() { return checkDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinition", function() { return getOperationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinitionOrDie", function() { return getOperationDefinitionOrDie; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return getOperationName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinitions", function() { return getFragmentDefinitions; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueryDefinition", function() { return getQueryDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinition", function() { return getFragmentDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMainDefinition", function() { return getMainDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFragmentMap", function() { return createFragmentMap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultValues", function() { return getDefaultValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "variablesInOperation", function() { return variablesInOperation; }); /* harmony import */ var _util_assign__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(208); /* harmony import */ var _storeUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(145); function getMutationDefinition(doc) { checkDocument(doc); var mutationDef = doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.operation === 'mutation'; })[0]; if (!mutationDef) { throw new Error('Must contain a mutation definition.'); } return mutationDef; } function checkDocument(doc) { if (doc.kind !== 'Document') { throw new Error("Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql"); } var operations = doc.definitions .filter(function (d) { return d.kind !== 'FragmentDefinition'; }) .map(function (definition) { if (definition.kind !== 'OperationDefinition') { throw new Error("Schema type definitions not allowed in queries. Found: \"" + definition.kind + "\""); } return definition; }); if (operations.length > 1) { throw new Error("Ambiguous GraphQL document: contains " + operations.length + " operations"); } } function getOperationDefinition(doc) { checkDocument(doc); return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0]; } function getOperationDefinitionOrDie(document) { var def = getOperationDefinition(document); if (!def) { throw new Error("GraphQL document is missing an operation"); } return def; } function getOperationName(doc) { return (doc.definitions .filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.name; }) .map(function (x) { return x.name.value; })[0] || null); } function getFragmentDefinitions(doc) { return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; }); } function getQueryDefinition(doc) { var queryDef = getOperationDefinition(doc); if (!queryDef || queryDef.operation !== 'query') { throw new Error('Must contain a query definition.'); } return queryDef; } function getFragmentDefinition(doc) { if (doc.kind !== 'Document') { throw new Error("Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql"); } if (doc.definitions.length > 1) { throw new Error('Fragment must have exactly one definition.'); } var fragmentDef = doc.definitions[0]; if (fragmentDef.kind !== 'FragmentDefinition') { throw new Error('Must be a fragment definition.'); } return fragmentDef; } function getMainDefinition(queryDoc) { checkDocument(queryDoc); var fragmentDefinition; for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) { var definition = _a[_i]; if (definition.kind === 'OperationDefinition') { var operation = definition.operation; if (operation === 'query' || operation === 'mutation' || operation === 'subscription') { return definition; } } if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) { fragmentDefinition = definition; } } if (fragmentDefinition) { return fragmentDefinition; } throw new Error('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.'); } function createFragmentMap(fragments) { if (fragments === void 0) { fragments = []; } var symTable = {}; fragments.forEach(function (fragment) { symTable[fragment.name.value] = fragment; }); return symTable; } function getDefaultValues(definition) { if (definition && definition.variableDefinitions && definition.variableDefinitions.length) { var defaultValues = definition.variableDefinitions .filter(function (_a) { var defaultValue = _a.defaultValue; return defaultValue; }) .map(function (_a) { var variable = _a.variable, defaultValue = _a.defaultValue; var defaultValueObj = {}; Object(_storeUtils__WEBPACK_IMPORTED_MODULE_1__["valueToObjectRepresentation"])(defaultValueObj, variable.name, defaultValue); return defaultValueObj; }); return _util_assign__WEBPACK_IMPORTED_MODULE_0__["assign"].apply(void 0, [{}].concat(defaultValues)); } return {}; } function variablesInOperation(operation) { var names = new Set(); if (operation.variableDefinitions) { for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) { var definition = _a[_i]; names.add(definition.variable.name.value); } } return names; } //# sourceMappingURL=getFromAST.js.map /***/ }), /* 208 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; }); function assign(target) { var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } sources.forEach(function (source) { if (typeof source === 'undefined' || source === null) { return; } Object.keys(source).forEach(function (key) { target[key] = source[key]; }); }); return target; } //# sourceMappingURL=assign.js.map /***/ }), /* 209 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneDeep", function() { return cloneDeep; }); var toString = Object.prototype.toString; function cloneDeep(value) { return cloneDeepHelper(value, new Map()); } function cloneDeepHelper(val, seen) { switch (toString.call(val)) { case "[object Array]": { if (seen.has(val)) return seen.get(val); var copy_1 = val.slice(0); seen.set(val, copy_1); copy_1.forEach(function (child, i) { copy_1[i] = cloneDeepHelper(child, seen); }); return copy_1; } case "[object Object]": { if (seen.has(val)) return seen.get(val); var copy_2 = Object.create(Object.getPrototypeOf(val)); seen.set(val, copy_2); Object.keys(val).forEach(function (key) { copy_2[key] = cloneDeepHelper(val[key], seen); }); return copy_2; } default: return val; } } //# sourceMappingURL=cloneDeep.js.map /***/ }), /* 210 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeuristicFragmentMatcher", function() { return HeuristicFragmentMatcher; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IntrospectionFragmentMatcher", function() { return IntrospectionFragmentMatcher; }); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(108); var haveWarned = false; var HeuristicFragmentMatcher = (function () { function HeuristicFragmentMatcher() { } HeuristicFragmentMatcher.prototype.ensureReady = function () { return Promise.resolve(); }; HeuristicFragmentMatcher.prototype.canBypassInit = function () { return true; }; HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) { var obj = context.store.get(idValue.id); if (!obj && idValue.id === 'ROOT_QUERY') { return true; } if (!obj) { return false; } if (!obj.__typename) { if (!haveWarned) { console.warn("You're using fragments in your queries, but either don't have the addTypename:\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\n can accurately match fragments."); console.warn('Could not find __typename on Fragment ', typeCondition, obj); console.warn("DEPRECATION WARNING: using fragments without __typename is unsupported behavior " + "and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now."); if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isTest"])()) { haveWarned = true; } } return 'heuristic'; } if (obj.__typename === typeCondition) { return true; } Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["warnOnceInDevelopment"])('You are using the simple (heuristic) fragment matcher, but your ' + 'queries contain union or interface types. Apollo Client will not be ' + 'able to accurately map fragments. To make this error go away, use ' + 'the `IntrospectionFragmentMatcher` as described in the docs: ' + 'https://www.apollographql.com/docs/react/recipes/fragment-matching.html', 'error'); return 'heuristic'; }; return HeuristicFragmentMatcher; }()); var IntrospectionFragmentMatcher = (function () { function IntrospectionFragmentMatcher(options) { if (options && options.introspectionQueryResultData) { this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData); this.isReady = true; } else { this.isReady = false; } this.match = this.match.bind(this); } IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) { if (!this.isReady) { throw new Error('FragmentMatcher.match() was called before FragmentMatcher.init()'); } var obj = context.store.get(idValue.id); if (!obj) { return false; } if (!obj.__typename) { throw new Error("Cannot match fragment because __typename property is missing: " + JSON.stringify(obj)); } if (obj.__typename === typeCondition) { return true; } var implementingTypes = this.possibleTypesMap[typeCondition]; if (implementingTypes && implementingTypes.indexOf(obj.__typename) > -1) { return true; } return false; }; IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) { var typeMap = {}; introspectionResultData.__schema.types.forEach(function (type) { if (type.kind === 'UNION' || type.kind === 'INTERFACE') { typeMap[type.name] = type.possibleTypes.map(function (implementingType) { return implementingType.name; }); } }); return typeMap; }; return IntrospectionFragmentMatcher; }()); //# sourceMappingURL=fragmentMatcher.js.map /***/ }), /* 211 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StoreReader", function() { return StoreReader; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assertIdValue", function() { return assertIdValue; }); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(108); /* harmony import */ var _optimism__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(212); /* harmony import */ var _depTrackingCache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(213); /* harmony import */ var _queryKeyMaker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(688); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var StoreReader = (function () { function StoreReader(cacheKeyRoot) { if (cacheKeyRoot === void 0) { cacheKeyRoot = new _optimism__WEBPACK_IMPORTED_MODULE_1__["CacheKeyNode"]; } var _this = this; this.cacheKeyRoot = cacheKeyRoot; var reader = this; var executeStoreQuery = reader.executeStoreQuery, executeSelectionSet = reader.executeSelectionSet; reader.keyMaker = new _queryKeyMaker__WEBPACK_IMPORTED_MODULE_3__["QueryKeyMaker"](cacheKeyRoot); this.executeStoreQuery = Object(_optimism__WEBPACK_IMPORTED_MODULE_1__["wrap"])(function (options) { return executeStoreQuery.call(_this, options); }, { makeCacheKey: function (_a) { var query = _a.query, rootValue = _a.rootValue, contextValue = _a.contextValue, variableValues = _a.variableValues, fragmentMatcher = _a.fragmentMatcher; if (contextValue.store instanceof _depTrackingCache__WEBPACK_IMPORTED_MODULE_2__["DepTrackingCache"]) { return reader.cacheKeyRoot.lookup(reader.keyMaker.forQuery(query).lookupQuery(query), contextValue.store, fragmentMatcher, JSON.stringify(variableValues), rootValue.id); } return; } }); this.executeSelectionSet = Object(_optimism__WEBPACK_IMPORTED_MODULE_1__["wrap"])(function (options) { return executeSelectionSet.call(_this, options); }, { makeCacheKey: function (_a) { var selectionSet = _a.selectionSet, rootValue = _a.rootValue, execContext = _a.execContext; if (execContext.contextValue.store instanceof _depTrackingCache__WEBPACK_IMPORTED_MODULE_2__["DepTrackingCache"]) { return reader.cacheKeyRoot.lookup(reader.keyMaker.forQuery(execContext.query).lookupSelectionSet(selectionSet), execContext.contextValue.store, execContext.fragmentMatcher, JSON.stringify(execContext.variableValues), rootValue.id); } return; } }); } StoreReader.prototype.readQueryFromStore = function (options) { var optsPatch = { returnPartialData: false }; return this.diffQueryAgainstStore(__assign({}, options, optsPatch)).result; }; StoreReader.prototype.diffQueryAgainstStore = function (_a) { var store = _a.store, query = _a.query, variables = _a.variables, previousResult = _a.previousResult, _b = _a.returnPartialData, returnPartialData = _b === void 0 ? true : _b, _c = _a.rootId, rootId = _c === void 0 ? 'ROOT_QUERY' : _c, fragmentMatcherFunction = _a.fragmentMatcherFunction, config = _a.config; var queryDefinition = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getQueryDefinition"])(query); variables = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["assign"])({}, Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getDefaultValues"])(queryDefinition), variables); var context = { store: store, dataIdFromObject: (config && config.dataIdFromObject) || null, cacheRedirects: (config && config.cacheRedirects) || {}, }; var execResult = this.executeStoreQuery({ query: query, rootValue: { type: 'id', id: rootId, generated: true, typename: 'Query', }, contextValue: context, variableValues: variables, fragmentMatcher: fragmentMatcherFunction, }); var hasMissingFields = execResult.missing && execResult.missing.length > 0; if (hasMissingFields && !returnPartialData) { execResult.missing.forEach(function (info) { if (info.tolerable) return; throw new Error("Can't find field " + info.fieldName + " on object " + JSON.stringify(info.object, null, 2) + "."); }); } if (previousResult) { if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isEqual"])(previousResult, execResult.result)) { execResult.result = previousResult; } } return { result: execResult.result, complete: !hasMissingFields, }; }; StoreReader.prototype.executeStoreQuery = function (_a) { var query = _a.query, rootValue = _a.rootValue, contextValue = _a.contextValue, variableValues = _a.variableValues, _b = _a.fragmentMatcher, fragmentMatcher = _b === void 0 ? defaultFragmentMatcher : _b; var mainDefinition = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getMainDefinition"])(query); var fragments = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getFragmentDefinitions"])(query); var fragmentMap = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["createFragmentMap"])(fragments); var execContext = { query: query, fragmentMap: fragmentMap, contextValue: contextValue, variableValues: variableValues, fragmentMatcher: fragmentMatcher, }; return this.executeSelectionSet({ selectionSet: mainDefinition.selectionSet, rootValue: rootValue, execContext: execContext, }); }; StoreReader.prototype.executeSelectionSet = function (_a) { var _this = this; var selectionSet = _a.selectionSet, rootValue = _a.rootValue, execContext = _a.execContext; var fragmentMap = execContext.fragmentMap, contextValue = execContext.contextValue, variables = execContext.variableValues; var finalResult = { result: {}, }; var objectsToMerge = []; var object = contextValue.store.get(rootValue.id); var typename = (object && object.__typename) || (rootValue.id === 'ROOT_QUERY' && 'Query') || void 0; function handleMissing(result) { var _a; if (result.missing) { finalResult.missing = finalResult.missing || []; (_a = finalResult.missing).push.apply(_a, result.missing); } return result.result; } selectionSet.selections.forEach(function (selection) { var _a; if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["shouldInclude"])(selection, variables)) { return; } if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isField"])(selection)) { var fieldResult = handleMissing(_this.executeField(object, typename, selection, execContext)); if (typeof fieldResult !== 'undefined') { objectsToMerge.push((_a = {}, _a[Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["resultKeyNameFromField"])(selection)] = fieldResult, _a)); } } else { var fragment = void 0; if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isInlineFragment"])(selection)) { fragment = selection; } else { fragment = fragmentMap[selection.name.value]; if (!fragment) { throw new Error("No fragment named " + selection.name.value); } } var typeCondition = fragment.typeCondition.name.value; var match = execContext.fragmentMatcher(rootValue, typeCondition, contextValue); if (match) { var fragmentExecResult = _this.executeSelectionSet({ selectionSet: fragment.selectionSet, rootValue: rootValue, execContext: execContext, }); if (match === 'heuristic' && fragmentExecResult.missing) { fragmentExecResult = __assign({}, fragmentExecResult, { missing: fragmentExecResult.missing.map(function (info) { return __assign({}, info, { tolerable: true }); }) }); } objectsToMerge.push(handleMissing(fragmentExecResult)); } } }); merge(finalResult.result, objectsToMerge); return finalResult; }; StoreReader.prototype.executeField = function (object, typename, field, execContext) { var variables = execContext.variableValues, contextValue = execContext.contextValue; var fieldName = field.name.value; var args = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["argumentsObjectFromField"])(field, variables); var info = { resultKey: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["resultKeyNameFromField"])(field), directives: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getDirectiveInfoFromField"])(field, variables), }; var readStoreResult = readStoreResolver(object, typename, fieldName, args, contextValue, info); if (Array.isArray(readStoreResult.result)) { return this.combineExecResults(readStoreResult, this.executeSubSelectedArray(field, readStoreResult.result, execContext)); } if (!field.selectionSet) { assertSelectionSetForIdValue(field, readStoreResult.result); return readStoreResult; } if (readStoreResult.result == null) { return readStoreResult; } return this.combineExecResults(readStoreResult, this.executeSelectionSet({ selectionSet: field.selectionSet, rootValue: readStoreResult.result, execContext: execContext, })); }; StoreReader.prototype.combineExecResults = function () { var execResults = []; for (var _i = 0; _i < arguments.length; _i++) { execResults[_i] = arguments[_i]; } var missing = null; execResults.forEach(function (execResult) { if (execResult.missing) { missing = missing || []; missing.push.apply(missing, execResult.missing); } }); return { result: execResults.pop().result, missing: missing, }; }; StoreReader.prototype.executeSubSelectedArray = function (field, result, execContext) { var _this = this; var missing = null; function handleMissing(childResult) { if (childResult.missing) { missing = missing || []; missing.push.apply(missing, childResult.missing); } return childResult.result; } result = result.map(function (item) { if (item === null) { return null; } if (Array.isArray(item)) { return handleMissing(_this.executeSubSelectedArray(field, item, execContext)); } if (field.selectionSet) { return handleMissing(_this.executeSelectionSet({ selectionSet: field.selectionSet, rootValue: item, execContext: execContext, })); } assertSelectionSetForIdValue(field, item); return item; }); return { result: result, missing: missing }; }; return StoreReader; }()); function assertSelectionSetForIdValue(field, value) { if (!field.selectionSet && Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isIdValue"])(value)) { throw new Error("Missing selection set for object of type " + value.typename + " returned for query field " + field.name.value); } } function defaultFragmentMatcher() { return true; } function assertIdValue(idValue) { if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isIdValue"])(idValue)) { throw new Error("Encountered a sub-selection on the query, but the store doesn't have an object reference. This should never happen during normal use unless you have custom code that is directly manipulating the store; please file an issue."); } } function readStoreResolver(object, typename, fieldName, args, context, _a) { var resultKey = _a.resultKey, directives = _a.directives; var storeKeyName = fieldName; if (args || directives) { storeKeyName = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getStoreKeyName"])(storeKeyName, args, directives); } var fieldValue = void 0; if (object) { fieldValue = object[storeKeyName]; if (typeof fieldValue === 'undefined' && context.cacheRedirects && typeof typename === 'string') { var type = context.cacheRedirects[typename]; if (type) { var resolver = type[fieldName]; if (resolver) { fieldValue = resolver(object, args, { getCacheKey: function (storeObj) { return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["toIdValue"])({ id: context.dataIdFromObject(storeObj), typename: storeObj.__typename, }); }, }); } } } } if (typeof fieldValue === 'undefined') { return { result: fieldValue, missing: [{ object: object, fieldName: storeKeyName, tolerable: false, }], }; } if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["isJsonValue"])(fieldValue)) { fieldValue = fieldValue.json; } return { result: fieldValue, }; } var hasOwn = Object.prototype.hasOwnProperty; function merge(target, sources) { var pastCopies = []; sources.forEach(function (source) { mergeHelper(target, source, pastCopies); }); return target; } function mergeHelper(target, source, pastCopies) { if (source !== null && typeof source === 'object') { if (Object.isExtensible && !Object.isExtensible(target)) { target = shallowCopyForMerge(target, pastCopies); } Object.keys(source).forEach(function (sourceKey) { var sourceValue = source[sourceKey]; if (hasOwn.call(target, sourceKey)) { var targetValue = target[sourceKey]; if (sourceValue !== targetValue) { target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies); } } else { target[sourceKey] = sourceValue; } }); } return target; } function shallowCopyForMerge(value, pastCopies) { if (value !== null && typeof value === 'object' && pastCopies.indexOf(value) < 0) { if (Array.isArray(value)) { value = value.slice(0); } else { value = __assign({}, value); } pastCopies.push(value); } return value; } //# sourceMappingURL=readFromStore.js.map /***/ }), /* 212 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "wrap", function() { return wrap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CacheKeyNode", function() { return CacheKeyNode; }); var wrap = __webpack_require__(684).wrap; var CacheKeyNode = (function () { function CacheKeyNode() { this.children = null; this.key = null; } CacheKeyNode.prototype.lookup = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return this.lookupArray(args); }; CacheKeyNode.prototype.lookupArray = function (array) { var node = this; array.forEach(function (value) { node = node.getOrCreate(value); }); return node.key || (node.key = Object.create(null)); }; CacheKeyNode.prototype.getOrCreate = function (value) { var map = this.children || (this.children = new Map()); var node = map.get(value); if (!node) { map.set(value, node = new CacheKeyNode()); } return node; }; return CacheKeyNode; }()); //# sourceMappingURL=optimism.js.map /***/ }), /* 213 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DepTrackingCache", function() { return DepTrackingCache; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultNormalizedCacheFactory", function() { return defaultNormalizedCacheFactory; }); /* harmony import */ var _optimism__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(212); var hasOwn = Object.prototype.hasOwnProperty; var DepTrackingCache = (function () { function DepTrackingCache(data) { if (data === void 0) { data = Object.create(null); } var _this = this; this.data = data; this.depend = Object(_optimism__WEBPACK_IMPORTED_MODULE_0__["wrap"])(function (dataId) { return _this.data[dataId]; }, { disposable: true, makeCacheKey: function (dataId) { return dataId; } }); } DepTrackingCache.prototype.toObject = function () { return this.data; }; DepTrackingCache.prototype.get = function (dataId) { this.depend(dataId); return this.data[dataId]; }; DepTrackingCache.prototype.set = function (dataId, value) { var oldValue = this.data[dataId]; if (value !== oldValue) { this.data[dataId] = value; this.depend.dirty(dataId); } }; DepTrackingCache.prototype.delete = function (dataId) { if (hasOwn.call(this.data, dataId)) { delete this.data[dataId]; this.depend.dirty(dataId); } }; DepTrackingCache.prototype.clear = function () { this.replace(null); }; DepTrackingCache.prototype.replace = function (newData) { var _this = this; if (newData) { Object.keys(newData).forEach(function (dataId) { _this.set(dataId, newData[dataId]); }); Object.keys(this.data).forEach(function (dataId) { if (!hasOwn.call(newData, dataId)) { _this.delete(dataId); } }); } else { Object.keys(this.data).forEach(function (dataId) { _this.delete(dataId); }); } }; return DepTrackingCache; }()); function defaultNormalizedCacheFactory(seed) { return new DepTrackingCache(seed); } //# sourceMappingURL=depTrackingCache.js.map /***/ }), /* 214 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WriteError", function() { return WriteError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "enhanceErrorWithDocument", function() { return enhanceErrorWithDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StoreWriter", function() { return StoreWriter; }); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(108); /* harmony import */ var _objectCache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); /* harmony import */ var _depTrackingCache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(213); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); } return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var WriteError = (function (_super) { __extends(WriteError, _super); function WriteError() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = 'WriteError'; return _this; } return WriteError; }(Error)); function enhanceErrorWithDocument(error, document) { var enhancedError = new WriteError("Error writing result to store for query:\n " + Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"])(document)); enhancedError.message += '\n' + error.message; enhancedError.stack = error.stack; return enhancedError; } var StoreWriter = (function () { function StoreWriter() { } StoreWriter.prototype.writeQueryToStore = function (_a) { var query = _a.query, result = _a.result, _b = _a.store, store = _b === void 0 ? Object(_depTrackingCache__WEBPACK_IMPORTED_MODULE_3__["defaultNormalizedCacheFactory"])() : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, fragmentMatcherFunction = _a.fragmentMatcherFunction; return this.writeResultToStore({ dataId: 'ROOT_QUERY', result: result, document: query, store: store, variables: variables, dataIdFromObject: dataIdFromObject, fragmentMatcherFunction: fragmentMatcherFunction, }); }; StoreWriter.prototype.writeResultToStore = function (_a) { var dataId = _a.dataId, result = _a.result, document = _a.document, _b = _a.store, store = _b === void 0 ? Object(_depTrackingCache__WEBPACK_IMPORTED_MODULE_3__["defaultNormalizedCacheFactory"])() : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, fragmentMatcherFunction = _a.fragmentMatcherFunction; var operationDefinition = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["getOperationDefinition"])(document); try { return this.writeSelectionSetToStore({ result: result, dataId: dataId, selectionSet: operationDefinition.selectionSet, context: { store: store, processedData: {}, variables: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["assign"])({}, Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["getDefaultValues"])(operationDefinition), variables), dataIdFromObject: dataIdFromObject, fragmentMap: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["createFragmentMap"])(Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["getFragmentDefinitions"])(document)), fragmentMatcherFunction: fragmentMatcherFunction, }, }); } catch (e) { throw enhanceErrorWithDocument(e, document); } }; StoreWriter.prototype.writeSelectionSetToStore = function (_a) { var _this = this; var result = _a.result, dataId = _a.dataId, selectionSet = _a.selectionSet, context = _a.context; var variables = context.variables, store = context.store, fragmentMap = context.fragmentMap; selectionSet.selections.forEach(function (selection) { if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["shouldInclude"])(selection, variables)) { return; } if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isField"])(selection)) { var resultFieldKey = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["resultKeyNameFromField"])(selection); var value = result[resultFieldKey]; if (typeof value !== 'undefined') { _this.writeFieldToStore({ dataId: dataId, value: value, field: selection, context: context, }); } else { var isDefered = selection.directives && selection.directives.length && selection.directives.some(function (directive) { return directive.name && directive.name.value === 'defer'; }); if (!isDefered && context.fragmentMatcherFunction) { if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isProduction"])()) { console.warn("Missing field " + resultFieldKey + " in " + JSON.stringify(result, null, 2).substring(0, 100)); } } } } else { var fragment = void 0; if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isInlineFragment"])(selection)) { fragment = selection; } else { fragment = (fragmentMap || {})[selection.name.value]; if (!fragment) { throw new Error("No fragment named " + selection.name.value + "."); } } var matches = true; if (context.fragmentMatcherFunction && fragment.typeCondition) { var idValue = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["toIdValue"])({ id: 'self', typename: undefined }); var fakeContext = { store: new _objectCache__WEBPACK_IMPORTED_MODULE_2__["ObjectCache"]({ self: result }), cacheRedirects: {}, }; var match = context.fragmentMatcherFunction(idValue, fragment.typeCondition.name.value, fakeContext); if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isProduction"])() && match === 'heuristic') { console.error('WARNING: heuristic fragment matching going on!'); } matches = !!match; } if (matches) { _this.writeSelectionSetToStore({ result: result, selectionSet: fragment.selectionSet, dataId: dataId, context: context, }); } } }); return store; }; StoreWriter.prototype.writeFieldToStore = function (_a) { var field = _a.field, value = _a.value, dataId = _a.dataId, context = _a.context; var _b; var variables = context.variables, dataIdFromObject = context.dataIdFromObject, store = context.store; var storeValue; var storeObject; var storeFieldName = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["storeKeyNameFromField"])(field, variables); if (!field.selectionSet || value === null) { storeValue = value != null && typeof value === 'object' ? { type: 'json', json: value } : value; } else if (Array.isArray(value)) { var generatedId = dataId + "." + storeFieldName; storeValue = this.processArrayValue(value, generatedId, field.selectionSet, context); } else { var valueDataId = dataId + "." + storeFieldName; var generated = true; if (!isGeneratedId(valueDataId)) { valueDataId = '$' + valueDataId; } if (dataIdFromObject) { var semanticId = dataIdFromObject(value); if (semanticId && isGeneratedId(semanticId)) { throw new Error('IDs returned by dataIdFromObject cannot begin with the "$" character.'); } if (semanticId || (typeof semanticId === 'number' && semanticId === 0)) { valueDataId = semanticId; generated = false; } } if (!isDataProcessed(valueDataId, field, context.processedData)) { this.writeSelectionSetToStore({ dataId: valueDataId, result: value, selectionSet: field.selectionSet, context: context, }); } var typename = value.__typename; storeValue = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["toIdValue"])({ id: valueDataId, typename: typename }, generated); storeObject = store.get(dataId); var escapedId = storeObject && storeObject[storeFieldName]; if (escapedId !== storeValue && Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isIdValue"])(escapedId)) { var hadTypename = escapedId.typename !== undefined; var hasTypename = typename !== undefined; var typenameChanged = hadTypename && hasTypename && escapedId.typename !== typename; if (generated && !escapedId.generated && !typenameChanged) { throw new Error("Store error: the application attempted to write an object with no provided id" + (" but the store already contains an id of " + escapedId.id + " for this object. The selectionSet") + " that was trying to be written is:\n" + Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"])(field)); } if (hadTypename && !hasTypename) { throw new Error("Store error: the application attempted to write an object with no provided typename" + (" but the store already contains an object with typename of " + escapedId.typename + " for the object of id " + escapedId.id + ". The selectionSet") + " that was trying to be written is:\n" + Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"])(field)); } if (escapedId.generated) { if (typenameChanged) { if (!generated) { store.delete(escapedId.id); } } else { mergeWithGenerated(escapedId.id, storeValue.id, store); } } } } storeObject = store.get(dataId); if (!storeObject || !Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isEqual"])(storeValue, storeObject[storeFieldName])) { store.set(dataId, __assign({}, storeObject, (_b = {}, _b[storeFieldName] = storeValue, _b))); } }; StoreWriter.prototype.processArrayValue = function (value, generatedId, selectionSet, context) { var _this = this; return value.map(function (item, index) { if (item === null) { return null; } var itemDataId = generatedId + "." + index; if (Array.isArray(item)) { return _this.processArrayValue(item, itemDataId, selectionSet, context); } var generated = true; if (context.dataIdFromObject) { var semanticId = context.dataIdFromObject(item); if (semanticId) { itemDataId = semanticId; generated = false; } } if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) { _this.writeSelectionSetToStore({ dataId: itemDataId, result: item, selectionSet: selectionSet, context: context, }); } return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["toIdValue"])({ id: itemDataId, typename: item.__typename }, generated); }); }; return StoreWriter; }()); function isGeneratedId(id) { return id[0] === '$'; } function mergeWithGenerated(generatedKey, realKey, cache) { if (generatedKey === realKey) { return false; } var generated = cache.get(generatedKey); var real = cache.get(realKey); var madeChanges = false; Object.keys(generated).forEach(function (key) { var value = generated[key]; var realValue = real[key]; if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isIdValue"])(value) && isGeneratedId(value.id) && Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isIdValue"])(realValue) && !Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isEqual"])(value, realValue) && mergeWithGenerated(value.id, realValue.id, cache)) { madeChanges = true; } }); cache.delete(generatedKey); var newRealValue = __assign({}, generated, real); if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isEqual"])(newRealValue, real)) { return madeChanges; } cache.set(realKey, newRealValue); return true; } function isDataProcessed(dataId, field, processedData) { if (!processedData) { return false; } if (processedData[dataId]) { if (processedData[dataId].indexOf(field) >= 0) { return true; } else { processedData[dataId].push(field); } } else { processedData[dataId] = [field]; } return false; } //# sourceMappingURL=writeToStore.js.map /***/ }), /* 215 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectCache", function() { return ObjectCache; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultNormalizedCacheFactory", function() { return defaultNormalizedCacheFactory; }); var ObjectCache = (function () { function ObjectCache(data) { if (data === void 0) { data = Object.create(null); } this.data = data; } ObjectCache.prototype.toObject = function () { return this.data; }; ObjectCache.prototype.get = function (dataId) { return this.data[dataId]; }; ObjectCache.prototype.set = function (dataId, value) { this.data[dataId] = value; }; ObjectCache.prototype.delete = function (dataId) { this.data[dataId] = undefined; }; ObjectCache.prototype.clear = function () { this.data = Object.create(null); }; ObjectCache.prototype.replace = function (newData) { this.data = newData || Object.create(null); }; return ObjectCache; }()); function defaultNormalizedCacheFactory(seed) { return new ObjectCache(seed); } //# sourceMappingURL=objectCache.js.map /***/ }), /* 216 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RecordingCache", function() { return RecordingCache; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "record", function() { return record; }); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var RecordingCache = (function () { function RecordingCache(data) { if (data === void 0) { data = {}; } this.data = data; this.recordedData = {}; } RecordingCache.prototype.record = function (transaction) { transaction(this); var recordedData = this.recordedData; this.recordedData = {}; return recordedData; }; RecordingCache.prototype.toObject = function () { return __assign({}, this.data, this.recordedData); }; RecordingCache.prototype.get = function (dataId) { if (this.recordedData.hasOwnProperty(dataId)) { return this.recordedData[dataId]; } return this.data[dataId]; }; RecordingCache.prototype.set = function (dataId, value) { if (this.get(dataId) !== value) { this.recordedData[dataId] = value; } }; RecordingCache.prototype.delete = function (dataId) { this.recordedData[dataId] = undefined; }; RecordingCache.prototype.clear = function () { var _this = this; Object.keys(this.data).forEach(function (dataId) { return _this.delete(dataId); }); this.recordedData = {}; }; RecordingCache.prototype.replace = function (newData) { this.clear(); this.recordedData = __assign({}, newData); }; return RecordingCache; }()); function record(startingState, transaction) { var recordingCache = new RecordingCache(startingState); return recordingCache.record(transaction); } //# sourceMappingURL=recordingCache.js.map /***/ }), /* 217 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); /* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); /* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zen_observable__WEBPACK_IMPORTED_MODULE_0__); var Observable = zen_observable__WEBPACK_IMPORTED_MODULE_0___default.a; /* harmony default export */ __webpack_exports__["default"] = (Observable); //# sourceMappingURL=bundle.esm.js.map /***/ }), /* 218 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTypenameToDocument", function() { return addTypenameToDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "argumentsObjectFromField", function() { return argumentsObjectFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildQueryFromSelectionSet", function() { return buildQueryFromSelectionSet; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canUseWeakMap", function() { return canUseWeakMap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkDocument", function() { return checkDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneDeep", function() { return cloneDeep; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFragmentMap", function() { return createFragmentMap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultValues", function() { return getDefaultValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveInfoFromField", function() { return getDirectiveInfoFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveNames", function() { return getDirectiveNames; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectivesFromDocument", function() { return getDirectivesFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEnv", function() { return getEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinition", function() { return getFragmentDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinitions", function() { return getFragmentDefinitions; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentQueryDocument", function() { return getFragmentQueryDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInclusionDirectives", function() { return getInclusionDirectives; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMainDefinition", function() { return getMainDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMutationDefinition", function() { return getMutationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinition", function() { return getOperationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinitionOrDie", function() { return getOperationDefinitionOrDie; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return getOperationName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueryDefinition", function() { return getQueryDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStoreKeyName", function() { return getStoreKeyName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graphQLResultHasError", function() { return graphQLResultHasError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasClientExports", function() { return hasClientExports; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasDirectives", function() { return hasDirectives; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDevelopment", function() { return isDevelopment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEnv", function() { return isEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isField", function() { return isField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIdValue", function() { return isIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInlineFragment", function() { return isInlineFragment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isJsonValue", function() { return isJsonValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumberValue", function() { return isNumberValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProduction", function() { return isProduction; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScalarValue", function() { return isScalarValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTest", function() { return isTest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeDeepFreeze", function() { return maybeDeepFreeze; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeep", function() { return mergeDeep; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeepArray", function() { return mergeDeepArray; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeArgumentsFromDocument", function() { return removeArgumentsFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeClientSetsFromDocument", function() { return removeClientSetsFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeConnectionDirectiveFromDocument", function() { return removeConnectionDirectiveFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeDirectivesFromDocument", function() { return removeDirectivesFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFragmentSpreadFromDocument", function() { return removeFragmentSpreadFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultKeyNameFromField", function() { return resultKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shouldInclude", function() { return shouldInclude; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storeKeyNameFromField", function() { return storeKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stripSymbols", function() { return stripSymbols; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toIdValue", function() { return toIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryFunctionOrLogError", function() { return tryFunctionOrLogError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueFromNode", function() { return valueFromNode; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueToObjectRepresentation", function() { return valueToObjectRepresentation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "variablesInOperation", function() { return variablesInOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnOnceInDevelopment", function() { return warnOnceInDevelopment; }); /* harmony import */ var graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(138); /* harmony import */ var graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var ts_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(147); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(692); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(141); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _wry_equality__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(148); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEqual", function() { return _wry_equality__WEBPACK_IMPORTED_MODULE_4__["equal"]; }); function isScalarValue(value) { return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1; } function isNumberValue(value) { return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1; } function isStringValue(value) { return value.kind === 'StringValue'; } function isBooleanValue(value) { return value.kind === 'BooleanValue'; } function isIntValue(value) { return value.kind === 'IntValue'; } function isFloatValue(value) { return value.kind === 'FloatValue'; } function isVariable(value) { return value.kind === 'Variable'; } function isObjectValue(value) { return value.kind === 'ObjectValue'; } function isListValue(value) { return value.kind === 'ListValue'; } function isEnumValue(value) { return value.kind === 'EnumValue'; } function isNullValue(value) { return value.kind === 'NullValue'; } function valueToObjectRepresentation(argObj, name, value, variables) { if (isIntValue(value) || isFloatValue(value)) { argObj[name.value] = Number(value.value); } else if (isBooleanValue(value) || isStringValue(value)) { argObj[name.value] = value.value; } else if (isObjectValue(value)) { var nestedArgObj_1 = {}; value.fields.map(function (obj) { return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables); }); argObj[name.value] = nestedArgObj_1; } else if (isVariable(value)) { var variableValue = (variables || {})[value.name.value]; argObj[name.value] = variableValue; } else if (isListValue(value)) { argObj[name.value] = value.values.map(function (listValue) { var nestedArgArrayObj = {}; valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables); return nestedArgArrayObj[name.value]; }); } else if (isEnumValue(value)) { argObj[name.value] = value.value; } else if (isNullValue(value)) { argObj[name.value] = null; } else { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](17) : undefined; } } function storeKeyNameFromField(field, variables) { var directivesObj = null; if (field.directives) { directivesObj = {}; field.directives.forEach(function (directive) { directivesObj[directive.name.value] = {}; if (directive.arguments) { directive.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables); }); } }); } var argObj = null; if (field.arguments && field.arguments.length) { argObj = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj, name, value, variables); }); } return getStoreKeyName(field.name.value, argObj, directivesObj); } var KNOWN_DIRECTIVES = [ 'connection', 'include', 'skip', 'client', 'rest', 'export', ]; function getStoreKeyName(fieldName, args, directives) { if (directives && directives['connection'] && directives['connection']['key']) { if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) { var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : []; filterKeys.sort(); var queryArgs_1 = args; var filteredArgs_1 = {}; filterKeys.forEach(function (key) { filteredArgs_1[key] = queryArgs_1[key]; }); return directives['connection']['key'] + "(" + JSON.stringify(filteredArgs_1) + ")"; } else { return directives['connection']['key']; } } var completeFieldName = fieldName; if (args) { var stringifiedArgs = fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default()(args); completeFieldName += "(" + stringifiedArgs + ")"; } if (directives) { Object.keys(directives).forEach(function (key) { if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return; if (directives[key] && Object.keys(directives[key]).length) { completeFieldName += "@" + key + "(" + JSON.stringify(directives[key]) + ")"; } else { completeFieldName += "@" + key; } }); } return completeFieldName; } function argumentsObjectFromField(field, variables) { if (field.arguments && field.arguments.length) { var argObj_1 = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj_1, name, value, variables); }); return argObj_1; } return null; } function resultKeyNameFromField(field) { return field.alias ? field.alias.value : field.name.value; } function isField(selection) { return selection.kind === 'Field'; } function isInlineFragment(selection) { return selection.kind === 'InlineFragment'; } function isIdValue(idObject) { return idObject && idObject.type === 'id' && typeof idObject.generated === 'boolean'; } function toIdValue(idConfig, generated) { if (generated === void 0) { generated = false; } return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({ type: 'id', generated: generated }, (typeof idConfig === 'string' ? { id: idConfig, typename: undefined } : idConfig)); } function isJsonValue(jsonObject) { return (jsonObject != null && typeof jsonObject === 'object' && jsonObject.type === 'json'); } function defaultValueFromVariable(node) { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](18) : undefined; } function valueFromNode(node, onVariable) { if (onVariable === void 0) { onVariable = defaultValueFromVariable; } switch (node.kind) { case 'Variable': return onVariable(node); case 'NullValue': return null; case 'IntValue': return parseInt(node.value, 10); case 'FloatValue': return parseFloat(node.value); case 'ListValue': return node.values.map(function (v) { return valueFromNode(v, onVariable); }); case 'ObjectValue': { var value = {}; for (var _i = 0, _a = node.fields; _i < _a.length; _i++) { var field = _a[_i]; value[field.name.value] = valueFromNode(field.value, onVariable); } return value; } default: return node.value; } } function getDirectiveInfoFromField(field, variables) { if (field.directives && field.directives.length) { var directiveObj_1 = {}; field.directives.forEach(function (directive) { directiveObj_1[directive.name.value] = argumentsObjectFromField(directive, variables); }); return directiveObj_1; } return null; } function shouldInclude(selection, variables) { if (variables === void 0) { variables = {}; } return getInclusionDirectives(selection.directives).every(function (_a) { var directive = _a.directive, ifArgument = _a.ifArgument; var evaledValue = false; if (ifArgument.value.kind === 'Variable') { evaledValue = variables[ifArgument.value.name.value]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(evaledValue !== void 0, 1) : undefined; } else { evaledValue = ifArgument.value.value; } return directive.name.value === 'skip' ? !evaledValue : evaledValue; }); } function getDirectiveNames(doc) { var names = []; Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { Directive: function (node) { names.push(node.name.value); }, }); return names; } function hasDirectives(names, doc) { return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; }); } function hasClientExports(document) { return (document && hasDirectives(['client'], document) && hasDirectives(['export'], document)); } function isInclusionDirective(_a) { var value = _a.name.value; return value === 'skip' || value === 'include'; } function getInclusionDirectives(directives) { return directives ? directives.filter(isInclusionDirective).map(function (directive) { var directiveArguments = directive.arguments; var directiveName = directive.name.value; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(directiveArguments && directiveArguments.length === 1, 2) : undefined; var ifArgument = directiveArguments[0]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(ifArgument.name && ifArgument.name.value === 'if', 3) : undefined; var ifValue = ifArgument.value; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 4) : undefined; return { directive: directive, ifArgument: ifArgument }; }) : []; } function getFragmentQueryDocument(document, fragmentName) { var actualFragmentName = fragmentName; var fragments = []; document.definitions.forEach(function (definition) { if (definition.kind === 'OperationDefinition') { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](5) : undefined; } if (definition.kind === 'FragmentDefinition') { fragments.push(definition); } }); if (typeof actualFragmentName === 'undefined') { true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(fragments.length === 1, 6) : undefined; actualFragmentName = fragments[0].name.value; } var query = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, document), { definitions: Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__spreadArrays"])([ { kind: 'OperationDefinition', operation: 'query', selectionSet: { kind: 'SelectionSet', selections: [ { kind: 'FragmentSpread', name: { kind: 'Name', value: actualFragmentName, }, }, ], }, } ], document.definitions) }); return query; } function assign(target) { var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } sources.forEach(function (source) { if (typeof source === 'undefined' || source === null) { return; } Object.keys(source).forEach(function (key) { target[key] = source[key]; }); }); return target; } function getMutationDefinition(doc) { checkDocument(doc); var mutationDef = doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.operation === 'mutation'; })[0]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(mutationDef, 7) : undefined; return mutationDef; } function checkDocument(doc) { true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(doc && doc.kind === 'Document', 8) : undefined; var operations = doc.definitions .filter(function (d) { return d.kind !== 'FragmentDefinition'; }) .map(function (definition) { if (definition.kind !== 'OperationDefinition') { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](9) : undefined; } return definition; }); true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(operations.length <= 1, 10) : undefined; return doc; } function getOperationDefinition(doc) { checkDocument(doc); return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0]; } function getOperationDefinitionOrDie(document) { var def = getOperationDefinition(document); true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(def, 11) : undefined; return def; } function getOperationName(doc) { return (doc.definitions .filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.name; }) .map(function (x) { return x.name.value; })[0] || null); } function getFragmentDefinitions(doc) { return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; }); } function getQueryDefinition(doc) { var queryDef = getOperationDefinition(doc); true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(queryDef && queryDef.operation === 'query', 12) : undefined; return queryDef; } function getFragmentDefinition(doc) { true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(doc.kind === 'Document', 13) : undefined; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(doc.definitions.length <= 1, 14) : undefined; var fragmentDef = doc.definitions[0]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(fragmentDef.kind === 'FragmentDefinition', 15) : undefined; return fragmentDef; } function getMainDefinition(queryDoc) { checkDocument(queryDoc); var fragmentDefinition; for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) { var definition = _a[_i]; if (definition.kind === 'OperationDefinition') { var operation = definition.operation; if (operation === 'query' || operation === 'mutation' || operation === 'subscription') { return definition; } } if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) { fragmentDefinition = definition; } } if (fragmentDefinition) { return fragmentDefinition; } throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](16) : undefined; } function createFragmentMap(fragments) { if (fragments === void 0) { fragments = []; } var symTable = {}; fragments.forEach(function (fragment) { symTable[fragment.name.value] = fragment; }); return symTable; } function getDefaultValues(definition) { if (definition && definition.variableDefinitions && definition.variableDefinitions.length) { var defaultValues = definition.variableDefinitions .filter(function (_a) { var defaultValue = _a.defaultValue; return defaultValue; }) .map(function (_a) { var variable = _a.variable, defaultValue = _a.defaultValue; var defaultValueObj = {}; valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue); return defaultValueObj; }); return assign.apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__spreadArrays"])([{}], defaultValues)); } return {}; } function variablesInOperation(operation) { var names = new Set(); if (operation.variableDefinitions) { for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) { var definition = _a[_i]; names.add(definition.variable.name.value); } } return names; } function filterInPlace(array, test, context) { var target = 0; array.forEach(function (elem, i) { if (test.call(this, elem, i, array)) { array[target++] = elem; } }, context); array.length = target; return array; } var TYPENAME_FIELD = { kind: 'Field', name: { kind: 'Name', value: '__typename', }, }; function isEmpty(op, fragments) { return op.selectionSet.selections.every(function (selection) { return selection.kind === 'FragmentSpread' && isEmpty(fragments[selection.name.value], fragments); }); } function nullIfDocIsEmpty(doc) { return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc; } function getDirectiveMatcher(directives) { return function directiveMatcher(directive) { return directives.some(function (dir) { return (dir.name && dir.name === directive.name.value) || (dir.test && dir.test(directive)); }); }; } function removeDirectivesFromDocument(directives, doc) { var variablesInUse = Object.create(null); var variablesToRemove = []; var fragmentSpreadsInUse = Object.create(null); var fragmentSpreadsToRemove = []; var modifiedDoc = nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { Variable: { enter: function (node, _key, parent) { if (parent.kind !== 'VariableDefinition') { variablesInUse[node.name.value] = true; } }, }, Field: { enter: function (node) { if (directives && node.directives) { var shouldRemoveField = directives.some(function (directive) { return directive.remove; }); if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) { if (node.arguments) { node.arguments.forEach(function (arg) { if (arg.value.kind === 'Variable') { variablesToRemove.push({ name: arg.value.name.value, }); } }); } if (node.selectionSet) { getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) { fragmentSpreadsToRemove.push({ name: frag.name.value, }); }); } return null; } } }, }, FragmentSpread: { enter: function (node) { fragmentSpreadsInUse[node.name.value] = true; }, }, Directive: { enter: function (node) { if (getDirectiveMatcher(directives)(node)) { return null; } }, }, })); if (modifiedDoc && filterInPlace(variablesToRemove, function (v) { return !variablesInUse[v.name]; }).length) { modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc); } if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) { return !fragmentSpreadsInUse[fs.name]; }) .length) { modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc); } return modifiedDoc; } function addTypenameToDocument(doc) { return Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(checkDocument(doc), { SelectionSet: { enter: function (node, _key, parent) { if (parent && parent.kind === 'OperationDefinition') { return; } var selections = node.selections; if (!selections) { return; } var skip = selections.some(function (selection) { return (isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0)); }); if (skip) { return; } var field = parent; if (isField(field) && field.directives && field.directives.some(function (d) { return d.name.value === 'export'; })) { return; } return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { selections: Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__spreadArrays"])(selections, [TYPENAME_FIELD]) }); }, }, }); } var connectionRemoveConfig = { test: function (directive) { var willRemove = directive.name.value === 'connection'; if (willRemove) { if (!directive.arguments || !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) { true || false; } } return willRemove; }, }; function removeConnectionDirectiveFromDocument(doc) { return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc)); } function hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } return (selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) { return hasDirectivesInSelection(directives, selection, nestedCheck); })); } function hasDirectivesInSelection(directives, selection, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } if (!isField(selection)) { return true; } if (!selection.directives) { return false; } return (selection.directives.some(getDirectiveMatcher(directives)) || (nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck))); } function getDirectivesFromDocument(directives, doc) { checkDocument(doc); var parentPath; return nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { SelectionSet: { enter: function (node, _key, _parent, path) { var currentPath = path.join('-'); if (!parentPath || currentPath === parentPath || !currentPath.startsWith(parentPath)) { if (node.selections) { var selectionsWithDirectives = node.selections.filter(function (selection) { return hasDirectivesInSelection(directives, selection); }); if (hasDirectivesInSelectionSet(directives, node, false)) { parentPath = currentPath; } return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { selections: selectionsWithDirectives }); } else { return null; } } }, }, })); } function getArgumentMatcher(config) { return function argumentMatcher(argument) { return config.some(function (aConfig) { return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || (aConfig.test && aConfig.test(argument))); }); }; } function removeArgumentsFromDocument(config, doc) { var argMatcher = getArgumentMatcher(config); return nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { OperationDefinition: { enter: function (node) { return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) { return !config.some(function (arg) { return arg.name === varDef.variable.name.value; }); }) }); }, }, Field: { enter: function (node) { var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; }); if (shouldRemoveField) { var argMatchCount_1 = 0; node.arguments.forEach(function (arg) { if (argMatcher(arg)) { argMatchCount_1 += 1; } }); if (argMatchCount_1 === 1) { return null; } } }, }, Argument: { enter: function (node) { if (argMatcher(node)) { return null; } }, }, })); } function removeFragmentSpreadFromDocument(config, doc) { function enter(node) { if (config.some(function (def) { return def.name === node.name.value; })) { return null; } } return nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { FragmentSpread: { enter: enter }, FragmentDefinition: { enter: enter }, })); } function getAllFragmentSpreadsFromSelectionSet(selectionSet) { var allFragments = []; selectionSet.selections.forEach(function (selection) { if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) { getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) { return allFragments.push(frag); }); } else if (selection.kind === 'FragmentSpread') { allFragments.push(selection); } }); return allFragments; } function buildQueryFromSelectionSet(document) { var definition = getMainDefinition(document); var definitionOperation = definition.operation; if (definitionOperation === 'query') { return document; } var modifiedDoc = Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(document, { OperationDefinition: { enter: function (node) { return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { operation: 'query' }); }, }, }); return modifiedDoc; } function removeClientSetsFromDocument(document) { checkDocument(document); var modifiedDoc = removeDirectivesFromDocument([ { test: function (directive) { return directive.name.value === 'client'; }, remove: true, }, ], document); if (modifiedDoc) { modifiedDoc = Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(modifiedDoc, { FragmentDefinition: { enter: function (node) { if (node.selectionSet) { var isTypenameOnly = node.selectionSet.selections.every(function (selection) { return isField(selection) && selection.name.value === '__typename'; }); if (isTypenameOnly) { return null; } } }, }, }); } return modifiedDoc; } var canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' && navigator.product === 'ReactNative'); var toString = Object.prototype.toString; function cloneDeep(value) { return cloneDeepHelper(value, new Map()); } function cloneDeepHelper(val, seen) { switch (toString.call(val)) { case "[object Array]": { if (seen.has(val)) return seen.get(val); var copy_1 = val.slice(0); seen.set(val, copy_1); copy_1.forEach(function (child, i) { copy_1[i] = cloneDeepHelper(child, seen); }); return copy_1; } case "[object Object]": { if (seen.has(val)) return seen.get(val); var copy_2 = Object.create(Object.getPrototypeOf(val)); seen.set(val, copy_2); Object.keys(val).forEach(function (key) { copy_2[key] = cloneDeepHelper(val[key], seen); }); return copy_2; } default: return val; } } function getEnv() { if (typeof process !== 'undefined' && "production") { return "production"; } return 'development'; } function isEnv(env) { return getEnv() === env; } function isProduction() { return isEnv('production') === true; } function isDevelopment() { return isEnv('development') === true; } function isTest() { return isEnv('test') === true; } function tryFunctionOrLogError(f) { try { return f(); } catch (e) { if (console.error) { console.error(e); } } } function graphQLResultHasError(result) { return result.errors && result.errors.length; } function deepFreeze(o) { Object.freeze(o); Object.getOwnPropertyNames(o).forEach(function (prop) { if (o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) { deepFreeze(o[prop]); } }); return o; } function maybeDeepFreeze(obj) { if (isDevelopment() || isTest()) { var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string'; if (!symbolIsPolyfilled) { return deepFreeze(obj); } } return obj; } var hasOwnProperty = Object.prototype.hasOwnProperty; function mergeDeep() { var sources = []; for (var _i = 0; _i < arguments.length; _i++) { sources[_i] = arguments[_i]; } return mergeDeepArray(sources); } function mergeDeepArray(sources) { var target = sources[0] || {}; var count = sources.length; if (count > 1) { var pastCopies = []; target = shallowCopyForMerge(target, pastCopies); for (var i = 1; i < count; ++i) { target = mergeHelper(target, sources[i], pastCopies); } } return target; } function isObject(obj) { return obj !== null && typeof obj === 'object'; } function mergeHelper(target, source, pastCopies) { if (isObject(source) && isObject(target)) { if (Object.isExtensible && !Object.isExtensible(target)) { target = shallowCopyForMerge(target, pastCopies); } Object.keys(source).forEach(function (sourceKey) { var sourceValue = source[sourceKey]; if (hasOwnProperty.call(target, sourceKey)) { var targetValue = target[sourceKey]; if (sourceValue !== targetValue) { target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies); } } else { target[sourceKey] = sourceValue; } }); return target; } return source; } function shallowCopyForMerge(value, pastCopies) { if (value !== null && typeof value === 'object' && pastCopies.indexOf(value) < 0) { if (Array.isArray(value)) { value = value.slice(0); } else { value = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({ __proto__: Object.getPrototypeOf(value) }, value); } pastCopies.push(value); } return value; } var haveWarned = Object.create({}); function warnOnceInDevelopment(msg, type) { if (type === void 0) { type = 'warn'; } if (!isProduction() && !haveWarned[msg]) { if (!isTest()) { haveWarned[msg] = true; } if (type === 'error') { console.error(msg); } else { console.warn(msg); } } } function stripSymbols(data) { return JSON.parse(JSON.stringify(data)); } //# sourceMappingURL=bundle.esm.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(78))) /***/ }), /* 219 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); /* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); /* harmony import */ var zen_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(zen_observable__WEBPACK_IMPORTED_MODULE_0__); var Observable = zen_observable__WEBPACK_IMPORTED_MODULE_0___default.a; /* harmony default export */ __webpack_exports__["default"] = (Observable); //# sourceMappingURL=bundle.esm.js.map /***/ }), /* 220 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTypenameToDocument", function() { return addTypenameToDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "argumentsObjectFromField", function() { return argumentsObjectFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildQueryFromSelectionSet", function() { return buildQueryFromSelectionSet; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canUseWeakMap", function() { return canUseWeakMap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkDocument", function() { return checkDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneDeep", function() { return cloneDeep; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createFragmentMap", function() { return createFragmentMap; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultValues", function() { return getDefaultValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveInfoFromField", function() { return getDirectiveInfoFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveNames", function() { return getDirectiveNames; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectivesFromDocument", function() { return getDirectivesFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEnv", function() { return getEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinition", function() { return getFragmentDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentDefinitions", function() { return getFragmentDefinitions; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentQueryDocument", function() { return getFragmentQueryDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInclusionDirectives", function() { return getInclusionDirectives; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMainDefinition", function() { return getMainDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMutationDefinition", function() { return getMutationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinition", function() { return getOperationDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationDefinitionOrDie", function() { return getOperationDefinitionOrDie; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return getOperationName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getQueryDefinition", function() { return getQueryDefinition; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStoreKeyName", function() { return getStoreKeyName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graphQLResultHasError", function() { return graphQLResultHasError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasClientExports", function() { return hasClientExports; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasDirectives", function() { return hasDirectives; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDevelopment", function() { return isDevelopment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEnv", function() { return isEnv; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isField", function() { return isField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIdValue", function() { return isIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInlineFragment", function() { return isInlineFragment; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isJsonValue", function() { return isJsonValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumberValue", function() { return isNumberValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProduction", function() { return isProduction; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScalarValue", function() { return isScalarValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTest", function() { return isTest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeDeepFreeze", function() { return maybeDeepFreeze; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeep", function() { return mergeDeep; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeepArray", function() { return mergeDeepArray; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeArgumentsFromDocument", function() { return removeArgumentsFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeClientSetsFromDocument", function() { return removeClientSetsFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeConnectionDirectiveFromDocument", function() { return removeConnectionDirectiveFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeDirectivesFromDocument", function() { return removeDirectivesFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFragmentSpreadFromDocument", function() { return removeFragmentSpreadFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resultKeyNameFromField", function() { return resultKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shouldInclude", function() { return shouldInclude; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storeKeyNameFromField", function() { return storeKeyNameFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stripSymbols", function() { return stripSymbols; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toIdValue", function() { return toIdValue; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryFunctionOrLogError", function() { return tryFunctionOrLogError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueFromNode", function() { return valueFromNode; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "valueToObjectRepresentation", function() { return valueToObjectRepresentation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "variablesInOperation", function() { return variablesInOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnOnceInDevelopment", function() { return warnOnceInDevelopment; }); /* harmony import */ var graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(138); /* harmony import */ var graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var ts_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(147); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(696); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(141); /* harmony import */ var fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _wry_equality__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(148); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEqual", function() { return _wry_equality__WEBPACK_IMPORTED_MODULE_4__["equal"]; }); function isScalarValue(value) { return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1; } function isNumberValue(value) { return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1; } function isStringValue(value) { return value.kind === 'StringValue'; } function isBooleanValue(value) { return value.kind === 'BooleanValue'; } function isIntValue(value) { return value.kind === 'IntValue'; } function isFloatValue(value) { return value.kind === 'FloatValue'; } function isVariable(value) { return value.kind === 'Variable'; } function isObjectValue(value) { return value.kind === 'ObjectValue'; } function isListValue(value) { return value.kind === 'ListValue'; } function isEnumValue(value) { return value.kind === 'EnumValue'; } function isNullValue(value) { return value.kind === 'NullValue'; } function valueToObjectRepresentation(argObj, name, value, variables) { if (isIntValue(value) || isFloatValue(value)) { argObj[name.value] = Number(value.value); } else if (isBooleanValue(value) || isStringValue(value)) { argObj[name.value] = value.value; } else if (isObjectValue(value)) { var nestedArgObj_1 = {}; value.fields.map(function (obj) { return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables); }); argObj[name.value] = nestedArgObj_1; } else if (isVariable(value)) { var variableValue = (variables || {})[value.name.value]; argObj[name.value] = variableValue; } else if (isListValue(value)) { argObj[name.value] = value.values.map(function (listValue) { var nestedArgArrayObj = {}; valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables); return nestedArgArrayObj[name.value]; }); } else if (isEnumValue(value)) { argObj[name.value] = value.value; } else if (isNullValue(value)) { argObj[name.value] = null; } else { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](17) : undefined; } } function storeKeyNameFromField(field, variables) { var directivesObj = null; if (field.directives) { directivesObj = {}; field.directives.forEach(function (directive) { directivesObj[directive.name.value] = {}; if (directive.arguments) { directive.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables); }); } }); } var argObj = null; if (field.arguments && field.arguments.length) { argObj = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj, name, value, variables); }); } return getStoreKeyName(field.name.value, argObj, directivesObj); } var KNOWN_DIRECTIVES = [ 'connection', 'include', 'skip', 'client', 'rest', 'export', ]; function getStoreKeyName(fieldName, args, directives) { if (directives && directives['connection'] && directives['connection']['key']) { if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) { var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : []; filterKeys.sort(); var queryArgs_1 = args; var filteredArgs_1 = {}; filterKeys.forEach(function (key) { filteredArgs_1[key] = queryArgs_1[key]; }); return directives['connection']['key'] + "(" + JSON.stringify(filteredArgs_1) + ")"; } else { return directives['connection']['key']; } } var completeFieldName = fieldName; if (args) { var stringifiedArgs = fast_json_stable_stringify__WEBPACK_IMPORTED_MODULE_3___default()(args); completeFieldName += "(" + stringifiedArgs + ")"; } if (directives) { Object.keys(directives).forEach(function (key) { if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return; if (directives[key] && Object.keys(directives[key]).length) { completeFieldName += "@" + key + "(" + JSON.stringify(directives[key]) + ")"; } else { completeFieldName += "@" + key; } }); } return completeFieldName; } function argumentsObjectFromField(field, variables) { if (field.arguments && field.arguments.length) { var argObj_1 = {}; field.arguments.forEach(function (_a) { var name = _a.name, value = _a.value; return valueToObjectRepresentation(argObj_1, name, value, variables); }); return argObj_1; } return null; } function resultKeyNameFromField(field) { return field.alias ? field.alias.value : field.name.value; } function isField(selection) { return selection.kind === 'Field'; } function isInlineFragment(selection) { return selection.kind === 'InlineFragment'; } function isIdValue(idObject) { return idObject && idObject.type === 'id' && typeof idObject.generated === 'boolean'; } function toIdValue(idConfig, generated) { if (generated === void 0) { generated = false; } return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({ type: 'id', generated: generated }, (typeof idConfig === 'string' ? { id: idConfig, typename: undefined } : idConfig)); } function isJsonValue(jsonObject) { return (jsonObject != null && typeof jsonObject === 'object' && jsonObject.type === 'json'); } function defaultValueFromVariable(node) { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](18) : undefined; } function valueFromNode(node, onVariable) { if (onVariable === void 0) { onVariable = defaultValueFromVariable; } switch (node.kind) { case 'Variable': return onVariable(node); case 'NullValue': return null; case 'IntValue': return parseInt(node.value, 10); case 'FloatValue': return parseFloat(node.value); case 'ListValue': return node.values.map(function (v) { return valueFromNode(v, onVariable); }); case 'ObjectValue': { var value = {}; for (var _i = 0, _a = node.fields; _i < _a.length; _i++) { var field = _a[_i]; value[field.name.value] = valueFromNode(field.value, onVariable); } return value; } default: return node.value; } } function getDirectiveInfoFromField(field, variables) { if (field.directives && field.directives.length) { var directiveObj_1 = {}; field.directives.forEach(function (directive) { directiveObj_1[directive.name.value] = argumentsObjectFromField(directive, variables); }); return directiveObj_1; } return null; } function shouldInclude(selection, variables) { if (variables === void 0) { variables = {}; } return getInclusionDirectives(selection.directives).every(function (_a) { var directive = _a.directive, ifArgument = _a.ifArgument; var evaledValue = false; if (ifArgument.value.kind === 'Variable') { evaledValue = variables[ifArgument.value.name.value]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(evaledValue !== void 0, 1) : undefined; } else { evaledValue = ifArgument.value.value; } return directive.name.value === 'skip' ? !evaledValue : evaledValue; }); } function getDirectiveNames(doc) { var names = []; Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { Directive: function (node) { names.push(node.name.value); }, }); return names; } function hasDirectives(names, doc) { return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; }); } function hasClientExports(document) { return (document && hasDirectives(['client'], document) && hasDirectives(['export'], document)); } function isInclusionDirective(_a) { var value = _a.name.value; return value === 'skip' || value === 'include'; } function getInclusionDirectives(directives) { return directives ? directives.filter(isInclusionDirective).map(function (directive) { var directiveArguments = directive.arguments; var directiveName = directive.name.value; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(directiveArguments && directiveArguments.length === 1, 2) : undefined; var ifArgument = directiveArguments[0]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(ifArgument.name && ifArgument.name.value === 'if', 3) : undefined; var ifValue = ifArgument.value; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 4) : undefined; return { directive: directive, ifArgument: ifArgument }; }) : []; } function getFragmentQueryDocument(document, fragmentName) { var actualFragmentName = fragmentName; var fragments = []; document.definitions.forEach(function (definition) { if (definition.kind === 'OperationDefinition') { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](5) : undefined; } if (definition.kind === 'FragmentDefinition') { fragments.push(definition); } }); if (typeof actualFragmentName === 'undefined') { true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(fragments.length === 1, 6) : undefined; actualFragmentName = fragments[0].name.value; } var query = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, document), { definitions: Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__spreadArrays"])([ { kind: 'OperationDefinition', operation: 'query', selectionSet: { kind: 'SelectionSet', selections: [ { kind: 'FragmentSpread', name: { kind: 'Name', value: actualFragmentName, }, }, ], }, } ], document.definitions) }); return query; } function assign(target) { var sources = []; for (var _i = 1; _i < arguments.length; _i++) { sources[_i - 1] = arguments[_i]; } sources.forEach(function (source) { if (typeof source === 'undefined' || source === null) { return; } Object.keys(source).forEach(function (key) { target[key] = source[key]; }); }); return target; } function getMutationDefinition(doc) { checkDocument(doc); var mutationDef = doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.operation === 'mutation'; })[0]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(mutationDef, 7) : undefined; return mutationDef; } function checkDocument(doc) { true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(doc && doc.kind === 'Document', 8) : undefined; var operations = doc.definitions .filter(function (d) { return d.kind !== 'FragmentDefinition'; }) .map(function (definition) { if (definition.kind !== 'OperationDefinition') { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](9) : undefined; } return definition; }); true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(operations.length <= 1, 10) : undefined; return doc; } function getOperationDefinition(doc) { checkDocument(doc); return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0]; } function getOperationDefinitionOrDie(document) { var def = getOperationDefinition(document); true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(def, 11) : undefined; return def; } function getOperationName(doc) { return (doc.definitions .filter(function (definition) { return definition.kind === 'OperationDefinition' && definition.name; }) .map(function (x) { return x.name.value; })[0] || null); } function getFragmentDefinitions(doc) { return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; }); } function getQueryDefinition(doc) { var queryDef = getOperationDefinition(doc); true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(queryDef && queryDef.operation === 'query', 12) : undefined; return queryDef; } function getFragmentDefinition(doc) { true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(doc.kind === 'Document', 13) : undefined; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(doc.definitions.length <= 1, 14) : undefined; var fragmentDef = doc.definitions[0]; true ? Object(ts_invariant__WEBPACK_IMPORTED_MODULE_1__["invariant"])(fragmentDef.kind === 'FragmentDefinition', 15) : undefined; return fragmentDef; } function getMainDefinition(queryDoc) { checkDocument(queryDoc); var fragmentDefinition; for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) { var definition = _a[_i]; if (definition.kind === 'OperationDefinition') { var operation = definition.operation; if (operation === 'query' || operation === 'mutation' || operation === 'subscription') { return definition; } } if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) { fragmentDefinition = definition; } } if (fragmentDefinition) { return fragmentDefinition; } throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](16) : undefined; } function createFragmentMap(fragments) { if (fragments === void 0) { fragments = []; } var symTable = {}; fragments.forEach(function (fragment) { symTable[fragment.name.value] = fragment; }); return symTable; } function getDefaultValues(definition) { if (definition && definition.variableDefinitions && definition.variableDefinitions.length) { var defaultValues = definition.variableDefinitions .filter(function (_a) { var defaultValue = _a.defaultValue; return defaultValue; }) .map(function (_a) { var variable = _a.variable, defaultValue = _a.defaultValue; var defaultValueObj = {}; valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue); return defaultValueObj; }); return assign.apply(void 0, Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__spreadArrays"])([{}], defaultValues)); } return {}; } function variablesInOperation(operation) { var names = new Set(); if (operation.variableDefinitions) { for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) { var definition = _a[_i]; names.add(definition.variable.name.value); } } return names; } function filterInPlace(array, test, context) { var target = 0; array.forEach(function (elem, i) { if (test.call(this, elem, i, array)) { array[target++] = elem; } }, context); array.length = target; return array; } var TYPENAME_FIELD = { kind: 'Field', name: { kind: 'Name', value: '__typename', }, }; function isEmpty(op, fragments) { return op.selectionSet.selections.every(function (selection) { return selection.kind === 'FragmentSpread' && isEmpty(fragments[selection.name.value], fragments); }); } function nullIfDocIsEmpty(doc) { return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc; } function getDirectiveMatcher(directives) { return function directiveMatcher(directive) { return directives.some(function (dir) { return (dir.name && dir.name === directive.name.value) || (dir.test && dir.test(directive)); }); }; } function removeDirectivesFromDocument(directives, doc) { var variablesInUse = Object.create(null); var variablesToRemove = []; var fragmentSpreadsInUse = Object.create(null); var fragmentSpreadsToRemove = []; var modifiedDoc = nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { Variable: { enter: function (node, _key, parent) { if (parent.kind !== 'VariableDefinition') { variablesInUse[node.name.value] = true; } }, }, Field: { enter: function (node) { if (directives && node.directives) { var shouldRemoveField = directives.some(function (directive) { return directive.remove; }); if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) { if (node.arguments) { node.arguments.forEach(function (arg) { if (arg.value.kind === 'Variable') { variablesToRemove.push({ name: arg.value.name.value, }); } }); } if (node.selectionSet) { getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) { fragmentSpreadsToRemove.push({ name: frag.name.value, }); }); } return null; } } }, }, FragmentSpread: { enter: function (node) { fragmentSpreadsInUse[node.name.value] = true; }, }, Directive: { enter: function (node) { if (getDirectiveMatcher(directives)(node)) { return null; } }, }, })); if (modifiedDoc && filterInPlace(variablesToRemove, function (v) { return !variablesInUse[v.name]; }).length) { modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc); } if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) { return !fragmentSpreadsInUse[fs.name]; }) .length) { modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc); } return modifiedDoc; } function addTypenameToDocument(doc) { return Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(checkDocument(doc), { SelectionSet: { enter: function (node, _key, parent) { if (parent && parent.kind === 'OperationDefinition') { return; } var selections = node.selections; if (!selections) { return; } var skip = selections.some(function (selection) { return (isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0)); }); if (skip) { return; } var field = parent; if (isField(field) && field.directives && field.directives.some(function (d) { return d.name.value === 'export'; })) { return; } return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { selections: Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__spreadArrays"])(selections, [TYPENAME_FIELD]) }); }, }, }); } var connectionRemoveConfig = { test: function (directive) { var willRemove = directive.name.value === 'connection'; if (willRemove) { if (!directive.arguments || !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) { true || false; } } return willRemove; }, }; function removeConnectionDirectiveFromDocument(doc) { return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc)); } function hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } return (selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) { return hasDirectivesInSelection(directives, selection, nestedCheck); })); } function hasDirectivesInSelection(directives, selection, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } if (!isField(selection)) { return true; } if (!selection.directives) { return false; } return (selection.directives.some(getDirectiveMatcher(directives)) || (nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck))); } function getDirectivesFromDocument(directives, doc) { checkDocument(doc); var parentPath; return nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { SelectionSet: { enter: function (node, _key, _parent, path) { var currentPath = path.join('-'); if (!parentPath || currentPath === parentPath || !currentPath.startsWith(parentPath)) { if (node.selections) { var selectionsWithDirectives = node.selections.filter(function (selection) { return hasDirectivesInSelection(directives, selection); }); if (hasDirectivesInSelectionSet(directives, node, false)) { parentPath = currentPath; } return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { selections: selectionsWithDirectives }); } else { return null; } } }, }, })); } function getArgumentMatcher(config) { return function argumentMatcher(argument) { return config.some(function (aConfig) { return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || (aConfig.test && aConfig.test(argument))); }); }; } function removeArgumentsFromDocument(config, doc) { var argMatcher = getArgumentMatcher(config); return nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { OperationDefinition: { enter: function (node) { return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) { return !config.some(function (arg) { return arg.name === varDef.variable.name.value; }); }) }); }, }, Field: { enter: function (node) { var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; }); if (shouldRemoveField) { var argMatchCount_1 = 0; node.arguments.forEach(function (arg) { if (argMatcher(arg)) { argMatchCount_1 += 1; } }); if (argMatchCount_1 === 1) { return null; } } }, }, Argument: { enter: function (node) { if (argMatcher(node)) { return null; } }, }, })); } function removeFragmentSpreadFromDocument(config, doc) { function enter(node) { if (config.some(function (def) { return def.name === node.name.value; })) { return null; } } return nullIfDocIsEmpty(Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(doc, { FragmentSpread: { enter: enter }, FragmentDefinition: { enter: enter }, })); } function getAllFragmentSpreadsFromSelectionSet(selectionSet) { var allFragments = []; selectionSet.selections.forEach(function (selection) { if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) { getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) { return allFragments.push(frag); }); } else if (selection.kind === 'FragmentSpread') { allFragments.push(selection); } }); return allFragments; } function buildQueryFromSelectionSet(document) { var definition = getMainDefinition(document); var definitionOperation = definition.operation; if (definitionOperation === 'query') { return document; } var modifiedDoc = Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(document, { OperationDefinition: { enter: function (node) { return Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])(Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, node), { operation: 'query' }); }, }, }); return modifiedDoc; } function removeClientSetsFromDocument(document) { checkDocument(document); var modifiedDoc = removeDirectivesFromDocument([ { test: function (directive) { return directive.name.value === 'client'; }, remove: true, }, ], document); if (modifiedDoc) { modifiedDoc = Object(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["visit"])(modifiedDoc, { FragmentDefinition: { enter: function (node) { if (node.selectionSet) { var isTypenameOnly = node.selectionSet.selections.every(function (selection) { return isField(selection) && selection.name.value === '__typename'; }); if (isTypenameOnly) { return null; } } }, }, }); } return modifiedDoc; } var canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' && navigator.product === 'ReactNative'); var toString = Object.prototype.toString; function cloneDeep(value) { return cloneDeepHelper(value, new Map()); } function cloneDeepHelper(val, seen) { switch (toString.call(val)) { case "[object Array]": { if (seen.has(val)) return seen.get(val); var copy_1 = val.slice(0); seen.set(val, copy_1); copy_1.forEach(function (child, i) { copy_1[i] = cloneDeepHelper(child, seen); }); return copy_1; } case "[object Object]": { if (seen.has(val)) return seen.get(val); var copy_2 = Object.create(Object.getPrototypeOf(val)); seen.set(val, copy_2); Object.keys(val).forEach(function (key) { copy_2[key] = cloneDeepHelper(val[key], seen); }); return copy_2; } default: return val; } } function getEnv() { if (typeof process !== 'undefined' && "production") { return "production"; } return 'development'; } function isEnv(env) { return getEnv() === env; } function isProduction() { return isEnv('production') === true; } function isDevelopment() { return isEnv('development') === true; } function isTest() { return isEnv('test') === true; } function tryFunctionOrLogError(f) { try { return f(); } catch (e) { if (console.error) { console.error(e); } } } function graphQLResultHasError(result) { return result.errors && result.errors.length; } function deepFreeze(o) { Object.freeze(o); Object.getOwnPropertyNames(o).forEach(function (prop) { if (o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) { deepFreeze(o[prop]); } }); return o; } function maybeDeepFreeze(obj) { if (isDevelopment() || isTest()) { var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string'; if (!symbolIsPolyfilled) { return deepFreeze(obj); } } return obj; } var hasOwnProperty = Object.prototype.hasOwnProperty; function mergeDeep() { var sources = []; for (var _i = 0; _i < arguments.length; _i++) { sources[_i] = arguments[_i]; } return mergeDeepArray(sources); } function mergeDeepArray(sources) { var target = sources[0] || {}; var count = sources.length; if (count > 1) { var pastCopies = []; target = shallowCopyForMerge(target, pastCopies); for (var i = 1; i < count; ++i) { target = mergeHelper(target, sources[i], pastCopies); } } return target; } function isObject(obj) { return obj !== null && typeof obj === 'object'; } function mergeHelper(target, source, pastCopies) { if (isObject(source) && isObject(target)) { if (Object.isExtensible && !Object.isExtensible(target)) { target = shallowCopyForMerge(target, pastCopies); } Object.keys(source).forEach(function (sourceKey) { var sourceValue = source[sourceKey]; if (hasOwnProperty.call(target, sourceKey)) { var targetValue = target[sourceKey]; if (sourceValue !== targetValue) { target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies); } } else { target[sourceKey] = sourceValue; } }); return target; } return source; } function shallowCopyForMerge(value, pastCopies) { if (value !== null && typeof value === 'object' && pastCopies.indexOf(value) < 0) { if (Array.isArray(value)) { value = value.slice(0); } else { value = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({ __proto__: Object.getPrototypeOf(value) }, value); } pastCopies.push(value); } return value; } var haveWarned = Object.create({}); function warnOnceInDevelopment(msg, type) { if (type === void 0) { type = 'warn'; } if (!isProduction() && !haveWarned[msg]) { if (!isTest()) { haveWarned[msg] = true; } if (type === 'error') { console.error(msg); } else { console.warn(msg); } } } function stripSymbols(data) { return JSON.parse(JSON.stringify(data)); } //# sourceMappingURL=bundle.esm.js.map /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(78))) /***/ }), /* 221 */ /***/ (function(module, exports, __webpack_require__) { var Uint8Array = __webpack_require__(254); /** * Creates a clone of `arrayBuffer`. * * @private * @param {ArrayBuffer} arrayBuffer The array buffer to clone. * @returns {ArrayBuffer} Returns the cloned array buffer. */ function cloneArrayBuffer(arrayBuffer) { var result = new arrayBuffer.constructor(arrayBuffer.byteLength); new Uint8Array(result).set(new Uint8Array(arrayBuffer)); return result; } module.exports = cloneArrayBuffer; /***/ }), /* 222 */ /***/ (function(module, exports) { /** * The base implementation of `_.propertyOf` without support for deep paths. * * @private * @param {Object} object The object to query. * @returns {Function} Returns the new accessor function. */ function basePropertyOf(object) { return function(key) { return object == null ? undefined : object[key]; }; } module.exports = basePropertyOf; /***/ }), /* 223 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GraphQLError = GraphQLError; var _printError = __webpack_require__(352); var _location = __webpack_require__(353); /** * A GraphQLError describes an Error found during the parse, validate, or * execute phases of performing a GraphQL operation. In addition to a message * and stack trace, it also includes information about the locations in a * GraphQL document and/or execution result that correspond to the Error. */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function GraphQLError( // eslint-disable-line no-redeclare message, nodes, source, positions, path, originalError, extensions) { // Compute list of blame nodes. var _nodes = Array.isArray(nodes) ? nodes.length !== 0 ? nodes : undefined : nodes ? [nodes] : undefined; // Compute locations in the source for the given nodes/positions. var _source = source; if (!_source && _nodes) { var node = _nodes[0]; _source = node && node.loc && node.loc.source; } var _positions = positions; if (!_positions && _nodes) { _positions = _nodes.reduce(function (list, node) { if (node.loc) { list.push(node.loc.start); } return list; }, []); } if (_positions && _positions.length === 0) { _positions = undefined; } var _locations = void 0; if (positions && source) { _locations = positions.map(function (pos) { return (0, _location.getLocation)(source, pos); }); } else if (_nodes) { _locations = _nodes.reduce(function (list, node) { if (node.loc) { list.push((0, _location.getLocation)(node.loc.source, node.loc.start)); } return list; }, []); } Object.defineProperties(this, { message: { value: message, // By being enumerable, JSON.stringify will include `message` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: true, writable: true }, locations: { // Coercing falsey values to undefined ensures they will not be included // in JSON.stringify() when not provided. value: _locations || undefined, // By being enumerable, JSON.stringify will include `locations` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: true }, path: { // Coercing falsey values to undefined ensures they will not be included // in JSON.stringify() when not provided. value: path || undefined, // By being enumerable, JSON.stringify will include `path` in the // resulting output. This ensures that the simplest possible GraphQL // service adheres to the spec. enumerable: true }, nodes: { value: _nodes || undefined }, source: { value: _source || undefined }, positions: { value: _positions || undefined }, originalError: { value: originalError }, extensions: { value: extensions || originalError && originalError.extensions } }); // Include (non-enumerable) stack trace. if (originalError && originalError.stack) { Object.defineProperty(this, 'stack', { value: originalError.stack, writable: true, configurable: true }); } else if (Error.captureStackTrace) { Error.captureStackTrace(this, GraphQLError); } else { Object.defineProperty(this, 'stack', { value: Error().stack, writable: true, configurable: true }); } } GraphQLError.prototype = Object.create(Error.prototype, { constructor: { value: GraphQLError }, name: { value: 'GraphQLError' }, toString: { value: function toString() { return (0, _printError.printError)(this); } } }); /***/ }), /* 224 */ /***/ (function(module, exports, __webpack_require__) { var moment = module.exports = __webpack_require__(749); moment.tz.load(__webpack_require__(751)); /***/ }), /* 225 */ /***/ (function(module, exports, __webpack_require__) { var escapeHtmlChar = __webpack_require__(790), toString = __webpack_require__(61); /** Used to match HTML entities and HTML characters. */ var reUnescapedHtml = /[&<>"']/g, reHasUnescapedHtml = RegExp(reUnescapedHtml.source); /** * Converts the characters "&", "<", ">", '"', and "'" in `string` to their * corresponding HTML entities. * * **Note:** No other characters are escaped. To escape additional * characters use a third-party library like [_he_](https://mths.be/he). * * Though the ">" character is escaped for symmetry, characters like * ">" and "/" don't need escaping in HTML and have no special meaning * unless they're part of a tag or unquoted attribute value. See * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) * (under "semi-related fun fact") for more details. * * When working with HTML you should always * [quote attribute values](http://wonko.com/post/html-escaping) to reduce * XSS vectors. * * @static * @since 0.1.0 * @memberOf _ * @category String * @param {string} [string=''] The string to escape. * @returns {string} Returns the escaped string. * @example * * _.escape('fred, barney, & pebbles'); * // => 'fred, barney, & pebbles' */ function escape(string) { string = toString(string); return (string && reHasUnescapedHtml.test(string)) ? string.replace(reUnescapedHtml, escapeHtmlChar) : string; } module.exports = escape; /***/ }), /* 226 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchShippingMethods {\n database {\n id\n commerceOrder {\n id\n availableShippingMethods {\n id\n name\n description\n price {\n value\n }\n }\n }\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.register = exports.updateWebPaymentsButton = void 0; var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var _commerceUtils = __webpack_require__(37); var _stripeStore = __webpack_require__(109); var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _checkoutUtils = __webpack_require__(152); var _cartUtils = __webpack_require__(377); var _constants = __webpack_require__(19); var _debug = _interopRequireDefault(__webpack_require__(80)); /* globals window */ var hasItems = function hasItems(response) { return response && response.data && response.data.database && response.data.database.commerceOrder && response.data.database.commerceOrder.userItems && response.data.database.commerceOrder.userItems.length > 0; }; var isWebPaymentsButtonEvent = function isWebPaymentsButtonEvent(_ref) { var target = _ref.target; var cartCheckoutButton = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_BUTTON, target); var cartApplePayButton = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_APPLE_PAY_BUTTON, target); if (cartCheckoutButton) { return cartCheckoutButton; } else if (cartApplePayButton) { return cartApplePayButton; } else { return false; } }; var updateWebPaymentsButton = function updateWebPaymentsButton(wrapper, data, stripeStore) { var webPaymentsActionsElements = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_ACTIONS, wrapper); if (!webPaymentsActionsElements || webPaymentsActionsElements.length === 0 || !hasItems(data)) { return; } webPaymentsActionsElements.forEach(function (webPaymentsActions) { (0, _commerceUtils.hideElement)(webPaymentsActions); if (!stripeStore || !stripeStore.isInitialized() || !data.data.site.commerce.quickCheckoutEnabled) { return; } var stripeInstance = parseInt(wrapper.getAttribute(_constants.STRIPE_ELEMENT_INSTANCE), 10); var paymentRequest = stripeStore.updateCartPaymentRequest(stripeInstance, data.data.database.commerceOrder, data.data.site.commerce); if (!paymentRequest || typeof paymentRequest.canMakePayment !== 'function') { return; } if ((0, _commerceUtils.isFreeOrder)(data)) { return; } paymentRequest.canMakePayment().then(function (result) { if (!result) { return; } var applePay = result.applePay; (0, _commerceUtils.showElement)(webPaymentsActions); var cartCheckoutButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_BUTTON, webPaymentsActions); var cartApplePayButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_APPLE_PAY_BUTTON, webPaymentsActions); if (!cartCheckoutButton || !cartApplePayButton) { return; } if (applePay) { (0, _commerceUtils.hideElement)(cartCheckoutButton); (0, _commerceUtils.showElement)(cartApplePayButton); } else { (0, _commerceUtils.hideElement)(cartApplePayButton); (0, _commerceUtils.showElement)(cartCheckoutButton); } })["catch"](function () { _debug["default"].log('PaymentRequest not available in this browser – silently exiting'); }); }); }; exports.updateWebPaymentsButton = updateWebPaymentsButton; var getShippingMethodsQuery = _graphqlTag["default"](_templateObject()); var handleWebPaymentsButton = function handleWebPaymentsButton(event, apolloClient, stripeStore) { event.preventDefault(); if (window.Webflow.env('design') || window.Webflow.env('preview')) { if (window.Webflow.env('preview')) { window.alert('Web Payments is not available in preview mode.'); } return; } var currentTarget = event.currentTarget; var stripeElement = (0, _commerceUtils.findClosestElementWithAttribute)(_constants.STRIPE_ELEMENT_INSTANCE, currentTarget); if (!(stripeElement instanceof Element)) { return; } var stripeInstance = parseInt(stripeElement.getAttribute(_constants.STRIPE_ELEMENT_INSTANCE), 10); var paymentRequest = stripeStore.getCartPaymentRequest(stripeInstance); paymentRequest.show(); if (paymentRequest.hasRegisteredListener('paymentmethod')) { // we remove any existing event listeners, which can happen if the modal // was closed before a successful payment occurred paymentRequest.removeAllListeners(); } paymentRequest.on('shippingaddresschange', function (_ref2) { var updateWith = _ref2.updateWith, shippingAddress = _ref2.shippingAddress; var shippingMethods = []; var graphQlQuery = stripeElement.getAttribute(_constants.CART_QUERY) || stripeElement.getAttribute(_constants.CHECKOUT_QUERY); // In some cases we receive an obfuscated address from quick checkout service (e.g. Apple pay) // We're using a different mutation to mark such address as 'obfuscated' in order to skip address validation when calculating taxes (0, _checkoutUtils.createUpdateObfuscatedOrderAddressMutation)(apolloClient, { type: 'shipping', name: shippingAddress.recipient, address_line1: shippingAddress.addressLine[0], address_line2: shippingAddress.addressLine[1], address_city: shippingAddress.city, address_state: shippingAddress.region, address_country: shippingAddress.country, address_zip: shippingAddress.postalCode }).then(function () { return apolloClient.query({ query: getShippingMethodsQuery, fetchPolicy: 'network-only', errorPolicy: 'all' }); }).then(function (_ref3) { var data = _ref3.data; if (!data.database.commerceOrder.availableShippingMethods || data.database.commerceOrder.availableShippingMethods.length === 0) { updateWith({ status: 'invalid_shipping_address' }); return Promise.reject('No valid shipping addresses'); } else { shippingMethods = data.database.commerceOrder.availableShippingMethods; return (0, _checkoutUtils.createOrderShippingMethodMutation)(apolloClient, data.database.commerceOrder.availableShippingMethods[0].id); } }).then(function () { return (0, _checkoutUtils.createRecalcOrderEstimationsMutation)(apolloClient); }).then(function () { return apolloClient.query({ query: _graphqlTag["default"](_templateObject2(), graphQlQuery), fetchPolicy: 'network-only', errorPolicy: 'all' }); }).then(function (_ref4) { var data = _ref4.data; updateWith({ status: 'success', displayItems: (0, _stripeStore.generateDisplayItemsFromOrder)(data.database.commerceOrder, true), shippingOptions: (0, _stripeStore.generateShippingOptionsFromMethods)(shippingMethods), total: { amount: data.database.commerceOrder.total.value, label: 'Total', pending: false } }); }); }); paymentRequest.on('shippingoptionchange', function (_ref5) { var updateWith = _ref5.updateWith, shippingOption = _ref5.shippingOption; var graphQlQuery = stripeElement.getAttribute(_constants.CART_QUERY) || stripeElement.getAttribute(_constants.CHECKOUT_QUERY); (0, _checkoutUtils.createOrderShippingMethodMutation)(apolloClient, shippingOption.id).then(function () { return (0, _checkoutUtils.createRecalcOrderEstimationsMutation)(apolloClient); }).then(function () { return apolloClient.query({ query: _graphqlTag["default"](_templateObject3(), graphQlQuery), fetchPolicy: 'network-only', errorPolicy: 'all' }); }).then(function (_ref6) { var data = _ref6.data; updateWith({ status: 'success', displayItems: (0, _stripeStore.generateDisplayItemsFromOrder)(data.database.commerceOrder, true), total: { amount: data.database.commerceOrder.total.value, label: 'Total', pending: false } }); }); }); paymentRequest.on('paymentmethod', function (ev) { (0, _commerceUtils.fetchOrderStatusFlags)(apolloClient).then(function (_ref7) { var requiresShipping = _ref7.requiresShipping; return Promise.all([(0, _checkoutUtils.createOrderIdentityMutation)(apolloClient, ev.payerEmail), requiresShipping ? (0, _checkoutUtils.createOrderAddressMutation)(apolloClient, { type: 'shipping', name: ev.shippingAddress.recipient, address_line1: ev.shippingAddress.addressLine[0], address_line2: ev.shippingAddress.addressLine[1], address_city: ev.shippingAddress.city, address_state: ev.shippingAddress.region, address_country: ev.shippingAddress.country, address_zip: ev.shippingAddress.postalCode }) : Promise.resolve(), (0, _checkoutUtils.createOrderAddressMutation)(apolloClient, { type: 'billing', name: ev.paymentMethod.billing_details.name, address_line1: ev.paymentMethod.billing_details.address.line1, address_line2: ev.paymentMethod.billing_details.address.line2, address_city: ev.paymentMethod.billing_details.address.city, address_state: ev.paymentMethod.billing_details.address.state, address_country: ev.paymentMethod.billing_details.address.country, address_zip: ev.paymentMethod.billing_details.address.postal_code }), requiresShipping ? (0, _checkoutUtils.createOrderShippingMethodMutation)(apolloClient, ev.shippingOption.id) : Promise.resolve(), (0, _checkoutUtils.createStripePaymentMethodMutation)(apolloClient, ev.paymentMethod.id)]); }).then(function () { return (0, _checkoutUtils.createAttemptSubmitOrderRequest)(apolloClient, { checkoutType: 'quickCheckout' }); }).then(function (data) { var order = (0, _checkoutUtils.getOrderDataFromGraphQLResponse)(data); if ((0, _checkoutUtils.orderRequiresAdditionalAction)(order.status)) { ev.complete('success'); var stripe = stripeStore.getStripeInstance(); return stripe.handleCardAction(order.clientSecret).then(function (result) { if (result.error) { return Promise.reject(new Error('payment_intent_failed')); } return (0, _checkoutUtils.createAttemptSubmitOrderRequest)(apolloClient, { checkoutType: 'quickCheckout', paymentIntentId: result.paymentIntent.id }).then(function (resp) { var finishedOrder = (0, _checkoutUtils.getOrderDataFromGraphQLResponse)(resp); if (finishedOrder.ok) { (0, _checkoutUtils.redirectToOrderConfirmation)(finishedOrder); } else { return Promise.reject(new Error('payment_intent_failed')); } }); }); } if (order.ok) { ev.complete('success'); (0, _checkoutUtils.redirectToOrderConfirmation)(order); } else { return Promise.reject(new Error('order_failed')); } })["catch"](function (err) { var hasGraphQLErrors = err && err.graphQLErrors && err.graphQLErrors.length > 0; if (hasGraphQLErrors) { switch (err.graphQLErrors[0].code) { case 'PriceChanged': { ev.complete('success'); // We have to wrap this in a small timeout or else the error won't show up and the payment dialog will time out setTimeout(function () { window.alert('The prices of one or more items in your cart have changed. Please refresh this page and try again.'); }, 100); return; } case 'ItemNotFound': { ev.complete('success'); setTimeout(function () { window.alert('One or more of the products in your cart have been removed. Please refresh the page and try again.'); }, 100); return; } case 'OrderTotalRange': { ev.complete('success'); (0, _checkoutUtils.showErrorMessageForError)(err, ev.currentTarget); if ((0, _cartUtils.isCartOpen)()) { (0, _cartUtils.showErrorMessageForError)(err, ev.currentTarget); } return; } default: // noop } } if (err && err.message && err.message === 'payment_intent_failed') { // in the case that we failed outside of the browser UI (i.e. when we had to fall back to the page for 3d secure) // we're going to not call the `ev.complete`, since we already had to mark it with `success` to get back to the page // and since we don't have an error element, we're going to pop up an alert informing them of the issue window.alert('There was an error processing your payment. Please try again, or contact us if you continue to have problems.'); } else { // otherwise, since we're still in the native browser UI, we can rely on the browser to tell them that something went wrong ev.complete('fail'); } }); }); }; var register = function register(handlerProxy) { handlerProxy.on('click', isWebPaymentsButtonEvent, handleWebPaymentsButton); handlerProxy.on('keydown', isWebPaymentsButtonEvent, function (event) { // $FlowIgnore which exists in KeyboardEvent if (event.which === 32) { // prevent scrolling on spacebar key press event.preventDefault(); } // $FlowIgnore which exists in KeyboardEvent if (event.which === 13) { for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { rest[_key - 1] = arguments[_key]; } // enter key press return handleWebPaymentsButton.apply(void 0, [event].concat(rest)); } }); handlerProxy.on('keyup', isWebPaymentsButtonEvent, function (event) { // $FlowIgnore which exists in KeyboardEvent if (event.which === 32) { for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { rest[_key2 - 1] = arguments[_key2]; } // spacebar key press return handleWebPaymentsButton.apply(void 0, [event].concat(rest)); } }); }; exports.register = register; var _default = { register: register }; exports["default"] = _default; /***/ }), /* 227 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var has = Object.prototype.hasOwnProperty; var isArray = Array.isArray; var hexTable = (function () { var array = []; for (var i = 0; i < 256; ++i) { array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); } return array; }()); var compactQueue = function compactQueue(queue) { while (queue.length > 1) { var item = queue.pop(); var obj = item.obj[item.prop]; if (isArray(obj)) { var compacted = []; for (var j = 0; j < obj.length; ++j) { if (typeof obj[j] !== 'undefined') { compacted.push(obj[j]); } } item.obj[item.prop] = compacted; } } }; var arrayToObject = function arrayToObject(source, options) { var obj = options && options.plainObjects ? Object.create(null) : {}; for (var i = 0; i < source.length; ++i) { if (typeof source[i] !== 'undefined') { obj[i] = source[i]; } } return obj; }; var merge = function merge(target, source, options) { /* eslint no-param-reassign: 0 */ if (!source) { return target; } if (typeof source !== 'object') { if (isArray(target)) { target.push(source); } else if (target && typeof target === 'object') { if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { target[source] = true; } } else { return [target, source]; } return target; } if (!target || typeof target !== 'object') { return [target].concat(source); } var mergeTarget = target; if (isArray(target) && !isArray(source)) { mergeTarget = arrayToObject(target, options); } if (isArray(target) && isArray(source)) { source.forEach(function (item, i) { if (has.call(target, i)) { var targetItem = target[i]; if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { target[i] = merge(targetItem, item, options); } else { target.push(item); } } else { target[i] = item; } }); return target; } return Object.keys(source).reduce(function (acc, key) { var value = source[key]; if (has.call(acc, key)) { acc[key] = merge(acc[key], value, options); } else { acc[key] = value; } return acc; }, mergeTarget); }; var assign = function assignSingleSource(target, source) { return Object.keys(source).reduce(function (acc, key) { acc[key] = source[key]; return acc; }, target); }; var decode = function (str, decoder, charset) { var strWithoutPlus = str.replace(/\+/g, ' '); if (charset === 'iso-8859-1') { // unescape never throws, no try...catch needed: return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); } // utf-8 try { return decodeURIComponent(strWithoutPlus); } catch (e) { return strWithoutPlus; } }; var encode = function encode(str, defaultEncoder, charset) { // This code was originally written by Brian White (mscdex) for the io.js core querystring library. // It has been adapted here for stricter adherence to RFC 3986 if (str.length === 0) { return str; } var string = str; if (typeof str === 'symbol') { string = Symbol.prototype.toString.call(str); } else if (typeof str !== 'string') { string = String(str); } if (charset === 'iso-8859-1') { return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; }); } var out = ''; for (var i = 0; i < string.length; ++i) { var c = string.charCodeAt(i); if ( c === 0x2D // - || c === 0x2E // . || c === 0x5F // _ || c === 0x7E // ~ || (c >= 0x30 && c <= 0x39) // 0-9 || (c >= 0x41 && c <= 0x5A) // a-z || (c >= 0x61 && c <= 0x7A) // A-Z ) { out += string.charAt(i); continue; } if (c < 0x80) { out = out + hexTable[c]; continue; } if (c < 0x800) { out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); continue; } if (c < 0xD800 || c >= 0xE000) { out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); continue; } i += 1; c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]; } return out; }; var compact = function compact(value) { var queue = [{ obj: { o: value }, prop: 'o' }]; var refs = []; for (var i = 0; i < queue.length; ++i) { var item = queue[i]; var obj = item.obj[item.prop]; var keys = Object.keys(obj); for (var j = 0; j < keys.length; ++j) { var key = keys[j]; var val = obj[key]; if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { queue.push({ obj: obj, prop: key }); refs.push(val); } } } compactQueue(queue); return value; }; var isRegExp = function isRegExp(obj) { return Object.prototype.toString.call(obj) === '[object RegExp]'; }; var isBuffer = function isBuffer(obj) { if (!obj || typeof obj !== 'object') { return false; } return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); }; var combine = function combine(a, b) { return [].concat(a, b); }; var maybeMap = function maybeMap(val, fn) { if (isArray(val)) { var mapped = []; for (var i = 0; i < val.length; i += 1) { mapped.push(fn(val[i])); } return mapped; } return fn(val); }; module.exports = { arrayToObject: arrayToObject, assign: assign, combine: combine, compact: compact, decode: decode, encode: encode, isBuffer: isBuffer, isRegExp: isRegExp, maybeMap: maybeMap, merge: merge }; /***/ }), /* 228 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ /*! * tram.js v0.8.2-global * Cross-browser CSS3 transitions in JavaScript * https://github.com/bkwld/tram * MIT License */ /* prettier-ignore */ var _interopRequireDefault = __webpack_require__(0); var _typeof2 = _interopRequireDefault(__webpack_require__(30)); window.tram = function (a) { function b(a, b) { var c = new M.Bare(); return c.init(a, b); } function c(a) { return a.replace(/[A-Z]/g, function (a) { return "-" + a.toLowerCase(); }); } function d(a) { var b = parseInt(a.slice(1), 16), c = b >> 16 & 255, d = b >> 8 & 255, e = 255 & b; return [c, d, e]; } function e(a, b, c) { return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); } function f() {} function g(a, b) { j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); } function h(a, b, c) { j("Units do not match [" + a + "]: " + b + ", " + c); } function i(a, b, c) { if (void 0 !== b && (c = b), void 0 === a) return c; var d = c; return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; } function j(a) { U.debug && window && window.console.warn(a); } function k(a) { for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { var e = a[b]; e && d.push(e); } return d; } var l = function (a, b, c) { function d(a) { return "object" == (0, _typeof2["default"])(a); } function e(a) { return "function" == typeof a; } function f() {} function g(h, i) { function j() { var a = new k(); return e(a.init) && a.init.apply(a, arguments), a; } function k() {} i === c && (i = h, h = Object), j.Bare = k; var l, m = f[a] = h[a], n = k[a] = j[a] = new f(); return n.constructor = j, j.mixin = function (b) { return k[a] = j[a] = g(j, b)[a], j; }, j.open = function (a) { if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { b.call(l, c) && (n[c] = l[c]); } return e(n.init) || (n.init = h), j; }, j.open(i); } return g; }("prototype", {}.hasOwnProperty), m = { ease: ["ease", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); }], "ease-in": ["ease-in", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); }], "ease-out": ["ease-out", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); }], "ease-in-out": ["ease-in-out", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); }], linear: ["linear", function (a, b, c, d) { return c * a / d + b; }], "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { return c * (a /= d) * a + b; }], "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { return -c * (a /= d) * (a - 2) + b; }], "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; }], "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { return c * (a /= d) * a * a + b; }], "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { return c * ((a = a / d - 1) * a * a + 1) + b; }], "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; }], "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { return c * (a /= d) * a * a * a + b; }], "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { return -c * ((a = a / d - 1) * a * a * a - 1) + b; }], "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; }], "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { return c * (a /= d) * a * a * a * a + b; }], "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { return c * ((a = a / d - 1) * a * a * a * a + 1) + b; }], "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; }], "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; }], "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { return c * Math.sin(a / d * (Math.PI / 2)) + b; }], "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; }], "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; }], "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; }], "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { return 0 === a ? b : a === d ? b + c : (a /= d / 2) < 1 ? c / 2 * Math.pow(2, 10 * (a - 1)) + b : c / 2 * (-Math.pow(2, -10 * --a) + 2) + b; }], "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; }], "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; }], "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; }], "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; }], "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; }], "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { return void 0 === e && (e = 1.70158), (a /= d / 2) < 1 ? c / 2 * a * a * (((e *= 1.525) + 1) * a - e) + b : c / 2 * ((a -= 2) * a * (((e *= 1.525) + 1) * a + e) + 2) + b; }] }, n = { "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" }, o = document, p = window, q = "bkwld-tram", r = /[\-\.0-9]/g, s = /[A-Z]/, t = "number", u = /^(rgb|#)/, v = /(em|cm|mm|in|pt|pc|px)$/, w = /(em|cm|mm|in|pt|pc|px|%)$/, x = /(deg|rad|turn)$/, y = "unitless", z = /(all|none) 0s ease 0s/, A = /^(width|height)$/, B = " ", C = o.createElement("a"), D = ["Webkit", "Moz", "O", "ms"], E = ["-webkit-", "-moz-", "-o-", "-ms-"], F = function F(a) { if (a in C.style) return { dom: a, css: a }; var b, c, d = "", e = a.split("-"); for (b = 0; b < e.length; b++) { d += e[b].charAt(0).toUpperCase() + e[b].slice(1); } for (b = 0; b < D.length; b++) { if (c = D[b] + d, c in C.style) return { dom: c, css: E[b] + a }; } }, G = b.support = { bind: Function.prototype.bind, transform: F("transform"), transition: F("transition"), backface: F("backface-visibility"), timing: F("transition-timing-function") }; if (G.transition) { var H = G.timing.dom; if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { m[I][0] = n[I]; } } var J = b.frame = function () { var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; return a && G.bind ? a.bind(p) : function (a) { p.setTimeout(a, 16); }; }(), K = b.now = function () { var a = p.performance, b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); return b && G.bind ? b.bind(a) : Date.now || function () { return +new Date(); }; }(), L = l(function (b) { function d(a, b) { var c = k(("" + a).split(B)), d = c[0]; b = b || {}; var e = Y[d]; if (!e) return j("Unsupported property: " + d); if (!b.weak || !this.props[d]) { var f = e[0], g = this.props[d]; return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; } } function e(a, b, c) { if (a) { var e = (0, _typeof2["default"])(a); if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ duration: a, context: this, complete: h }), void (this.active = !0); if ("string" == e && b) { switch (a) { case "hide": o.call(this); break; case "stop": l.call(this); break; case "redraw": p.call(this); break; default: d.call(this, a, c && c[1]); } return h.call(this); } if ("function" == e) return void a.call(this, this); if ("object" == e) { var f = 0; u.call(this, a, function (a, b) { a.span > f && (f = a.span), a.stop(), a.animate(b); }, function (a) { "wait" in a && (f = i(a.wait, 0)); }), t.call(this), f > 0 && (this.timer = new S({ duration: f, context: this }), this.active = !0, b && (this.timer.complete = h)); var g = this, j = !1, k = {}; J(function () { u.call(g, a, function (a) { a.active && (j = !0, k[a.name] = a.nextStyle); }), j && g.$el.css(k); }); } } } function f(a) { a = i(a, 0), this.active ? this.queue.push({ options: a }) : (this.timer = new S({ duration: a, context: this, complete: h }), this.active = !0); } function g(a) { return this.active ? (this.queue.push({ options: a, args: arguments }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); } function h() { if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { var a = this.queue.shift(); e.call(this, a.options, !0, a.args); } } function l(a) { this.timer && this.timer.destroy(), this.queue = [], this.active = !1; var b; "string" == typeof a ? (b = {}, b[a] = 1) : b = "object" == (0, _typeof2["default"])(a) && null != a ? a : this.props, u.call(this, b, v), t.call(this); } function m(a) { l.call(this, a), u.call(this, a, w, x); } function n(a) { "string" != typeof a && (a = "block"), this.el.style.display = a; } function o() { l.call(this), this.el.style.display = "none"; } function p() { this.el.offsetHeight; } function r() { l.call(this), a.removeData(this.el, q), this.$el = this.el = null; } function t() { var a, b, c = []; this.upstream && c.push(this.upstream); for (a in this.props) { b = this.props[a], b.active && c.push(b.string); } c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); } function u(a, b, e) { var f, g, h, i, j = b !== v, k = {}; for (f in a) { h = a[f], f in Z ? (k.transform || (k.transform = {}), k.transform[f] = h) : (s.test(f) && (f = c(f)), f in Y ? k[f] = h : (i || (i = {}), i[f] = h)); } for (f in k) { if (h = k[f], g = this.props[f], !g) { if (!j) continue; g = d.call(this, f); } b.call(this, g, h); } e && i && e.call(this, i); } function v(a) { a.stop(); } function w(a, b) { a.set(b); } function x(a) { this.$el.css(a); } function y(a, c) { b[a] = function () { return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); }; } function A(a, b) { var c, d = this.children.length; for (c = 0; d > c; c++) { a.apply(this.children[c], b); } return this; } b.init = function (b) { if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { var c = W(this.el, "transition"); c && !z.test(c) && (this.upstream = c); } G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); }, y("add", d), y("start", e), y("wait", f), y("then", g), y("next", h), y("stop", l), y("set", m), y("show", n), y("hide", o), y("redraw", p), y("destroy", r); }), M = l(L, function (b) { function c(b, c) { var d = a.data(b, q) || a.data(b, q, new L.Bare()); return d.el || d.init(b), c ? d.start(c) : d; } b.init = function (b, d) { var e = a(b); if (!e.length) return this; if (1 === e.length) return c(e[0], d); var f = []; return e.each(function (a, b) { f.push(c(b, d)); }), this.children = f, this; }; }), N = l(function (a) { function b() { var a = this.get(); this.update("auto"); var b = this.get(); return this.update(a), b; } function c(a, b, c) { return void 0 !== b && (c = b), a in m ? a : c; } function d(a) { var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); } var f = { duration: 500, ease: "ease", delay: 0 }; a.init = function (a, b, d, e) { this.$el = a, this.el = a[0]; var g = b[0]; d[2] && (g = d[2]), X[g] && (g = X[g]), this.name = g, this.type = d[1], this.duration = i(b[1], this.duration, f.duration), this.ease = c(b[2], this.ease, f.ease), this.delay = i(b[3], this.delay, f.delay), this.span = this.duration + this.delay, this.active = !1, this.nextStyle = null, this.auto = A.test(this.name), this.unit = e.unit || this.unit || U.defaultUnit, this.angle = e.angle || this.angle || U.defaultAngle, U.fallback || e.fallback ? this.animate = this.fallback : (this.animate = this.transition, this.string = this.name + B + this.duration + "ms" + ("ease" != this.ease ? B + m[this.ease][0] : "") + (this.delay ? B + this.delay + "ms" : "")); }, a.set = function (a) { a = this.convert(a, this.type), this.update(a), this.redraw(); }, a.transition = function (a) { this.active = !0, a = this.convert(a, this.type), this.auto && ("auto" == this.el.style[this.name] && (this.update(this.get()), this.redraw()), "auto" == a && (a = b.call(this))), this.nextStyle = a; }, a.fallback = function (a) { var c = this.el.style[this.name] || this.convert(this.get(), this.type); a = this.convert(a, this.type), this.auto && ("auto" == c && (c = this.convert(this.get(), this.type)), "auto" == a && (a = b.call(this))), this.tween = new R({ from: c, to: a, duration: this.duration, delay: this.delay, ease: this.ease, update: this.update, context: this }); }, a.get = function () { return W(this.el, this.name); }, a.update = function (a) { V(this.el, this.name, a); }, a.stop = function () { (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); var a = this.tween; a && a.context && a.destroy(); }, a.convert = function (a, b) { if ("auto" == a && this.auto) return a; var c, e = "number" == typeof a, f = "string" == typeof a; switch (b) { case t: if (e) return a; if (f && "" === a.replace(r, "")) return +a; c = "number(unitless)"; break; case u: if (f) { if ("" === a && this.original) return this.original; if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); } c = "hex or rgb string"; break; case v: if (e) return a + this.unit; if (f && b.test(a)) return a; c = "number(px) or string(unit)"; break; case w: if (e) return a + this.unit; if (f && b.test(a)) return a; c = "number(px) or string(unit or %)"; break; case x: if (e) return a + this.angle; if (f && b.test(a)) return a; c = "number(deg) or string(angle)"; break; case y: if (e) return a; if (f && w.test(a)) return a; c = "number(unitless) or string(unit or %)"; } return g(c, a), a; }, a.redraw = function () { this.el.offsetHeight; }; }), O = l(N, function (a, b) { a.init = function () { b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); }; }), P = l(N, function (a, b) { a.init = function () { b.init.apply(this, arguments), this.animate = this.fallback; }, a.get = function () { return this.$el[this.name](); }, a.update = function (a) { this.$el[this.name](a); }; }), Q = l(N, function (a, b) { function c(a, b) { var c, d, e, f, g; for (c in a) { f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); } } a.init = function () { b.init.apply(this, arguments), this.current || (this.current = {}, Z.perspective && U.perspective && (this.current.perspective = U.perspective, V(this.el, this.name, this.style(this.current)), this.redraw())); }, a.set = function (a) { c.call(this, a, function (a, b) { this.current[a] = b; }), V(this.el, this.name, this.style(this.current)), this.redraw(); }, a.transition = function (a) { var b = this.values(a); this.tween = new T({ current: this.current, values: b, duration: this.duration, delay: this.delay, ease: this.ease }); var c, d = {}; for (c in this.current) { d[c] = c in b ? b[c] : this.current[c]; } this.active = !0, this.nextStyle = this.style(d); }, a.fallback = function (a) { var b = this.values(a); this.tween = new T({ current: this.current, values: b, duration: this.duration, delay: this.delay, ease: this.ease, update: this.update, context: this }); }, a.update = function () { V(this.el, this.name, this.style(this.current)); }, a.style = function (a) { var b, c = ""; for (b in a) { c += b + "(" + a[b] + ") "; } return c; }, a.values = function (a) { var b, d = {}; return c.call(this, a, function (a, c, e) { d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); }), d; }; }), R = l(function (b) { function c(a) { 1 === n.push(a) && J(g); } function g() { var a, b, c, d = n.length; if (d) for (J(g), b = K(), a = d; a--;) { c = n[a], c && c.render(b); } } function i(b) { var c, d = a.inArray(b, n); d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); } function j(a) { return Math.round(a * o) / o; } function k(a, b, c) { return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); } var l = { ease: m.ease[1], from: 0, to: 1 }; b.init = function (a) { this.duration = a.duration || 0, this.delay = a.delay || 0; var b = a.ease || l.ease; m[b] && (b = m[b][1]), "function" != typeof b && (b = l.ease), this.ease = b, this.update = a.update || f, this.complete = a.complete || f, this.context = a.context || this, this.name = a.name; var c = a.from, d = a.to; void 0 === c && (c = l.from), void 0 === d && (d = l.to), this.unit = a.unit || "", "number" == typeof c && "number" == typeof d ? (this.begin = c, this.change = d - c) : this.format(d, c), this.value = this.begin + this.unit, this.start = K(), a.autoplay !== !1 && this.play(); }, b.play = function () { this.active || (this.start || (this.start = K()), this.active = !0, c(this)); }, b.stop = function () { this.active && (this.active = !1, i(this)); }, b.render = function (a) { var b, c = a - this.start; if (this.delay) { if (c <= this.delay) return; c -= this.delay; } if (c < this.duration) { var d = this.ease(c, 0, 1, this.duration); return b = this.startRGB ? k(this.startRGB, this.endRGB, d) : j(this.begin + d * this.change), this.value = b + this.unit, void this.update.call(this.context, this.value); } b = this.endHex || this.begin + this.change, this.value = b + this.unit, this.update.call(this.context, this.value), this.complete.call(this.context), this.destroy(); }, b.format = function (a, b) { if (b += "", a += "", "#" == a.charAt(0)) return this.startRGB = d(b), this.endRGB = d(a), this.endHex = a, this.begin = 0, void (this.change = 1); if (!this.unit) { var c = b.replace(r, ""), e = a.replace(r, ""); c !== e && h("tween", b, a), this.unit = c; } b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; }, b.destroy = function () { this.stop(), this.context = null, this.ease = this.update = this.complete = f; }; var n = [], o = 1e3; }), S = l(R, function (a) { a.init = function (a) { this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); }, a.render = function (a) { var b = a - this.start; b < this.duration || (this.complete.call(this.context), this.destroy()); }; }), T = l(R, function (a, b) { a.init = function (a) { this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; var b, c; for (b in a.values) { c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ name: b, from: this.current[b], to: c, duration: a.duration, delay: a.delay, ease: a.ease, autoplay: !1 })); } this.play(); }, a.render = function (a) { var b, c, d = this.tweens.length, e = !1; for (b = d; b--;) { c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); } return e ? void (this.update && this.update.call(this.context)) : this.destroy(); }, a.destroy = function () { if (b.destroy.call(this), this.tweens) { var a, c = this.tweens.length; for (a = c; a--;) { this.tweens[a].destroy(); } this.tweens = null, this.current = null; } }; }), U = b.config = { debug: !1, defaultUnit: "px", defaultAngle: "deg", keepInherited: !1, hideBackface: !1, perspective: "", fallback: !G.transition, agentTests: [] }; b.fallback = function (a) { if (!G.transition) return U.fallback = !0; U.agentTests.push("(" + a + ")"); var b = new RegExp(U.agentTests.join("|"), "i"); U.fallback = b.test(navigator.userAgent); }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { return new R(a); }, b.delay = function (a, b, c) { return new S({ complete: b, duration: a, context: c }); }, a.fn.tram = function (a) { return b.call(null, this, a); }; var V = a.style, W = a.css, X = { transform: G.transform && G.transform.css }, Y = { color: [O, u], background: [O, u, "background-color"], "outline-color": [O, u], "border-color": [O, u], "border-top-color": [O, u], "border-right-color": [O, u], "border-bottom-color": [O, u], "border-left-color": [O, u], "border-width": [N, v], "border-top-width": [N, v], "border-right-width": [N, v], "border-bottom-width": [N, v], "border-left-width": [N, v], "border-spacing": [N, v], "letter-spacing": [N, v], margin: [N, v], "margin-top": [N, v], "margin-right": [N, v], "margin-bottom": [N, v], "margin-left": [N, v], padding: [N, v], "padding-top": [N, v], "padding-right": [N, v], "padding-bottom": [N, v], "padding-left": [N, v], "outline-width": [N, v], opacity: [N, t], top: [N, w], right: [N, w], bottom: [N, w], left: [N, w], "font-size": [N, w], "text-indent": [N, w], "word-spacing": [N, w], width: [N, w], "min-width": [N, w], "max-width": [N, w], height: [N, w], "min-height": [N, w], "max-height": [N, w], "line-height": [N, y], "scroll-top": [P, t, "scrollTop"], "scroll-left": [P, t, "scrollLeft"] }, Z = {}; G.transform && (Y.transform = [Q], Z = { x: [w, "translateX"], y: [w, "translateY"], rotate: [x], rotateX: [x], rotateY: [x], scale: [t], scaleX: [t], scaleY: [t], skew: [x], skewX: [x], skewY: [x] }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); var $ = /ms/, _ = /s|\./; return a.tram = b; }(window.jQuery); /***/ }), /* 229 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $includes = __webpack_require__(158).includes; var addToUnscopables = __webpack_require__(13); // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes $({ target: 'Array', proto: true }, { includes: function includes(el /* , fromIndex = 0 */) { return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); } }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('includes'); /***/ }), /* 230 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var call = __webpack_require__(23); var isObject = __webpack_require__(12); var isSymbol = __webpack_require__(112); var getMethod = __webpack_require__(55); var ordinaryToPrimitive = __webpack_require__(392); var wellKnownSymbol = __webpack_require__(4); var TypeError = global.TypeError; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); // `ToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-toprimitive module.exports = function (input, pref) { if (!isObject(input) || isSymbol(input)) return input; var exoticToPrim = getMethod(input, TO_PRIMITIVE); var result; if (exoticToPrim) { if (pref === undefined) pref = 'default'; result = call(exoticToPrim, input, pref); if (!isObject(result) || isSymbol(result)) return result; throw TypeError("Can't convert object to primitive value"); } if (pref === undefined) pref = 'number'; return ordinaryToPrimitive(input, pref); }; /***/ }), /* 231 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable es/no-symbol -- required for testing */ var NATIVE_SYMBOL = __webpack_require__(155); module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; /***/ }), /* 232 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var fails = __webpack_require__(5); var createElement = __webpack_require__(116); // Thank's IE8 for his funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { // eslint-disable-next-line es/no-object-defineproperty -- requied for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var hasOwn = __webpack_require__(14); var FunctionPrototype = Function.prototype; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; var EXISTS = hasOwn(FunctionPrototype, 'name'); // additional protection from minified / mangled / dropped function names var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); module.exports = { EXISTS: EXISTS, PROPER: PROPER, CONFIGURABLE: CONFIGURABLE }; /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { var hasOwn = __webpack_require__(14); var ownKeys = __webpack_require__(394); var getOwnPropertyDescriptorModule = __webpack_require__(83); var definePropertyModule = __webpack_require__(17); module.exports = function (target, source) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } }; /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var hasOwn = __webpack_require__(14); var toIndexedObject = __webpack_require__(26); var indexOf = __webpack_require__(158).indexOf; var hiddenKeys = __webpack_require__(87); var push = uncurryThis([].push); module.exports = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); // Don't enum bug & hidden keys while (names.length > i) if (hasOwn(O, key = names[i++])) { ~indexOf(result, key) || push(result, key); } return result; }; /***/ }), /* 236 */ /***/ (function(module, exports) { // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe exports.f = Object.getOwnPropertySymbols; /***/ }), /* 237 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var definePropertyModule = __webpack_require__(17); var anObject = __webpack_require__(15); var toIndexedObject = __webpack_require__(26); var objectKeys = __webpack_require__(160); // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var props = toIndexedObject(Properties); var keys = objectKeys(Properties); var length = keys.length; var index = 0; var key; while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); return O; }; /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { var getBuiltIn = __webpack_require__(24); module.exports = getBuiltIn('document', 'documentElement'); /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); module.exports = function (CONSTRUCTOR, METHOD) { return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]); }; /***/ }), /* 240 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(161); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); /* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(244); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); /* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(246); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); /* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(247); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); /* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(162); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); /* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(245); /* * This is a dummy function to check if the function name has been altered by minification. * If the function has been minified and NODE_ENV !== 'production', warn the user. */ function isCrushed() {} if (false) {} /***/ }), /* 241 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(396); /* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(401); /* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(403); /** `Object#toString` result references. */ var objectTag = '[object Object]'; /** Used for built-in method references. */ var funcProto = Function.prototype, objectProto = Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to infer the `Object` constructor. */ var objectCtorString = funcToString.call(Object); /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * @static * @memberOf _ * @since 0.8.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * * function Foo() { * this.a = 1; * } * * _.isPlainObject(new Foo); * // => false * * _.isPlainObject([1, 2, 3]); * // => false * * _.isPlainObject({ 'x': 0, 'y': 0 }); * // => true * * _.isPlainObject(Object.create(null)); * // => true */ function isPlainObject(value) { if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { return false; } var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); if (proto === null) { return true; } var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; } /* harmony default export */ __webpack_exports__["default"] = (isPlainObject); /***/ }), /* 242 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(397); /** Built-in value references. */ var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; /* harmony default export */ __webpack_exports__["default"] = (Symbol); /***/ }), /* 243 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(405); /* global window */ var root; if (typeof self !== 'undefined') { root = self; } else if (typeof window !== 'undefined') { root = window; } else if (typeof global !== 'undefined') { root = global; } else if (true) { root = module; } else {} var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); /* harmony default export */ __webpack_exports__["default"] = (result); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52), __webpack_require__(404)(module))) /***/ }), /* 244 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); /* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(161); /* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(241); /* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(245); function getUndefinedStateErrorMessage(key, action) { var actionType = action && action.type; var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; } function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { var reducerKeys = Object.keys(reducers); var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; if (reducerKeys.length === 0) { return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; } if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"'); } var unexpectedKeys = Object.keys(inputState).filter(function (key) { return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; }); unexpectedKeys.forEach(function (key) { unexpectedKeyCache[key] = true; }); if (unexpectedKeys.length > 0) { return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.'); } } function assertReducerSanity(reducers) { Object.keys(reducers).forEach(function (key) { var reducer = reducers[key]; var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); if (typeof initialState === 'undefined') { throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.'); } var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); if (typeof reducer(undefined, { type: type }) === 'undefined') { throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.'); } }); } /** * Turns an object whose values are different reducer functions, into a single * reducer function. It will call every child reducer, and gather their results * into a single state object, whose keys correspond to the keys of the passed * reducer functions. * * @param {Object} reducers An object whose values correspond to different * reducer functions that need to be combined into one. One handy way to obtain * it is to use ES6 `import * as reducers` syntax. The reducers may never return * undefined for any action. Instead, they should return their initial state * if the state passed to them was undefined, and the current state for any * unrecognized action. * * @returns {Function} A reducer function that invokes every reducer inside the * passed object, and builds a state object with the same shape. */ function combineReducers(reducers) { var reducerKeys = Object.keys(reducers); var finalReducers = {}; for (var i = 0; i < reducerKeys.length; i++) { var key = reducerKeys[i]; if (false) {} if (typeof reducers[key] === 'function') { finalReducers[key] = reducers[key]; } } var finalReducerKeys = Object.keys(finalReducers); if (false) { var unexpectedKeyCache; } var sanityError; try { assertReducerSanity(finalReducers); } catch (e) { sanityError = e; } return function combination() { var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; var action = arguments[1]; if (sanityError) { throw sanityError; } if (false) { var warningMessage; } var hasChanged = false; var nextState = {}; for (var i = 0; i < finalReducerKeys.length; i++) { var key = finalReducerKeys[i]; var reducer = finalReducers[key]; var previousStateForKey = state[key]; var nextStateForKey = reducer(previousStateForKey, action); if (typeof nextStateForKey === 'undefined') { var errorMessage = getUndefinedStateErrorMessage(key, action); throw new Error(errorMessage); } nextState[key] = nextStateForKey; hasChanged = hasChanged || nextStateForKey !== previousStateForKey; } return hasChanged ? nextState : state; }; } /***/ }), /* 245 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); /** * Prints a warning in the console if it exists. * * @param {String} message The warning message. * @returns {void} */ function warning(message) { /* eslint-disable no-console */ if (typeof console !== 'undefined' && typeof console.error === 'function') { console.error(message); } /* eslint-enable no-console */ try { // This error was thrown as a convenience so that if you enable // "break on all exceptions" in your console, // it would pause the execution at this line. throw new Error(message); /* eslint-disable no-empty */ } catch (e) {} /* eslint-enable no-empty */ } /***/ }), /* 246 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); function bindActionCreator(actionCreator, dispatch) { return function () { return dispatch(actionCreator.apply(undefined, arguments)); }; } /** * Turns an object whose values are action creators, into an object with the * same keys, but with every function wrapped into a `dispatch` call so they * may be invoked directly. This is just a convenience method, as you can call * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. * * For convenience, you can also pass a single function as the first argument, * and get a function in return. * * @param {Function|Object} actionCreators An object whose values are action * creator functions. One handy way to obtain it is to use ES6 `import * as` * syntax. You may also pass a single function. * * @param {Function} dispatch The `dispatch` function available on your Redux * store. * * @returns {Function|Object} The object mimicking the original object, but with * every action creator wrapped into the `dispatch` call. If you passed a * function as `actionCreators`, the return value will also be a single * function. */ function bindActionCreators(actionCreators, dispatch) { if (typeof actionCreators === 'function') { return bindActionCreator(actionCreators, dispatch); } if (typeof actionCreators !== 'object' || actionCreators === null) { throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); } var keys = Object.keys(actionCreators); var boundActionCreators = {}; for (var i = 0; i < keys.length; i++) { var key = keys[i]; var actionCreator = actionCreators[key]; if (typeof actionCreator === 'function') { boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); } } return boundActionCreators; } /***/ }), /* 247 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); /* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(162); var _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; }; /** * Creates a store enhancer that applies middleware to the dispatch method * of the Redux store. This is handy for a variety of tasks, such as expressing * asynchronous actions in a concise manner, or logging every action payload. * * See `redux-thunk` package as an example of the Redux middleware. * * Because middleware is potentially asynchronous, this should be the first * store enhancer in the composition chain. * * Note that each middleware will be given the `dispatch` and `getState` functions * as named arguments. * * @param {...Function} middlewares The middleware chain to be applied. * @returns {Function} A store enhancer applying the middleware. */ function applyMiddleware() { for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { middlewares[_key] = arguments[_key]; } return function (createStore) { return function (reducer, preloadedState, enhancer) { var store = createStore(reducer, preloadedState, enhancer); var _dispatch = store.dispatch; var chain = []; var middlewareAPI = { getState: store.getState, dispatch: function dispatch(action) { return _dispatch(action); } }; chain = middlewares.map(function (middleware) { return middleware(middlewareAPI); }); _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); return _extends({}, store, { dispatch: _dispatch }); }; }; } /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; var ActionTypeConsts = { TRANSFORM_MOVE: 'TRANSFORM_MOVE', TRANSFORM_SCALE: 'TRANSFORM_SCALE', TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', TRANSFORM_SKEW: 'TRANSFORM_SKEW', STYLE_OPACITY: 'STYLE_OPACITY', STYLE_SIZE: 'STYLE_SIZE', STYLE_FILTER: 'STYLE_FILTER', STYLE_FONT_VARIATION: 'STYLE_FONT_VARIATION', STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', STYLE_BORDER: 'STYLE_BORDER', STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', GENERAL_DISPLAY: 'GENERAL_DISPLAY', GENERAL_START_ACTION: 'GENERAL_START_ACTION', GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', // TODO: Clean these up below because they're not used at this time GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', GENERAL_LOOP: 'GENERAL_LOOP', STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' }; exports.ActionTypeConsts = ActionTypeConsts; var ActionAppliesTo = { ELEMENT: 'ELEMENT', ELEMENT_CLASS: 'ELEMENT_CLASS', TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' }; exports.ActionAppliesTo = ActionAppliesTo; /***/ }), /* 249 */ /***/ (function(module, exports, __webpack_require__) { var baseIteratee = __webpack_require__(40), isArrayLike = __webpack_require__(47), keys = __webpack_require__(58); /** * Creates a `_.find` or `_.findLast` function. * * @private * @param {Function} findIndexFunc The function to find the collection index. * @returns {Function} Returns the new find function. */ function createFind(findIndexFunc) { return function(collection, predicate, fromIndex) { var iterable = Object(collection); if (!isArrayLike(collection)) { var iteratee = baseIteratee(predicate, 3); collection = keys(collection); predicate = function(key) { return iteratee(iterable[key], key, iterable); }; } var index = findIndexFunc(collection, predicate, fromIndex); return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; }; } module.exports = createFind; /***/ }), /* 250 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; module.exports = freeGlobal; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52))) /***/ }), /* 251 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var funcProto = Function.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** * Converts `func` to its source code. * * @private * @param {Function} func The function to convert. * @returns {string} Returns the source code. */ function toSource(func) { if (func != null) { try { return funcToString.call(func); } catch (e) {} try { return (func + ''); } catch (e) {} } return ''; } module.exports = toSource; /***/ }), /* 252 */ /***/ (function(module, exports, __webpack_require__) { var baseIsEqualDeep = __webpack_require__(445), isObjectLike = __webpack_require__(22); /** * The base implementation of `_.isEqual` which supports partial comparisons * and tracks traversed objects. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @param {boolean} bitmask The bitmask flags. * 1 - Unordered comparison * 2 - Partial comparison * @param {Function} [customizer] The function to customize comparisons. * @param {Object} [stack] Tracks traversed `value` and `other` objects. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ function baseIsEqual(value, other, bitmask, customizer, stack) { if (value === other) { return true; } if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { return value !== value && other !== other; } return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } module.exports = baseIsEqual; /***/ }), /* 253 */ /***/ (function(module, exports, __webpack_require__) { var SetCache = __webpack_require__(446), arraySome = __webpack_require__(449), cacheHas = __webpack_require__(450); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** * A specialized version of `baseIsEqualDeep` for arrays with support for * partial deep comparisons. * * @private * @param {Array} array The array to compare. * @param {Array} other The other array to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `array` and `other` objects. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } // Check that cyclic values are equal. var arrStacked = stack.get(array); var othStacked = stack.get(other); if (arrStacked && othStacked) { return arrStacked == other && othStacked == array; } var index = -1, result = true, seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; stack.set(array, other); stack.set(other, array); // Ignore non-index properties. while (++index < arrLength) { var arrValue = array[index], othValue = other[index]; if (customizer) { var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); } if (compared !== undefined) { if (compared) { continue; } result = false; break; } // Recursively compare arrays (susceptible to call stack limits). if (seen) { if (!arraySome(other, function(othValue, othIndex) { if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { return seen.push(othIndex); } })) { result = false; break; } } else if (!( arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack) )) { result = false; break; } } stack['delete'](array); stack['delete'](other); return result; } module.exports = equalArrays; /***/ }), /* 254 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(28); /** Built-in value references. */ var Uint8Array = root.Uint8Array; module.exports = Uint8Array; /***/ }), /* 255 */ /***/ (function(module, exports) { /** * Converts `map` to its key-value pairs. * * @private * @param {Object} map The map to convert. * @returns {Array} Returns the key-value pairs. */ function mapToArray(map) { var index = -1, result = Array(map.size); map.forEach(function(value, key) { result[++index] = [key, value]; }); return result; } module.exports = mapToArray; /***/ }), /* 256 */ /***/ (function(module, exports, __webpack_require__) { var baseGetAllKeys = __webpack_require__(257), getSymbols = __webpack_require__(168), keys = __webpack_require__(58); /** * Creates an array of own enumerable property names and symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names and symbols. */ function getAllKeys(object) { return baseGetAllKeys(object, keys, getSymbols); } module.exports = getAllKeys; /***/ }), /* 257 */ /***/ (function(module, exports, __webpack_require__) { var arrayPush = __webpack_require__(167), isArray = __webpack_require__(10); /** * The base implementation of `getAllKeys` and `getAllKeysIn` which uses * `keysFunc` and `symbolsFunc` to get the enumerable property names and * symbols of `object`. * * @private * @param {Object} object The object to query. * @param {Function} keysFunc The function to get the keys of `object`. * @param {Function} symbolsFunc The function to get the symbols of `object`. * @returns {Array} Returns the array of property names and symbols. */ function baseGetAllKeys(object, keysFunc, symbolsFunc) { var result = keysFunc(object); return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); } module.exports = baseGetAllKeys; /***/ }), /* 258 */ /***/ (function(module, exports) { /** * This method returns a new empty array. * * @static * @memberOf _ * @since 4.13.0 * @category Util * @returns {Array} Returns the new empty array. * @example * * var arrays = _.times(2, _.stubArray); * * console.log(arrays); * // => [[], []] * * console.log(arrays[0] === arrays[1]); * // => false */ function stubArray() { return []; } module.exports = stubArray; /***/ }), /* 259 */ /***/ (function(module, exports, __webpack_require__) { var baseTimes = __webpack_require__(455), isArguments = __webpack_require__(92), isArray = __webpack_require__(10), isBuffer = __webpack_require__(74), isIndex = __webpack_require__(125), isTypedArray = __webpack_require__(94); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Creates an array of the enumerable property names of the array-like `value`. * * @private * @param {*} value The value to query. * @param {boolean} inherited Specify returning inherited property names. * @returns {Array} Returns the array of property names. */ function arrayLikeKeys(value, inherited) { var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. (isBuff && (key == 'offset' || key == 'parent')) || // PhantomJS 2 has enumerable non-index properties on typed arrays. (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || // Skip index properties. isIndex(key, length) ))) { result.push(key); } } return result; } module.exports = arrayLikeKeys; /***/ }), /* 260 */ /***/ (function(module, exports) { /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } module.exports = overArg; /***/ }), /* 261 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57), root = __webpack_require__(28); /* Built-in method references that are verified to be native. */ var WeakMap = getNative(root, 'WeakMap'); module.exports = WeakMap; /***/ }), /* 262 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18); /** * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` if suitable for strict * equality comparisons, else `false`. */ function isStrictComparable(value) { return value === value && !isObject(value); } module.exports = isStrictComparable; /***/ }), /* 263 */ /***/ (function(module, exports) { /** * A specialized version of `matchesProperty` for source values suitable * for strict equality comparisons, i.e. `===`. * * @private * @param {string} key The key of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */ function matchesStrictComparable(key, srcValue) { return function(object) { if (object == null) { return false; } return object[key] === srcValue && (srcValue !== undefined || (key in Object(object))); }; } module.exports = matchesStrictComparable; /***/ }), /* 264 */ /***/ (function(module, exports, __webpack_require__) { var MapCache = __webpack_require__(166); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** * Creates a function that memoizes the result of `func`. If `resolver` is * provided, it determines the cache key for storing the result based on the * arguments provided to the memoized function. By default, the first argument * provided to the memoized function is used as the map cache key. The `func` * is invoked with the `this` binding of the memoized function. * * **Note:** The cache is exposed as the `cache` property on the memoized * function. Its creation may be customized by replacing the `_.memoize.Cache` * constructor with one whose instances implement the * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) * method interface of `clear`, `delete`, `get`, `has`, and `set`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to have its output memoized. * @param {Function} [resolver] The function to resolve the cache key. * @returns {Function} Returns the new memoized function. * @example * * var object = { 'a': 1, 'b': 2 }; * var other = { 'c': 3, 'd': 4 }; * * var values = _.memoize(_.values); * values(object); * // => [1, 2] * * values(other); * // => [3, 4] * * object.a = 2; * values(object); * // => [1, 2] * * // Modify the result cache. * values.cache.set(object, ['a', 'b']); * values(object); * // => ['a', 'b'] * * // Replace `_.memoize.Cache`. * _.memoize.Cache = WeakMap; */ function memoize(func, resolver) { if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { throw new TypeError(FUNC_ERROR_TEXT); } var memoized = function() { var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; if (cache.has(key)) { return cache.get(key); } var result = func.apply(this, args); memoized.cache = cache.set(key, result) || cache; return result; }; memoized.cache = new (memoize.Cache || MapCache); return memoized; } // Expose `MapCache`. memoize.Cache = MapCache; module.exports = memoize; /***/ }), /* 265 */ /***/ (function(module, exports) { /** * The base implementation of `_.property` without support for deep paths. * * @private * @param {string} key The key of the property to get. * @returns {Function} Returns the new accessor function. */ function baseProperty(key) { return function(object) { return object == null ? undefined : object[key]; }; } module.exports = baseProperty; /***/ }), /* 266 */ /***/ (function(module, exports) { /** * The base implementation of `_.findIndex` and `_.findLastIndex` without * support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} predicate The function invoked per iteration. * @param {number} fromIndex The index to search from. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, index = fromIndex + (fromRight ? 1 : -1); while ((fromRight ? index-- : ++index < length)) { if (predicate(array[index], index, array)) { return index; } } return -1; } module.exports = baseFindIndex; /***/ }), /* 267 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.inQuad = inQuad; exports.outQuad = outQuad; exports.inOutQuad = inOutQuad; exports.inCubic = inCubic; exports.outCubic = outCubic; exports.inOutCubic = inOutCubic; exports.inQuart = inQuart; exports.outQuart = outQuart; exports.inOutQuart = inOutQuart; exports.inQuint = inQuint; exports.outQuint = outQuint; exports.inOutQuint = inOutQuint; exports.inSine = inSine; exports.outSine = outSine; exports.inOutSine = inOutSine; exports.inExpo = inExpo; exports.outExpo = outExpo; exports.inOutExpo = inOutExpo; exports.inCirc = inCirc; exports.outCirc = outCirc; exports.inOutCirc = inOutCirc; exports.outBounce = outBounce; exports.inBack = inBack; exports.outBack = outBack; exports.inOutBack = inOutBack; exports.inElastic = inElastic; exports.outElastic = outElastic; exports.inOutElastic = inOutElastic; exports.swingFromTo = swingFromTo; exports.swingFrom = swingFrom; exports.swingTo = swingTo; exports.bounce = bounce; exports.bouncePast = bouncePast; exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; var _bezierEasing = _interopRequireDefault(__webpack_require__(268)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn // Easing Equations (c) 2003 Robert Penner, BSD license // https://raw.github.com/danro/easing-js/master/LICENSE var magicSwing = 1.70158; var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); exports.ease = ease; var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); exports.easeIn = easeIn; var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); exports.easeOut = easeOut; var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); exports.easeInOut = easeInOut; function inQuad(pos) { return Math.pow(pos, 2); } function outQuad(pos) { return -(Math.pow(pos - 1, 2) - 1); } function inOutQuad(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 2); } return -0.5 * ((pos -= 2) * pos - 2); } function inCubic(pos) { return Math.pow(pos, 3); } function outCubic(pos) { return Math.pow(pos - 1, 3) + 1; } function inOutCubic(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 3); } return 0.5 * (Math.pow(pos - 2, 3) + 2); } function inQuart(pos) { return Math.pow(pos, 4); } function outQuart(pos) { return -(Math.pow(pos - 1, 4) - 1); } function inOutQuart(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 4); } return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); } function inQuint(pos) { return Math.pow(pos, 5); } function outQuint(pos) { return Math.pow(pos - 1, 5) + 1; } function inOutQuint(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 5); } return 0.5 * (Math.pow(pos - 2, 5) + 2); } function inSine(pos) { return -Math.cos(pos * (Math.PI / 2)) + 1; } function outSine(pos) { return Math.sin(pos * (Math.PI / 2)); } function inOutSine(pos) { return -0.5 * (Math.cos(Math.PI * pos) - 1); } function inExpo(pos) { return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); } function outExpo(pos) { return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; } function inOutExpo(pos) { if (pos === 0) { return 0; } if (pos === 1) { return 1; } if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(2, 10 * (pos - 1)); } return 0.5 * (-Math.pow(2, -10 * --pos) + 2); } function inCirc(pos) { return -(Math.sqrt(1 - pos * pos) - 1); } function outCirc(pos) { return Math.sqrt(1 - Math.pow(pos - 1, 2)); } function inOutCirc(pos) { if ((pos /= 0.5) < 1) { return -0.5 * (Math.sqrt(1 - pos * pos) - 1); } return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); } function outBounce(pos) { if (pos < 1 / 2.75) { return 7.5625 * pos * pos; } else if (pos < 2 / 2.75) { return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; } else if (pos < 2.5 / 2.75) { return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; } else { return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; } } function inBack(pos) { var s = magicSwing; return pos * pos * ((s + 1) * pos - s); } function outBack(pos) { var s = magicSwing; return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; } function inOutBack(pos) { var s = magicSwing; if ((pos /= 0.5) < 1) { return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); } return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); } function inElastic(pos) { var s = magicSwing; var p = 0; var a = 1; if (pos === 0) { return 0; } if (pos === 1) { return 1; } if (!p) { p = 0.3; } if (a < 1) { a = 1; s = p / 4; } else { s = p / (2 * Math.PI) * Math.asin(1 / a); } return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); } function outElastic(pos) { var s = magicSwing; var p = 0; var a = 1; if (pos === 0) { return 0; } if (pos === 1) { return 1; } if (!p) { p = 0.3; } if (a < 1) { a = 1; s = p / 4; } else { s = p / (2 * Math.PI) * Math.asin(1 / a); } return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; } function inOutElastic(pos) { var s = magicSwing; var p = 0; var a = 1; if (pos === 0) { return 0; } if ((pos /= 1 / 2) === 2) { return 1; } if (!p) { p = 0.3 * 1.5; } if (a < 1) { a = 1; s = p / 4; } else { s = p / (2 * Math.PI) * Math.asin(1 / a); } if (pos < 1) { return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); } return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; } function swingFromTo(pos) { var s = magicSwing; return (pos /= 0.5) < 1 ? 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)) : 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); } function swingFrom(pos) { var s = magicSwing; return pos * pos * ((s + 1) * pos - s); } function swingTo(pos) { var s = magicSwing; return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; } function bounce(pos) { if (pos < 1 / 2.75) { return 7.5625 * pos * pos; } else if (pos < 2 / 2.75) { return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; } else if (pos < 2.5 / 2.75) { return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; } else { return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; } } function bouncePast(pos) { if (pos < 1 / 2.75) { return 7.5625 * pos * pos; } else if (pos < 2 / 2.75) { return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); } else if (pos < 2.5 / 2.75) { return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); } else { return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); } } /***/ }), /* 268 */ /***/ (function(module, exports) { /** * https://github.com/gre/bezier-easing * BezierEasing - use bezier curve for transition easing function * by Gaëtan Renaudeau 2014 - 2015 – MIT License */ // These values are established by empiricism with tests (tradeoff: performance VS precision) var NEWTON_ITERATIONS = 4; var NEWTON_MIN_SLOPE = 0.001; var SUBDIVISION_PRECISION = 0.0000001; var SUBDIVISION_MAX_ITERATIONS = 10; var kSplineTableSize = 11; var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); var float32ArraySupported = typeof Float32Array === 'function'; function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } function C (aA1) { return 3.0 * aA1; } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } function binarySubdivide (aX, aA, aB, mX1, mX2) { var currentX, currentT, i = 0; do { currentT = aA + (aB - aA) / 2.0; currentX = calcBezier(currentT, mX1, mX2) - aX; if (currentX > 0.0) { aB = currentT; } else { aA = currentT; } } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); return currentT; } function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { for (var i = 0; i < NEWTON_ITERATIONS; ++i) { var currentSlope = getSlope(aGuessT, mX1, mX2); if (currentSlope === 0.0) { return aGuessT; } var currentX = calcBezier(aGuessT, mX1, mX2) - aX; aGuessT -= currentX / currentSlope; } return aGuessT; } module.exports = function bezier (mX1, mY1, mX2, mY2) { if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { throw new Error('bezier x values must be in [0, 1] range'); } // Precompute samples table var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); if (mX1 !== mY1 || mX2 !== mY2) { for (var i = 0; i < kSplineTableSize; ++i) { sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); } } function getTForX (aX) { var intervalStart = 0.0; var currentSample = 1; var lastSample = kSplineTableSize - 1; for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { intervalStart += kSampleStepSize; } --currentSample; // Interpolate to provide an initial guess for t var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); var guessForT = intervalStart + dist * kSampleStepSize; var initialSlope = getSlope(guessForT, mX1, mX2); if (initialSlope >= NEWTON_MIN_SLOPE) { return newtonRaphsonIterate(aX, guessForT, mX1, mX2); } else if (initialSlope === 0.0) { return guessForT; } else { return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); } } return function BezierEasing (x) { if (mX1 === mY1 && mX2 === mY2) { return x; // linear } // Because JavaScript number are imprecise, we should guarantee the extremes are right. if (x === 0) { return 0; } if (x === 1) { return 1; } return calcBezier(getTForX(x), mY1, mY2); }; }; /***/ }), /* 269 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); var _interopRequireDefault = __webpack_require__(0); var _interopRequireWildcard = __webpack_require__(66); Object.defineProperty(exports, "__esModule", { value: true }); exports.optimizeFloat = optimizeFloat; exports.createBezierEasing = createBezierEasing; exports.applyEasing = applyEasing; var easings = _interopRequireWildcard(__webpack_require__(267)); var _bezierEasing = _interopRequireDefault(__webpack_require__(268)); function optimizeFloat(value) { var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; var pow = Math.pow(base, digits); var _float = Number(Math.round(value * pow) / pow); return Math.abs(_float) > 0.0001 ? _float : 0; } function createBezierEasing(easing) { return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); } function applyEasing(easing, position, customEasingFn) { if (position === 0) { return 0; } if (position === 1) { return 1; } if (customEasingFn) { return optimizeFloat(position > 0 ? customEasingFn(position) : position); } return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); } /***/ }), /* 270 */ /***/ (function(module, exports) { function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } module.exports = _iterableToArray; /***/ }), /* 271 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); Object.defineProperty(exports, "__esModule", { value: true }); exports.isPluginType = isPluginType; exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; var _IX2LottieUtils = __webpack_require__(480); var _constants = __webpack_require__(25); var _IX2BrowserSupport = __webpack_require__(163); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, { getConfig: _IX2LottieUtils.getPluginConfig, getOrigin: _IX2LottieUtils.getPluginOrigin, getDuration: _IX2LottieUtils.getPluginDuration, getDestination: _IX2LottieUtils.getPluginDestination, createInstance: _IX2LottieUtils.createPluginInstance, render: _IX2LottieUtils.renderPlugin, clear: _IX2LottieUtils.clearPlugin }); function isPluginType(actionTypeId) { return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; } var pluginMethod = function pluginMethod(methodName) { return function (actionTypeId) { if (!_IX2BrowserSupport.IS_BROWSER_ENV) { // IX2 plugins require browser libs for now return function () { return null; }; } var plugin = pluginMethodMap[actionTypeId]; if (!plugin) { throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); } var method = plugin[methodName]; if (!method) { throw new Error("IX2 invalid plugin method: ".concat(methodName)); } return method; }; }; var getPluginConfig = pluginMethod('getConfig'); exports.getPluginConfig = getPluginConfig; var getPluginOrigin = pluginMethod('getOrigin'); exports.getPluginOrigin = getPluginOrigin; var getPluginDuration = pluginMethod('getDuration'); exports.getPluginDuration = getPluginDuration; var getPluginDestination = pluginMethod('getDestination'); exports.getPluginDestination = getPluginDestination; var createPluginInstance = pluginMethod('createInstance'); exports.createPluginInstance = createPluginInstance; var renderPlugin = pluginMethod('render'); exports.renderPlugin = renderPlugin; var clearPlugin = pluginMethod('clear'); exports.clearPlugin = clearPlugin; /***/ }), /* 272 */ /***/ (function(module, exports) { /** * Checks `value` to determine whether a default value should be returned in * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, * or `undefined`. * * @static * @memberOf _ * @since 4.14.0 * @category Util * @param {*} value The value to check. * @param {*} defaultValue The default value. * @returns {*} Returns the resolved value. * @example * * _.defaultTo(1, 10); * // => 1 * * _.defaultTo(undefined, 10); * // => 10 */ function defaultTo(value, defaultValue) { return (value == null || value !== value) ? defaultValue : value; } module.exports = defaultTo; /***/ }), /* 273 */ /***/ (function(module, exports) { /** * A specialized version of `_.reduce` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initAccum] Specify using the first element of `array` as * the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduce(array, iteratee, accumulator, initAccum) { var index = -1, length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[++index]; } while (++index < length) { accumulator = iteratee(accumulator, array[index], index, array); } return accumulator; } module.exports = arrayReduce; /***/ }), /* 274 */ /***/ (function(module, exports, __webpack_require__) { var createBaseFor = __webpack_require__(483); /** * The base implementation of `baseForOwn` which iterates over `object` * properties returned by `keysFunc` and invokes `iteratee` for each property. * Iteratee functions may exit iteration early by explicitly returning `false`. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {Function} keysFunc The function to get the keys of `object`. * @returns {Object} Returns `object`. */ var baseFor = createBaseFor(); module.exports = baseFor; /***/ }), /* 275 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); var _interopRequireWildcard = __webpack_require__(66); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.observeRequests = observeRequests; exports.startEngine = startEngine; exports.stopEngine = stopEngine; exports.stopAllActionGroups = stopAllActionGroups; exports.stopActionGroup = stopActionGroup; exports.startActionGroup = startActionGroup; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(276)); var _find = _interopRequireDefault(__webpack_require__(164)); var _get = _interopRequireDefault(__webpack_require__(60)); var _size = _interopRequireDefault(__webpack_require__(491)); var _omitBy = _interopRequireDefault(__webpack_require__(495)); var _isEmpty = _interopRequireDefault(__webpack_require__(502)); var _mapValues = _interopRequireDefault(__webpack_require__(503)); var _forEach = _interopRequireDefault(__webpack_require__(179)); var _throttle = _interopRequireDefault(__webpack_require__(505)); var _constants = __webpack_require__(25); var _shared = __webpack_require__(71); var _IX2EngineActions = __webpack_require__(181); var elementApi = _interopRequireWildcard(__webpack_require__(507)); var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(508)); /* eslint-env browser */ var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); var isQuickEffect = function isQuickEffect(actionTypeId) { return QuickEffectsIdList.includes(actionTypeId); }; var _constants$IX2EngineC = _constants.IX2EngineConstants, COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, getElementId = _shared$IX2VanillaUti.getElementId, getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, observeStore = _shared$IX2VanillaUti.observeStore, getInstanceId = _shared$IX2VanillaUti.getInstanceId, renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual, shallowEqual = _shared$IX2VanillaUti.shallowEqual; var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, isPluginType = _shared$IX2VanillaPlu.isPluginType, createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; var ua = navigator.userAgent; var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe function observeRequests(store) { observeStore({ store: store, select: function select(_ref) { var ixRequest = _ref.ixRequest; return ixRequest.preview; }, onChange: handlePreviewRequest }); observeStore({ store: store, select: function select(_ref2) { var ixRequest = _ref2.ixRequest; return ixRequest.playback; }, onChange: handlePlaybackRequest }); observeStore({ store: store, select: function select(_ref3) { var ixRequest = _ref3.ixRequest; return ixRequest.stop; }, onChange: handleStopRequest }); observeStore({ store: store, select: function select(_ref4) { var ixRequest = _ref4.ixRequest; return ixRequest.clear; }, onChange: handleClearRequest }); } function observeMediaQueryChange(store) { observeStore({ store: store, select: function select(_ref5) { var ixSession = _ref5.ixSession; return ixSession.mediaQueryKey; }, onChange: function onChange() { stopEngine(store); clearAllStyles({ store: store, elementApi: elementApi }); startEngine({ store: store, allowEvents: true }); dispatchPageUpdateEvent(); } }); } function observeOneRenderTick(store, onTick) { var unsubscribe = observeStore({ store: store, select: function select(_ref6) { var ixSession = _ref6.ixSession; return ixSession.tick; }, onChange: function onChange(tick) { onTick(tick); unsubscribe(); } }); } function handlePreviewRequest(_ref7, store) { var rawData = _ref7.rawData, defer = _ref7.defer; var start = function start() { startEngine({ store: store, rawData: rawData, allowEvents: true }); dispatchPageUpdateEvent(); }; defer ? setTimeout(start, 0) : start(); } function dispatchPageUpdateEvent() { document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); } function handlePlaybackRequest(playback, store) { var actionTypeId = playback.actionTypeId, actionListId = playback.actionListId, actionItemId = playback.actionItemId, eventId = playback.eventId, allowEvents = playback.allowEvents, immediate = playback.immediate, testManual = playback.testManual, _playback$verbose = playback.verbose, verbose = _playback$verbose === void 0 ? true : _playback$verbose; var rawData = playback.rawData; if (actionListId && actionItemId && rawData && immediate) { var actionList = rawData.actionLists[actionListId]; if (actionList) { rawData = reduceListToGroup({ actionList: actionList, actionItemId: actionItemId, rawData: rawData }); } } startEngine({ store: store, rawData: rawData, allowEvents: allowEvents, testManual: testManual }); if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(actionTypeId)) { stopActionGroup({ store: store, actionListId: actionListId }); renderInitialGroup({ store: store, actionListId: actionListId, eventId: eventId }); var started = startActionGroup({ store: store, eventId: eventId, actionListId: actionListId, immediate: immediate, verbose: verbose }); if (verbose && started) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: !immediate })); } } } function handleStopRequest(_ref8, store) { var actionListId = _ref8.actionListId; if (actionListId) { stopActionGroup({ store: store, actionListId: actionListId }); } else { stopAllActionGroups({ store: store }); } stopEngine(store); } function handleClearRequest(state, store) { stopEngine(store); clearAllStyles({ store: store, elementApi: elementApi }); } // $FlowFixMe function startEngine(_ref9) { var store = _ref9.store, rawData = _ref9.rawData, allowEvents = _ref9.allowEvents, testManual = _ref9.testManual; var _store$getState = store.getState(), ixSession = _store$getState.ixSession; if (rawData) { store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); } if (!ixSession.active) { store.dispatch((0, _IX2EngineActions.sessionInitialized)({ hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)), reducedMotion: // $FlowFixMe - Remove this attribute on beta launch document.body.hasAttribute('data-wf-ix-vacation') && window.matchMedia('(prefers-reduced-motion)').matches })); if (allowEvents) { bindEvents(store); addDocumentClass(); if (store.getState().ixSession.hasDefinedMediaQueries) { observeMediaQueryChange(store); } } store.dispatch((0, _IX2EngineActions.sessionStarted)()); startRenderLoop(store, testManual); } } function addDocumentClass() { var _document = document, documentElement = _document.documentElement; // $FlowFixMe if (documentElement.className.indexOf(W_MOD_IX) === -1) { // $FlowFixMe documentElement.className += " ".concat(W_MOD_IX); } } function startRenderLoop(store, testManual) { var handleFrame = function handleFrame(now) { var _store$getState2 = store.getState(), ixSession = _store$getState2.ixSession, ixParameters = _store$getState2.ixParameters; if (ixSession.active) { store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); if (testManual) { observeOneRenderTick(store, handleFrame); } else { requestAnimationFrame(handleFrame); } } }; handleFrame(window.performance.now()); } // $FlowFixMe function stopEngine(store) { var _store$getState3 = store.getState(), ixSession = _store$getState3.ixSession; if (ixSession.active) { var eventListeners = ixSession.eventListeners; eventListeners.forEach(clearEventListener); store.dispatch((0, _IX2EngineActions.sessionStopped)()); } } function clearEventListener(_ref10) { var target = _ref10.target, listenerParams = _ref10.listenerParams; target.removeEventListener.apply(target, listenerParams); } function createGroupInstances(_ref11) { var store = _ref11.store, eventStateKey = _ref11.eventStateKey, eventTarget = _ref11.eventTarget, eventId = _ref11.eventId, eventConfig = _ref11.eventConfig, actionListId = _ref11.actionListId, parameterGroup = _ref11.parameterGroup, smoothing = _ref11.smoothing, restingValue = _ref11.restingValue; var _store$getState4 = store.getState(), ixData = _store$getState4.ixData, ixSession = _store$getState4.ixSession; var events = ixData.events; var event = events[eventId]; var eventTypeId = event.eventTypeId; var targetCache = {}; var instanceActionGroups = {}; var instanceConfigs = []; var continuousActionGroups = parameterGroup.continuousActionGroups; var parameterId = parameterGroup.id; if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { parameterId = getNamespacedParameterId(eventStateKey, parameterId); } // Limit affected elements when event target is within a boundary node var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; continuousActionGroups.forEach(function (actionGroup) { var keyframe = actionGroup.keyframe, actionItems = actionGroup.actionItems; actionItems.forEach(function (actionItem) { var actionTypeId = actionItem.actionTypeId; var target = actionItem.config.target; if (!target) { return; } var elementRoot = target.boundaryMode ? eventElementRoot : null; var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); if (!targetCache[key]) { targetCache[key] = true; var config = actionItem.config; getAffectedElements({ config: config, event: event, eventTarget: eventTarget, elementRoot: elementRoot, elementApi: elementApi }).forEach(function (element) { instanceConfigs.push({ element: element, key: key }); }); } }); }); instanceConfigs.forEach(function (_ref12) { var element = _ref12.element, key = _ref12.key; var actionGroups = instanceActionGroups[key]; var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); var actionTypeId = actionItem.actionTypeId; var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe createPluginInstance(actionTypeId)(element, actionItem) : null; var destination = getDestinationValues({ element: element, actionItem: actionItem, elementApi: elementApi }, // $FlowFixMe pluginInstance); createInstance({ store: store, element: element, eventId: eventId, actionListId: actionListId, actionItem: actionItem, destination: destination, continuous: true, parameterId: parameterId, actionGroups: actionGroups, smoothing: smoothing, restingValue: restingValue, pluginInstance: pluginInstance }); }); } function appendActionItem() { var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var keyframe = arguments.length > 1 ? arguments[1] : undefined; var actionItem = arguments.length > 2 ? arguments[2] : undefined; var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); var groupIndex; newActionGroups.some(function (group, index) { if (group.keyframe === keyframe) { groupIndex = index; return true; } return false; }); if (groupIndex == null) { groupIndex = newActionGroups.length; newActionGroups.push({ keyframe: keyframe, actionItems: [] }); } newActionGroups[groupIndex].actionItems.push(actionItem); return newActionGroups; } function bindEvents(store) { var _store$getState5 = store.getState(), ixData = _store$getState5.ixData; var eventTypeMap = ixData.eventTypeMap; updateViewportWidth(store); (0, _forEach["default"])(eventTypeMap, function (events, key) { var logic = _IX2VanillaEvents["default"][key]; if (!logic) { console.warn("IX2 event type not configured: ".concat(key)); return; } bindEventType({ logic: logic, store: store, events: events }); }); var _store$getState6 = store.getState(), ixSession = _store$getState6.ixSession; if (ixSession.eventListeners.length) { bindResizeEvents(store); } } var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; function bindResizeEvents(store) { var handleResize = function handleResize() { updateViewportWidth(store); }; WINDOW_RESIZE_EVENTS.forEach(function (type) { window.addEventListener(type, handleResize); store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); }); handleResize(); } function updateViewportWidth(store) { var _store$getState7 = store.getState(), ixSession = _store$getState7.ixSession, ixData = _store$getState7.ixData; var width = window.innerWidth; if (width !== ixSession.viewportWidth) { var mediaQueries = ixData.mediaQueries; store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ width: width, mediaQueries: mediaQueries })); } } var mapFoundValues = function mapFoundValues(object, iteratee) { return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); }; var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { (0, _forEach["default"])(eventTargets, function (elements, eventId) { elements.forEach(function (element, index) { var eventStateKey = eventId + COLON_DELIMITER + index; eventCallback(element, eventId, eventStateKey); }); }); }; var getAffectedForEvent = function getAffectedForEvent(event) { var config = { target: event.target, targets: event.targets }; return getAffectedElements({ config: config, elementApi: elementApi }); }; function bindEventType(_ref13) { var logic = _ref13.logic, store = _ref13.store, events = _ref13.events; injectBehaviorCSSFixes(events); var eventTypes = logic.types, eventHandler = logic.handler; var _store$getState8 = store.getState(), ixData = _store$getState8.ixData; var actionLists = ixData.actionLists; var eventTargets = mapFoundValues(events, getAffectedForEvent); if (!(0, _size["default"])(eventTargets)) { return; } (0, _forEach["default"])(eventTargets, function (elements, key) { var event = events[key]; var eventAction = event.action, eventId = event.id, _event$mediaQueries = event.mediaQueries, mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; var actionListId = eventAction.config.actionListId; if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); } if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { var configs = Array.isArray(event.config) ? event.config : [event.config]; configs.forEach(function (eventConfig) { var continuousParameterGroupId = eventConfig.continuousParameterGroupId; var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); var parameterGroup = (0, _find["default"])(paramGroups, function (_ref14) { var id = _ref14.id; return id === continuousParameterGroupId; }); var smoothing = (eventConfig.smoothing || 0) / 100; var restingValue = (eventConfig.restingState || 0) / 100; if (!parameterGroup) { return; } elements.forEach(function (eventTarget, index) { var eventStateKey = eventId + COLON_DELIMITER + index; createGroupInstances({ store: store, eventStateKey: eventStateKey, eventTarget: eventTarget, eventId: eventId, eventConfig: eventConfig, actionListId: actionListId, parameterGroup: parameterGroup, smoothing: smoothing, restingValue: restingValue }); }); }); } if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(eventAction.actionTypeId)) { renderInitialGroup({ store: store, actionListId: actionListId, eventId: eventId }); } }); var handleEvent = function handleEvent(nativeEvent) { var _store$getState9 = store.getState(), ixSession = _store$getState9.ixSession; forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { var event = events[eventId]; var oldState = ixSession.eventState[eventStateKey]; var eventAction = event.action, _event$mediaQueries2 = event.mediaQueries, mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return; } var handleEventWithConfig = function handleEventWithConfig() { var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var newState = eventHandler({ store: store, element: element, event: event, eventConfig: eventConfig, nativeEvent: nativeEvent, eventStateKey: eventStateKey }, oldState); if (!shallowEqual(newState, oldState)) { store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); } }; if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { var configs = Array.isArray(event.config) ? event.config : [event.config]; configs.forEach(handleEventWithConfig); } else { handleEventWithConfig(); } }); }; var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); var addListeners = function addListeners(_ref15) { var _ref15$target = _ref15.target, target = _ref15$target === void 0 ? document : _ref15$target, types = _ref15.types, shouldThrottle = _ref15.throttle; types.split(' ').filter(Boolean).forEach(function (type) { var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe target.addEventListener(type, handlerFunc); store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); }); }; if (Array.isArray(eventTypes)) { eventTypes.forEach(addListeners); } else if (typeof eventTypes === 'string') { addListeners(logic); } } /** * Injects CSS into the document to fix behavior issues across * different devices. */ function injectBehaviorCSSFixes(events) { if (!IS_MOBILE_SAFARI) { return; } var injectedSelectors = {}; var cssText = ''; for (var eventId in events) { var _events$eventId = events[eventId], eventTypeId = _events$eventId.eventTypeId, target = _events$eventId.target; var selector = elementApi.getQuerySelector(target); // $FlowFixMe if (injectedSelectors[selector]) { continue; } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { // $FlowFixMe injectedSelectors[selector] = true; cssText += // $FlowFixMe selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; } } if (cssText) { var style = document.createElement('style'); style.textContent = cssText; // $FlowFixMe document.body.appendChild(style); } } function renderInitialGroup(_ref16) { var store = _ref16.store, actionListId = _ref16.actionListId, eventId = _ref16.eventId; var _store$getState10 = store.getState(), ixData = _store$getState10.ixData, ixSession = _store$getState10.ixSession; var actionLists = ixData.actionLists, events = ixData.events; var event = events[eventId]; var actionList = actionLists[actionListId]; if (actionList && actionList.useFirstGroupAsInitialState) { var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return; } initialStateItems.forEach(function (actionItem) { var _itemConfig$target; var itemConfig = actionItem.config, actionTypeId = actionItem.actionTypeId; var config = // When useEventTarget is explicitly true, use event target/targets to query elements (itemConfig === null || itemConfig === void 0 ? void 0 : (_itemConfig$target = itemConfig.target) === null || _itemConfig$target === void 0 ? void 0 : _itemConfig$target.useEventTarget) === true ? { target: event.target, targets: event.targets } : itemConfig; var itemElements = getAffectedElements({ config: config, event: event, elementApi: elementApi }); var shouldUsePlugin = isPluginType(actionTypeId); itemElements.forEach(function (element) { var pluginInstance = shouldUsePlugin ? // $FlowFixMe createPluginInstance(actionTypeId)(element, actionItem) : null; createInstance({ destination: getDestinationValues({ element: element, actionItem: actionItem, elementApi: elementApi }, // $FlowFixMe pluginInstance), immediate: true, store: store, element: element, eventId: eventId, actionItem: actionItem, actionListId: actionListId, pluginInstance: pluginInstance }); }); }); } } // $FlowFixMe function stopAllActionGroups(_ref17) { var store = _ref17.store; var _store$getState11 = store.getState(), ixInstances = _store$getState11.ixInstances; (0, _forEach["default"])(ixInstances, function (instance) { if (!instance.continuous) { var actionListId = instance.actionListId, verbose = instance.verbose; removeInstance(instance, store); if (verbose) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: false })); } } }); } // $FlowFixMe function stopActionGroup(_ref18) { var store = _ref18.store, eventId = _ref18.eventId, eventTarget = _ref18.eventTarget, eventStateKey = _ref18.eventStateKey, actionListId = _ref18.actionListId; var _store$getState12 = store.getState(), ixInstances = _store$getState12.ixInstances, ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; (0, _forEach["default"])(ixInstances, function (instance) { var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { // Avoid removal when root boundary does not contain instance element if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { return; } removeInstance(instance, store); if (instance.verbose) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: false })); } } }); } // $FlowFixMe function startActionGroup(_ref19) { var store = _ref19.store, eventId = _ref19.eventId, eventTarget = _ref19.eventTarget, eventStateKey = _ref19.eventStateKey, actionListId = _ref19.actionListId, _ref19$groupIndex = _ref19.groupIndex, groupIndex = _ref19$groupIndex === void 0 ? 0 : _ref19$groupIndex, immediate = _ref19.immediate, verbose = _ref19.verbose; var _event$action; var _store$getState13 = store.getState(), ixData = _store$getState13.ixData, ixSession = _store$getState13.ixSession; var events = ixData.events; var event = events[eventId] || {}; var _event$mediaQueries3 = event.mediaQueries, mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); var actionItemGroups = actionList.actionItemGroups, useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups if (!actionItemGroups || !actionItemGroups.length) { return false; } // Reset to first group when event loop is configured if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { groupIndex = 0; } // Skip initial state group during action list playback, as it should already be applied if (groupIndex === 0 && useFirstGroupAsInitialState) { groupIndex++; } // Identify first animated group and apply the initial QuickEffect delay var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; var instanceDelay = isFirstGroup && isQuickEffect((_event$action = event.action) === null || _event$action === void 0 ? void 0 : _event$action.actionTypeId) ? event.config.delay : undefined; // Abort playback if no action items exist at group index var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); if (!actionItems.length) { return false; } // Abort playback if current media query is not listed in event config if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return false; } // Limit affected elements when event target is within a boundary node var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; var carrierIndex = getMaxDurationItemIndex(actionItems); var groupStartResult = false; actionItems.forEach(function (actionItem, actionIndex) { var config = actionItem.config, actionTypeId = actionItem.actionTypeId; var shouldUsePlugin = isPluginType(actionTypeId); var target = config.target; if (!target) { return; } var elementRoot = target.boundaryMode ? eventElementRoot : null; var elements = getAffectedElements({ config: config, event: event, eventTarget: eventTarget, elementRoot: elementRoot, elementApi: elementApi }); elements.forEach(function (element, elementIndex) { var pluginInstance = shouldUsePlugin ? // $FlowFixMe createPluginInstance(actionTypeId)(element, actionItem) : null; var pluginDuration = shouldUsePlugin ? // $FlowFixMe getPluginDuration(actionTypeId)(element, actionItem) : null; groupStartResult = true; var isCarrier = carrierIndex === actionIndex && elementIndex === 0; var computedStyle = getComputedStyle({ element: element, actionItem: actionItem }); var destination = getDestinationValues({ element: element, actionItem: actionItem, elementApi: elementApi }, // $FlowFixMe pluginInstance); createInstance({ store: store, element: element, actionItem: actionItem, eventId: eventId, eventTarget: eventTarget, eventStateKey: eventStateKey, actionListId: actionListId, groupIndex: groupIndex, isCarrier: isCarrier, computedStyle: computedStyle, destination: destination, immediate: immediate, verbose: verbose, pluginInstance: pluginInstance, pluginDuration: pluginDuration, instanceDelay: instanceDelay }); }); }); return groupStartResult; } function createInstance(options) { var _ixData$events$eventI; // $FlowFixMe var store = options.store, computedStyle = options.computedStyle, rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); var element = rest.element, actionItem = rest.actionItem, immediate = rest.immediate, pluginInstance = rest.pluginInstance, continuous = rest.continuous, restingValue = rest.restingValue, eventId = rest.eventId; var autoStart = !continuous; var instanceId = getInstanceId(); var _store$getState14 = store.getState(), ixElements = _store$getState14.ixElements, ixSession = _store$getState14.ixSession, ixData = _store$getState14.ixData; var elementId = getElementId(ixElements, element); var _ref20 = ixElements[elementId] || {}, refState = _ref20.refState; var refType = elementApi.getRefType(element); var skipMotion = ixSession.reducedMotion && _constants.ReducedMotionTypes[actionItem.actionTypeId]; var skipToValue; if (skipMotion && continuous) { switch ((_ixData$events$eventI = ixData.events[eventId]) === null || _ixData$events$eventI === void 0 ? void 0 : _ixData$events$eventI.eventTypeId) { case _constants.EventTypeConsts.MOUSE_MOVE: case _constants.EventTypeConsts.MOUSE_MOVE_IN_VIEWPORT: skipToValue = restingValue; break; default: skipToValue = 0.5; break; } } var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe pluginInstance); store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ instanceId: instanceId, elementId: elementId, origin: origin, refType: refType, skipMotion: skipMotion, skipToValue: skipToValue }, rest))); dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); if (immediate) { renderImmediateInstance(store, instanceId); return; } observeStore({ store: store, select: function select(_ref21) { var ixInstances = _ref21.ixInstances; return ixInstances[instanceId]; }, onChange: handleInstanceChange }); if (autoStart) { store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); } } function removeInstance(instance, store) { dispatchCustomEvent(document.body, 'ix2-animation-stopping', { instanceId: instance.id, state: store.getState() }); var elementId = instance.elementId, actionItem = instance.actionItem; var _store$getState15 = store.getState(), ixElements = _store$getState15.ixElements; var _ref22 = ixElements[elementId] || {}, ref = _ref22.ref, refType = _ref22.refType; if (refType === HTML_ELEMENT) { cleanupHTMLElement(ref, actionItem, elementApi); } store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); } function dispatchCustomEvent(element, eventName, detail) { var event = document.createEvent('CustomEvent'); event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe element.dispatchEvent(event); } function renderImmediateInstance(store, instanceId) { var _store$getState16 = store.getState(), ixParameters = _store$getState16.ixParameters; store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); var _store$getState17 = store.getState(), ixInstances = _store$getState17.ixInstances; handleInstanceChange(ixInstances[instanceId], store); } function handleInstanceChange(instance, store) { var active = instance.active, continuous = instance.continuous, complete = instance.complete, elementId = instance.elementId, actionItem = instance.actionItem, actionTypeId = instance.actionTypeId, renderType = instance.renderType, current = instance.current, groupIndex = instance.groupIndex, eventId = instance.eventId, eventTarget = instance.eventTarget, eventStateKey = instance.eventStateKey, actionListId = instance.actionListId, isCarrier = instance.isCarrier, styleProp = instance.styleProp, verbose = instance.verbose, pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config var _store$getState18 = store.getState(), ixData = _store$getState18.ixData, ixSession = _store$getState18.ixSession; var events = ixData.events; var event = events[eventId] || {}; var _event$mediaQueries4 = event.mediaQueries, mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return; } if (continuous || active || complete) { if (current || renderType === RENDER_GENERAL && complete) { // Render current values to ref state and grab latest store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); var _store$getState19 = store.getState(), ixElements = _store$getState19.ixElements; var _ref23 = ixElements[elementId] || {}, ref = _ref23.ref, refType = _ref23.refType, refState = _ref23.refState; var actionState = refState && refState[actionTypeId]; // Choose render based on ref type switch (refType) { case HTML_ELEMENT: { renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); break; } } } if (complete) { if (isCarrier) { var started = startActionGroup({ store: store, eventId: eventId, eventTarget: eventTarget, eventStateKey: eventStateKey, actionListId: actionListId, groupIndex: groupIndex + 1, verbose: verbose }); if (verbose && !started) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: false })); } } removeInstance(instance, store); } } } /***/ }), /* 276 */ /***/ (function(module, exports) { function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } module.exports = _objectWithoutPropertiesLoose; /***/ }), /* 277 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isArray = __webpack_require__(10), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var stringTag = '[object String]'; /** * Checks if `value` is classified as a `String` primitive or object. * * @static * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a string, else `false`. * @example * * _.isString('abc'); * // => true * * _.isString(1); * // => false */ function isString(value) { return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); } module.exports = isString; /***/ }), /* 278 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57); var defineProperty = (function() { try { var func = getNative(Object, 'defineProperty'); func({}, '', {}); return func; } catch (e) {} }()); module.exports = defineProperty; /***/ }), /* 279 */ /***/ (function(module, exports, __webpack_require__) { var baseGetAllKeys = __webpack_require__(257), getSymbolsIn = __webpack_require__(280), keysIn = __webpack_require__(98); /** * Creates an array of own and inherited enumerable property names and * symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names and symbols. */ function getAllKeysIn(object) { return baseGetAllKeys(object, keysIn, getSymbolsIn); } module.exports = getAllKeysIn; /***/ }), /* 280 */ /***/ (function(module, exports, __webpack_require__) { var arrayPush = __webpack_require__(167), getPrototype = __webpack_require__(132), getSymbols = __webpack_require__(168), stubArray = __webpack_require__(258); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols; /** * Creates an array of the own and inherited enumerable symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { var result = []; while (object) { arrayPush(result, getSymbols(object)); object = getPrototype(object); } return result; }; module.exports = getSymbolsIn; /***/ }), /* 281 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18), now = __webpack_require__(506), toNumber = __webpack_require__(175); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, nativeMin = Math.min; /** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel * delayed `func` invocations and a `flush` method to immediately invoke them. * Provide `options` to indicate whether `func` should be invoked on the * leading and/or trailing edge of the `wait` timeout. The `func` is invoked * with the last arguments provided to the debounced function. Subsequent * calls to the debounced function return the result of the last `func` * invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is * invoked on the trailing edge of the timeout only if the debounced function * is invoked more than once during the `wait` timeout. * * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred * until to the next tick, similar to `setTimeout` with a timeout of `0`. * * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. * @param {Object} [options={}] The options object. * @param {boolean} [options.leading=false] * Specify invoking on the leading edge of the timeout. * @param {number} [options.maxWait] * The maximum time `func` is allowed to be delayed before it's invoked. * @param {boolean} [options.trailing=true] * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * * // Avoid costly calculations while the window size is in flux. * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * * // Invoke `sendMail` when clicked, debouncing subsequent calls. * jQuery(element).on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * * // Ensure `batchLog` is invoked once after 1 second of debounced calls. * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); * var source = new EventSource('/stream'); * jQuery(source).on('message', debounced); * * // Cancel the trailing debounced invocation. * jQuery(window).on('popstate', debounced.cancel); */ function debounce(func, wait, options) { var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } wait = toNumber(wait) || 0; if (isObject(options)) { leading = !!options.leading; maxing = 'maxWait' in options; maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; trailing = 'trailing' in options ? !!options.trailing : trailing; } function invokeFunc(time) { var args = lastArgs, thisArg = lastThis; lastArgs = lastThis = undefined; lastInvokeTime = time; result = func.apply(thisArg, args); return result; } function leadingEdge(time) { // Reset any `maxWait` timer. lastInvokeTime = time; // Start the timer for the trailing edge. timerId = setTimeout(timerExpired, wait); // Invoke the leading edge. return leading ? invokeFunc(time) : result; } function remainingWait(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; } function shouldInvoke(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the // trailing edge, the system time has gone backwards and we're treating // it as the trailing edge, or we've hit the `maxWait` limit. return (lastCallTime === undefined || (timeSinceLastCall >= wait) || (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); } function timerExpired() { var time = now(); if (shouldInvoke(time)) { return trailingEdge(time); } // Restart the timer. timerId = setTimeout(timerExpired, remainingWait(time)); } function trailingEdge(time) { timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been // debounced at least once. if (trailing && lastArgs) { return invokeFunc(time); } lastArgs = lastThis = undefined; return result; } function cancel() { if (timerId !== undefined) { clearTimeout(timerId); } lastInvokeTime = 0; lastArgs = lastCallTime = lastThis = timerId = undefined; } function flush() { return timerId === undefined ? result : trailingEdge(now()); } function debounced() { var time = now(), isInvoking = shouldInvoke(time); lastArgs = arguments; lastThis = this; lastCallTime = time; if (isInvoking) { if (timerId === undefined) { return leadingEdge(lastCallTime); } if (maxing) { // Handle invocations in a tight loop. clearTimeout(timerId); timerId = setTimeout(timerExpired, wait); return invokeFunc(lastCallTime); } } if (timerId === undefined) { timerId = setTimeout(timerExpired, wait); } return result; } debounced.cancel = cancel; debounced.flush = flush; return debounced; } module.exports = debounce; /***/ }), /* 282 */ /***/ (function(module, exports, __webpack_require__) { var apply = __webpack_require__(515); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; /** * A specialized version of `baseRest` which transforms the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @param {Function} transform The rest array transform. * @returns {Function} Returns the new function. */ function overRest(func, start, transform) { start = nativeMax(start === undefined ? (func.length - 1) : start, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length); while (++index < length) { array[index] = args[start + index]; } index = -1; var otherArgs = Array(start + 1); while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = transform(array); return apply(func, this, otherArgs); }; } module.exports = overRest; /***/ }), /* 283 */ /***/ (function(module, exports, __webpack_require__) { var baseSetToString = __webpack_require__(516), shortOut = __webpack_require__(517); /** * Sets the `toString` method of `func` to return `string`. * * @private * @param {Function} func The function to modify. * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ var setToString = shortOut(baseSetToString); module.exports = setToString; /***/ }), /* 284 */ /***/ (function(module, exports) { /** * Creates a function that returns `value`. * * @static * @memberOf _ * @since 2.4.0 * @category Util * @param {*} value The value to return from the new function. * @returns {Function} Returns the new constant function. * @example * * var objects = _.times(2, _.constant({ 'a': 1 })); * * console.log(objects); * // => [{ 'a': 1 }, { 'a': 1 }] * * console.log(objects[0] === objects[1]); * // => true */ function constant(value) { return function() { return value; }; } module.exports = constant; /***/ }), /* 285 */ /***/ (function(module, exports, __webpack_require__) { var metaMap = __webpack_require__(518), noop = __webpack_require__(519); /** * Gets metadata for `func`. * * @private * @param {Function} func The function to query. * @returns {*} Returns the metadata for `func`. */ var getData = !metaMap ? noop : function(func) { return metaMap.get(func); }; module.exports = getData; /***/ }), /* 286 */ /***/ (function(module, exports, __webpack_require__) { var realNames = __webpack_require__(520); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Gets the name of `func`. * * @private * @param {Function} func The function to query. * @returns {string} Returns the function name. */ function getFuncName(func) { var result = (func.name + ''), array = realNames[result], length = hasOwnProperty.call(realNames, result) ? array.length : 0; while (length--) { var data = array[length], otherFunc = data.func; if (otherFunc == null || otherFunc == func) { return data.name; } } return result; } module.exports = getFuncName; /***/ }), /* 287 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var fails = __webpack_require__(5); var isArray = __webpack_require__(48); var isObject = __webpack_require__(12); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var createProperty = __webpack_require__(99); var arraySpeciesCreate = __webpack_require__(75); var arrayMethodHasSpeciesSupport = __webpack_require__(101); var wellKnownSymbol = __webpack_require__(4); var V8_VERSION = __webpack_require__(53); var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; var TypeError = global.TypeError; // We can't use this feature detection in V8 since it causes // deoptimization and serious performance degradation // https://github.com/zloirock/core-js/issues/679 var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { var array = []; array[IS_CONCAT_SPREADABLE] = false; return array.concat()[0] !== array; }); var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); var isConcatSpreadable = function (O) { if (!isObject(O)) return false; var spreadable = O[IS_CONCAT_SPREADABLE]; return spreadable !== undefined ? !!spreadable : isArray(O); }; var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; // `Array.prototype.concat` method // https://tc39.es/ecma262/#sec-array.prototype.concat // with adding support of @@isConcatSpreadable and @@species $({ target: 'Array', proto: true, forced: FORCED }, { // eslint-disable-next-line no-unused-vars -- required for `.length` concat: function concat(arg) { var O = toObject(this); var A = arraySpeciesCreate(O, 0); var n = 0; var i, k, length, len, E; for (i = -1, length = arguments.length; i < length; i++) { E = i === -1 ? O : arguments[i]; if (isConcatSpreadable(E)) { len = lengthOfArrayLike(E); if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]); } else { if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); createProperty(A, n++, E); } } A.length = n; return A; } }); /***/ }), /* 288 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isArray = __webpack_require__(48); var isConstructor = __webpack_require__(76); var isObject = __webpack_require__(12); var wellKnownSymbol = __webpack_require__(4); var SPECIES = wellKnownSymbol('species'); var Array = global.Array; // a part of `ArraySpeciesCreate` abstract operation // https://tc39.es/ecma262/#sec-arrayspeciescreate module.exports = function (originalArray) { var C; if (isArray(originalArray)) { C = originalArray.constructor; // cross-realm fallback if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined; else if (isObject(C)) { C = C[SPECIES]; if (C === null) C = undefined; } } return C === undefined ? Array : C; }; /***/ }), /* 289 */ /***/ (function(module, exports, __webpack_require__) { /* eslint-disable es/no-object-getownpropertynames -- safe */ var classof = __webpack_require__(84); var toIndexedObject = __webpack_require__(26); var $getOwnPropertyNames = __webpack_require__(88).f; var arraySlice = __webpack_require__(102); var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return $getOwnPropertyNames(it); } catch (error) { return arraySlice(windowNames); } }; // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window module.exports.f = function getOwnPropertyNames(it) { return windowNames && classof(it) == 'Window' ? getWindowNames(it) : $getOwnPropertyNames(toIndexedObject(it)); }; /***/ }), /* 290 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); exports.f = wellKnownSymbol; /***/ }), /* 291 */ /***/ (function(module, exports) { // iterable DOM collections // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods module.exports = { CSSRuleList: 0, CSSStyleDeclaration: 0, CSSValueList: 0, ClientRectList: 0, DOMRectList: 0, DOMStringList: 0, DOMTokenList: 1, DataTransferItemList: 0, FileList: 0, HTMLAllCollection: 0, HTMLCollection: 0, HTMLFormElement: 0, HTMLSelectElement: 0, MediaList: 0, MimeTypeArray: 0, NamedNodeMap: 0, NodeList: 1, PaintRequestList: 0, Plugin: 0, PluginArray: 0, SVGLengthList: 0, SVGNumberList: 0, SVGPathSegList: 0, SVGPointList: 0, SVGStringList: 0, SVGTransformList: 0, SourceBufferList: 0, StyleSheetList: 0, TextTrackCueList: 0, TextTrackList: 0, TouchList: 0 }; /***/ }), /* 292 */ /***/ (function(module, exports, __webpack_require__) { // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList` var documentCreateElement = __webpack_require__(116); var classList = documentCreateElement('span').classList; var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype; module.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype; /***/ }), /* 293 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(5); var isCallable = __webpack_require__(6); var create = __webpack_require__(39); var getPrototypeOf = __webpack_require__(191); var redefine = __webpack_require__(27); var wellKnownSymbol = __webpack_require__(4); var IS_PURE = __webpack_require__(56); var ITERATOR = wellKnownSymbol('iterator'); var BUGGY_SAFARI_ITERATORS = false; // `%IteratorPrototype%` object // https://tc39.es/ecma262/#sec-%iteratorprototype%-object var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; /* eslint-disable es/no-array-prototype-keys -- safe */ if ([].keys) { arrayIterator = [].keys(); // Safari 8 has buggy iterators w/o `next` if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; else { PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; } } var NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () { var test = {}; // FF44- legacy iterators case return IteratorPrototype[ITERATOR].call(test) !== test; }); if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {}; else if (IS_PURE) IteratorPrototype = create(IteratorPrototype); // `%IteratorPrototype%[@@iterator]()` method // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator if (!isCallable(IteratorPrototype[ITERATOR])) { redefine(IteratorPrototype, ITERATOR, function () { return this; }); } module.exports = { IteratorPrototype: IteratorPrototype, BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS }; /***/ }), /* 294 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(564); __webpack_require__(602); __webpack_require__(606); __webpack_require__(617); // TODO: Remove from `core-js@4` __webpack_require__(623); // TODO: Remove from `core-js@4` __webpack_require__(624); __webpack_require__(625); __webpack_require__(626); __webpack_require__(627); __webpack_require__(628); __webpack_require__(631); __webpack_require__(632); __webpack_require__(633); __webpack_require__(634); module.exports = parent; /***/ }), /* 295 */ /***/ (function(module, exports, __webpack_require__) { var call = __webpack_require__(23); var anObject = __webpack_require__(15); var getMethod = __webpack_require__(55); module.exports = function (iterator, kind, value) { var innerResult, innerError; anObject(iterator); try { innerResult = getMethod(iterator, 'return'); if (!innerResult) { if (kind === 'throw') throw value; return value; } innerResult = call(innerResult, iterator); } catch (error) { innerError = true; innerResult = error; } if (kind === 'throw') throw value; if (innerError) throw innerResult; anObject(innerResult); return value; }; /***/ }), /* 296 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(4); var Iterators = __webpack_require__(103); var ITERATOR = wellKnownSymbol('iterator'); var ArrayPrototype = Array.prototype; // check on default Array iterator module.exports = function (it) { return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); }; /***/ }), /* 297 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var toIntegerOrInfinity = __webpack_require__(32); var addToUnscopables = __webpack_require__(13); // `Array.prototype.at` method // https://github.com/tc39/proposal-relative-indexing-method $({ target: 'Array', proto: true }, { at: function at(index) { var O = toObject(this); var len = lengthOfArrayLike(O); var relativeIndex = toIntegerOrInfinity(index); var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex; return (k < 0 || k >= len) ? undefined : O[k]; } }); addToUnscopables('at'); /***/ }), /* 298 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(1); var isArray = __webpack_require__(48); var lengthOfArrayLike = __webpack_require__(7); var bind = __webpack_require__(29); var TypeError = global.TypeError; // `FlattenIntoArray` abstract operation // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray var flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) { var targetIndex = start; var sourceIndex = 0; var mapFn = mapper ? bind(mapper, thisArg) : false; var element, elementLen; while (sourceIndex < sourceLen) { if (sourceIndex in source) { element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; if (depth > 0 && isArray(element)) { elementLen = lengthOfArrayLike(element); targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1; } else { if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length'); target[targetIndex] = element; } targetIndex++; } sourceIndex++; } return targetIndex; }; module.exports = flattenIntoArray; /***/ }), /* 299 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var aCallable = __webpack_require__(31); var toObject = __webpack_require__(9); var IndexedObject = __webpack_require__(68); var lengthOfArrayLike = __webpack_require__(7); var TypeError = global.TypeError; // `Array.prototype.{ reduce, reduceRight }` methods implementation var createMethod = function (IS_RIGHT) { return function (that, callbackfn, argumentsLength, memo) { aCallable(callbackfn); var O = toObject(that); var self = IndexedObject(O); var length = lengthOfArrayLike(O); var index = IS_RIGHT ? length - 1 : 0; var i = IS_RIGHT ? -1 : 1; if (argumentsLength < 2) while (true) { if (index in self) { memo = self[index]; index += i; break; } index += i; if (IS_RIGHT ? index < 0 : length <= index) { throw TypeError('Reduce of empty array with no initial value'); } } for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { memo = callbackfn(memo, self[index], index, O); } return memo; }; }; module.exports = { // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce left: createMethod(false), // `Array.prototype.reduceRight` method // https://tc39.es/ecma262/#sec-array.prototype.reduceright right: createMethod(true) }; /***/ }), /* 300 */ /***/ (function(module, exports, __webpack_require__) { var arraySlice = __webpack_require__(102); var floor = Math.floor; var mergeSort = function (array, comparefn) { var length = array.length; var middle = floor(length / 2); return length < 8 ? insertionSort(array, comparefn) : merge( array, mergeSort(arraySlice(array, 0, middle), comparefn), mergeSort(arraySlice(array, middle), comparefn), comparefn ); }; var insertionSort = function (array, comparefn) { var length = array.length; var i = 1; var element, j; while (i < length) { j = i; element = array[i]; while (j && comparefn(array[j - 1], element) > 0) { array[j] = array[--j]; } if (j !== i++) array[j] = element; } return array; }; var merge = function (array, left, right, comparefn) { var llength = left.length; var rlength = right.length; var lindex = 0; var rindex = 0; while (lindex < llength || rindex < rlength) { array[lindex + rindex] = (lindex < llength && rindex < rlength) ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++] : lindex < llength ? left[lindex++] : right[rindex++]; } return array; }; module.exports = mergeSort; /***/ }), /* 301 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var uncurryThis = __webpack_require__(3); var hiddenKeys = __webpack_require__(87); var isObject = __webpack_require__(12); var hasOwn = __webpack_require__(14); var defineProperty = __webpack_require__(17).f; var getOwnPropertyNamesModule = __webpack_require__(88); var getOwnPropertyNamesExternalModule = __webpack_require__(289); var uid = __webpack_require__(115); var FREEZING = __webpack_require__(604); var REQUIRED = false; var METADATA = uid('meta'); var id = 0; // eslint-disable-next-line es/no-object-isextensible -- safe var isExtensible = Object.isExtensible || function () { return true; }; var setMetadata = function (it) { defineProperty(it, METADATA, { value: { objectID: 'O' + id++, // object ID weakData: {} // weak collections IDs } }); }; var fastKey = function (it, create) { // return a primitive with prefix if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if (!hasOwn(it, METADATA)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return 'F'; // not necessary to add metadata if (!create) return 'E'; // add missing metadata setMetadata(it); // return object ID } return it[METADATA].objectID; }; var getWeakData = function (it, create) { if (!hasOwn(it, METADATA)) { // can't set metadata to uncaught frozen object if (!isExtensible(it)) return true; // not necessary to add metadata if (!create) return false; // add missing metadata setMetadata(it); // return the store of weak collections IDs } return it[METADATA].weakData; }; // add metadata on freeze-family methods calling var onFreeze = function (it) { if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it); return it; }; var enable = function () { meta.enable = function () { /* empty */ }; REQUIRED = true; var getOwnPropertyNames = getOwnPropertyNamesModule.f; var splice = uncurryThis([].splice); var test = {}; test[METADATA] = 1; // prevent exposing of metadata key if (getOwnPropertyNames(test).length) { getOwnPropertyNamesModule.f = function (it) { var result = getOwnPropertyNames(it); for (var i = 0, length = result.length; i < length; i++) { if (result[i] === METADATA) { splice(result, i, 1); break; } } return result; }; $({ target: 'Object', stat: true, forced: true }, { getOwnPropertyNames: getOwnPropertyNamesExternalModule.f }); } }; var meta = module.exports = { enable: enable, fastKey: fastKey, getWeakData: getWeakData, onFreeze: onFreeze }; hiddenKeys[METADATA] = true; /***/ }), /* 302 */ /***/ (function(module, exports, __webpack_require__) { var isCallable = __webpack_require__(6); var isObject = __webpack_require__(12); var setPrototypeOf = __webpack_require__(192); // makes subclassing work correct for wrapped built-ins module.exports = function ($this, dummy, Wrapper) { var NewTarget, NewTargetPrototype; if ( // it can work only with native `setPrototypeOf` setPrototypeOf && // we haven't completely correct pre-ES6 way for getting `new.target`, so use this isCallable(NewTarget = dummy.constructor) && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype ) setPrototypeOf($this, NewTargetPrototype); return $this; }; /***/ }), /* 303 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var apply = __webpack_require__(134); var bind = __webpack_require__(29); var isCallable = __webpack_require__(6); var hasOwn = __webpack_require__(14); var fails = __webpack_require__(5); var html = __webpack_require__(238); var arraySlice = __webpack_require__(102); var createElement = __webpack_require__(116); var IS_IOS = __webpack_require__(304); var IS_NODE = __webpack_require__(106); var set = global.setImmediate; var clear = global.clearImmediate; var process = global.process; var Dispatch = global.Dispatch; var Function = global.Function; var MessageChannel = global.MessageChannel; var String = global.String; var counter = 0; var queue = {}; var ONREADYSTATECHANGE = 'onreadystatechange'; var location, defer, channel, port; try { // Deno throws a ReferenceError on `location` access without `--location` flag location = global.location; } catch (error) { /* empty */ } var run = function (id) { if (hasOwn(queue, id)) { var fn = queue[id]; delete queue[id]; fn(); } }; var runner = function (id) { return function () { run(id); }; }; var listener = function (event) { run(event.data); }; var post = function (id) { // old engines have not location.origin global.postMessage(String(id), location.protocol + '//' + location.host); }; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: if (!set || !clear) { set = function setImmediate(fn) { var args = arraySlice(arguments, 1); queue[++counter] = function () { apply(isCallable(fn) ? fn : Function(fn), undefined, args); }; defer(counter); return counter; }; clear = function clearImmediate(id) { delete queue[id]; }; // Node.js 0.8- if (IS_NODE) { defer = function (id) { process.nextTick(runner(id)); }; // Sphere (JS game engine) Dispatch API } else if (Dispatch && Dispatch.now) { defer = function (id) { Dispatch.now(runner(id)); }; // Browsers with MessageChannel, includes WebWorkers // except iOS - https://github.com/zloirock/core-js/issues/624 } else if (MessageChannel && !IS_IOS) { channel = new MessageChannel(); port = channel.port2; channel.port1.onmessage = listener; defer = bind(port.postMessage, port); // Browsers with postMessage, skip WebWorkers // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' } else if ( global.addEventListener && isCallable(global.postMessage) && !global.importScripts && location && location.protocol !== 'file:' && !fails(post) ) { defer = post; global.addEventListener('message', listener, false); // IE8- } else if (ONREADYSTATECHANGE in createElement('script')) { defer = function (id) { html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { html.removeChild(this); run(id); }; }; // Rest old browsers } else { defer = function (id) { setTimeout(runner(id), 0); }; } } module.exports = { set: set, clear: clear }; /***/ }), /* 304 */ /***/ (function(module, exports, __webpack_require__) { var userAgent = __webpack_require__(54); module.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent); /***/ }), /* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var aCallable = __webpack_require__(31); var PromiseCapability = function (C) { var resolve, reject; this.promise = new C(function ($$resolve, $$reject) { if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); resolve = $$resolve; reject = $$reject; }); this.resolve = aCallable(resolve); this.reject = aCallable(reject); }; // `NewPromiseCapability` abstract operation // https://tc39.es/ecma262/#sec-newpromisecapability module.exports.f = function (C) { return new PromiseCapability(C); }; /***/ }), /* 306 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var apply = __webpack_require__(134); var anObject = __webpack_require__(15); var create = __webpack_require__(39); var getMethod = __webpack_require__(55); var redefineAll = __webpack_require__(136); var InternalStateModule = __webpack_require__(38); var getBuiltIn = __webpack_require__(24); var AsyncIteratorPrototype = __webpack_require__(620); var Promise = getBuiltIn('Promise'); var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.get; var asyncFromSyncIteratorContinuation = function (result, resolve, reject) { var done = result.done; Promise.resolve(result.value).then(function (value) { resolve({ done: done, value: value }); }, reject); }; var AsyncFromSyncIterator = function AsyncIterator(iterator) { setInternalState(this, { iterator: anObject(iterator), next: iterator.next }); }; AsyncFromSyncIterator.prototype = redefineAll(create(AsyncIteratorPrototype), { next: function next(arg) { var state = getInternalState(this); var hasArg = !!arguments.length; return new Promise(function (resolve, reject) { var result = anObject(apply(state.next, state.iterator, hasArg ? [arg] : [])); asyncFromSyncIteratorContinuation(result, resolve, reject); }); }, 'return': function (arg) { var iterator = getInternalState(this).iterator; var hasArg = !!arguments.length; return new Promise(function (resolve, reject) { var $return = getMethod(iterator, 'return'); if ($return === undefined) return resolve({ done: true, value: arg }); var result = anObject(apply($return, iterator, hasArg ? [arg] : [])); asyncFromSyncIteratorContinuation(result, resolve, reject); }); }, 'throw': function (arg) { var iterator = getInternalState(this).iterator; var hasArg = !!arguments.length; return new Promise(function (resolve, reject) { var $throw = getMethod(iterator, 'throw'); if ($throw === undefined) return reject(arg); var result = anObject(apply($throw, iterator, hasArg ? [arg] : [])); asyncFromSyncIteratorContinuation(result, resolve, reject); }); } }); module.exports = AsyncFromSyncIterator; /***/ }), /* 307 */ /***/ (function(module, exports, __webpack_require__) { var bind = __webpack_require__(29); var IndexedObject = __webpack_require__(68); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); // `Array.prototype.{ findLast, findLastIndex }` methods implementation var createMethod = function (TYPE) { var IS_FIND_LAST_INDEX = TYPE == 1; return function ($this, callbackfn, that) { var O = toObject($this); var self = IndexedObject(O); var boundFunction = bind(callbackfn, that); var index = lengthOfArrayLike(self); var value, result; while (index-- > 0) { value = self[index]; result = boundFunction(value, index, O); if (result) switch (TYPE) { case 0: return value; // findLast case 1: return index; // findLastIndex } } return IS_FIND_LAST_INDEX ? -1 : undefined; }; }; module.exports = { // `Array.prototype.findLast` method // https://github.com/tc39/proposal-array-find-from-last findLast: createMethod(0), // `Array.prototype.findLastIndex` method // https://github.com/tc39/proposal-array-find-from-last findLastIndex: createMethod(1) }; /***/ }), /* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(1); var toIntegerOrInfinity = __webpack_require__(32); var toString = __webpack_require__(34); var requireObjectCoercible = __webpack_require__(85); var RangeError = global.RangeError; // `String.prototype.repeat` method implementation // https://tc39.es/ecma262/#sec-string.prototype.repeat module.exports = function repeat(count) { var str = toString(requireObjectCoercible(this)); var result = ''; var n = toIntegerOrInfinity(count); if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions'); for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; return result; }; /***/ }), /* 309 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(12); var floor = Math.floor; // `IsIntegralNumber` abstract operation // https://tc39.es/ecma262/#sec-isintegralnumber // eslint-disable-next-line es/no-number-isinteger -- safe module.exports = Number.isInteger || function isInteger(it) { return !isObject(it) && isFinite(it) && floor(it) === it; }; /***/ }), /* 310 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var fails = __webpack_require__(5); var uncurryThis = __webpack_require__(3); var toString = __webpack_require__(34); var trim = __webpack_require__(198).trim; var whitespaces = __webpack_require__(199); var $parseInt = global.parseInt; var Symbol = global.Symbol; var ITERATOR = Symbol && Symbol.iterator; var hex = /^[+-]?0x/i; var exec = uncurryThis(hex.exec); var FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22 // MS Edge 18- broken with boxed symbols || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); })); // `parseInt` method // https://tc39.es/ecma262/#sec-parseint-string-radix module.exports = FORCED ? function parseInt(string, radix) { var S = trim(toString(string)); return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10)); } : $parseInt; /***/ }), /* 311 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "createApolloClient", { enumerable: true, get: function get() { return _createApolloClient.createApolloClient; } }); Object.defineProperty(exports, "waitForInFlightQueries", { enumerable: true, get: function get() { return _helpers.waitForInFlightQueries; } }); var _createApolloClient = __webpack_require__(668); var _helpers = __webpack_require__(339); /***/ }), /* 312 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveInfoFromField", function() { return getDirectiveInfoFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shouldInclude", function() { return shouldInclude; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flattenSelections", function() { return flattenSelections; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveNames", function() { return getDirectiveNames; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasDirectives", function() { return hasDirectives; }); /* harmony import */ var _storeUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(140); function getDirectiveInfoFromField(field, variables) { if (field.directives && field.directives.length) { var directiveObj_1 = {}; field.directives.forEach(function (directive) { directiveObj_1[directive.name.value] = Object(_storeUtils__WEBPACK_IMPORTED_MODULE_0__["argumentsObjectFromField"])(directive, variables); }); return directiveObj_1; } return null; } function shouldInclude(selection, variables) { if (variables === void 0) { variables = {}; } if (!selection.directives) { return true; } var res = true; selection.directives.forEach(function (directive) { // TODO should move this validation to GraphQL validation once that's implemented. if (directive.name.value !== 'skip' && directive.name.value !== 'include') { // Just don't worry about directives we don't understand return; } //evaluate the "if" argument and skip (i.e. return undefined) if it evaluates to true. var directiveArguments = directive.arguments || []; var directiveName = directive.name.value; if (directiveArguments.length !== 1) { throw new Error("Incorrect number of arguments for the @" + directiveName + " directive."); } var ifArgument = directiveArguments[0]; if (!ifArgument.name || ifArgument.name.value !== 'if') { throw new Error("Invalid argument for the @" + directiveName + " directive."); } var ifValue = directiveArguments[0].value; var evaledValue = false; if (!ifValue || ifValue.kind !== 'BooleanValue') { // means it has to be a variable value if this is a valid @skip or @include directive if (ifValue.kind !== 'Variable') { throw new Error("Argument for the @" + directiveName + " directive must be a variable or a boolean value."); } else { evaledValue = variables[ifValue.name.value]; if (evaledValue === undefined) { throw new Error("Invalid variable referenced in @" + directiveName + " directive."); } } } else { evaledValue = ifValue.value; } if (directiveName === 'skip') { evaledValue = !evaledValue; } if (!evaledValue) { res = false; } }); return res; } function flattenSelections(selection) { if (!selection.selectionSet || !(selection.selectionSet.selections.length > 0)) return [selection]; return [selection].concat(selection.selectionSet.selections .map(function (selectionNode) { return [selectionNode].concat(flattenSelections(selectionNode)); }) .reduce(function (selections, selected) { return selections.concat(selected); }, [])); } function getDirectiveNames(doc) { // operation => [names of directives]; var directiveNames = doc.definitions .filter(function (definition) { return definition.selectionSet && definition.selectionSet.selections; }) // operation => [[Selection]] .map(function (x) { return flattenSelections(x); }) // [[Selection]] => [Selection] .reduce(function (selections, selected) { return selections.concat(selected); }, []) // [Selection] => [Selection with Directives] .filter(function (selection) { return selection.directives && selection.directives.length > 0; }) // [Selection with Directives] => [[Directives]] .map(function (selection) { return selection.directives; }) // [[Directives]] => [Directives] .reduce(function (directives, directive) { return directives.concat(directive); }, []) // [Directives] => [Name] .map(function (directive) { return directive.name.value; }); return directiveNames; } function hasDirectives(names, doc) { return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; }); } //# sourceMappingURL=directives.js.map /***/ }), /* 313 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentQueryDocument", function() { return getFragmentQueryDocument; }); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; /** * Returns a query document which adds a single query operation that only * spreads the target fragment inside of it. * * So for example a document of: * * ```graphql * fragment foo on Foo { a b c } * ``` * * Turns into: * * ```graphql * { ...foo } * * fragment foo on Foo { a b c } * ``` * * The target fragment will either be the only fragment in the document, or a * fragment specified by the provided `fragmentName`. If there is more then one * fragment, but a `fragmentName` was not defined then an error will be thrown. */ function getFragmentQueryDocument(document, fragmentName) { var actualFragmentName = fragmentName; // Build an array of all our fragment definitions that will be used for // validations. We also do some validations on the other definitions in the // document while building this list. var fragments = []; document.definitions.forEach(function (definition) { // Throw an error if we encounter an operation definition because we will // define our own operation definition later on. if (definition.kind === 'OperationDefinition') { throw new Error("Found a " + definition.operation + " operation" + (definition.name ? " named '" + definition.name.value + "'" : '') + ". " + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.'); } // Add our definition to the fragments array if it is a fragment // definition. if (definition.kind === 'FragmentDefinition') { fragments.push(definition); } }); // If the user did not give us a fragment name then let us try to get a // name from a single fragment in the definition. if (typeof actualFragmentName === 'undefined') { if (fragments.length !== 1) { throw new Error("Found " + fragments.length + " fragments. `fragmentName` must be provided when there is not exactly 1 fragment."); } actualFragmentName = fragments[0].name.value; } // Generate a query document with an operation that simply spreads the // fragment inside of it. var query = __assign({}, document, { definitions: [ { kind: 'OperationDefinition', operation: 'query', selectionSet: { kind: 'SelectionSet', selections: [ { kind: 'FragmentSpread', name: { kind: 'Name', value: actualFragmentName, }, }, ], }, } ].concat(document.definitions) }); return query; } //# sourceMappingURL=fragments.js.map /***/ }), /* 314 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeDirectivesFromDocument", function() { return removeDirectivesFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTypenameToDocument", function() { return addTypenameToDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeConnectionDirectiveFromDocument", function() { return removeConnectionDirectiveFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectivesFromDocument", function() { return getDirectivesFromDocument; }); /* harmony import */ var _util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(202); /* harmony import */ var _getFromAST__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); var TYPENAME_FIELD = { kind: 'Field', name: { kind: 'Name', value: '__typename', }, }; function isNotEmpty(op, fragments) { // keep selections that are still valid return (op.selectionSet.selections.filter(function (selectionSet) { // anything that doesn't match the compound filter is okay return !(selectionSet && // look into fragments to verify they should stay selectionSet.kind === 'FragmentSpread' && // see if the fragment in the map is valid (recursively) !isNotEmpty(fragments[selectionSet.name.value], fragments)); }).length > 0); } function getDirectiveMatcher(directives) { return function directiveMatcher(directive) { return directives.some(function (dir) { if (dir.name && dir.name === directive.name.value) return true; if (dir.test && dir.test(directive)) return true; return false; }); }; } function addTypenameToSelectionSet(selectionSet, isRoot) { if (isRoot === void 0) { isRoot = false; } if (selectionSet.selections) { if (!isRoot) { var alreadyHasThisField = selectionSet.selections.some(function (selection) { return (selection.kind === 'Field' && selection.name.value === '__typename'); }); if (!alreadyHasThisField) { selectionSet.selections.push(TYPENAME_FIELD); } } selectionSet.selections.forEach(function (selection) { // Must not add __typename if we're inside an introspection query if (selection.kind === 'Field') { if (selection.name.value.lastIndexOf('__', 0) !== 0 && selection.selectionSet) { addTypenameToSelectionSet(selection.selectionSet); } } else if (selection.kind === 'InlineFragment') { if (selection.selectionSet) { addTypenameToSelectionSet(selection.selectionSet); } } }); } } function removeDirectivesFromSelectionSet(directives, selectionSet) { if (!selectionSet.selections) return selectionSet; // if any of the directives are set to remove this selectionSet, remove it var agressiveRemove = directives.some(function (dir) { return dir.remove; }); selectionSet.selections = selectionSet.selections .map(function (selection) { if (selection.kind !== 'Field' || !selection || !selection.directives) return selection; var directiveMatcher = getDirectiveMatcher(directives); var remove; selection.directives = selection.directives.filter(function (directive) { var shouldKeep = !directiveMatcher(directive); if (!remove && !shouldKeep && agressiveRemove) remove = true; return shouldKeep; }); return remove ? null : selection; }) .filter(function (x) { return !!x; }); selectionSet.selections.forEach(function (selection) { if ((selection.kind === 'Field' || selection.kind === 'InlineFragment') && selection.selectionSet) { removeDirectivesFromSelectionSet(directives, selection.selectionSet); } }); return selectionSet; } function removeDirectivesFromDocument(directives, doc) { var docClone = Object(_util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(doc); docClone.definitions.forEach(function (definition) { removeDirectivesFromSelectionSet(directives, definition.selectionSet); }); var operation = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getOperationDefinitionOrDie"])(docClone); var fragments = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["createFragmentMap"])(Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getFragmentDefinitions"])(docClone)); return isNotEmpty(operation, fragments) ? docClone : null; } function addTypenameToDocument(doc) { Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["checkDocument"])(doc); var docClone = Object(_util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(doc); docClone.definitions.forEach(function (definition) { var isRoot = definition.kind === 'OperationDefinition'; addTypenameToSelectionSet(definition.selectionSet, isRoot); }); return docClone; } var connectionRemoveConfig = { test: function (directive) { var willRemove = directive.name.value === 'connection'; if (willRemove) { if (!directive.arguments || !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) { console.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.'); } } return willRemove; }, }; function removeConnectionDirectiveFromDocument(doc) { Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["checkDocument"])(doc); return removeDirectivesFromDocument([connectionRemoveConfig], doc); } function hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } if (!(selectionSet && selectionSet.selections)) { return false; } var matchedSelections = selectionSet.selections.filter(function (selection) { return hasDirectivesInSelection(directives, selection, nestedCheck); }); return matchedSelections.length > 0; } function hasDirectivesInSelection(directives, selection, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } if (selection.kind !== 'Field' || !selection) { return true; } if (!selection.directives) { return false; } var directiveMatcher = getDirectiveMatcher(directives); var matchedDirectives = selection.directives.filter(directiveMatcher); return (matchedDirectives.length > 0 || (nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck))); } function getDirectivesFromSelectionSet(directives, selectionSet) { selectionSet.selections = selectionSet.selections .filter(function (selection) { return hasDirectivesInSelection(directives, selection, true); }) .map(function (selection) { if (hasDirectivesInSelection(directives, selection, false)) { return selection; } if ((selection.kind === 'Field' || selection.kind === 'InlineFragment') && selection.selectionSet) { selection.selectionSet = getDirectivesFromSelectionSet(directives, selection.selectionSet); } return selection; }); return selectionSet; } function getDirectivesFromDocument(directives, doc, includeAllFragments) { if (includeAllFragments === void 0) { includeAllFragments = false; } Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["checkDocument"])(doc); var docClone = Object(_util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(doc); docClone.definitions = docClone.definitions.map(function (definition) { if ((definition.kind === 'OperationDefinition' || (definition.kind === 'FragmentDefinition' && !includeAllFragments)) && definition.selectionSet) { definition.selectionSet = getDirectivesFromSelectionSet(directives, definition.selectionSet); } return definition; }); var operation = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getOperationDefinitionOrDie"])(docClone); var fragments = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["createFragmentMap"])(Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getFragmentDefinitions"])(docClone)); return isNotEmpty(operation, fragments) ? docClone : null; } //# sourceMappingURL=transform.js.map /***/ }), /* 315 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryFunctionOrLogError", function() { return tryFunctionOrLogError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graphQLResultHasError", function() { return graphQLResultHasError; }); function tryFunctionOrLogError(f) { try { return f(); } catch (e) { if (console.error) { console.error(e); } } } function graphQLResultHasError(result) { return result.errors && result.errors.length; } //# sourceMappingURL=errorHandling.js.map /***/ }), /* 316 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEqual", function() { return isEqual; }); /** * Performs a deep equality check on two JavaScript values. */ function isEqual(a, b) { // If the two values are strictly equal, we are good. if (a === b) { return true; } // Dates are equivalent if their time values are equal. if (a instanceof Date && b instanceof Date) { return a.getTime() === b.getTime(); } // If a and b are both objects, we will compare their properties. This will compare arrays as // well. if (a != null && typeof a === 'object' && b != null && typeof b === 'object') { // Compare all of the keys in `a`. If one of the keys has a different value, or that key does // not exist in `b` return false immediately. for (var key in a) { if (Object.prototype.hasOwnProperty.call(a, key)) { if (!Object.prototype.hasOwnProperty.call(b, key)) { return false; } if (!isEqual(a[key], b[key])) { return false; } } } // Look through all the keys in `b`. If `b` has a key that `a` does not, return false. for (var key in b) { if (!Object.prototype.hasOwnProperty.call(a, key)) { return false; } } // If we made it this far the objects are equal! return true; } // Otherwise the values are not equal. return false; } //# sourceMappingURL=isEqual.js.map /***/ }), /* 317 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeDeepFreeze", function() { return maybeDeepFreeze; }); /* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(142); // Taken (mostly) from https://github.com/substack/deep-freeze to avoid // import hassles with rollup. function deepFreeze(o) { Object.freeze(o); Object.getOwnPropertyNames(o).forEach(function (prop) { if (o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) { deepFreeze(o[prop]); } }); return o; } function maybeDeepFreeze(obj) { if (Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isDevelopment"])() || Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isTest"])()) { // Polyfilled Symbols potentially cause infinite / very deep recursion while deep freezing // which is known to crash IE11 (https://github.com/apollographql/apollo-client/issues/3043). var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string'; if (!symbolIsPolyfilled) { return deepFreeze(obj); } } return obj; } //# sourceMappingURL=maybeDeepFreeze.js.map /***/ }), /* 318 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnOnceInDevelopment", function() { return warnOnceInDevelopment; }); /* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(142); var haveWarned = Object.create({}); /** * Print a warning only once in development. * In production no warnings are printed. * In test all warnings are printed. * * @param msg The warning message * @param type warn or error (will call console.warn or console.error) */ function warnOnceInDevelopment(msg, type) { if (type === void 0) { type = 'warn'; } if (Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isProduction"])()) { return; } if (!haveWarned[msg]) { if (!Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isTest"])()) { haveWarned[msg] = true; } switch (type) { case 'error': console.error(msg); break; default: console.warn(msg); } } } //# sourceMappingURL=warnOnce.js.map /***/ }), /* 319 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stripSymbols", function() { return stripSymbols; }); /** * In order to make assertions easier, this function strips `symbol`'s from * the incoming data. * * This can be handy when running tests against `apollo-client` for example, * since it adds `symbol`'s to the data in the store. Jest's `toEqual` * function now covers `symbol`'s (https://github.com/facebook/jest/pull/3437), * which means all test data used in a `toEqual` comparison would also have to * include `symbol`'s, to pass. By stripping `symbol`'s from the cache data * we can compare against more simplified test data. */ function stripSymbols(data) { return JSON.parse(JSON.stringify(data)); } //# sourceMappingURL=stripSymbols.js.map /***/ }), /* 320 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); /* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); // This simplified polyfill attempts to follow the ECMAScript Observable proposal. // See https://github.com/zenparsing/es-observable // rxjs interopt var Observable = /** @class */ (function (_super) { __extends(Observable, _super); function Observable() { return _super !== null && _super.apply(this, arguments) || this; } Observable.prototype[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { return this; }; Observable.prototype['@@observable'] = function () { return this; }; return Observable; }(apollo_link__WEBPACK_IMPORTED_MODULE_0__["Observable"])); //# sourceMappingURL=Observable.js.map /***/ }), /* 321 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "split", function() { return split; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApolloLink", function() { return ApolloLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "execute", function() { return execute; }); /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(143); /* harmony import */ var _linkUtils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64); var passthrough = function (op, forward) { return (forward ? forward(op) : zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); }; var toLink = function (handler) { return typeof handler === 'function' ? new ApolloLink(handler) : handler; }; var empty = function () { return new ApolloLink(function (op, forward) { return zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); }; var from = function (links) { if (links.length === 0) return empty(); return links.map(toLink).reduce(function (x, y) { return x.concat(y); }); }; var split = function (test, left, right) { if (right === void 0) { right = new ApolloLink(passthrough); } var leftLink = toLink(left); var rightLink = toLink(right); if (Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["isTerminating"])(leftLink) && Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["isTerminating"])(rightLink)) { return new ApolloLink(function (operation) { return test(operation) ? leftLink.request(operation) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of() : rightLink.request(operation) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } else { return new ApolloLink(function (operation, forward) { return test(operation) ? leftLink.request(operation, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of() : rightLink.request(operation, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } }; // join two Links together var concat = function (first, second) { var firstLink = toLink(first); if (Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["isTerminating"])(firstLink)) { console.warn(new _linkUtils__WEBPACK_IMPORTED_MODULE_1__["LinkError"]("You are calling concat on a terminating link, which will have no effect", firstLink)); return firstLink; } var nextLink = toLink(second); if (Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["isTerminating"])(nextLink)) { return new ApolloLink(function (operation) { return firstLink.request(operation, function (op) { return nextLink.request(op) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } else { return new ApolloLink(function (operation, forward) { return (firstLink.request(operation, function (op) { return nextLink.request(op, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); }); } }; var ApolloLink = /** @class */ (function () { function ApolloLink(request) { if (request) this.request = request; } ApolloLink.prototype.split = function (test, left, right) { if (right === void 0) { right = new ApolloLink(passthrough); } return this.concat(split(test, left, right)); }; ApolloLink.prototype.concat = function (next) { return concat(this, next); }; ApolloLink.prototype.request = function (operation, forward) { throw new Error('request is not implemented'); }; ApolloLink.empty = empty; ApolloLink.from = from; ApolloLink.split = split; ApolloLink.execute = execute; return ApolloLink; }()); function execute(link, operation) { return (link.request(Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["createOperation"])(operation.context, Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["transformOperation"])(Object(_linkUtils__WEBPACK_IMPORTED_MODULE_1__["validateOperation"])(operation)))) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); } //# sourceMappingURL=link.js.map /***/ }), /* 322 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63); /* harmony import */ var _core_QueryManager__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(670); /* harmony import */ var _data_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(675); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(676); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_version__WEBPACK_IMPORTED_MODULE_4__); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var hasSuggestedDevtools = false; var supportedDirectives = new apollo_link__WEBPACK_IMPORTED_MODULE_0__["ApolloLink"](function (operation, forward) { operation.query = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["removeConnectionDirectiveFromDocument"])(operation.query); return forward(operation); }); /** * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries * and mutations) to a GraphQL spec-compliant server over a {@link NetworkInterface} instance, * receive results from the server and cache the results in a store. It also delivers updates * to GraphQL queries through {@link Observable} instances. */ var ApolloClient = /** @class */ (function () { /** * Constructs an instance of {@link ApolloClient}. * * @param link The {@link ApolloLink} over which GraphQL documents will be resolved into a response. * * @param cache The initial cache to use in the data store. * * @param ssrMode Determines whether this is being run in Server Side Rendering (SSR) mode. * * @param ssrForceFetchDelay Determines the time interval before we force fetch queries for a * server side render. * * @param queryDeduplication If set to false, a query will still be sent to the server even if a query * with identical parameters (query, variables, operationName) is already in flight. * */ function ApolloClient(options) { var _this = this; this.defaultOptions = {}; this.resetStoreCallbacks = []; var link = options.link, cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, connectToDevTools = options.connectToDevTools, _c = options.queryDeduplication, queryDeduplication = _c === void 0 ? true : _c, defaultOptions = options.defaultOptions; if (!link || !cache) { throw new Error("\n In order to initialize Apollo Client, you must specify link & cache properties on the config object.\n This is part of the required upgrade when migrating from Apollo Client 1.0 to Apollo Client 2.0.\n For more information, please visit:\n https://www.apollographql.com/docs/react/basics/setup.html\n to help you get started.\n "); } // remove apollo-client supported directives this.link = supportedDirectives.concat(link); this.cache = cache; this.store = new _data_store__WEBPACK_IMPORTED_MODULE_3__["DataStore"](cache); this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0; this.queryDeduplication = queryDeduplication; this.ssrMode = ssrMode; this.defaultOptions = defaultOptions || {}; if (ssrForceFetchDelay) { setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay); } this.watchQuery = this.watchQuery.bind(this); this.query = this.query.bind(this); this.mutate = this.mutate.bind(this); this.resetStore = this.resetStore.bind(this); this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this); // Attach the client instance to window to let us be found by chrome devtools, but only in // development mode var defaultConnectToDevTools = !Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isProduction"])() && typeof window !== 'undefined' && !window.__APOLLO_CLIENT__; if (typeof connectToDevTools === 'undefined' ? defaultConnectToDevTools : connectToDevTools && typeof window !== 'undefined') { window.__APOLLO_CLIENT__ = this; } /** * Suggest installing the devtools for developers who don't have them */ if (!hasSuggestedDevtools && !Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isProduction"])()) { hasSuggestedDevtools = true; if (typeof window !== 'undefined' && window.document && window.top === window.self) { // First check if devtools is not installed if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { // Only for Chrome if (window.navigator && window.navigator.userAgent.indexOf('Chrome') > -1) { // tslint:disable-next-line console.debug('Download the Apollo DevTools ' + 'for a better development experience: ' + 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm'); } } } } this.version = _version__WEBPACK_IMPORTED_MODULE_4__["version"]; } /** * This watches the results of the query according to the options specified and * returns an {@link ObservableQuery}. We can subscribe to this {@link ObservableQuery} and * receive updated results through a GraphQL observer. * <p /><p /> * Note that this method is not an implementation of GraphQL subscriptions. Rather, * it uses Apollo's store in order to reactively deliver updates to your query results. * <p /><p /> * For example, suppose you call watchQuery on a GraphQL query that fetches an person's * first name and last name and this person has a particular object identifer, provided by * dataIdFromObject. Later, a different query fetches that same person's * first and last name and his/her first name has now changed. Then, any observers associated * with the results of the first query will be updated with a new result object. * <p /><p /> * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for * a description of store reactivity. * */ ApolloClient.prototype.watchQuery = function (options) { this.initQueryManager(); if (this.defaultOptions.watchQuery) { options = __assign({}, this.defaultOptions.watchQuery, options); } // XXX Overwriting options is probably not the best way to do this long term... if (this.disableNetworkFetches && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) { options = __assign({}, options, { fetchPolicy: 'cache-first' }); } return this.queryManager.watchQuery(options); }; /** * This resolves a single query according to the options specified and * returns a {@link Promise} which is either resolved with the resulting data * or rejected with an error. * * @param options An object of type {@link QueryOptions} that allows us to * describe how this query should be treated e.g. whether it should hit the * server at all or just resolve from the cache, etc. */ ApolloClient.prototype.query = function (options) { this.initQueryManager(); if (this.defaultOptions.query) { options = __assign({}, this.defaultOptions.query, options); } if (options.fetchPolicy === 'cache-and-network') { throw new Error('cache-and-network fetchPolicy can only be used with watchQuery'); } // XXX Overwriting options is probably not the best way to do this long // term... if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') { options = __assign({}, options, { fetchPolicy: 'cache-first' }); } return this.queryManager.query(options); }; /** * This resolves a single mutation according to the options specified and returns a * {@link Promise} which is either resolved with the resulting data or rejected with an * error. * * It takes options as an object with the following keys and values: */ ApolloClient.prototype.mutate = function (options) { this.initQueryManager(); if (this.defaultOptions.mutate) { options = __assign({}, this.defaultOptions.mutate, options); } return this.queryManager.mutate(options); }; /** * This subscribes to a graphql subscription according to the options specified and returns an * {@link Observable} which either emits received data or an error. */ ApolloClient.prototype.subscribe = function (options) { this.initQueryManager(); return this.queryManager.startGraphQLSubscription(options); }; /** * Tries to read some data from the store in the shape of the provided * GraphQL query without making a network request. This method will start at * the root query. To start at a specific id returned by `dataIdFromObject` * use `readFragment`. */ ApolloClient.prototype.readQuery = function (options) { return this.initProxy().readQuery(options); }; /** * Tries to read some data from the store in the shape of the provided * GraphQL fragment without making a network request. This method will read a * GraphQL fragment from any arbitrary id that is currently cached, unlike * `readQuery` which will only read from the root query. * * You must pass in a GraphQL document with a single fragment or a document * with multiple fragments that represent what you are reading. If you pass * in a document with multiple fragments then you must also specify a * `fragmentName`. */ ApolloClient.prototype.readFragment = function (options) { return this.initProxy().readFragment(options); }; /** * Writes some data in the shape of the provided GraphQL query directly to * the store. This method will start at the root query. To start at a a * specific id returned by `dataIdFromObject` then use `writeFragment`. */ ApolloClient.prototype.writeQuery = function (options) { var result = this.initProxy().writeQuery(options); this.queryManager.broadcastQueries(); return result; }; /** * Writes some data in the shape of the provided GraphQL fragment directly to * the store. This method will write to a GraphQL fragment from any arbitrary * id that is currently cached, unlike `writeQuery` which will only write * from the root query. * * You must pass in a GraphQL document with a single fragment or a document * with multiple fragments that represent what you are writing. If you pass * in a document with multiple fragments then you must also specify a * `fragmentName`. */ ApolloClient.prototype.writeFragment = function (options) { var result = this.initProxy().writeFragment(options); this.queryManager.broadcastQueries(); return result; }; /** * Sugar for writeQuery & writeFragment * This method will construct a query from the data object passed in. * If no id is supplied, writeData will write the data to the root. * If an id is supplied, writeData will write a fragment to the object * specified by the id in the store. * * Since you aren't passing in a query to check the shape of the data, * you must pass in an object that conforms to the shape of valid GraphQL data. */ ApolloClient.prototype.writeData = function (options) { var result = this.initProxy().writeData(options); this.queryManager.broadcastQueries(); return result; }; ApolloClient.prototype.__actionHookForDevTools = function (cb) { this.devToolsHookCb = cb; }; ApolloClient.prototype.__requestRaw = function (payload) { return Object(apollo_link__WEBPACK_IMPORTED_MODULE_0__["execute"])(this.link, payload); }; /** * This initializes the query manager that tracks queries and the cache */ ApolloClient.prototype.initQueryManager = function () { var _this = this; if (this.queryManager) return; this.queryManager = new _core_QueryManager__WEBPACK_IMPORTED_MODULE_2__["QueryManager"]({ link: this.link, store: this.store, queryDeduplication: this.queryDeduplication, ssrMode: this.ssrMode, onBroadcast: function () { if (_this.devToolsHookCb) { _this.devToolsHookCb({ action: {}, state: { queries: _this.queryManager.queryStore.getStore(), mutations: _this.queryManager.mutationStore.getStore(), }, dataWithOptimisticResults: _this.cache.extract(true), }); } }, }); }; /** * Resets your entire store by clearing out your cache and then re-executing * all of your active queries. This makes it so that you may guarantee that * there is no data left in your store from a time before you called this * method. * * `resetStore()` is useful when your user just logged out. You’ve removed the * user session, and you now want to make sure that any references to data you * might have fetched while the user session was active is gone. * * It is important to remember that `resetStore()` *will* refetch any active * queries. This means that any components that might be mounted will execute * their queries again using your network interface. If you do not want to * re-execute any queries then you should make sure to stop watching any * active queries. */ ApolloClient.prototype.resetStore = function () { var _this = this; return Promise.resolve() .then(function () { return _this.queryManager ? _this.queryManager.clearStore() : Promise.resolve(null); }) .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); }) .then(function () { return _this.queryManager && _this.queryManager.reFetchObservableQueries ? _this.queryManager.reFetchObservableQueries() : Promise.resolve(null); }); }; /** * Allows callbacks to be registered that are executed with the store is reset. * onResetStore returns an unsubscribe function for removing your registered callbacks. */ ApolloClient.prototype.onResetStore = function (cb) { var _this = this; this.resetStoreCallbacks.push(cb); return function () { _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; }); }; }; /** * Refetches all of your active queries. * * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage * * It is important to remember that `reFetchObservableQueries()` *will* refetch any active * queries. This means that any components that might be mounted will execute * their queries again using your network interface. If you do not want to * re-execute any queries then you should make sure to stop watching any * active queries. * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching. */ ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) { return this.queryManager ? this.queryManager.reFetchObservableQueries(includeStandby) : Promise.resolve(null); }; /** * Exposes the cache's complete state, in a serializable format for later restoration. */ ApolloClient.prototype.extract = function (optimistic) { return this.initProxy().extract(optimistic); }; /** * Replaces existing state in the cache (if any) with the values expressed by * `serializedState`. * * Called when hydrating a cache (server side rendering, or offline storage), * and also (potentially) during hot reloads. */ ApolloClient.prototype.restore = function (serializedState) { return this.initProxy().restore(serializedState); }; /** * Initializes a data proxy for this client instance if one does not already * exist and returns either a previously initialized proxy instance or the * newly initialized instance. */ ApolloClient.prototype.initProxy = function () { if (!this.proxy) { this.initQueryManager(); this.proxy = this.cache; } return this.proxy; }; return ApolloClient; }()); /* harmony default export */ __webpack_exports__["default"] = (ApolloClient); //# sourceMappingURL=ApolloClient.js.map /***/ }), /* 323 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DedupLink", function() { return DedupLink; }); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); /* * Expects context to contain the forceFetch field if no dedup */ var DedupLink = /** @class */ (function (_super) { __extends(DedupLink, _super); function DedupLink() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.inFlightRequestObservables = new Map(); _this.subscribers = new Map(); return _this; } DedupLink.prototype.request = function (operation, forward) { var _this = this; // sometimes we might not want to deduplicate a request, for example when we want to force fetch it. if (operation.getContext().forceFetch) { return forward(operation); } var key = operation.toKey(); var cleanup = function (key) { _this.inFlightRequestObservables.delete(key); var prev = _this.subscribers.get(key); return prev; }; if (!this.inFlightRequestObservables.get(key)) { // this is a new request, i.e. we haven't deduplicated it yet // call the next link var singleObserver_1 = forward(operation); var subscription_1; var sharedObserver = new apollo_link__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (observer) { // this will still be called by each subscriber regardless of // deduplication status var prev = _this.subscribers.get(key); if (!prev) prev = { next: [], error: [], complete: [] }; _this.subscribers.set(key, { next: prev.next.concat([observer.next.bind(observer)]), error: prev.error.concat([observer.error.bind(observer)]), complete: prev.complete.concat([observer.complete.bind(observer)]), }); if (!subscription_1) { subscription_1 = singleObserver_1.subscribe({ next: function (result) { var prev = cleanup(key); _this.subscribers.delete(key); if (prev) { prev.next.forEach(function (next) { return next(result); }); prev.complete.forEach(function (complete) { return complete(); }); } }, error: function (error) { var prev = cleanup(key); _this.subscribers.delete(key); if (prev) prev.error.forEach(function (err) { return err(error); }); }, }); } return function () { if (subscription_1) subscription_1.unsubscribe(); _this.inFlightRequestObservables.delete(key); }; }); this.inFlightRequestObservables.set(key, sharedObserver); } // return shared Observable return this.inFlightRequestObservables.get(key); }; return DedupLink; }(apollo_link__WEBPACK_IMPORTED_MODULE_0__["ApolloLink"])); //# sourceMappingURL=dedupLink.js.map /***/ }), /* 324 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BatchHttpLink", function() { return BatchHttpLink; }); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); /* harmony import */ var apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(678); /* harmony import */ var apollo_link_batch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(679); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __rest = (undefined && undefined.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; }; /** * Transforms Operation for into HTTP results. * context can include the headers property, which will be passed to the fetch function */ var BatchHttpLink = /** @class */ (function (_super) { __extends(BatchHttpLink, _super); function BatchHttpLink(fetchParams) { if (fetchParams === void 0) { fetchParams = {}; } var _this = _super.call(this) || this; var _a = fetchParams.uri, uri = _a === void 0 ? '/graphql' : _a, // use default global fetch is nothing passed in fetcher = fetchParams.fetch, includeExtensions = fetchParams.includeExtensions, batchInterval = fetchParams.batchInterval, batchMax = fetchParams.batchMax, batchKey = fetchParams.batchKey, requestOptions = __rest(fetchParams, ["uri", "fetch", "includeExtensions", "batchInterval", "batchMax", "batchKey"]); // dev warnings to ensure fetch is present Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["checkFetcher"])(fetcher); //fetcher is set here rather than the destructuring to ensure fetch is //declared before referencing it. Reference in the destructuring would cause //a ReferenceError if (!fetcher) { fetcher = fetch; } var linkConfig = { http: { includeExtensions: includeExtensions }, options: requestOptions.fetchOptions, credentials: requestOptions.credentials, headers: requestOptions.headers, }; _this.batchInterval = batchInterval || 10; _this.batchMax = batchMax || 10; var batchHandler = function (operations) { var chosenURI = Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["selectURI"])(operations[0], uri); var context = operations[0].getContext(); var contextConfig = { http: context.http, options: context.fetchOptions, credentials: context.credentials, headers: context.headers, }; //uses fallback, link, and then context to build options var optsAndBody = operations.map(function (operation) { return Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["selectHttpOptionsAndBody"])(operation, apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["fallbackHttpConfig"], linkConfig, contextConfig); }); var body = optsAndBody.map(function (_a) { var body = _a.body; return body; }); var options = optsAndBody[0].options; // There's no spec for using GET with batches. if (options.method === 'GET') { return Object(apollo_link__WEBPACK_IMPORTED_MODULE_0__["fromError"])(new Error('apollo-link-batch-http does not support GET requests')); } try { options.body = Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["serializeFetchParameter"])(body, 'Payload'); } catch (parseError) { return Object(apollo_link__WEBPACK_IMPORTED_MODULE_0__["fromError"])(parseError); } var controller; if (!options.signal) { var _a = Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["createSignalIfSupported"])(), _controller = _a.controller, signal = _a.signal; controller = _controller; if (controller) options.signal = signal; } return new apollo_link__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (observer) { // the raw response is attached to the context in the BatchingLink fetcher(chosenURI, options) .then(Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["parseAndCheckHttpResponse"])(operations)) .then(function (result) { // we have data and can send it to back up the link chain observer.next(result); observer.complete(); return result; }) .catch(function (err) { // fetch was cancelled so its already been cleaned up in the unsubscribe if (err.name === 'AbortError') return; // if it is a network error, BUT there is graphql result info // fire the next observer before calling error // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networErrors` // to pass to UI // this should only happen if we *also* have data as part of the response key per // the spec if (err.result && err.result.errors && err.result.data) { // if we dont' call next, the UI can only show networkError because AC didn't // get andy graphqlErrors // this is graphql execution result info (i.e errors and possibly data) // this is because there is no formal spec how errors should translate to // http status codes. So an auth error (401) could have both data // from a public field, errors from a private field, and a status of 401 // { // user { // this will have errors // firstName // } // products { // this is public so will have data // cost // } // } // // the result of above *could* look like this: // { // data: { products: [{ cost: "$10" }] }, // errors: [{ // message: 'your session has timed out', // path: [] // }] // } // status code of above would be a 401 // in the UI you want to show data where you can, errors as data where you can // and use correct http status codes observer.next(err.result); } observer.error(err); }); return function () { // XXX support canceling this request // https://developers.google.com/web/updates/2017/09/abortable-fetch if (controller) controller.abort(); }; }); }; batchKey = batchKey || (function (operation) { var context = operation.getContext(); var contextConfig = { http: context.http, options: context.fetchOptions, credentials: context.credentials, headers: context.headers, }; //may throw error if config not serializable return Object(apollo_link_http_common__WEBPACK_IMPORTED_MODULE_1__["selectURI"])(operation, uri) + JSON.stringify(contextConfig); }); _this.batcher = new apollo_link_batch__WEBPACK_IMPORTED_MODULE_2__["BatchLink"]({ batchInterval: _this.batchInterval, batchMax: _this.batchMax, batchKey: batchKey, batchHandler: batchHandler, }); return _this; } BatchHttpLink.prototype.request = function (operation) { return this.batcher.request(operation); }; return BatchHttpLink; }(apollo_link__WEBPACK_IMPORTED_MODULE_0__["ApolloLink"])); //# sourceMappingURL=batchHttpLink.js.map /***/ }), /* 325 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BatchLink", function() { return BatchLink; }); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); /* harmony import */ var _batching__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(205); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OperationBatcher", function() { return _batching__WEBPACK_IMPORTED_MODULE_1__["OperationBatcher"]; }); var __extends = (undefined && undefined.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var BatchLink = /** @class */ (function (_super) { __extends(BatchLink, _super); function BatchLink(fetchParams) { if (fetchParams === void 0) { fetchParams = {}; } var _this = _super.call(this) || this; var _a = fetchParams.batchInterval, batchInterval = _a === void 0 ? 10 : _a, _b = fetchParams.batchMax, batchMax = _b === void 0 ? 0 : _b, _c = fetchParams.batchHandler, batchHandler = _c === void 0 ? function () { return null; } : _c, _d = fetchParams.batchKey, batchKey = _d === void 0 ? function () { return ''; } : _d; _this.batcher = new _batching__WEBPACK_IMPORTED_MODULE_1__["OperationBatcher"]({ batchInterval: batchInterval, batchMax: batchMax, batchHandler: batchHandler, batchKey: batchKey, }); //make this link terminating if (fetchParams.batchHandler.length <= 1) { _this.request = function (operation) { return _this.batcher.enqueueRequest({ operation: operation }); }; } return _this; } BatchLink.prototype.request = function (operation, forward) { return this.batcher.enqueueRequest({ operation: operation, forward: forward, }); }; return BatchLink; }(apollo_link__WEBPACK_IMPORTED_MODULE_0__["ApolloLink"])); //# sourceMappingURL=batchLink.js.map /***/ }), /* 326 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApolloCache", function() { return ApolloCache; }); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(108); /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(683); var ApolloCache = (function () { function ApolloCache() { } ApolloCache.prototype.transformDocument = function (document) { return document; }; ApolloCache.prototype.transformForLink = function (document) { return document; }; ApolloCache.prototype.readQuery = function (options, optimistic) { if (optimistic === void 0) { optimistic = false; } return this.read({ query: options.query, variables: options.variables, optimistic: optimistic, }); }; ApolloCache.prototype.readFragment = function (options, optimistic) { if (optimistic === void 0) { optimistic = false; } return this.read({ query: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getFragmentQueryDocument"])(options.fragment, options.fragmentName), variables: options.variables, rootId: options.id, optimistic: optimistic, }); }; ApolloCache.prototype.writeQuery = function (options) { this.write({ dataId: 'ROOT_QUERY', result: options.data, query: options.query, variables: options.variables, }); }; ApolloCache.prototype.writeFragment = function (options) { this.write({ dataId: options.id, result: options.data, variables: options.variables, query: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getFragmentQueryDocument"])(options.fragment, options.fragmentName), }); }; ApolloCache.prototype.writeData = function (_a) { var id = _a.id, data = _a.data; if (typeof id !== 'undefined') { var typenameResult = null; try { typenameResult = this.read({ rootId: id, optimistic: false, query: _utils__WEBPACK_IMPORTED_MODULE_1__["justTypenameQuery"], }); } catch (e) { } var __typename = (typenameResult && typenameResult.__typename) || '__ClientData'; var dataToWrite = Object.assign({ __typename: __typename }, data); this.writeFragment({ id: id, fragment: Object(_utils__WEBPACK_IMPORTED_MODULE_1__["fragmentFromPojo"])(dataToWrite, __typename), data: dataToWrite, }); } else { this.writeQuery({ query: Object(_utils__WEBPACK_IMPORTED_MODULE_1__["queryFromPojo"])(data), data: data }); } }; return ApolloCache; }()); //# sourceMappingURL=cache.js.map /***/ }), /* 327 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveInfoFromField", function() { return getDirectiveInfoFromField; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shouldInclude", function() { return shouldInclude; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flattenSelections", function() { return flattenSelections; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectiveNames", function() { return getDirectiveNames; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasDirectives", function() { return hasDirectives; }); /* harmony import */ var _storeUtils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(145); function getDirectiveInfoFromField(field, variables) { if (field.directives && field.directives.length) { var directiveObj_1 = {}; field.directives.forEach(function (directive) { directiveObj_1[directive.name.value] = Object(_storeUtils__WEBPACK_IMPORTED_MODULE_0__["argumentsObjectFromField"])(directive, variables); }); return directiveObj_1; } return null; } function shouldInclude(selection, variables) { if (variables === void 0) { variables = {}; } if (!selection.directives) { return true; } var res = true; selection.directives.forEach(function (directive) { if (directive.name.value !== 'skip' && directive.name.value !== 'include') { return; } var directiveArguments = directive.arguments || []; var directiveName = directive.name.value; if (directiveArguments.length !== 1) { throw new Error("Incorrect number of arguments for the @" + directiveName + " directive."); } var ifArgument = directiveArguments[0]; if (!ifArgument.name || ifArgument.name.value !== 'if') { throw new Error("Invalid argument for the @" + directiveName + " directive."); } var ifValue = directiveArguments[0].value; var evaledValue = false; if (!ifValue || ifValue.kind !== 'BooleanValue') { if (ifValue.kind !== 'Variable') { throw new Error("Argument for the @" + directiveName + " directive must be a variable or a boolean value."); } else { evaledValue = variables[ifValue.name.value]; if (evaledValue === undefined) { throw new Error("Invalid variable referenced in @" + directiveName + " directive."); } } } else { evaledValue = ifValue.value; } if (directiveName === 'skip') { evaledValue = !evaledValue; } if (!evaledValue) { res = false; } }); return res; } function flattenSelections(selection) { if (!selection.selectionSet || !(selection.selectionSet.selections.length > 0)) return [selection]; return [selection].concat(selection.selectionSet.selections .map(function (selectionNode) { return [selectionNode].concat(flattenSelections(selectionNode)); }) .reduce(function (selections, selected) { return selections.concat(selected); }, [])); } function getDirectiveNames(doc) { var directiveNames = doc.definitions .filter(function (definition) { return definition.selectionSet && definition.selectionSet.selections; }) .map(function (x) { return flattenSelections(x); }) .reduce(function (selections, selected) { return selections.concat(selected); }, []) .filter(function (selection) { return selection.directives && selection.directives.length > 0; }) .map(function (selection) { return selection.directives; }) .reduce(function (directives, directive) { return directives.concat(directive); }, []) .map(function (directive) { return directive.name.value; }); return directiveNames; } function hasDirectives(names, doc) { return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; }); } //# sourceMappingURL=directives.js.map /***/ }), /* 328 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFragmentQueryDocument", function() { return getFragmentQueryDocument; }); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function getFragmentQueryDocument(document, fragmentName) { var actualFragmentName = fragmentName; var fragments = []; document.definitions.forEach(function (definition) { if (definition.kind === 'OperationDefinition') { throw new Error("Found a " + definition.operation + " operation" + (definition.name ? " named '" + definition.name.value + "'" : '') + ". " + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.'); } if (definition.kind === 'FragmentDefinition') { fragments.push(definition); } }); if (typeof actualFragmentName === 'undefined') { if (fragments.length !== 1) { throw new Error("Found " + fragments.length + " fragments. `fragmentName` must be provided when there is not exactly 1 fragment."); } actualFragmentName = fragments[0].name.value; } var query = __assign({}, document, { definitions: [ { kind: 'OperationDefinition', operation: 'query', selectionSet: { kind: 'SelectionSet', selections: [ { kind: 'FragmentSpread', name: { kind: 'Name', value: actualFragmentName, }, }, ], }, } ].concat(document.definitions) }); return query; } //# sourceMappingURL=fragments.js.map /***/ }), /* 329 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeDirectivesFromDocument", function() { return removeDirectivesFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addTypenameToDocument", function() { return addTypenameToDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeConnectionDirectiveFromDocument", function() { return removeConnectionDirectiveFromDocument; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDirectivesFromDocument", function() { return getDirectivesFromDocument; }); /* harmony import */ var _util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(209); /* harmony import */ var _getFromAST__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(207); var TYPENAME_FIELD = { kind: 'Field', name: { kind: 'Name', value: '__typename', }, }; function isNotEmpty(op, fragments) { return (op.selectionSet.selections.filter(function (selectionSet) { return !(selectionSet && selectionSet.kind === 'FragmentSpread' && !isNotEmpty(fragments[selectionSet.name.value], fragments)); }).length > 0); } function getDirectiveMatcher(directives) { return function directiveMatcher(directive) { return directives.some(function (dir) { if (dir.name && dir.name === directive.name.value) return true; if (dir.test && dir.test(directive)) return true; return false; }); }; } function addTypenameToSelectionSet(selectionSet, isRoot) { if (isRoot === void 0) { isRoot = false; } if (selectionSet.selections) { if (!isRoot) { var alreadyHasThisField = selectionSet.selections.some(function (selection) { return (selection.kind === 'Field' && selection.name.value === '__typename'); }); if (!alreadyHasThisField) { selectionSet.selections.push(TYPENAME_FIELD); } } selectionSet.selections.forEach(function (selection) { if (selection.kind === 'Field') { if (selection.name.value.lastIndexOf('__', 0) !== 0 && selection.selectionSet) { addTypenameToSelectionSet(selection.selectionSet); } } else if (selection.kind === 'InlineFragment') { if (selection.selectionSet) { addTypenameToSelectionSet(selection.selectionSet); } } }); } } function removeDirectivesFromSelectionSet(directives, selectionSet) { if (!selectionSet.selections) return selectionSet; var agressiveRemove = directives.some(function (dir) { return dir.remove; }); selectionSet.selections = selectionSet.selections .map(function (selection) { if (selection.kind !== 'Field' || !selection || !selection.directives) return selection; var directiveMatcher = getDirectiveMatcher(directives); var remove; selection.directives = selection.directives.filter(function (directive) { var shouldKeep = !directiveMatcher(directive); if (!remove && !shouldKeep && agressiveRemove) remove = true; return shouldKeep; }); return remove ? null : selection; }) .filter(function (x) { return !!x; }); selectionSet.selections.forEach(function (selection) { if ((selection.kind === 'Field' || selection.kind === 'InlineFragment') && selection.selectionSet) { removeDirectivesFromSelectionSet(directives, selection.selectionSet); } }); return selectionSet; } function removeDirectivesFromDocument(directives, doc) { var docClone = Object(_util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(doc); docClone.definitions.forEach(function (definition) { removeDirectivesFromSelectionSet(directives, definition.selectionSet); }); var operation = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getOperationDefinitionOrDie"])(docClone); var fragments = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["createFragmentMap"])(Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getFragmentDefinitions"])(docClone)); return isNotEmpty(operation, fragments) ? docClone : null; } function addTypenameToDocument(doc) { Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["checkDocument"])(doc); var docClone = Object(_util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(doc); docClone.definitions.forEach(function (definition) { var isRoot = definition.kind === 'OperationDefinition'; addTypenameToSelectionSet(definition.selectionSet, isRoot); }); return docClone; } var connectionRemoveConfig = { test: function (directive) { var willRemove = directive.name.value === 'connection'; if (willRemove) { if (!directive.arguments || !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) { console.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.'); } } return willRemove; }, }; function removeConnectionDirectiveFromDocument(doc) { Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["checkDocument"])(doc); return removeDirectivesFromDocument([connectionRemoveConfig], doc); } function hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } if (!(selectionSet && selectionSet.selections)) { return false; } var matchedSelections = selectionSet.selections.filter(function (selection) { return hasDirectivesInSelection(directives, selection, nestedCheck); }); return matchedSelections.length > 0; } function hasDirectivesInSelection(directives, selection, nestedCheck) { if (nestedCheck === void 0) { nestedCheck = true; } if (selection.kind !== 'Field' || !selection) { return true; } if (!selection.directives) { return false; } var directiveMatcher = getDirectiveMatcher(directives); var matchedDirectives = selection.directives.filter(directiveMatcher); return (matchedDirectives.length > 0 || (nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck))); } function getDirectivesFromSelectionSet(directives, selectionSet) { selectionSet.selections = selectionSet.selections .filter(function (selection) { return hasDirectivesInSelection(directives, selection, true); }) .map(function (selection) { if (hasDirectivesInSelection(directives, selection, false)) { return selection; } if ((selection.kind === 'Field' || selection.kind === 'InlineFragment') && selection.selectionSet) { selection.selectionSet = getDirectivesFromSelectionSet(directives, selection.selectionSet); } return selection; }); return selectionSet; } function getDirectivesFromDocument(directives, doc, includeAllFragments) { if (includeAllFragments === void 0) { includeAllFragments = false; } Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["checkDocument"])(doc); var docClone = Object(_util_cloneDeep__WEBPACK_IMPORTED_MODULE_0__["cloneDeep"])(doc); docClone.definitions = docClone.definitions.map(function (definition) { if ((definition.kind === 'OperationDefinition' || (definition.kind === 'FragmentDefinition' && !includeAllFragments)) && definition.selectionSet) { definition.selectionSet = getDirectivesFromSelectionSet(directives, definition.selectionSet); } return definition; }); var operation = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getOperationDefinitionOrDie"])(docClone); var fragments = Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["createFragmentMap"])(Object(_getFromAST__WEBPACK_IMPORTED_MODULE_1__["getFragmentDefinitions"])(docClone)); return isNotEmpty(operation, fragments) ? docClone : null; } //# sourceMappingURL=transform.js.map /***/ }), /* 330 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tryFunctionOrLogError", function() { return tryFunctionOrLogError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "graphQLResultHasError", function() { return graphQLResultHasError; }); function tryFunctionOrLogError(f) { try { return f(); } catch (e) { if (console.error) { console.error(e); } } } function graphQLResultHasError(result) { return result.errors && result.errors.length; } //# sourceMappingURL=errorHandling.js.map /***/ }), /* 331 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEqual", function() { return isEqual; }); function isEqual(a, b) { if (a === b) { return true; } if (a instanceof Date && b instanceof Date) { return a.getTime() === b.getTime(); } if (a != null && typeof a === 'object' && b != null && typeof b === 'object') { for (var key in a) { if (Object.prototype.hasOwnProperty.call(a, key)) { if (!Object.prototype.hasOwnProperty.call(b, key)) { return false; } if (!isEqual(a[key], b[key])) { return false; } } } for (var key in b) { if (Object.prototype.hasOwnProperty.call(b, key) && !Object.prototype.hasOwnProperty.call(a, key)) { return false; } } return true; } return false; } //# sourceMappingURL=isEqual.js.map /***/ }), /* 332 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "maybeDeepFreeze", function() { return maybeDeepFreeze; }); /* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(146); function deepFreeze(o) { Object.freeze(o); Object.getOwnPropertyNames(o).forEach(function (prop) { if (o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) { deepFreeze(o[prop]); } }); return o; } function maybeDeepFreeze(obj) { if (Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isDevelopment"])() || Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isTest"])()) { var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string'; if (!symbolIsPolyfilled) { return deepFreeze(obj); } } return obj; } //# sourceMappingURL=maybeDeepFreeze.js.map /***/ }), /* 333 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "warnOnceInDevelopment", function() { return warnOnceInDevelopment; }); /* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(146); var haveWarned = Object.create({}); function warnOnceInDevelopment(msg, type) { if (type === void 0) { type = 'warn'; } if (Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isProduction"])()) { return; } if (!haveWarned[msg]) { if (!Object(_environment__WEBPACK_IMPORTED_MODULE_0__["isTest"])()) { haveWarned[msg] = true; } switch (type) { case 'error': console.error(msg); break; default: console.warn(msg); } } } //# sourceMappingURL=warnOnce.js.map /***/ }), /* 334 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stripSymbols", function() { return stripSymbols; }); function stripSymbols(data) { return JSON.parse(JSON.stringify(data)); } //# sourceMappingURL=stripSymbols.js.map /***/ }), /* 335 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(336); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Cache", function() { return _Cache__WEBPACK_IMPORTED_MODULE_0__["Cache"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 336 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Cache", function() { return Cache; }); var Cache; (function (Cache) { })(Cache || (Cache = {})); //# sourceMappingURL=Cache.js.map /***/ }), /* 337 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(module) { var fakeNullFiber = new (function Fiber(){}); var localKey = "_optimism_local"; function getCurrentFiber() { return fakeNullFiber; } if (true) { try { var Fiber = module["eriuqer".split("").reverse().join("")]("fibers"); // If we were able to require fibers, redefine the getCurrentFiber // function so that it has a chance to return Fiber.current. getCurrentFiber = function () { return Fiber.current || fakeNullFiber; }; } catch (e) {} } // Returns an object unique to Fiber.current, if fibers are enabled. // This object is used for Fiber-local storage in ./entry.js. exports.get = function () { var fiber = getCurrentFiber(); return fiber[localKey] || (fiber[localKey] = Object.create(null)); }; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(93)(module))) /***/ }), /* 338 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 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); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; 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; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; 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); 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); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result.default = mod; return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } /***/ }), /* 339 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.createRetryLink = exports.waitForInFlightQueries = void 0; var _apolloClient = _interopRequireDefault(__webpack_require__(137)); var _apolloLinkRetry = __webpack_require__(694); var waitForInFlightQueries = function waitForInFlightQueries(apolloClient) { if (!apolloClient || !apolloClient.queryManager) { return Promise.resolve(null); } var queries = apolloClient.queryManager.queries; var promises = Array.from(queries.values()).reduce(function (memo, _ref) { var observableQuery = _ref.observableQuery; var loading = observableQuery && observableQuery.currentResult().loading || false; return loading ? memo.concat(observableQuery.result()) : memo; }, []); return Promise.all(promises).then(function () { return null; }); }; exports.waitForInFlightQueries = waitForInFlightQueries; var createRetryLink = function createRetryLink(maxAttempts) { return new _apolloLinkRetry.RetryLink({ attempts: function attempts(count, operation, error) { if (count >= maxAttempts) { return false; } // if the request fails, let's try it again because it was probably // a temporary issue. if (error && error.statusCode >= 500) { return true; } // if CORS fails, it means we used a stale token so we can try it again // with the correct one if (error && error.result && error.result.code === 'BadCrossOriginRequest') { return true; } return false; }, delay: function delay(count) { // delay in ms return count * 500 + Math.random() * 500; } }); }; exports.createRetryLink = createRetryLink; /***/ }), /* 340 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 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); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; 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; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; 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); 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); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result.default = mod; return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } /***/ }), /* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _classCallCheck2 = _interopRequireDefault2(__webpack_require__(44)); var _createClass2 = _interopRequireDefault2(__webpack_require__(149)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); var _merge = _interopRequireDefault(__webpack_require__(697)); var _tinycolor = _interopRequireDefault(__webpack_require__(704)); var _breakpointsConfig = __webpack_require__(705); var _breakpointIds = __webpack_require__(349); var STYLE_MAP_ATTR = 'data-wf-style-map'; /** * In order of application, where each query values * overrides the media queries above it. */ var orderedBreakpointIds = [_breakpointIds.BREAKPOINT_ID_MAIN, _breakpointIds.BREAKPOINT_ID_LARGE, _breakpointIds.BREAKPOINT_ID_XL, _breakpointIds.BREAKPOINT_ID_XXL, _breakpointIds.BREAKPOINT_ID_MEDIUM, _breakpointIds.BREAKPOINT_ID_SMALL, _breakpointIds.BREAKPOINT_ID_TINY]; var ORDERED_MEDIA_QUERIES = orderedBreakpointIds.map(function (breakpointId) { var config = _breakpointsConfig.LARGER_BREAKPOINTS_CONFIG[breakpointId]; var prop; var value; if ('minWidth' in config) { prop = 'min-width'; value = config.minWidth; } if ('maxWidth' in config) { prop = 'max-width'; value = config.maxWidth; } if (prop === undefined || value === undefined) { throw new Error('Bad breakpoint config, expected either "minWidth" or "maxWidth".'); } return { name: breakpointId, query: "(".concat(prop, ": ").concat(value, "px)") }; }); var StyleMapObserver = /*#__PURE__*/ function () { function StyleMapObserver(element, options) { var _this = this; (0, _classCallCheck2["default"])(this, StyleMapObserver); (0, _defineProperty2["default"])(this, "styles", undefined); (0, _defineProperty2["default"])(this, "observer", undefined); (0, _defineProperty2["default"])(this, "mediaQueries", []); (0, _defineProperty2["default"])(this, "options", { onChange: function onChange() {} }); (0, _defineProperty2["default"])(this, "dispatch", function () { _this.options.onChange(_this.getAppliedStyles()); }); (0, _defineProperty2["default"])(this, "handleMutationObserver", function (mutationList) { mutationList.forEach(function (mutation) { if (mutation.type === 'attributes' && mutation.attributeName === STYLE_MAP_ATTR && mutation.target.hasAttribute(STYLE_MAP_ATTR)) { var styleMapJSON = mutation.target.getAttribute(STYLE_MAP_ATTR); if (styleMapJSON) { _this.setStylesFromJSON(styleMapJSON); _this.dispatch(); } } }); }); this.options = options; if (element.hasAttribute(STYLE_MAP_ATTR)) { var styleMapJSON = element.getAttribute(STYLE_MAP_ATTR); if (styleMapJSON) { this.setStylesFromJSON(styleMapJSON); var doc = element.ownerDocument; var win = doc.defaultView; this.mediaQueries = ORDERED_MEDIA_QUERIES.map(function (mq) { return (0, _extends2["default"])({}, mq, { listener: win.matchMedia(mq.query) }); }); this.observer = new win.MutationObserver(this.handleMutationObserver); this.observer.observe(element, { attributes: true }); this.mediaQueries.forEach(function (_ref) { var listener = _ref.listener; listener.addListener(_this.dispatch); }); this.dispatch(); } } } (0, _createClass2["default"])(StyleMapObserver, [{ key: "setStylesFromJSON", value: function setStylesFromJSON(styleMapJSON) { try { this.styles = JSON.parse(styleMapJSON); } catch (e) { this.styles = {}; } } }, { key: "getAppliedStyles", value: function getAppliedStyles() { if (!this.styles) { return; } var styles = this.styles; var appliedStyles = this.mediaQueries.reduce(function (stylesMap, _ref2) { var listener = _ref2.listener, name = _ref2.name; return listener.matches ? (0, _merge["default"])(stylesMap, styles[name]) : stylesMap; }, {}); return appliedStyles; } }, { key: "destroy", value: function destroy() { var _this2 = this; if (this.observer) { this.observer.disconnect(); } this.mediaQueries.forEach(function (_ref3) { var listener = _ref3.listener; listener.removeListener(_this2.dispatch); }); } }]); return StyleMapObserver; }(); exports["default"] = StyleMapObserver; (0, _defineProperty2["default"])(StyleMapObserver, "appliedStylesToStripeElementStyles", function (appliedStylesMap) { if (!appliedStylesMap) { return {}; } // Need to update color values to rgba because Stripe doesn't accept hsla format var appliedStylesMapWithUpdatedColorValues = Object.keys(appliedStylesMap).reduce(function (updatedStyles, styleKey) { var colorVal = appliedStylesMap[styleKey].color; var textShadowVal = appliedStylesMap[styleKey].textShadow && appliedStylesMap[styleKey].textShadow.split(/(?=hsla)/); updatedStyles[styleKey] = appliedStylesMap[styleKey]; // Update color to rgba string if (colorVal) { updatedStyles[styleKey].color = (0, _tinycolor["default"])(colorVal).toRgbString(); } // Want to update only if hsla val is within textShaodw string if (textShadowVal && textShadowVal.length > 1) { updatedStyles[styleKey].textShadow = textShadowVal[0] + (0, _tinycolor["default"])(textShadowVal[1]).toRgbString(); } return updatedStyles; }, {}); var styles = (0, _extends2["default"])({}, appliedStylesMapWithUpdatedColorValues.noPseudo, { ':hover': appliedStylesMapWithUpdatedColorValues.hover, ':focus': appliedStylesMapWithUpdatedColorValues.focus, '::placeholder': appliedStylesMapWithUpdatedColorValues.placeholder }); return { base: styles, invalid: styles, empty: styles, complete: styles }; }); /***/ }), /* 342 */ /***/ (function(module, exports, __webpack_require__) { var Stack = __webpack_require__(120), assignMergeValue = __webpack_require__(343), baseFor = __webpack_require__(274), baseMergeDeep = __webpack_require__(698), isObject = __webpack_require__(18), keysIn = __webpack_require__(98), safeGet = __webpack_require__(347); /** * The base implementation of `_.merge` without support for multiple sources. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {number} srcIndex The index of `source`. * @param {Function} [customizer] The function to customize merged values. * @param {Object} [stack] Tracks traversed source values and their merged * counterparts. */ function baseMerge(object, source, srcIndex, customizer, stack) { if (object === source) { return; } baseFor(source, function(srcValue, key) { stack || (stack = new Stack); if (isObject(srcValue)) { baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); } else { var newValue = customizer ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) : undefined; if (newValue === undefined) { newValue = srcValue; } assignMergeValue(object, key, newValue); } }, keysIn); } module.exports = baseMerge; /***/ }), /* 343 */ /***/ (function(module, exports, __webpack_require__) { var baseAssignValue = __webpack_require__(97), eq = __webpack_require__(91); /** * This function is like `assignValue` except that it doesn't assign * `undefined` values. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function assignMergeValue(object, key, value) { if ((value !== undefined && !eq(object[key], value)) || (value === undefined && !(key in object))) { baseAssignValue(object, key, value); } } module.exports = assignMergeValue; /***/ }), /* 344 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(28); /** Detect free variable `exports`. */ var freeExports = true && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; /** Built-in value references. */ var Buffer = moduleExports ? root.Buffer : undefined, allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; /** * Creates a clone of `buffer`. * * @private * @param {Buffer} buffer The buffer to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Buffer} Returns the cloned buffer. */ function cloneBuffer(buffer, isDeep) { if (isDeep) { return buffer.slice(); } var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); buffer.copy(result); return result; } module.exports = cloneBuffer; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(93)(module))) /***/ }), /* 345 */ /***/ (function(module, exports, __webpack_require__) { var cloneArrayBuffer = __webpack_require__(221); /** * Creates a clone of `typedArray`. * * @private * @param {Object} typedArray The typed array to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the cloned typed array. */ function cloneTypedArray(typedArray, isDeep) { var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); } module.exports = cloneTypedArray; /***/ }), /* 346 */ /***/ (function(module, exports, __webpack_require__) { var baseCreate = __webpack_require__(133), getPrototype = __webpack_require__(132), isPrototype = __webpack_require__(128); /** * Initializes an object clone. * * @private * @param {Object} object The object to clone. * @returns {Object} Returns the initialized clone. */ function initCloneObject(object) { return (typeof object.constructor == 'function' && !isPrototype(object)) ? baseCreate(getPrototype(object)) : {}; } module.exports = initCloneObject; /***/ }), /* 347 */ /***/ (function(module, exports) { /** * Gets the value at `key`, unless `key` is "__proto__" or "constructor". * * @private * @param {Object} object The object to query. * @param {string} key The key of the property to get. * @returns {*} Returns the property value. */ function safeGet(object, key) { if (key === 'constructor' && typeof object[key] === 'function') { return; } if (key == '__proto__') { return; } return object[key]; } module.exports = safeGet; /***/ }), /* 348 */ /***/ (function(module, exports, __webpack_require__) { var baseRest = __webpack_require__(702), isIterateeCall = __webpack_require__(703); /** * Creates a function like `_.assign`. * * @private * @param {Function} assigner The function to assign values. * @returns {Function} Returns the new assigner function. */ function createAssigner(assigner) { return baseRest(function(object, sources) { var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : undefined, guard = length > 2 ? sources[2] : undefined; customizer = (assigner.length > 3 && typeof customizer == 'function') ? (length--, customizer) : undefined; if (guard && isIterateeCall(sources[0], sources[1], guard)) { customizer = length < 3 ? undefined : customizer; length = 1; } object = Object(object); while (++index < length) { var source = sources[index]; if (source) { assigner(object, source, index, customizer); } } return object; }); } module.exports = createAssigner; /***/ }), /* 349 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DEFAULT_BREAKPOINT_IDS = exports.BREAKPOINT_ID_TINY = exports.BREAKPOINT_ID_SMALL = exports.BREAKPOINT_ID_MEDIUM = exports.BREAKPOINT_ID_MAIN = exports.BREAKPOINT_ID_LARGE = exports.BREAKPOINT_ID_XL = exports.BREAKPOINT_ID_XXL = void 0; var BREAKPOINT_ID_XXL = 'xxl'; exports.BREAKPOINT_ID_XXL = BREAKPOINT_ID_XXL; var BREAKPOINT_ID_XL = 'xl'; exports.BREAKPOINT_ID_XL = BREAKPOINT_ID_XL; var BREAKPOINT_ID_LARGE = 'large'; exports.BREAKPOINT_ID_LARGE = BREAKPOINT_ID_LARGE; var BREAKPOINT_ID_MAIN = 'main'; exports.BREAKPOINT_ID_MAIN = BREAKPOINT_ID_MAIN; var BREAKPOINT_ID_MEDIUM = 'medium'; exports.BREAKPOINT_ID_MEDIUM = BREAKPOINT_ID_MEDIUM; var BREAKPOINT_ID_SMALL = 'small'; exports.BREAKPOINT_ID_SMALL = BREAKPOINT_ID_SMALL; var BREAKPOINT_ID_TINY = 'tiny'; exports.BREAKPOINT_ID_TINY = BREAKPOINT_ID_TINY; var DEFAULT_BREAKPOINT_IDS = [BREAKPOINT_ID_MAIN, BREAKPOINT_ID_MEDIUM, BREAKPOINT_ID_SMALL, BREAKPOINT_ID_TINY]; exports.DEFAULT_BREAKPOINT_IDS = DEFAULT_BREAKPOINT_IDS; /***/ }), /* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = invariant; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function invariant(condition, message) { /* istanbul ignore else */ if (!condition) { throw new Error(message); } } /***/ }), /* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _GraphQLError = __webpack_require__(223); Object.defineProperty(exports, 'GraphQLError', { enumerable: true, get: function get() { return _GraphQLError.GraphQLError; } }); var _syntaxError = __webpack_require__(729); Object.defineProperty(exports, 'syntaxError', { enumerable: true, get: function get() { return _syntaxError.syntaxError; } }); var _locatedError = __webpack_require__(730); Object.defineProperty(exports, 'locatedError', { enumerable: true, get: function get() { return _locatedError.locatedError; } }); var _printError = __webpack_require__(352); Object.defineProperty(exports, 'printError', { enumerable: true, get: function get() { return _printError.printError; } }); var _formatError = __webpack_require__(731); Object.defineProperty(exports, 'formatError', { enumerable: true, get: function get() { return _formatError.formatError; } }); /***/ }), /* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printError = printError; var _location = __webpack_require__(353); /** * Prints a GraphQLError to a string, representing useful location information * about the error's position in the source. */ function printError(error) { var printedLocations = []; if (error.nodes) { error.nodes.forEach(function (node) { if (node.loc) { printedLocations.push(highlightSourceAtLocation(node.loc.source, (0, _location.getLocation)(node.loc.source, node.loc.start))); } }); } else if (error.source && error.locations) { var source = error.source; error.locations.forEach(function (location) { printedLocations.push(highlightSourceAtLocation(source, location)); }); } return printedLocations.length === 0 ? error.message : [error.message].concat(printedLocations).join('\n\n') + '\n'; } /** * Render a helpful description of the location of the error in the GraphQL * Source document. */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function highlightSourceAtLocation(source, location) { var line = location.line; var lineOffset = source.locationOffset.line - 1; var columnOffset = getColumnOffset(source, location); var contextLine = line + lineOffset; var contextColumn = location.column + columnOffset; var prevLineNum = (contextLine - 1).toString(); var lineNum = contextLine.toString(); var nextLineNum = (contextLine + 1).toString(); var padLen = nextLineNum.length; var lines = source.body.split(/\r\n|[\n\r]/g); lines[0] = whitespace(source.locationOffset.column - 1) + lines[0]; var outputLines = [source.name + ' (' + contextLine + ':' + contextColumn + ')', line >= 2 && lpad(padLen, prevLineNum) + ': ' + lines[line - 2], lpad(padLen, lineNum) + ': ' + lines[line - 1], whitespace(2 + padLen + contextColumn - 1) + '^', line < lines.length && lpad(padLen, nextLineNum) + ': ' + lines[line]]; return outputLines.filter(Boolean).join('\n'); } function getColumnOffset(source, location) { return location.line === 1 ? source.locationOffset.column - 1 : 0; } function whitespace(len) { return Array(len + 1).join(' '); } function lpad(len, str) { return whitespace(len - str.length) + str; } /***/ }), /* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getLocation = getLocation; /** * Takes a Source and a UTF-8 character offset, and returns the corresponding * line and column as a SourceLocation. */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function getLocation(source, position) { var lineRegexp = /\r\n|[\n\r]/g; var line = 1; var column = position + 1; var match = void 0; while ((match = lineRegexp.exec(source.body)) && match.index < position) { line += 1; column = position + 1 - (match.index + match[0].length); } return { line: line, column: column }; } /** * Represents a location in a Source. */ /***/ }), /* 354 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _typeof2 = _interopRequireDefault(__webpack_require__(30)); var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); Object.defineProperty(exports, "__esModule", { value: true }); exports.zipCat = zipCat; exports.nth = exports.getDeepestValues = exports.entries = exports.values = exports.mapValues = exports.traverseObjectResults = exports.traverseResults = exports.traverseOptions = exports.optionToArray = exports.extractFunctionFromResult = exports.extractFunctionFromOption = exports.extractArray = exports.extractBool = exports.tap = exports.errToOption = exports.okToOption = exports.noneToErr = exports.constantNone = exports.set = exports.over = exports.view = exports.lensProp = exports.lens = exports.split = exports.replace = exports.match = exports.test = exports.flat = exports.flatMap = exports.length = exports.tail = exports.last = exports.head = exports.parseInt = exports.parseIntWithRadix = exports.max = exports.inc = exports.add = exports.constantIdentity = exports.append = exports.concatTo = exports.concat = exports.objOf = exports.reduceObject = exports.reduce = exports.filter = exports.mapArray = exports.map = exports.zip = exports.zipWith = exports.pipe = exports.find = exports.lookupWithDefault = exports.lookup = exports.pickBy = exports.pick = exports.omit = exports.unionTo = exports.union = exports.unionWith = exports.adjust = exports.dissoc = exports.assoc = exports.prop = exports.has = exports.when = exports.both = exports.either = exports.notNil = exports.isNil = exports.notEqual = exports.equals = exports.resultToBool = exports.optionToBool = exports.allPass = exports.anyPass = exports.complement = exports.not = exports.constantTrue = exports.constantFalse = exports.substitution = exports.thrush = exports.flip = exports.blackbird = exports.compose = exports.constant = exports.identity = exports.emptyObject = exports.emptyArray = exports.objectKeys = void 0; var _Const = __webpack_require__(736); var _Identity = __webpack_require__(737); var _option = __webpack_require__(738); var _result = __webpack_require__(739); var hasOwn = Object.prototype.hasOwnProperty; var objectKeys = Object.keys; exports.objectKeys = objectKeys; var emptyArray = []; exports.emptyArray = emptyArray; var emptyObject = {}; exports.emptyObject = emptyObject; if (false) { var proxy; } // Combinators var identity = function identity(x) { return x; }; // eslint-disable-next-line no-unused-vars exports.identity = identity; var constant = function constant(x) { return function (y) { return x; }; }; exports.constant = constant; var compose = function compose(f) { return function (g) { return function (x) { return f(g(x)); }; }; }; exports.compose = compose; var blackbird = function blackbird(f) { return function (g) { return function (x) { return function (y) { return f(g(x)(y)); }; }; }; }; exports.blackbird = blackbird; var flip = function flip(f) { return function (x) { return function (y) { return f(y)(x); }; }; }; exports.flip = flip; var thrush = function thrush(x) { return function (f) { return f(x); }; }; /** * Returns the first argument applied to the third, which is then applied * to the result of the second argument applied to the third. */ exports.thrush = thrush; var substitution = function substitution(f) { return function (g) { return function (x) { return f(x)(g(x)); }; }; }; // Logic utilities exports.substitution = substitution; var constantFalse = constant(false); exports.constantFalse = constantFalse; var constantTrue = constant(true); exports.constantTrue = constantTrue; var not = function not(x) { return !x; }; exports.not = not; var complement = compose(not); exports.complement = complement; var anyPass = function anyPass(preds) { return function (value) { return preds.some(thrush(value)); }; }; exports.anyPass = anyPass; var allPass = function allPass(preds) { return function (value) { return preds.every(thrush(value)); }; }; exports.allPass = allPass; var optionToBool = (0, _option.maybe)(false)(constantTrue); exports.optionToBool = optionToBool; var resultToBool = (0, _result.either)(constantFalse)(constantTrue); /** * Returns true if the two values are referentially equal. */ exports.resultToBool = resultToBool; var equals = function equals(a) { return function (b) { return a === b; }; }; /** * Returns true if the two values are not referentially equal. */ exports.equals = equals; var notEqual = function notEqual(a) { return function (b) { return a !== b; }; }; /** * Returns true if the provided `value` is `undefined` or `null`. */ exports.notEqual = notEqual; var isNil = function isNil(value) { return value == null; }; /** * Returns true if the provided `value` is not `undefined` or `null`. */ exports.isNil = isNil; var notNil = complement(isNil); /** * Takes two predicate functions and returns a new function that * evaluates to true when either of the predicates evaluate to true. * * @param {Function} predicateA * @param {Function} predicateB * @return {Boolean} */ // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types exports.notNil = notNil; var either = function either(predicateA, predicateB) { return function () { return predicateA.apply(void 0, arguments) || predicateB.apply(void 0, arguments); }; }; /** * Takes two predicate functions and returns a new function that evaluates * to true if both predicates evaluate to true. * * @param {Function} predicateA * @param {Function} predicateB * @return {Boolean} */ // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types exports.either = either; var both = function both(predicateA, predicateB) { return function () { return predicateA.apply(void 0, arguments) && predicateB.apply(void 0, arguments); }; }; /** * Executes `predicate` with the provided `value`. If the result is true, * returns the result of applying `whenTrueFn` to the `value`. If it is false, * just returns the `value` itself. */ exports.both = both; var when = function when(predicate) { return function (whenTrueFn) { return function (value) { return predicate(value) ? whenTrueFn(value) : value; }; }; }; exports.when = when; var has = function has(key) { return function (object) { return hasOwn.call(object, key); }; }; exports.has = has; var prop = function prop(key) { return function (object) { return object[key]; }; }; exports.prop = prop; var assocReducer = function assocReducer(acc, key) { acc.result[key] = acc.source[key]; return acc; }; var assoc = function assoc(key) { var hasKey = has(key); // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types return function (value) { return function (object) { if (hasKey(object) && object[key] === value) { return object; } var result = objectKeys(object).reduce(assocReducer, { source: object, result: {} }).result; result[key] = value; return result; }; }; }; exports.assoc = assoc; var dissocReducer = function dissocReducer(acc, key) { if (acc.exclude !== key) { acc.result[key] = acc.source[key]; } return acc; }; var dissoc = function dissoc(key) { var hasKey = has(key); return function (object) { return hasKey(object) ? objectKeys(object).reduce(dissocReducer, { source: object, result: {}, exclude: key }).result : object; }; }; exports.dissoc = dissoc; var adjust = function adjust(f) { return function (key) { var hasKey = has(key); return function (obj) { return hasKey(obj) ? assoc(key)(f(obj[key]))(obj) : obj; }; }; }; exports.adjust = adjust; var unionWith = function unionWith(combine) { return function (first) { return first === emptyObject ? identity : function (second) { if (second === emptyObject) return first; var changedFromFirst = false; var changedFromSecond = false; var result = {}; for (var key in second) { // $FlowIgnore - type `k` is fine as a key here var secondVal = second[key]; if (key in first) { // $FlowIgnore - type `k` is fine as a key here var firstVal = first[key]; var finalVal = combine(firstVal)(secondVal); if (finalVal !== secondVal) { changedFromSecond = true; } if (finalVal !== firstVal) { changedFromFirst = true; } result[key] = finalVal; } else { changedFromFirst = true; result[key] = secondVal; } } for (var _key in first) { if (_key in result) continue; changedFromSecond = true; // $FlowIgnore - type `k` is fine as a key here result[_key] = first[_key]; } if (!changedFromFirst) return first; if (!changedFromSecond) return second; return result; }; }; }; exports.unionWith = unionWith; var union = unionWith(constant); exports.union = union; var unionTo = flip(union); exports.unionTo = unionTo; var omitReducer = function omitReducer(acc, key) { if (acc.exclude.includes(key)) { acc.changed = true; } else { acc.result[key] = acc.source[key]; } return acc; }; var omit = function omit(keys) { var len = keys.length; if (len === 0) { return identity; } if (len === 1) { return dissoc(keys[0]); } return function (object) { var _objectKeys$reduce = objectKeys(object).reduce(omitReducer, { source: object, exclude: keys, changed: false, result: {} }), result = _objectKeys$reduce.result, changed = _objectKeys$reduce.changed; return changed ? result : object; }; }; exports.omit = omit; var pickReducer = function pickReducer(acc, key) { if (hasOwn.call(acc.source, key)) { acc.result[key] = acc.source[key]; } return acc; }; var pick = function pick(keys) { return function (source) { return keys.reduce(pickReducer, { source: source, result: {} }).result; }; }; exports.pick = pick; var pickByReducer = function pickByReducer(acc, key) { var value = acc.source[key]; if (acc.predicate(value)) { acc.result[key] = value; } else { acc.changed = true; } return acc; }; var pickBy = function pickBy(predicate) { return function (object) { var _objectKeys$reduce2 = objectKeys(object).reduce(pickByReducer, { source: object, predicate: predicate, changed: false, result: {} }), result = _objectKeys$reduce2.result, changed = _objectKeys$reduce2.changed; return changed ? result : object; }; }; exports.pickBy = pickBy; var lookup = function lookup(key) { var hasKey = has(key); return function (object) { return hasKey(object) ? (0, _option.Some)(object[key]) : _option.None; }; }; /** * Returns the value at `key` or returns `defaultValue` if no value is present * at `key` in `object` map. */ exports.lookup = lookup; var lookupWithDefault = function lookupWithDefault(defaultValue) { return function (key) { var hasKey = has(key); return function (object) { return hasKey(object) ? object[key] : defaultValue; }; }; }; exports.lookupWithDefault = lookupWithDefault; var find = function find(pred) { return function (array) { var index = array.findIndex(pred); return index === -1 ? _option.None : (0, _option.Some)(array[index]); }; }; exports.find = find; var binaryThrush = function binaryThrush(v, f) { return f(v); }; var pipe = function pipe(fns) { return function (value) { return fns.reduce(binaryThrush, value); }; }; exports.pipe = pipe; var zipWith = function zipWith(f) { return function (xs) { return function (ys) { var rv = []; var idx = 0; var len = Math.min(xs.length, ys.length); while (idx < len) { rv[idx] = f(xs[idx])(ys[idx]); idx += 1; } return rv; }; }; }; exports.zipWith = zipWith; // $FlowIgnore - "Missing annotation", but type should be inferred var zip = zipWith(function (x) { return function (y) { return [x, y]; }; }); exports.zip = zip; function getMinLength(arrays) { if (arrays.length === 0) return 0; if (arrays.length === 1) return arrays[0].length; var min = arrays[0].length; for (var i = 1, len = arrays.length; i < len; i++) { var arr_len = arrays[i].length; if (arr_len < min) min = arr_len; } return min; } /* * Usage: * const multiply = (a: number) => (b: number) => a * b; * const arrays = [ * [1, 2, 3, 4], * [5, 6], * [7, 8, 9], * ]; * const result = zipCat(multiply)(arrays); // => [35, 96, 3, 4, 9] */ function zipCat(fn) { return function zipCat_inner(arrays) { // Find the length of the shortest array to know the max number of zip items. var zipLength = getMinLength(arrays); // Create a single array reference to store our items into. var rv = []; // For each array for (var i = 0, len = arrays.length; i < len; i++) { var array = arrays[i]; // For each index in the current array for (var j = 0, array_len = array.length; j < array_len; j++) { var item = array[j]; // For each index that falls in the zip range if (j < zipLength) { var existing = rv[j]; // Check if we have a previously calculated value for this zip index. // If we do then we call the zip fn on the existing result and the current item, // then save it back at the zip index. if (typeof existing !== 'undefined') { rv[j] = fn(existing)(item); } // If we don't then we save the current item at the zip index. else { rv[j] = item; } } // If the index falls outside the zip range, then push the item onto the // end of result array. We use `push` here to ensure it is inserted after // the zip range indices. else { rv.push(item); } } } return rv; }; } var map = function map(f) { return function (xs) { return xs.map(f); }; }; exports.map = map; var mapArray = function mapArray(f) { return function (xs) { var changed = false; var ys = xs.reduce(function (res, x) { var newX = f(x); if (newX !== x) { changed = true; } res.push(newX); return res; }, []); return changed ? ys : xs; }; }; exports.mapArray = mapArray; var filter = function filter(f) { return function (xs) { return xs.filter(f); }; }; exports.filter = filter; var reduce = function reduce(reducer) { return function (init) { return function (xs) { return xs.reduce(reducer, init); }; }; }; exports.reduce = reduce; var reduceObject = function reduceObject(reducer) { return function (init) { return function (obj) { return objectKeys(obj).reduce(function (result, key) { return reducer(result)(obj[key]); }, init); }; }; }; exports.reduceObject = reduceObject; var objOf = function objOf(key) { return function (value) { return (0, _defineProperty2["default"])({}, key, value); }; }; /** * concat concatenates the first onto the second * concat([1,2,3])([4,5,6]) becomes [4,5,6,1,2,3] */ exports.objOf = objOf; var concat = function concat(ys) { return ys.length ? function (xs) { return xs.length ? xs.concat(ys) : ys; } : identity; }; /** * concatTo concatenates the second onto the first * concatTo([1,2,3])([4,5,6]) becomes [1,2,3,4,5,6] */ exports.concat = concat; var concatTo = flip(concat); exports.concatTo = concatTo; var append = function append(value) { return concat([value]); }; exports.append = append; var constantIdentity = constant(identity); // Math exports.constantIdentity = constantIdentity; var add = function add(x) { return function (y) { return x + y; }; }; exports.add = add; var inc = function inc(x) { return x + 1; }; exports.inc = inc; var max = function max(x) { return function (y) { return x > y ? x : y; }; }; exports.max = max; var parseIntWithRadix = function parseIntWithRadix(radix) { return function (num) { var parsed = parseInt(num, radix); return isNaN(parsed) ? _option.None : (0, _option.Some)(parsed); }; }; exports.parseIntWithRadix = parseIntWithRadix; var safeParseInt = parseIntWithRadix(10); exports.parseInt = safeParseInt; // Array var head = function head(xs) { return xs.length ? (0, _option.Some)(xs[0]) : _option.None; }; exports.head = head; var last = function last(xs) { return xs.length ? (0, _option.Some)(xs[xs.length - 1]) : _option.None; }; exports.last = last; var tail = function tail(xs) { return xs.slice(1); }; exports.tail = tail; var length = function length(xs) { return xs.length; }; exports.length = length; var flatMap = function flatMap(f) { return reduce(function (result, item) { var ys = f(item); if (!ys.length) { return result; } var nextResult = result.length ? result : []; nextResult.push.apply(nextResult, ys); return nextResult; })(emptyArray); }; exports.flatMap = flatMap; var flat = flatMap(identity); // String exports.flat = flat; var test = function test(regex) { return function (string) { regex.lastIndex = 0; var result = regex.test(string); regex.lastIndex = 0; return result; }; }; exports.test = test; var match = function match(regex) { return function (string) { var result = string.match(regex); return result ? (0, _option.Some)(result[0]) : _option.None; }; }; exports.match = match; var replace = function replace(pattern) { return function (replacement) { return function (string) { return string.replace(pattern, replacement); }; }; }; exports.replace = replace; var split = function split(pattern) { return function (string) { return string.split(pattern); }; }; exports.split = split; // See https://github.com/webflow/webflow/blob/dev/docs/app/fp-module/lenses.md var lens = function lens(getter) { return function (setter) { return function (toFunctor) { return function (target) { return toFunctor(getter(target)).map(function (focus) { return setter(focus)(target); }); }; }; }; }; // $FlowFixMe I don’t think this can be annotated. exports.lens = lens; var lensProp = function lensProp(key) { return lens(prop(key))(assoc(key)); }; exports.lensProp = lensProp; var view = // $FlowIgnore compose(compose(_Const.getConst))(thrush(_Const.Const)); // See https://github.com/webflow/webflow/blob/dev/docs/app/fp-module/lenses.md#writing-data exports.view = view; var over = function over(l) { return function (f) { // $FlowFixMe - Cannot call `compose` with `Identity` bound to `f` because `IdentityType` is incompatible with `Functor` var toFunctor = compose(_Identity.Identity)(f); // $FlowIgnore return compose(_Identity.runIdentity)(l(toFunctor)); }; }; exports.over = over; var set = function set(l) { return compose(over(l))(constant); }; exports.set = set; var constantNone = constant(_option.None); exports.constantNone = constantNone; var noneToErr = function noneToErr(error) { return (0, _option.maybe)((0, _result.Err)(error))(_result.Ok); }; exports.noneToErr = noneToErr; var okToOption = (0, _result.either)(constantNone)(_option.Some); exports.okToOption = okToOption; var errToOption = (0, _result.either)(_option.Some)(constantNone); // Miscellaneous utilities. /** * Executes the provided `unsafeFn` with the provided `value` and then returns * `value`. Useful for performing side effects in pure chains of transformations. * * @param {Function} unsafeFn * @param {*} value * @return {*} */ exports.errToOption = errToOption; var tap = function tap(unsafeFn) { return function (value) { unsafeFn(value); return value; }; }; exports.tap = tap; var extractBool = (0, _option.maybe)(false)(identity); // $FlowFixMe - Cannot assign maybe... Is the type at least correct? exports.extractBool = extractBool; var extractArray = (0, _option.maybe)(emptyArray)(identity); // Get a function out of an Option, falling back to `identity` // in the case of None. // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types exports.extractArray = extractArray; var extractFunctionFromOption = (0, _option.maybe)(identity)(identity); // Get a function out of a Result, falling back to `identity` // in the case of Err. exports.extractFunctionFromOption = extractFunctionFromOption; var extractFunctionFromResult = (0, _result.either)(constantIdentity)(identity); // $FlowFixMe - Cannot assign maybe... Is the type at least correct? exports.extractFunctionFromResult = extractFunctionFromResult; var optionToArray = (0, _option.maybe)(emptyArray)(Array.of); exports.optionToArray = optionToArray; var optionOfEmptyArray = (0, _option.Some)(emptyArray); var traverseOptions = function traverseOptions(f) { return function (xs) { return xs.reduce(function (option, x) { return f(x).map(append).ap(option); }, optionOfEmptyArray); }; }; exports.traverseOptions = traverseOptions; var resultOfEmptyArray = (0, _result.Ok)(emptyArray); var traverseResults = function traverseResults(f) { return function (xs) { return xs.reduce(function (result, x) { return f(x).map(append).ap(result); }, resultOfEmptyArray); }; }; exports.traverseResults = traverseResults; var resultOfEmptyObject = (0, _result.Ok)(emptyObject); var traverseObjectResults = function traverseObjectResults(f) { return function (obj) { return objectKeys(obj).reduce(function (result, key) { return f(obj[key]).map(assoc(key)).ap(result); }, resultOfEmptyObject); }; }; exports.traverseObjectResults = traverseObjectResults; var mapValues = function mapValues(f) { return function (obj) { var changed = false; var newObj = objectKeys(obj).reduce(function (result, key) { var oldVal = obj[key]; var newVal = f(oldVal); if (oldVal !== newVal) { changed = true; } result[key] = newVal; return result; }, {}); return changed ? newObj : obj; }; }; // This function is useful to replace Object.values, as Flow has trouble with the native version // https://github.com/facebook/flow/issues/2221 exports.mapValues = mapValues; var values = function values(obj) { return Object.keys(obj).map(function (k) { return obj[k]; }); }; // This function is useful to replace Object.entries, as Flow has trouble with the native version // https://github.com/facebook/flow/issues/2174#issuecomment-326783350 exports.values = values; var entries = function entries(obj) { var keys = Object.keys(obj); return keys.map(function (key) { return [key, obj[key]]; }); }; exports.entries = entries; var getDeepestValues = function getDeepestValues(obj) { return Object.keys(obj).flatMap(function (k) { return obj[k] && (0, _typeof2["default"])(obj[k]) === 'object' ? getDeepestValues(obj[k]) : [obj[k]]; }); }; exports.getDeepestValues = getDeepestValues; var nth = function nth(index) { return function (a) { return index < 0 || index >= a.length ? _option.None : (0, _option.Some)(a[index]); }; }; exports.nth = nth; /***/ }), /* 355 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getProductOptionValueName = exports.simplifySkuValues = void 0; // keep this file as simple as possible and avoid any additional imports, as this can increase published site bundle size a location var simplifySkuValues = function simplifySkuValues(skuValues) { return skuValues.reduce(function (acc, pair) { acc[pair.property.id] = pair.value.id; return acc; }, {}); }; exports.simplifySkuValues = simplifySkuValues; var getProductOptionValueName = function getProductOptionValueName(property, simplifiedSkuValues) { if (property.id && property["enum"]) { var propValueId = simplifiedSkuValues[property.id]; var propValue = property["enum"].find(function (value) { return value.id === propValueId; }); if (propValue && typeof propValue.name === 'string') { return propValue.name; } } return ''; }; exports.getProductOptionValueName = getProductOptionValueName; /***/ }), /* 356 */ /***/ (function(module, exports) { function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = _arrayWithHoles; /***/ }), /* 357 */ /***/ (function(module, exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } module.exports = _nonIterableRest; /***/ }), /* 358 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(50)) : undefined }(this, (function (moment) { 'use strict'; var enAu = moment.defineLocale('en-au', { months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat : { LT : 'h:mm A', LTS : 'h:mm:ss A', L : 'DD/MM/YYYY', LL : 'D MMMM YYYY', LLL : 'D MMMM YYYY h:mm A', LLLL : 'dddd, D MMMM YYYY h:mm A' }, calendar : { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }, relativeTime : { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal : function (number) { var b = number % 10, output = (~~(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; }, week : { dow : 1, // Monday is the first day of the week. doy : 4 // The week that contains Jan 4th is the first week of the year. } }); return enAu; }))); /***/ }), /* 359 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(50)) : undefined }(this, (function (moment) { 'use strict'; var enCa = moment.defineLocale('en-ca', { months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat : { LT : 'h:mm A', LTS : 'h:mm:ss A', L : 'YYYY-MM-DD', LL : 'MMMM D, YYYY', LLL : 'MMMM D, YYYY h:mm A', LLLL : 'dddd, MMMM D, YYYY h:mm A' }, calendar : { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }, relativeTime : { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal : function (number) { var b = number % 10, output = (~~(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; } }); return enCa; }))); /***/ }), /* 360 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(50)) : undefined }(this, (function (moment) { 'use strict'; var enGb = moment.defineLocale('en-gb', { months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', L : 'DD/MM/YYYY', LL : 'D MMMM YYYY', LLL : 'D MMMM YYYY HH:mm', LLLL : 'dddd, D MMMM YYYY HH:mm' }, calendar : { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }, relativeTime : { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal : function (number) { var b = number % 10, output = (~~(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; }, week : { dow : 1, // Monday is the first day of the week. doy : 4 // The week that contains Jan 4th is the first week of the year. } }); return enGb; }))); /***/ }), /* 361 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(50)) : undefined }(this, (function (moment) { 'use strict'; var enIe = moment.defineLocale('en-ie', { months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', L : 'DD-MM-YYYY', LL : 'D MMMM YYYY', LLL : 'D MMMM YYYY HH:mm', LLLL : 'dddd D MMMM YYYY HH:mm' }, calendar : { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }, relativeTime : { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal : function (number) { var b = number % 10, output = (~~(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; }, week : { dow : 1, // Monday is the first day of the week. doy : 4 // The week that contains Jan 4th is the first week of the year. } }); return enIe; }))); /***/ }), /* 362 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(50)) : undefined }(this, (function (moment) { 'use strict'; var enIl = moment.defineLocale('en-il', { months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat : { LT : 'HH:mm', LTS : 'HH:mm:ss', L : 'DD/MM/YYYY', LL : 'D MMMM YYYY', LLL : 'D MMMM YYYY HH:mm', LLLL : 'dddd, D MMMM YYYY HH:mm' }, calendar : { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }, relativeTime : { future : 'in %s', past : '%s ago', s : 'a few seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal : function (number) { var b = number % 10, output = (~~(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; } }); return enIl; }))); /***/ }), /* 363 */ /***/ (function(module, exports, __webpack_require__) { //! moment.js locale configuration ;(function (global, factory) { true ? factory(__webpack_require__(50)) : undefined }(this, (function (moment) { 'use strict'; var enNz = moment.defineLocale('en-nz', { months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), longDateFormat : { LT : 'h:mm A', LTS : 'h:mm:ss A', L : 'DD/MM/YYYY', LL : 'D MMMM YYYY', LLL : 'D MMMM YYYY h:mm A', LLLL : 'dddd, D MMMM YYYY h:mm A' }, calendar : { sameDay : '[Today at] LT', nextDay : '[Tomorrow at] LT', nextWeek : 'dddd [at] LT', lastDay : '[Yesterday at] LT', lastWeek : '[Last] dddd [at] LT', sameElse : 'L' }, relativeTime : { future : 'in %s', past : '%s ago', s : 'a few seconds', ss : '%d seconds', m : 'a minute', mm : '%d minutes', h : 'an hour', hh : '%d hours', d : 'a day', dd : '%d days', M : 'a month', MM : '%d months', y : 'a year', yy : '%d years' }, dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, ordinal : function (number) { var b = number % 10, output = (~~(number % 100 / 10) === 1) ? 'th' : (b === 1) ? 'st' : (b === 2) ? 'nd' : (b === 3) ? 'rd' : 'th'; return number + output; }, week : { dow : 1, // Monday is the first day of the week. doy : 4 // The week that contains Jan 4th is the first week of the year. } }); return enNz; }))); /***/ }), /* 364 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _ParamFieldPathUtils = __webpack_require__(752); Object.keys(_ParamFieldPathUtils).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _ParamFieldPathUtils[key]; } }); }); /***/ }), /* 365 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _FilterUtils = __webpack_require__(756); Object.keys(_FilterUtils).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _FilterUtils[key]; } }); }); /***/ }), /* 366 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _CurrencyUtils = __webpack_require__(367); Object.keys(_CurrencyUtils).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _CurrencyUtils[key]; } }); }); var _renderPrice = __webpack_require__(781); Object.keys(_renderPrice).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _renderPrice[key]; } }); }); /***/ }), /* 367 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _typeof2 = _interopRequireDefault2(__webpack_require__(30)); var _classCallCheck2 = _interopRequireDefault2(__webpack_require__(44)); var _createClass2 = _interopRequireDefault2(__webpack_require__(149)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.getCurrencyInfo = getCurrencyInfo; exports.getCurrencyInfoPaypal = getCurrencyInfoPaypal; exports.renderPrice = renderPrice; exports.formatPrice = formatPrice; exports.validatePrice = validatePrice; exports.sumPrice = sumPrice; exports.subtractPrice = subtractPrice; exports.scalePrice = scalePrice; exports.equalPrice = equalPrice; exports.parsePrice = parsePrice; exports._invalid = _invalid; exports.zeroUnitWF = zeroUnitWF; exports.zeroUnitPaypal = zeroUnitPaypal; exports.convertWFPriceToPaypalAmountWithBreakdown = convertWFPriceToPaypalAmountWithBreakdown; exports.convertWFPriceToPaypalAmount = convertWFPriceToPaypalAmount; exports.convertPaypalAmountToWFPrice = convertPaypalAmountToWFPrice; exports.intToUnsafeFloat = exports.unsafeFloatToInt = exports.getCurrencySymbol = exports.currencyInfoByCodePaypal = exports.currencyInfoByCode = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _keyBy = _interopRequireDefault(__webpack_require__(776)); var _memoize = _interopRequireDefault(__webpack_require__(264)); var _isString = _interopRequireDefault(__webpack_require__(277)); var _isNumber = _interopRequireDefault(__webpack_require__(780)); var _constants = __webpack_require__(19); var currencyInfoByCode = (0, _keyBy["default"])(_constants.stripeCurrencyList, 'code'); exports.currencyInfoByCode = currencyInfoByCode; var currencyInfoByCodePaypal = (0, _keyBy["default"])(_constants.paypalCurrencyList, 'code'); exports.currencyInfoByCodePaypal = currencyInfoByCodePaypal; function getCurrencyInfo(code) { var platform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'stripe'; if (isValidCurrency(code)) { return platform === 'stripe' ? // $FlowIgnore currencyInfoByCode[code.toUpperCase()] : // $FlowIgnore currencyInfoByCodePaypal[code.toUpperCase()]; } return { code: '???', digits: 2, minCharge: 0, name: "Unknown currency" }; } function getCurrencyInfoPaypal(code) { // $FlowIgnore return getCurrencyInfo(code, 'paypal'); } var isValidCurrency = function isValidCurrency(currencyCode) { return typeof currencyCode === 'string' && currencyInfoByCode.hasOwnProperty(currencyCode.toUpperCase()); }; var NullNumberFormat = /*#__PURE__*/ function () { function NullNumberFormat() { (0, _classCallCheck2["default"])(this, NullNumberFormat); } (0, _createClass2["default"])(NullNumberFormat, [{ key: "format", value: function format(_value) { return 'NaN'; } }]); return NullNumberFormat; }(); var getNumberFormat = (0, _memoize["default"])(function (unit // HACK: for some reason, GraphQL is returning a currency of '???' for null // prices; we're temporarily glossing over this fact, and will address the // backend at a later time.. ) { var currencyDisplay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'symbol'; return unit != null && isValidCurrency(unit) ? new Intl.NumberFormat('en-US', { currency: unit, style: 'currency', currencyDisplay: currencyDisplay }) : new NullNumberFormat(); }, /* cache key function **/ function (unit) { var currencyDisplay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'symbol'; return [String(unit), currencyDisplay].join('::'); }); var getCurrencySymbol = function getCurrencySymbol(unit) { // As Intl.Numberformat.prototype.formatToParts is still experimental var symbol = String(getNumberFormat(unit).format(0)).match(/^([^0-9\s]*)/); return symbol ? symbol[0] : unit; }; exports.getCurrencySymbol = getCurrencySymbol; var unsafeFloatToInt = function unsafeFloatToInt(floatValue, currency /* integer value */ ) { var round = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Math.round; var currencyInfo = (0, _typeof2["default"])(currency) === 'object' ? currency : getCurrencyInfo(currency); return round(floatValue * Math.pow(10, currencyInfo.digits)); }; exports.unsafeFloatToInt = unsafeFloatToInt; var intToUnsafeFloat = function intToUnsafeFloat(intValue, currency /* float value */ ) { var currencyInfo = (0, _typeof2["default"])(currency) === 'object' ? currency : getCurrencyInfo(currency); return intValue / Math.pow(10, currencyInfo.digits); }; /** * Will convert a Price object (ie: object with value and unit) into a formatted string. Uses Intl.NumberFormat for * all its number formatey goodness. * * @param {Number} price.value The integer value, in the currency's smallest denomination. (This smallest denomination * is defined by stripe, and documented in our SharedConfig.js) * @param {String} price.unit An ISO 4217 currency code. We define which ones are available in SharedConfig.js * @param {boolean} isoFormat If true it will render the price with ISO 4217 currency code instead of currency symbol * * @return {String} A formatted currency string. */ exports.intToUnsafeFloat = intToUnsafeFloat; function renderPrice(price) { var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _opts$isoFormat = opts.isoFormat, isoFormat = _opts$isoFormat === void 0 ? false : _opts$isoFormat, _opts$noCurrency = opts.noCurrency, noCurrency = _opts$noCurrency === void 0 ? false : _opts$noCurrency; price = validatePrice(price) ? price : _invalid(); var normal_value = Number(price.value); var currencyInfo = getCurrencyInfo(price.unit); var float_value = intToUnsafeFloat(normal_value, currencyInfo); if (Number.isNaN(float_value)) { return 'NaN'; } if (noCurrency) { return String(float_value); } var fmt = getNumberFormat(price.unit, isoFormat ? 'code' : 'symbol'); return fmt.format(float_value); } /** * Will convert a Price ({ value, unit }) into a FormattedPrice ({ value, unit, string }). * * @param {Price} price A basic price object. * @return {FormattedPrice} That same price object, extended with a string version. */ function formatPrice(price) { price = validatePrice(price) ? price : _invalid(); var string = renderPrice(price); return { unit: price.unit, value: price.value, string: string }; } /** * Returns true IFF the provided object is a compatible price object. * * @param {Object} a The object under question. * @return {Boolean} True IFF that object is a Price. */ function validatePrice(a) { if (!a || (0, _typeof2["default"])(a) !== 'object') { return false; } if (!(0, _isNumber["default"])(a.value)) { return false; } if (!(0, _isString["default"])(a.unit)) { return false; } if (!isValidCurrency(a.unit)) { return false; } return true; } /** * Will add two prices together. Returns invalid if they aren't the same currency. * * @param {Price} a One of the prices. * @param {Price} b The other of the prices. * @return {Price} The sum. */ function sumPrice(a, b) { if (!validatePrice(a) || !validatePrice(b)) { return _invalid(); } // No defined behavior, if the Prices don't have a common currency... if (a.unit !== b.unit) { return _invalid(); } return { value: a.value + b.value, unit: a.unit }; } /** * Will subtract two prices. Returns invalid if they aren't the same currency. * * @param {Price} a One of the prices. * @param {Price} b The other of the prices. * @return {Price} The sum. */ function subtractPrice(a, b) { if (!validatePrice(a) || !validatePrice(b)) { return _invalid(); } // No defined behavior, if the Prices don't have a common currency... if (a.unit !== b.unit) { return _invalid(); } return { value: a.value - b.value, unit: a.unit }; } /** * Will multiply a Price by a scalar. * * @param {Price} a The price. * @param {Number} scalar A unitless value that we're multiplying the price by. * @return {Price} The multiplied price. */ function scalePrice(a, scalar) { if (!validatePrice(a) || !(0, _isNumber["default"])(scalar)) { return _invalid(); } var value = Math.round(a.value * scalar); var unit = a.unit; return { value: value, unit: unit }; } /** * Returns true IFF both prices exist, and are equivalent to each other. * * @param {Price} a One price. * @param {Price} b The other price. * @return {boolean} True IFF they both exist and are equal. */ function equalPrice(a, b) { return Boolean(a && b && a.value === b.value && a.unit === b.unit); } function parsePrice(priceString, unit, fallback) { if (typeof priceString !== 'string') { throw new Error('parsePrice must be called with a string'); } if (!isValidCurrency(unit)) { throw new Error("parsePrice called with invalid currency ".concat(unit)); } if (!priceString) { return fallback; } // TODO: Fails on // 1,000.00 -> NaN // 0,99 -> NaN // Also it passes numbers we shouldn't allow: // 0x11 -> 17 // 0b11 -> 3 var rawNumber = Number(priceString); if (Number.isNaN(rawNumber)) { return fallback; } return { value: unsafeFloatToInt(rawNumber, unit), unit: unit }; } // Simple helper method, which gives the "invalid" currency. (NaN as value, "???" as currency.) function _invalid() { return { value: NaN, unit: '???' }; } /** * Returns a Price object with a value of zero. * * @param {String} unit Currency code * @return {Price} Price object */ function zeroUnitWF(unit) { return { unit: unit, value: 0 }; } // Paypal /** * Returns a Paypal Amount (price object) with a value of zero. * * @param {String} unit Currency code * @return {PaypalAmount} Paypal price object */ function zeroUnitPaypal(unit) { return convertWFPriceToPaypalAmount(zeroUnitWF(unit)); } /** * Returns a Paypal Amount with Breakdown. * * @param {OrderPrices} orderPrices Object of webflow order prices. * @return {PaypalAmount} Paypal price object (with breakdown) */ function convertWFPriceToPaypalAmountWithBreakdown(orderPrices) { var total = orderPrices.total, subtotal = orderPrices.subtotal, shipping = orderPrices.shipping, tax = orderPrices.tax, discount = orderPrices.discount, discountShipping = orderPrices.discountShipping; var convertOrZero = function convertOrZero(price, scalar) { return price ? convertWFPriceToPaypalAmount(price, scalar) : zeroUnitPaypal(total.unit); }; return (0, _extends2["default"])({}, convertWFPriceToPaypalAmount(total), { breakdown: { item_total: convertOrZero(subtotal), shipping: convertOrZero(shipping), tax_total: convertOrZero(tax), discount: convertOrZero(discount, -1), shipping_discount: convertOrZero(discountShipping, -1) } }); } /** * Returns a Paypal Amount (price object). * * @param {Price} a Webflow price object. * @param {Number} scalar A unitless value that we're multiplying the price by. * @return {PaypalAmount} Paypal price object */ function convertWFPriceToPaypalAmount(a, scalar) { // TODO: // - May have to account for in-country PayPal accounts only support for some currencies var unitInfo = getCurrencyInfoPaypal(a.unit); var wfValue = scalar ? scalePrice(a, scalar).value : a.value; var value = intToUnsafeFloat(wfValue, unitInfo).toFixed(unitInfo.digits); return { currency_code: a.unit, value: value }; } /** * Returns a WF Price object. * * @param {PaypalAmount} a A paypal price object. * @return {Price} Webflow price object */ function convertPaypalAmountToWFPrice(a) { // TODO: // - May have to account for in-country PayPal accounts only support for some currencies var unitInfo = getCurrencyInfoPaypal(a.currency_code); var value = unsafeFloatToInt(parseFloat(a.value), unitInfo); return { unit: a.currency_code, value: value }; } /***/ }), /* 368 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _Transformers = __webpack_require__(788); Object.keys(_Transformers).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _Transformers[key]; } }); }); /***/ }), /* 369 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(81)); Object.defineProperty(exports, "__esModule", { value: true }); exports.formatNumber = formatNumber; exports.formatEmail = formatEmail; exports.formatPhone = formatPhone; function formatNumber(n, formatType) { if (typeof n === 'number') { var precision = formatType === '' || formatType === 'none' ? NaN : Number(formatType); if (!isNaN(precision)) { return n.toFixed(precision); } else { return String(n); } } else { return ''; } } // Format email depending on the binding property being an href and having a subject function formatEmail(email, subject, property) { var prefix = property === 'href' ? 'mailto:' : ''; if (email && subject) { return prefix + email + '?subject=' + subject; } else if (email) { return prefix + email; } else { return null; } } // Format phone depending on the binding property being an href and having a subject function formatPhone(phone, property) { if (property === 'href') { var tel = phone ? phone.replace(/\s/g, '') : ''; if (/\d/.test(tel)) { // Create a map to replace phonewords with the proper numbers var keypadMap = [[/a|b|c/gi, 2], [/d|e|f/gi, 3], [/g|h|i/gi, 4], [/j|k|l/gi, 5], [/m|n|o/gi, 6], [/p|q|r|s/gi, 7], [/t|u|v/gi, 8], [/w|x|y|z/gi, 9]]; keypadMap.forEach(function (_ref) { var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), key = _ref2[0], value = _ref2[1]; tel = tel.replace(key, value.toString()); }); } else { phone = '#'; } phone = /\d/.test(tel) ? 'tel:' + tel : '#'; } return phone; } /***/ }), /* 370 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(810); /* harmony import */ var _finally__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(371); var globalNS = (function() { // the only reliable means to get the global object is // `Function('return this')()` // However, this causes CSP violations in Chrome apps. if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } throw new Error('unable to locate global object'); })(); if (!globalNS.Promise) { globalNS.Promise = _index__WEBPACK_IMPORTED_MODULE_0__["default"]; } else if (!globalNS.Promise.prototype['finally']) { globalNS.Promise.prototype['finally'] = _finally__WEBPACK_IMPORTED_MODULE_1__["default"]; } /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52))) /***/ }), /* 371 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony default export */ __webpack_exports__["default"] = (function(callback) { var constructor = this.constructor; return this.then( function(value) { return constructor.resolve(callback()).then(function() { return value; }); }, function(reason) { return constructor.resolve(callback()).then(function() { return constructor.reject(reason); }); } ); }); /***/ }), /* 372 */ /***/ (function(module, exports, __webpack_require__) { if (!window.fetch) window.fetch = __webpack_require__(373).default || __webpack_require__(373); /***/ }), /* 373 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); var index = typeof fetch=='function' ? fetch.bind() : function(url, options) { options = options || {}; return new Promise( function (resolve, reject) { var request = new XMLHttpRequest(); request.open(options.method || 'get', url, true); for (var i in options.headers) { request.setRequestHeader(i, options.headers[i]); } request.withCredentials = options.credentials=='include'; request.onload = function () { resolve(response()); }; request.onerror = reject; request.send(options.body); function response() { var keys = [], all = [], headers = {}, header; request.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm, function (m, key, value) { keys.push(key = key.toLowerCase()); all.push([key, value]); header = headers[key]; headers[key] = header ? (header + "," + value) : value; }); return { ok: (request.status/100|0) == 2, // 200-299 status: request.status, statusText: request.statusText, url: request.responseURL, clone: response, text: function () { return Promise.resolve(request.responseText); }, json: function () { return Promise.resolve(request.responseText).then(JSON.parse); }, blob: function () { return Promise.resolve(new Blob([request.response])); }, headers: { keys: function () { return keys; }, entries: function () { return all; }, get: function (n) { return headers[n.toLowerCase()]; }, has: function (n) { return n.toLowerCase() in headers; } } }; } }); }; /* harmony default export */ __webpack_exports__["default"] = (index); //# sourceMappingURL=unfetch.es.js.map /***/ }), /* 374 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(41)); Object.defineProperty(exports, "__esModule", { value: true }); exports.getFieldValueById = getFieldValueById; exports.getFieldsAsTypeKeys = getFieldsAsTypeKeys; exports.getFieldsForFetch = exports.getCustomFields = exports.getCommonFields = exports.commonFields = void 0; var _constants = __webpack_require__(36); // @wf-will-never-add-flow-to-this-file /* globals HTMLInputElement HTMLSelectElement */ var getTextInput = function getTextInput(element) { return element instanceof HTMLInputElement ? element.value : ''; }; var typeGetter = { PlainText: getTextInput, Email: getTextInput, Bool: function Bool(element) { return element instanceof HTMLInputElement ? element.checked : false; }, Number: getTextInput, Option: function Option(element) { return element instanceof HTMLSelectElement ? element.value : ''; }, Link: getTextInput }; var customFieldTypes = ['PlainText', 'Bool', 'Email', 'Number', 'Option', 'Link']; var commonFields = [{ type: 'Email', slug: 'email', selector: function selector(container) { return container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.email, "\"]")); } }, { type: 'PlainText', slug: 'name', selector: function selector(container) { return container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.field, "=\"").concat(_constants.RESERVED_USER_FIELDS.name, "\"]")) || container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.name, "\"]")); } }, { type: 'PlainText', slug: 'password', selector: function selector(container) { return container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.password, "\"]")); } }, { type: 'Bool', slug: 'accept-privacy', selector: function selector(container) { return container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.field, "=\"").concat(_constants.RESERVED_USER_FIELDS.acceptPrivacy, "\"]")) || container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.acceptPrivacy, "\"]")); } }, { type: 'Bool', slug: 'accept-communications', selector: function selector(container) { return container.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.field, "=\"").concat(_constants.RESERVED_USER_FIELDS.acceptCommunications, "\"]")); } }]; exports.commonFields = commonFields; var toCamelCase = function toCamelCase(str) { // Handle kebab-case to PascalCase var pascalCase = str.split('-').map(function (word) { return word.charAt(0).toUpperCase() + word.slice(1); }).join(''); // return camelCase return pascalCase.charAt(0).toLowerCase() + pascalCase.slice(1); }; var getCommonFields = function getCommonFields(form, requestedFields) { var payload = []; commonFields.forEach(function (field) { if (requestedFields && !requestedFields.includes(field.slug)) return; var ele = field.selector(form); if (!ele || !typeGetter[field.type]) return; payload.push({ key: toCamelCase(field.slug), type: toCamelCase(field.type), id: field.slug, value: typeGetter[field.type](ele) }); }); return payload; }; exports.getCommonFields = getCommonFields; var getCustomFields = function getCustomFields(form) { var includeValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var payload = []; customFieldTypes.forEach(function (fieldType) { var camelFieldType = toCamelCase(fieldType); var inputEles = form.querySelectorAll("input[".concat(_constants.USYS_DATA_ATTRS.fieldType, "=\"").concat(fieldType, "\"], select[").concat(_constants.USYS_DATA_ATTRS.fieldType, "=\"").concat(fieldType, "\"]")); if (inputEles.length === 0 || !typeGetter[fieldType]) return; inputEles.forEach(function (ele) { var id = ele.getAttribute(_constants.USYS_DATA_ATTRS.field); if (!id) return; var elementData = { key: "f_".concat(id), type: camelFieldType, id: id }; if (includeValue) { var value = typeGetter[fieldType](ele); if (value === '') { elementData.value = null; } else { elementData.value = value; } } payload.push(elementData); }); }); return payload; }; exports.getCustomFields = getCustomFields; var getFieldsForFetch = function getFieldsForFetch(forms) { var custom = []; var nested = []; var alreadyFound = function alreadyFound(customField) { return custom.find(function (item) { return item.id === customField.id; }); }; forms.forEach(function (form) { nested.push([].concat((0, _toConsumableArray2["default"])(getCommonFields(form)), (0, _toConsumableArray2["default"])(getCustomFields(form, false)))); }); nested.forEach(function (getCustomFieldRes) { getCustomFieldRes.forEach(function (customField) { if (!alreadyFound(customField)) { custom.push(customField); } }); }); return custom; }; exports.getFieldsForFetch = getFieldsForFetch; function getFieldValueById(id, fieldsArray) { var match = fieldsArray.find(function (field) { return field.id === id; }); if (!match) return null; return match.value; } function getFieldsAsTypeKeys(fieldsArray) { var memo = {}; fieldsArray.forEach(function (field) { var key = field.key, type = field.type, value = field.value; if (!memo[type]) memo[type] = []; memo[type].push({ id: key.replace('f_', ''), value: value }); }); return memo; } /***/ }), /* 375 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query GetFieldValidations {\n site {\n usysFieldSchema {\n id\n required\n validations {\n minLength\n maxLength\n min\n max\n step\n options {\n slug\n name\n }\n }\n }\n }\n }\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchUser {\n site {\n siteUser {\n createdOn\n ", "\n }\n }\n }\n "]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchSubscriptions {\n database {\n userSubscriptions {\n _id\n productName\n variantPrice {\n string\n unit\n value\n }\n variantImage {\n url\n alt\n }\n status\n lastInvoiced\n periodEnd\n subCreatedOn\n canceledOn\n billingAddressAddressee\n billingAddressLine1\n billingAddressLine2\n billingAddressCity\n billingAddressState\n billingAddressPostalCode\n billingAddressCountry\n cardLast4\n cardExpiresMonth\n cardExpiresYear\n }\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.buildGetLoggedInUserQuery = buildGetLoggedInUserQuery; exports.getFieldValidations = exports.getUserSubscriptions = void 0; var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var getUserSubscriptions = _graphqlTag["default"](_templateObject()); exports.getUserSubscriptions = getUserSubscriptions; function buildGetLoggedInUserQuery() { var dataFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return _graphqlTag["default"](_templateObject2(), dataFields.length > 0 ? "\n data {\n ".concat(dataFields.map(function (field) { var base = "".concat(field.key, ": ").concat(field.type, "(id: \"").concat(field.id, "\")"); if (field.type === 'option') { return base + '{\n slug \n}'; } return base; }).join('\n'), "\n }") : ''); } var getFieldValidations = _graphqlTag["default"](_templateObject3()); exports.getFieldValidations = getFieldValidations; /***/ }), /* 376 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject12() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutApplyDiscount($discountCode: String!) {\n ecommerceApplyDiscount(discountCode: $discountCode) {\n ok\n }\n }\n"]); _templateObject12 = function _templateObject12() { return data; }; return data; } function _templateObject11() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutAttemptSubmitOrder(\n $checkoutType: mutation_commerce_checkout_type\n $paymentIntentId: String\n ) {\n ecommerceAttemptSubmitOrder(\n checkoutType: $checkoutType\n paymentIntentId: $paymentIntentId\n ) {\n orderId\n token\n ok\n customerPaid {\n decimalValue\n unit\n }\n purchasedItems {\n id\n name\n count\n price {\n decimalValue\n }\n }\n status\n clientSecret\n nextAction\n }\n }\n"]); _templateObject11 = function _templateObject11() { return data; }; return data; } function _templateObject10() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutSyncPayPalInfo {\n ecommerceSyncPaypalOrderInfoToWF {\n ok\n }\n }\n"]); _templateObject10 = function _templateObject10() { return data; }; return data; } function _templateObject9() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutRequestPayPalOrder {\n ecommercePaypalOrderRequest {\n orderId\n }\n }\n"]); _templateObject9 = function _templateObject9() { return data; }; return data; } function _templateObject8() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutRecalcOrderEstimations {\n ecommerceRecalcEstimations {\n ok\n }\n }\n"]); _templateObject8 = function _templateObject8() { return data; }; return data; } function _templateObject7() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutEstimateOrderTaxes {\n ecommerceEstimateTaxes {\n ok\n }\n }\n"]); _templateObject7 = function _templateObject7() { return data; }; return data; } function _templateObject6() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutUpdateCustomData(\n $customData: [mutation_commerce_update_custom_data]!\n ) {\n ecommerceUpdateCustomData(customData: $customData) {\n ok\n }\n }\n"]); _templateObject6 = function _templateObject6() { return data; }; return data; } function _templateObject5() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutUpdateStripePaymentMethod($paymentMethod: String!) {\n ecommerceStoreStripePaymentMethod(paymentMethod: $paymentMethod) {\n ok\n }\n }\n"]); _templateObject5 = function _templateObject5() { return data; }; return data; } function _templateObject4() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutUpdateShippingMethod($id: String) {\n ecommerceUpdateShippingMethod(methodId: $id) {\n ok\n }\n }\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutUpdateObfuscatedOrderAddress(\n $type: String!\n $name: String\n $address_line1: String\n $address_line2: String\n $address_city: String\n $address_state: String\n $address_country: String\n $address_zip: String\n ) {\n ecommerceUpdateObfuscatedAddress(\n type: $type\n addressee: $name\n line1: $address_line1\n line2: $address_line2\n city: $address_city\n state: $address_state\n country: $address_country\n postalCode: $address_zip\n ) {\n ok\n }\n }\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutUpdateOrderAddress(\n $type: String!\n $name: String\n $address_line1: String\n $address_line2: String\n $address_city: String\n $address_state: String\n $address_country: String\n $address_zip: String\n ) {\n ecommerceUpdateAddress(\n type: $type\n addressee: $name\n line1: $address_line1\n line2: $address_line2\n city: $address_city\n state: $address_state\n country: $address_country\n postalCode: $address_zip\n ) {\n ok\n }\n }\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation CheckoutUpdateOrderIdentity($email: String) {\n ecommerceUpdateIdentity(email: $email) {\n ok\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.applyDiscountMutation = exports.attemptSubmitOrderMutation = exports.syncPayPalOrderInfo = exports.requestPayPalOrderMutation = exports.recalcOrderEstimationsMutation = exports.estimateOrderTaxesMutation = exports.updateCustomData = exports.updateOrderStripePaymentMethodMutation = exports.updateOrderShippingMethodMutation = exports.updateObfuscatedOrderAddressMutation = exports.updateOrderAddressMutation = exports.updateOrderIdentityMutation = void 0; var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var updateOrderIdentityMutation = _graphqlTag["default"](_templateObject()); exports.updateOrderIdentityMutation = updateOrderIdentityMutation; var updateOrderAddressMutation = _graphqlTag["default"](_templateObject2()); exports.updateOrderAddressMutation = updateOrderAddressMutation; var updateObfuscatedOrderAddressMutation = _graphqlTag["default"](_templateObject3()); exports.updateObfuscatedOrderAddressMutation = updateObfuscatedOrderAddressMutation; var updateOrderShippingMethodMutation = _graphqlTag["default"](_templateObject4()); exports.updateOrderShippingMethodMutation = updateOrderShippingMethodMutation; var updateOrderStripePaymentMethodMutation = _graphqlTag["default"](_templateObject5()); exports.updateOrderStripePaymentMethodMutation = updateOrderStripePaymentMethodMutation; var updateCustomData = _graphqlTag["default"](_templateObject6()); exports.updateCustomData = updateCustomData; var estimateOrderTaxesMutation = _graphqlTag["default"](_templateObject7()); exports.estimateOrderTaxesMutation = estimateOrderTaxesMutation; var recalcOrderEstimationsMutation = _graphqlTag["default"](_templateObject8()); exports.recalcOrderEstimationsMutation = recalcOrderEstimationsMutation; var requestPayPalOrderMutation = _graphqlTag["default"](_templateObject9()); exports.requestPayPalOrderMutation = requestPayPalOrderMutation; var syncPayPalOrderInfo = _graphqlTag["default"](_templateObject10()); exports.syncPayPalOrderInfo = syncPayPalOrderInfo; var attemptSubmitOrderMutation = _graphqlTag["default"](_templateObject11()); exports.attemptSubmitOrderMutation = attemptSubmitOrderMutation; var applyDiscountMutation = _graphqlTag["default"](_templateObject12()); exports.applyDiscountMutation = applyDiscountMutation; /***/ }), /* 377 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.showErrorMessageForError = exports.isCartOpen = void 0; var _constants = __webpack_require__(19); var _commerceUtils = __webpack_require__(37); /* globals window */ var isCartOpen = function isCartOpen() { var cartContainerEl = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER); if (!cartContainerEl) return false; return window.getComputedStyle(cartContainerEl).display !== 'none'; }; // eslint-disable-next-line flowtype/no-weak-types exports.isCartOpen = isCartOpen; var updateErrorMessage = function updateErrorMessage(element, error) { var errorText = element.querySelector(_constants.CART_ERROR_MESSAGE_SELECTOR); if (!errorText) return; var errorType = getErrorType(error); var errorData = _constants.CART_ERRORS[errorType.toUpperCase()] || {}; var defaultErrorMessage = errorData.msg; var errorMessage = errorText.getAttribute((0, _constants.getCheckoutErrorMessageForType)(errorType)) || defaultErrorMessage; errorText.textContent = errorMessage; if (errorData.requiresRefresh) { errorText.setAttribute(_constants.NEEDS_REFRESH, 'true'); } else { errorText.removeAttribute(_constants.NEEDS_REFRESH); } }; var errorCodeToCartErrorType = function errorCodeToCartErrorType(code, msg) { switch (code) { case 'OrderTotalRange': { if (msg && msg.match(/too small/i)) { return 'cart_order_min'; } return 'general'; } default: return 'general'; } }; // eslint-disable-next-line flowtype/no-weak-types var getErrorType = function getErrorType(error) { if (error.graphQLErrors && error.graphQLErrors.length > 0) { return errorCodeToCartErrorType(error.graphQLErrors[0].code, error.graphQLErrors[0].message); } if (error.code) { return errorCodeToCartErrorType(error.code, error.message); } return 'general'; }; var showErrorMessageForError = function showErrorMessageForError(err, scope) { var cartErrorState = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_ERROR, scope); if (cartErrorState) { cartErrorState.style.removeProperty('display'); updateErrorMessage(cartErrorState, err); } }; exports.showErrorMessageForError = showErrorMessageForError; /***/ }), /* 378 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var replace = String.prototype.replace; var percentTwenties = /%20/g; var util = __webpack_require__(227); var Format = { RFC1738: 'RFC1738', RFC3986: 'RFC3986' }; module.exports = util.assign( { 'default': Format.RFC3986, formatters: { RFC1738: function (value) { return replace.call(value, percentTwenties, '+'); }, RFC3986: function (value) { return String(value); } } }, Format ); /***/ }), /* 379 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(380); __webpack_require__(382); __webpack_require__(383); __webpack_require__(384); __webpack_require__(385); __webpack_require__(153); __webpack_require__(387); __webpack_require__(526); __webpack_require__(527); __webpack_require__(528); __webpack_require__(529); __webpack_require__(832); __webpack_require__(833); __webpack_require__(834); module.exports = __webpack_require__(835); /***/ }), /* 380 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals document, window, navigator */ /* eslint-disable no-var */ /** * Webflow: Brand pages on the subdomain */ var Webflow = __webpack_require__(20); Webflow.define('brand', module.exports = function ($) { var api = {}; var doc = document; var $html = $('html'); var $body = $('body'); var namespace = '.w-webflow-badge'; var location = window.location; var isPhantom = /PhantomJS/i.test(navigator.userAgent); var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; var brandElement; // ----------------------------------- // Module methods api.ready = function () { var shouldBrand = $html.attr('data-wf-status'); var publishedDomain = $html.attr('data-wf-domain') || ''; if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { shouldBrand = true; } if (shouldBrand && !isPhantom) { brandElement = brandElement || createBadge(); ensureBrand(); setTimeout(ensureBrand, 500); $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); } }; function onFullScreenChange() { var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement); $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); } function ensureBrand() { var found = $body.children(namespace); var match = found.length && found.get(0) === brandElement; var inEditor = Webflow.env('editor'); if (match) { // Remove brand when Editor is active if (inEditor) { found.remove(); } // Exit early, brand is in place return; } // Remove any invalid brand elements if (found.length) { found.remove(); } // Append the brand (unless Editor is active) if (!inEditor) { $body.append(brandElement); } } // Export module return api; }); /***/ }), /* 381 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file // Include tram for frame-throttling /* globals window */ /* eslint-disable no-var */ var $ = window.$; var tram = __webpack_require__(228) && $.tram; /*! * Webflow._ (aka) Underscore.js 1.6.0 (custom build) * _.each * _.map * _.find * _.filter * _.any * _.contains * _.delay * _.defer * _.throttle (webflow) * _.debounce * _.keys * _.has * _.now * * http://underscorejs.org * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Underscore may be freely distributed under the MIT license. * @license MIT */ module.exports = function () { var _ = {}; // Current version. _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. var breaker = {}; // Save bytes in the minified (but not gzipped) version: /* eslint-disable one-var */ var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; /* eslint-enable one-var */ // Create quick reference variables for speed access to core prototypes. /* eslint-disable one-var, no-unused-vars */ var push = ArrayProto.push, slice = ArrayProto.slice, concat = ArrayProto.concat, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty; /* eslint-enable one-var, no-unused-vars */ // All **ECMAScript 5** native function implementations that we hope to use // are declared here. /* eslint-disable one-var, no-unused-vars */ var nativeForEach = ArrayProto.forEach, nativeMap = ArrayProto.map, nativeReduce = ArrayProto.reduce, nativeReduceRight = ArrayProto.reduceRight, nativeFilter = ArrayProto.filter, nativeEvery = ArrayProto.every, nativeSome = ArrayProto.some, nativeIndexOf = ArrayProto.indexOf, nativeLastIndexOf = ArrayProto.lastIndexOf, nativeIsArray = Array.isArray, nativeKeys = Object.keys, nativeBind = FuncProto.bind; /* eslint-enable one-var, no-unused-vars */ // Collection Functions // -------------------- // The cornerstone, an `each` implementation, aka `forEach`. // Handles objects with the built-in `forEach`, arrays, and raw objects. // Delegates to **ECMAScript 5**'s native `forEach` if available. var each = _.each = _.forEach = function (obj, iterator, context) { /* jshint shadow:true */ if (obj == null) return obj; if (nativeForEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion } else if (obj.length === +obj.length) { for (var i = 0, length = obj.length; i < length; i++) { if (iterator.call(context, obj[i], i, obj) === breaker) return; } } else { var keys = _.keys(obj); // eslint-disable-next-line no-redeclare for (var i = 0, length = keys.length; i < length; i++) { if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; } } return obj; }; // Return the results of applying the iterator to each element. // Delegates to **ECMAScript 5**'s native `map` if available. _.map = _.collect = function (obj, iterator, context) { var results = []; if (obj == null) return results; if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); each(obj, function (value, index, list) { results.push(iterator.call(context, value, index, list)); }); return results; }; // Return the first value which passes a truth test. Aliased as `detect`. _.find = _.detect = function (obj, predicate, context) { var result; any(obj, function (value, index, list) { if (predicate.call(context, value, index, list)) { result = value; return true; } }); return result; }; // Return all the elements that pass a truth test. // Delegates to **ECMAScript 5**'s native `filter` if available. // Aliased as `select`. _.filter = _.select = function (obj, predicate, context) { var results = []; if (obj == null) return results; if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); each(obj, function (value, index, list) { if (predicate.call(context, value, index, list)) results.push(value); }); return results; }; // Determine if at least one element in the object matches a truth test. // Delegates to **ECMAScript 5**'s native `some` if available. // Aliased as `any`. var any = _.some = _.any = function (obj, predicate, context) { predicate || (predicate = _.identity); var result = false; if (obj == null) return result; if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); each(obj, function (value, index, list) { if (result || (result = predicate.call(context, value, index, list))) return breaker; }); return !!result; // eslint-disable-line no-implicit-coercion }; // Determine if the array or object contains a given value (using `===`). // Aliased as `include`. _.contains = _.include = function (obj, target) { if (obj == null) return false; if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq return obj.indexOf(target) != -1; return any(obj, function (value) { return value === target; }); }; // Function (ahem) Functions // -------------------- // Delays a function for the given number of milliseconds, and then calls // it with the arguments supplied. _.delay = function (func, wait) { var args = slice.call(arguments, 2); return setTimeout(function () { return func.apply(null, args); }, wait); }; // Defers a function, scheduling it to run after the current call stack has // cleared. _.defer = function (func) { return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); }; // Returns a function, that, when invoked, will only be triggered once every // browser animation frame - using tram's requestAnimationFrame polyfill. _.throttle = function (func) { // eslint-disable-next-line one-var var wait, args, context; return function () { if (wait) return; wait = true; args = arguments; context = this; tram.frame(function () { wait = false; func.apply(context, args); }); }; }; // Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. If `immediate` is passed, trigger the function on the // leading edge, instead of the trailing. _.debounce = function (func, wait, immediate) { // eslint-disable-next-line one-var var timeout, args, context, timestamp, result; var later = function later() { var last = _.now() - timestamp; if (last < wait) { timeout = setTimeout(later, wait - last); } else { timeout = null; if (!immediate) { result = func.apply(context, args); context = args = null; } } }; return function () { context = this; args = arguments; timestamp = _.now(); var callNow = immediate && !timeout; if (!timeout) { timeout = setTimeout(later, wait); } if (callNow) { result = func.apply(context, args); context = args = null; } return result; }; }; // Object Functions // ---------------- // Fill in a given object with default properties. _.defaults = function (obj) { if (!_.isObject(obj)) return obj; for (var i = 1, length = arguments.length; i < length; i++) { var source = arguments[i]; for (var prop in source) { // eslint-disable-next-line no-void if (obj[prop] === void 0) obj[prop] = source[prop]; } } return obj; }; // Retrieve the names of an object's properties. // Delegates to **ECMAScript 5**'s native `Object.keys` _.keys = function (obj) { if (!_.isObject(obj)) return []; if (nativeKeys) return nativeKeys(obj); var keys = []; for (var key in obj) { if (_.has(obj, key)) keys.push(key); } return keys; }; // Shortcut function for checking if an object has a given property directly // on itself (in other words, not on a prototype). _.has = function (obj, key) { return hasOwnProperty.call(obj, key); }; // Is a given variable an object? _.isObject = function (obj) { return obj === Object(obj); }; // Utility Functions // ----------------- // A (possibly faster) way to get the current timestamp as an integer. _.now = Date.now || function () { return new Date().getTime(); }; // By default, Underscore uses ERB-style template delimiters, change the // following template settings to use alternative delimiters. _.templateSettings = { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g, escape: /<%-([\s\S]+?)%>/g }; // When customizing `templateSettings`, if you don't want to define an // interpolation, evaluation or escaping regex, we need one that is // guaranteed not to match. var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a // string literal. var escapes = { "'": "'", '\\': '\\', '\r': 'r', '\n': 'n', "\u2028": 'u2028', "\u2029": 'u2029' }; var escaper = /\\|'|\r|\n|\u2028|\u2029/g; var escapeChar = function escapeChar(match) { return '\\' + escapes[match]; }; // JavaScript micro-templating, similar to John Resig's implementation. // Underscore templating handles arbitrary delimiters, preserves whitespace, // and correctly escapes quotes within interpolated code. // NB: `oldSettings` only exists for backwards compatibility. _.template = function (text, settings, oldSettings) { if (!settings && oldSettings) settings = oldSettings; settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join('|') + '|$', 'g'); // Compile the template source, escaping string literals appropriately. var index = 0; var source = "__p+='"; text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { source += text.slice(index, offset).replace(escaper, escapeChar); index = offset + match.length; if (escape) { source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; } else if (interpolate) { source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; } else if (evaluate) { source += "';\n" + evaluate + "\n__p+='"; } // Adobe VMs need the match returned to produce the correct offest. return match; }); source += "';\n"; // If a variable is not specified, place data values in local scope. if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; try { // eslint-disable-next-line no-new-func var render = new Function(settings.variable || 'obj', '_', source); } catch (e) { e.source = source; throw e; } var template = function template(data) { return render.call(this, data, _); }; // Provide the compiled source as a convenience for precompilation. var argument = settings.variable || 'obj'; template.source = 'function(' + argument + '){\n' + source + '}'; return template; }; // Export underscore return _; }(); /* eslint-enable */ /***/ }), /* 382 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals document, window, localStorage, WEBFLOW_API_HOST, WEBFLOW_DEFAULT_HOST */ /* eslint-disable no-var */ /** * Webflow: Editor loader */ var Webflow = __webpack_require__(20); Webflow.define('edit', module.exports = function ($, _, options) { options = options || {}; // Exit early in test env or when inside an iframe if (Webflow.env('test') || Webflow.env('frame')) { // Allow test fixtures to continue if (!options.fixture && !inCypress()) { return { exit: 1 }; } } var api = {}; var $win = $(window); var $html = $(document.documentElement); var location = document.location; var hashchange = 'hashchange'; var loaded; var loadEditor = options.load || load; var hasLocalStorage = false; try { // Check localStorage for editor data hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem('WebflowEditor'); } catch (e) {// SecurityError: browser storage has been disabled } if (hasLocalStorage) { loadEditor(); } else if (location.search) { // Check url query for `edit` parameter or any url ending in `?edit` if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { loadEditor(); } } else { // Check hash fragment to support `#hash?edit` $win.on(hashchange, checkHash).triggerHandler(hashchange); } function checkHash() { if (loaded) { return; } // Load editor when hash contains `?edit` if (/\?edit/.test(location.hash)) { loadEditor(); } } function load() { loaded = true; // Predefine global immediately to benefit Webflow.env window.WebflowEditor = true; $win.off(hashchange, checkHash); checkThirdPartyCookieSupport(function (thirdPartyCookiesSupported) { $.ajax({ url: cleanSlashes("https://editor-api.webflow.com" + '/api/editor/view'), data: { siteId: $html.attr('data-wf-site') }, xhrFields: { withCredentials: true }, dataType: 'json', crossDomain: true, success: success(thirdPartyCookiesSupported) }); }); } function success(thirdPartyCookiesSupported) { return function (data) { if (!data) { console.error('Could not load editor data'); return; } data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; getScript(prefix(data.bugReporterScriptPath), function () { getScript(prefix(data.scriptPath), function () { window.WebflowEditor(data); }); }); }; } function getScript(url, done) { $.ajax({ type: 'GET', url: url, dataType: 'script', cache: true }).then(done, error); } function error(jqXHR, textStatus, errorThrown) { console.error('Could not load editor script: ' + textStatus); throw errorThrown; } function prefix(url) { return url.indexOf('//') >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); } function cleanSlashes(url) { return url.replace(/([^:])\/\//g, '$1/'); } function checkThirdPartyCookieSupport(callback) { var iframe = window.document.createElement('iframe'); iframe.src = "https://webflow.com" + '/site/third-party-cookie-check.html'; iframe.style.display = 'none'; iframe.sandbox = 'allow-scripts allow-same-origin'; var handleMessage = function handleMessage(event) { if (event.data === 'WF_third_party_cookies_unsupported') { cleanUpCookieCheckerIframe(iframe, handleMessage); callback(false); } else if (event.data === 'WF_third_party_cookies_supported') { cleanUpCookieCheckerIframe(iframe, handleMessage); callback(true); } }; iframe.onerror = function () { cleanUpCookieCheckerIframe(iframe, handleMessage); callback(false); }; window.addEventListener('message', handleMessage, false); window.document.body.appendChild(iframe); } function cleanUpCookieCheckerIframe(iframe, listener) { window.removeEventListener('message', listener, false); iframe.remove(); } // Export module return api; }); function inCypress() { try { return window.top.__Cypress__; } catch (e) { return false; } } /***/ }), /* 383 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: focus-visible */ var Webflow = __webpack_require__(20); /* * This polyfill comes from https://github.com/WICG/focus-visible */ Webflow.define('focus-visible', module.exports = function () { /** * Applies the :focus-visible polyfill at the given scope. * A scope in this case is either the top-level Document or a Shadow Root. * * @param {(Document|ShadowRoot)} scope * @see https://github.com/WICG/focus-visible */ function applyFocusVisiblePolyfill(scope) { var hadKeyboardEvent = true; var hadFocusVisibleRecently = false; var hadFocusVisibleRecentlyTimeout = null; var inputTypesAllowlist = { text: true, search: true, url: true, tel: true, email: true, password: true, number: true, date: true, month: true, week: true, time: true, datetime: true, 'datetime-local': true }; /** * Helper function for legacy browsers and iframes which sometimes focus * elements like document, body, and non-interactive SVG. * @param {Element} el */ function isValidFocusTarget(el) { if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) { return true; } return false; } /** * Computes whether the given element should automatically trigger the * `focus-visible` class being added, i.e. whether it should always match * `:focus-visible` when focused. * @param {Element} el * @return {boolean} */ function focusTriggersKeyboardModality(el) { var type = el.type; var tagName = el.tagName; if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) { return true; } if (tagName === 'TEXTAREA' && !el.readOnly) { return true; } if (el.isContentEditable) { return true; } return false; } function addFocusVisibleAttribute(el) { if (el.getAttribute('data-wf-focus-visible')) { return; } el.setAttribute('data-wf-focus-visible', 'true'); } function removeFocusVisibleAttribute(el) { if (!el.getAttribute('data-wf-focus-visible')) { return; } el.removeAttribute('data-wf-focus-visible'); } /** * If the most recent user interaction was via the keyboard; * and the key press did not include a meta, alt/option, or control key; * then the modality is keyboard. Otherwise, the modality is not keyboard. * Apply `focus-visible` to any current active element and keep track * of our keyboard modality state with `hadKeyboardEvent`. * @param {KeyboardEvent} e */ function onKeyDown(e) { if (e.metaKey || e.altKey || e.ctrlKey) { return; } if (isValidFocusTarget(scope.activeElement)) { addFocusVisibleAttribute(scope.activeElement); } hadKeyboardEvent = true; } /** * If at any point a user clicks with a pointing device, ensure that we change * the modality away from keyboard. * This avoids the situation where a user presses a key on an already focused * element, and then clicks on a different element, focusing it with a * pointing device, while we still think we're in keyboard modality. * @param {Event} e */ function onPointerDown() { hadKeyboardEvent = false; } /** * On `focus`, add the `focus-visible` class to the target if: * - the target received focus as a result of keyboard navigation, or * - the event target is an element that will likely require interaction * via the keyboard (e.g. a text box) * @param {Event} e */ function onFocus(e) { // Prevent IE from focusing the document or HTML element. if (!isValidFocusTarget(e.target)) { return; } if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { addFocusVisibleAttribute(e.target); } } /** * On `blur`, remove the `focus-visible` class from the target. * @param {Event} e */ function onBlur(e) { if (!isValidFocusTarget(e.target)) { return; } if (e.target.hasAttribute('data-wf-focus-visible')) { // To detect a tab/window switch, we look for a blur event followed // rapidly by a visibility change. // If we don't see a visibility change within 100ms, it's probably a // regular focus change. hadFocusVisibleRecently = true; window.clearTimeout(hadFocusVisibleRecentlyTimeout); hadFocusVisibleRecentlyTimeout = window.setTimeout(function () { hadFocusVisibleRecently = false; }, 100); removeFocusVisibleAttribute(e.target); } } /** * If the user changes tabs, keep track of whether or not the previously * focused element had .focus-visible. * @param {Event} e */ function onVisibilityChange() { if (document.visibilityState === 'hidden') { // If the tab becomes active again, the browser will handle calling focus // on the element (Safari actually calls it twice). // If this tab change caused a blur on an element with focus-visible, // re-apply the class when the user switches back to the tab. if (hadFocusVisibleRecently) { hadKeyboardEvent = true; } addInitialPointerMoveListeners(); } } /** * Add a group of listeners to detect usage of any pointing devices. * These listeners will be added when the polyfill first loads, and anytime * the window is blurred, so that they are active when the window regains * focus. */ function addInitialPointerMoveListeners() { document.addEventListener('mousemove', onInitialPointerMove); document.addEventListener('mousedown', onInitialPointerMove); document.addEventListener('mouseup', onInitialPointerMove); document.addEventListener('pointermove', onInitialPointerMove); document.addEventListener('pointerdown', onInitialPointerMove); document.addEventListener('pointerup', onInitialPointerMove); document.addEventListener('touchmove', onInitialPointerMove); document.addEventListener('touchstart', onInitialPointerMove); document.addEventListener('touchend', onInitialPointerMove); } function removeInitialPointerMoveListeners() { document.removeEventListener('mousemove', onInitialPointerMove); document.removeEventListener('mousedown', onInitialPointerMove); document.removeEventListener('mouseup', onInitialPointerMove); document.removeEventListener('pointermove', onInitialPointerMove); document.removeEventListener('pointerdown', onInitialPointerMove); document.removeEventListener('pointerup', onInitialPointerMove); document.removeEventListener('touchmove', onInitialPointerMove); document.removeEventListener('touchstart', onInitialPointerMove); document.removeEventListener('touchend', onInitialPointerMove); } /** * When the polfyill first loads, assume the user is in keyboard modality. * If any event is received from a pointing device (e.g. mouse, pointer, * touch), turn off keyboard modality. * This accounts for situations where focus enters the page from the URL bar. * @param {Event} e */ function onInitialPointerMove(e) { // Work around a Safari quirk that fires a mousemove on <html> whenever the // window blurs, even if you're tabbing out of the page. ¯\_(ツ)_/¯ if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { return; } hadKeyboardEvent = false; removeInitialPointerMoveListeners(); } // For some kinds of state, we are interested in changes at the global scope // only. For example, global pointer input, global key presses and global // visibility change should affect the state at every scope: document.addEventListener('keydown', onKeyDown, true); document.addEventListener('mousedown', onPointerDown, true); document.addEventListener('pointerdown', onPointerDown, true); document.addEventListener('touchstart', onPointerDown, true); document.addEventListener('visibilitychange', onVisibilityChange, true); addInitialPointerMoveListeners(); // For focus and blur, we specifically care about state changes in the local // scope. This is because focus / blur events that originate from within a // shadow root are not re-dispatched from the host element if it was already // the active element in its own scope: scope.addEventListener('focus', onFocus, true); scope.addEventListener('blur', onBlur, true); } function ready() { if (typeof document !== 'undefined') { try { // check for native support; this will throw if the selector is not considered valid document.querySelector(':focus-visible'); } catch (e) { // :focus-visible pseudo-selector is not supported natively applyFocusVisiblePolyfill(document); } } } // Export module return { ready: ready }; }); /***/ }), /* 384 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: focus-within */ var Webflow = __webpack_require__(20); // polyfill based off of https://github.com/matteobad/focus-within-polyfill Webflow.define('focus-within', module.exports = function () { /** * Calculate the entire event path. * * @param {Element} node * @return {Array} computedPath */ function computeEventPath(node) { var path = [node]; var parent = null; while (parent = node.parentNode || node.host || node.defaultView) { path.push(parent); node = parent; } return path; } function addFocusWithinAttribute(el) { if (typeof el.getAttribute !== 'function' || el.getAttribute('data-wf-focus-within')) { return; } el.setAttribute('data-wf-focus-within', 'true'); } function removeFocusWithinAttribute(el) { if (typeof el.getAttribute !== 'function' || !el.getAttribute('data-wf-focus-within')) { return; } el.removeAttribute('data-wf-focus-within'); } /** * Attach event listerns to initiate polyfill * @return {boolean} */ function loadFocusWithinPolyfill() { var handler = function handler(e) { var running; /** * Request animation frame callback. * Remove previously applied attributes. * Add new attributes. */ function action() { running = false; if ('blur' === e.type) { Array.prototype.slice.call(computeEventPath(e.target)).forEach(removeFocusWithinAttribute); } if ('focus' === e.type) { Array.prototype.slice.call(computeEventPath(e.target)).forEach(addFocusWithinAttribute); } } if (!running) { window.requestAnimationFrame(action); running = true; } }; document.addEventListener('focus', handler, true); document.addEventListener('blur', handler, true); addFocusWithinAttribute(document.body); return true; } function ready() { if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within')) { try { // check for native support; this will throw if the selector is not considered valid document.querySelector(':focus-within'); } catch (e) { loadFocusWithinPolyfill(); } } } // Export module return { ready: ready }; }); /***/ }), /* 385 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals document, MouseEvent */ /* eslint-disable no-var */ /** * Webflow: focus */ var Webflow = __webpack_require__(20); /* * Safari has a weird bug where it doesn't support :focus for links with hrefs, * buttons, and input[type=button|submit], so we listen for mousedown events * instead and force the element to emit a focus event in those cases. * See these webkit bugs for reference: * https://bugs.webkit.org/show_bug.cgi?id=22261 * https://bugs.webkit.org/show_bug.cgi?id=229895 */ Webflow.define('focus', module.exports = function () { var capturedEvents = []; var capturing = false; function captureEvent(e) { if (capturing) { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); capturedEvents.unshift(e); } } /* * The only mousedown events we care about here are ones emanating from * (A) anchor links with href attribute, * (B) non-disabled buttons, * (C) non-disabled textarea, * (D) non-disabled inputs of type "button", "reset", "checkbox", "radio", "submit" * (E) non-interactive elements (button, a, input, textarea, select) that have a tabindex with a numeric value * (F) audio elements * (G) video elements with controls attribute */ function isPolyfilledFocusEvent(e) { var el = e.target; var tag = el.tagName; return /^a$/i.test(tag) && el.href != null || // (A) /^(button|textarea)$/i.test(tag) && el.disabled !== true || // (B) (C) /^input$/i.test(tag) && /^(button|reset|submit|radio|checkbox)$/i.test(el.type) && !el.disabled || // (D) !/^(button|input|textarea|select|a)$/i.test(tag) && !Number.isNaN(Number.parseFloat(el.tabIndex)) || // (E) /^audio$/i.test(tag) || // (F) /^video$/i.test(tag) && el.controls === true // (G) ; } function handler(e) { if (isPolyfilledFocusEvent(e)) { // start capturing possible out-of-order mouse events capturing = true; /* * enqueue the focus event _after_ the current batch of events, which * includes any blur events. The correct order of events is: * * [this element] MOUSEDOWN <-- this event * [previously active element] BLUR * [previously active element] FOCUSOUT * [this element] FOCUS <-- forced event * [this element] FOCUSIN <-- forced event * [this element] MOUSEUP <-- possibly captured event (it may have fired _before_ the FOCUS event) * [this element] CLICK <-- possibly captured event (it may have fired _before_ the FOCUS event) */ setTimeout(function () { // stop capturing possible out-of-order mouse events capturing = false; // trigger focus event e.target.focus(); // re-dispatch captured mouse events in order while (capturedEvents.length > 0) { var event = capturedEvents.pop(); event.target.dispatchEvent(new MouseEvent(event.type, event)); } }, 0); } } function ready() { if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within') && Webflow.env.safari) { document.addEventListener('mousedown', handler, true); document.addEventListener('mouseup', captureEvent, true); document.addEventListener('click', captureEvent, true); } } // Export module return { ready: ready }; }); /***/ }), /* 386 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window */ /* eslint-disable no-var */ /** * Webflow: IX Event triggers for other modules */ // eslint-disable-next-line strict var $ = window.jQuery; var api = {}; var eventQueue = []; var namespace = '.w-ix'; var eventTriggers = { reset: function reset(i, el) { el.__wf_intro = null; }, intro: function intro(i, el) { if (el.__wf_intro) { return; } el.__wf_intro = true; $(el).triggerHandler(api.types.INTRO); }, outro: function outro(i, el) { if (!el.__wf_intro) { return; } el.__wf_intro = null; $(el).triggerHandler(api.types.OUTRO); } }; api.triggers = {}; api.types = { INTRO: 'w-ix-intro' + namespace, OUTRO: 'w-ix-outro' + namespace }; // Trigger any events in queue + restore trigger methods api.init = function () { var count = eventQueue.length; for (var i = 0; i < count; i++) { var memo = eventQueue[i]; memo[0](0, memo[1]); } eventQueue = []; $.extend(api.triggers, eventTriggers); }; // Replace all triggers with async wrapper to queue events until init api.async = function () { for (var key in eventTriggers) { var func = eventTriggers[key]; if (!eventTriggers.hasOwnProperty(key)) { continue; } // Replace trigger method with async wrapper api.triggers[key] = function (i, el) { eventQueue.push([func, el]); }; } }; // Default triggers to async queue api.async(); module.exports = api; /***/ }), /* 387 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* eslint-disable no-var */ /** * Webflow: Interactions 2 */ var Webflow = __webpack_require__(20); var ix2 = __webpack_require__(388); ix2.setEnv(Webflow.env); Webflow.define('ix2', module.exports = function () { return ix2; }); /***/ }), /* 388 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(66); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.setEnv = setEnv; exports.init = init; exports.destroy = destroy; exports.actions = exports.store = void 0; __webpack_require__(389); var _redux = __webpack_require__(240); var _IX2Reducer = _interopRequireDefault(__webpack_require__(406)); var _IX2VanillaEngine = __webpack_require__(275); var actions = _interopRequireWildcard(__webpack_require__(181)); exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects var store = (0, _redux.createStore)(_IX2Reducer["default"]); exports.store = store; function setEnv(env) { if (env()) { (0, _IX2VanillaEngine.observeRequests)(store); } } function init(rawData) { destroy(); (0, _IX2VanillaEngine.startEngine)({ store: store, rawData: rawData, allowEvents: true }); } function destroy() { (0, _IX2VanillaEngine.stopEngine)(store); } /***/ }), /* 389 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(390); module.exports = parent; /***/ }), /* 390 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(391); module.exports = parent; /***/ }), /* 391 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(229); var entryUnbind = __webpack_require__(239); module.exports = entryUnbind('Array', 'includes'); /***/ }), /* 392 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var call = __webpack_require__(23); var isCallable = __webpack_require__(6); var isObject = __webpack_require__(12); var TypeError = global.TypeError; // `OrdinaryToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-ordinarytoprimitive module.exports = function (input, pref) { var fn, val; if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 393 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isCallable = __webpack_require__(6); var inspectSource = __webpack_require__(117); var WeakMap = global.WeakMap; module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); /***/ }), /* 394 */ /***/ (function(module, exports, __webpack_require__) { var getBuiltIn = __webpack_require__(24); var uncurryThis = __webpack_require__(3); var getOwnPropertyNamesModule = __webpack_require__(88); var getOwnPropertySymbolsModule = __webpack_require__(236); var anObject = __webpack_require__(15); var concat = uncurryThis([].concat); // all object keys, includes non-enumerable and symbols module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; }; /***/ }), /* 395 */ /***/ (function(module, exports, __webpack_require__) { var toIntegerOrInfinity = __webpack_require__(32); var min = Math.min; // `ToLength` abstract operation // https://tc39.es/ecma262/#sec-tolength module.exports = function (argument) { return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }), /* 396 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242); /* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(399); /* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(400); /** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]'; /** Built-in value references. */ var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return (symToStringTag && symToStringTag in Object(value)) ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); } /* harmony default export */ __webpack_exports__["default"] = (baseGetTag); /***/ }), /* 397 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(398); /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); /* harmony default export */ __webpack_exports__["default"] = (root); /***/ }), /* 398 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; /* harmony default export */ __webpack_exports__["default"] = (freeGlobal); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52))) /***/ }), /* 399 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Built-in value references. */ var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } /* harmony default export */ __webpack_exports__["default"] = (getRawTag); /***/ }), /* 400 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** * Converts `value` to a string using `Object.prototype.toString`. * * @private * @param {*} value The value to convert. * @returns {string} Returns the converted string. */ function objectToString(value) { return nativeObjectToString.call(value); } /* harmony default export */ __webpack_exports__["default"] = (objectToString); /***/ }), /* 401 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(402); /** Built-in value references. */ var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); /* harmony default export */ __webpack_exports__["default"] = (getPrototype); /***/ }), /* 402 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } /* harmony default export */ __webpack_exports__["default"] = (overArg); /***/ }), /* 403 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && typeof value == 'object'; } /* harmony default export */ __webpack_exports__["default"] = (isObjectLike); /***/ }), /* 404 */ /***/ (function(module, exports) { module.exports = function(originalModule) { if (!originalModule.webpackPolyfill) { var module = Object.create(originalModule); // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); Object.defineProperty(module, "exports", { enumerable: true }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 405 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); function symbolObservablePonyfill(root) { var result; var Symbol = root.Symbol; if (typeof Symbol === 'function') { if (Symbol.observable) { result = Symbol.observable; } else { result = Symbol('observable'); Symbol.observable = result; } } else { result = '@@observable'; } return result; }; /***/ }), /* 406 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _redux = __webpack_require__(240); var _IX2DataReducer = __webpack_require__(407); var _IX2RequestReducer = __webpack_require__(413); var _IX2SessionReducer = __webpack_require__(414); var _shared = __webpack_require__(71); var _IX2InstancesReducer = __webpack_require__(489); var _IX2ParametersReducer = __webpack_require__(490); var ixElements = _shared.IX2ElementsReducer.ixElements; var _default = (0, _redux.combineReducers)({ ixData: _IX2DataReducer.ixData, ixRequest: _IX2RequestReducer.ixRequest, ixSession: _IX2SessionReducer.ixSession, ixElements: ixElements, ixInstances: _IX2InstancesReducer.ixInstances, ixParameters: _IX2ParametersReducer.ixParameters }); exports["default"] = _default; /***/ }), /* 407 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixData = void 0; var _constants = __webpack_require__(25); var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; var ixData = function ixData() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_RAW_DATA_IMPORTED: { return action.payload.ixData || Object.freeze({}); } default: { return state; } } }; exports.ixData = ixData; /***/ }), /* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; /** * Event Type IDs */ var EventTypeConsts = { NAVBAR_OPEN: 'NAVBAR_OPEN', NAVBAR_CLOSE: 'NAVBAR_CLOSE', TAB_ACTIVE: 'TAB_ACTIVE', TAB_INACTIVE: 'TAB_INACTIVE', SLIDER_ACTIVE: 'SLIDER_ACTIVE', SLIDER_INACTIVE: 'SLIDER_INACTIVE', DROPDOWN_OPEN: 'DROPDOWN_OPEN', DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', MOUSE_CLICK: 'MOUSE_CLICK', MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', MOUSE_DOWN: 'MOUSE_DOWN', MOUSE_UP: 'MOUSE_UP', MOUSE_OVER: 'MOUSE_OVER', MOUSE_OUT: 'MOUSE_OUT', MOUSE_MOVE: 'MOUSE_MOVE', MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', PAGE_START: 'PAGE_START', PAGE_FINISH: 'PAGE_FINISH', PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', PAGE_SCROLL: 'PAGE_SCROLL' }; /** * Event Config Enums */ exports.EventTypeConsts = EventTypeConsts; var EventAppliesTo = { ELEMENT: 'ELEMENT', CLASS: 'CLASS', PAGE: 'PAGE' }; exports.EventAppliesTo = EventAppliesTo; var EventBasedOn = { ELEMENT: 'ELEMENT', VIEWPORT: 'VIEWPORT' }; exports.EventBasedOn = EventBasedOn; var EventContinuousMouseAxes = { X_AXIS: 'X_AXIS', Y_AXIS: 'Y_AXIS' }; exports.EventContinuousMouseAxes = EventContinuousMouseAxes; var EventLimitAffectedElements = { CHILDREN: 'CHILDREN', SIBLINGS: 'SIBLINGS', IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' }; /** * Quick Effect Enums */ exports.EventLimitAffectedElements = EventLimitAffectedElements; var QuickEffectIds = { FADE_EFFECT: 'FADE_EFFECT', SLIDE_EFFECT: 'SLIDE_EFFECT', GROW_EFFECT: 'GROW_EFFECT', SHRINK_EFFECT: 'SHRINK_EFFECT', SPIN_EFFECT: 'SPIN_EFFECT', FLY_EFFECT: 'FLY_EFFECT', POP_EFFECT: 'POP_EFFECT', FLIP_EFFECT: 'FLIP_EFFECT', JIGGLE_EFFECT: 'JIGGLE_EFFECT', PULSE_EFFECT: 'PULSE_EFFECT', DROP_EFFECT: 'DROP_EFFECT', BLINK_EFFECT: 'BLINK_EFFECT', BOUNCE_EFFECT: 'BOUNCE_EFFECT', FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', JELLO_EFFECT: 'JELLO_EFFECT', GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' }; /** * Quick Effect Direction Enums */ exports.QuickEffectIds = QuickEffectIds; var QuickEffectDirectionConsts = { LEFT: 'LEFT', RIGHT: 'RIGHT', BOTTOM: 'BOTTOM', TOP: 'TOP', BOTTOM_LEFT: 'BOTTOM_LEFT', BOTTOM_RIGHT: 'BOTTOM_RIGHT', TOP_RIGHT: 'TOP_RIGHT', TOP_LEFT: 'TOP_LEFT', CLOCKWISE: 'CLOCKWISE', COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' }; exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; /***/ }), /* 409 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InteractionTypeConsts = void 0; var InteractionTypeConsts = { MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', TAB_INTERACTION: 'TAB_INTERACTION', SLIDER_INTERACTION: 'SLIDER_INTERACTION' }; exports.InteractionTypeConsts = InteractionTypeConsts; /***/ }), /* 410 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); var _ReducedMotionTypes; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReducedMotionTypes = void 0; var _animationActions = __webpack_require__(248); var _animationActions$Act = _animationActions.ActionTypeConsts, TRANSFORM_MOVE = _animationActions$Act.TRANSFORM_MOVE, TRANSFORM_SCALE = _animationActions$Act.TRANSFORM_SCALE, TRANSFORM_ROTATE = _animationActions$Act.TRANSFORM_ROTATE, TRANSFORM_SKEW = _animationActions$Act.TRANSFORM_SKEW, STYLE_SIZE = _animationActions$Act.STYLE_SIZE, STYLE_FILTER = _animationActions$Act.STYLE_FILTER, STYLE_FONT_VARIATION = _animationActions$Act.STYLE_FONT_VARIATION; /** * Reduced Motion: Action types to bypass during `prefers-reduced-motion` */ var ReducedMotionTypes = (_ReducedMotionTypes = {}, (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_MOVE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_SCALE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_ROTATE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_SKEW, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_SIZE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_FILTER, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_FONT_VARIATION, true), _ReducedMotionTypes); exports.ReducedMotionTypes = ReducedMotionTypes; /***/ }), /* 411 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IX2_TEST_FRAME_RENDERED = exports.IX2_MEDIA_QUERIES_DEFINED = exports.IX2_VIEWPORT_WIDTH_CHANGED = exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = exports.IX2_ELEMENT_STATE_CHANGED = exports.IX2_INSTANCE_REMOVED = exports.IX2_INSTANCE_STARTED = exports.IX2_INSTANCE_ADDED = exports.IX2_PARAMETER_CHANGED = exports.IX2_ANIMATION_FRAME_CHANGED = exports.IX2_EVENT_STATE_CHANGED = exports.IX2_EVENT_LISTENER_ADDED = exports.IX2_CLEAR_REQUESTED = exports.IX2_STOP_REQUESTED = exports.IX2_PLAYBACK_REQUESTED = exports.IX2_PREVIEW_REQUESTED = exports.IX2_SESSION_STOPPED = exports.IX2_SESSION_STARTED = exports.IX2_SESSION_INITIALIZED = exports.IX2_RAW_DATA_IMPORTED = void 0; var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; /***/ }), /* 412 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exports.ABSTRACT_NODE = exports.PLAIN_OBJECT = exports.HTML_ELEMENT = exports.PRESERVE_3D = exports.PARENT = exports.SIBLINGS = exports.IMMEDIATE_CHILDREN = exports.CHILDREN = exports.BAR_DELIMITER = exports.COLON_DELIMITER = exports.COMMA_DELIMITER = exports.AUTO = exports.WILL_CHANGE = exports.FLEX = exports.DISPLAY = exports.COLOR = exports.BORDER_COLOR = exports.BACKGROUND = exports.BACKGROUND_COLOR = exports.HEIGHT = exports.WIDTH = exports.FONT_VARIATION_SETTINGS = exports.FILTER = exports.OPACITY = exports.SKEW_Y = exports.SKEW_X = exports.SKEW = exports.ROTATE_Z = exports.ROTATE_Y = exports.ROTATE_X = exports.SCALE_3D = exports.SCALE_Z = exports.SCALE_Y = exports.SCALE_X = exports.TRANSLATE_3D = exports.TRANSLATE_Z = exports.TRANSLATE_Y = exports.TRANSLATE_X = exports.TRANSFORM = exports.CONFIG_UNIT = exports.CONFIG_Z_UNIT = exports.CONFIG_Y_UNIT = exports.CONFIG_X_UNIT = exports.CONFIG_VALUE = exports.CONFIG_Z_VALUE = exports.CONFIG_Y_VALUE = exports.CONFIG_X_VALUE = exports.BOUNDARY_SELECTOR = exports.W_MOD_IX = exports.W_MOD_JS = exports.WF_PAGE = exports.IX2_ID_DELIMITER = void 0; var IX2_ID_DELIMITER = '|'; exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; var WF_PAGE = 'data-wf-page'; exports.WF_PAGE = WF_PAGE; var W_MOD_JS = 'w-mod-js'; exports.W_MOD_JS = W_MOD_JS; var W_MOD_IX = 'w-mod-ix'; exports.W_MOD_IX = W_MOD_IX; var BOUNDARY_SELECTOR = '.w-dyn-item'; exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; var CONFIG_X_VALUE = 'xValue'; exports.CONFIG_X_VALUE = CONFIG_X_VALUE; var CONFIG_Y_VALUE = 'yValue'; exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; var CONFIG_Z_VALUE = 'zValue'; exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; var CONFIG_VALUE = 'value'; exports.CONFIG_VALUE = CONFIG_VALUE; var CONFIG_X_UNIT = 'xUnit'; exports.CONFIG_X_UNIT = CONFIG_X_UNIT; var CONFIG_Y_UNIT = 'yUnit'; exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; var CONFIG_Z_UNIT = 'zUnit'; exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; var CONFIG_UNIT = 'unit'; exports.CONFIG_UNIT = CONFIG_UNIT; var TRANSFORM = 'transform'; exports.TRANSFORM = TRANSFORM; var TRANSLATE_X = 'translateX'; exports.TRANSLATE_X = TRANSLATE_X; var TRANSLATE_Y = 'translateY'; exports.TRANSLATE_Y = TRANSLATE_Y; var TRANSLATE_Z = 'translateZ'; exports.TRANSLATE_Z = TRANSLATE_Z; var TRANSLATE_3D = 'translate3d'; exports.TRANSLATE_3D = TRANSLATE_3D; var SCALE_X = 'scaleX'; exports.SCALE_X = SCALE_X; var SCALE_Y = 'scaleY'; exports.SCALE_Y = SCALE_Y; var SCALE_Z = 'scaleZ'; exports.SCALE_Z = SCALE_Z; var SCALE_3D = 'scale3d'; exports.SCALE_3D = SCALE_3D; var ROTATE_X = 'rotateX'; exports.ROTATE_X = ROTATE_X; var ROTATE_Y = 'rotateY'; exports.ROTATE_Y = ROTATE_Y; var ROTATE_Z = 'rotateZ'; exports.ROTATE_Z = ROTATE_Z; var SKEW = 'skew'; exports.SKEW = SKEW; var SKEW_X = 'skewX'; exports.SKEW_X = SKEW_X; var SKEW_Y = 'skewY'; exports.SKEW_Y = SKEW_Y; var OPACITY = 'opacity'; exports.OPACITY = OPACITY; var FILTER = 'filter'; exports.FILTER = FILTER; var FONT_VARIATION_SETTINGS = 'font-variation-settings'; exports.FONT_VARIATION_SETTINGS = FONT_VARIATION_SETTINGS; var WIDTH = 'width'; exports.WIDTH = WIDTH; var HEIGHT = 'height'; exports.HEIGHT = HEIGHT; var BACKGROUND_COLOR = 'backgroundColor'; exports.BACKGROUND_COLOR = BACKGROUND_COLOR; var BACKGROUND = 'background'; exports.BACKGROUND = BACKGROUND; var BORDER_COLOR = 'borderColor'; exports.BORDER_COLOR = BORDER_COLOR; var COLOR = 'color'; exports.COLOR = COLOR; var DISPLAY = 'display'; exports.DISPLAY = DISPLAY; var FLEX = 'flex'; exports.FLEX = FLEX; var WILL_CHANGE = 'willChange'; exports.WILL_CHANGE = WILL_CHANGE; var AUTO = 'AUTO'; exports.AUTO = AUTO; var COMMA_DELIMITER = ','; exports.COMMA_DELIMITER = COMMA_DELIMITER; var COLON_DELIMITER = ':'; exports.COLON_DELIMITER = COLON_DELIMITER; var BAR_DELIMITER = '|'; exports.BAR_DELIMITER = BAR_DELIMITER; var CHILDREN = 'CHILDREN'; exports.CHILDREN = CHILDREN; var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; var SIBLINGS = 'SIBLINGS'; exports.SIBLINGS = SIBLINGS; var PARENT = 'PARENT'; exports.PARENT = PARENT; var PRESERVE_3D = 'preserve-3d'; exports.PRESERVE_3D = PRESERVE_3D; var HTML_ELEMENT = 'HTML_ELEMENT'; exports.HTML_ELEMENT = HTML_ELEMENT; var PLAIN_OBJECT = 'PLAIN_OBJECT'; exports.PLAIN_OBJECT = PLAIN_OBJECT; var ABSTRACT_NODE = 'ABSTRACT_NODE'; exports.ABSTRACT_NODE = ABSTRACT_NODE; var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; exports.RENDER_TRANSFORM = RENDER_TRANSFORM; var RENDER_GENERAL = 'RENDER_GENERAL'; exports.RENDER_GENERAL = RENDER_GENERAL; var RENDER_STYLE = 'RENDER_STYLE'; exports.RENDER_STYLE = RENDER_STYLE; var RENDER_PLUGIN = 'RENDER_PLUGIN'; exports.RENDER_PLUGIN = RENDER_PLUGIN; /***/ }), /* 413 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); var _Object$create; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.ixRequest = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _constants = __webpack_require__(25); var _timm = __webpack_require__(90); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; var initialState = { preview: {}, playback: {}, stop: {}, clear: {} }; var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { value: 'preview' }), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { value: 'playback' }), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { value: 'stop' }), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { value: 'clear' }), _Object$create)); var ixRequest = function ixRequest() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; if (action.type in stateKeys) { var key = [stateKeys[action.type]]; return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); } return state; }; exports.ixRequest = ixRequest; /***/ }), /* 414 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixSession = void 0; var _constants = __webpack_require__(25); var _timm = __webpack_require__(90); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; var initialState = { active: false, tick: 0, eventListeners: [], eventState: {}, playbackState: {}, viewportWidth: 0, mediaQueryKey: null, hasBoundaryNodes: false, hasDefinedMediaQueries: false, reducedMotion: false }; var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe var ixSession = function ixSession() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_SESSION_INITIALIZED: { var _action$payload = action.payload, hasBoundaryNodes = _action$payload.hasBoundaryNodes, reducedMotion = _action$payload.reducedMotion; return (0, _timm.merge)(state, { hasBoundaryNodes: hasBoundaryNodes, reducedMotion: reducedMotion }); } case IX2_SESSION_STARTED: { return (0, _timm.set)(state, 'active', true); } case IX2_TEST_FRAME_RENDERED: { var _action$payload$step = action.payload.step, step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; return (0, _timm.set)(state, 'tick', state.tick + step); } case IX2_SESSION_STOPPED: { return initialState; } case IX2_ANIMATION_FRAME_CHANGED: { var now = action.payload.now; return (0, _timm.set)(state, 'tick', now); } case IX2_EVENT_LISTENER_ADDED: { var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); return (0, _timm.set)(state, 'eventListeners', eventListeners); } case IX2_EVENT_STATE_CHANGED: { var _action$payload2 = action.payload, stateKey = _action$payload2.stateKey, newState = _action$payload2.newState; return (0, _timm.setIn)(state, ['eventState', stateKey], newState); } case IX2_ACTION_LIST_PLAYBACK_CHANGED: { var _action$payload3 = action.payload, actionListId = _action$payload3.actionListId, isPlaying = _action$payload3.isPlaying; return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); } case IX2_VIEWPORT_WIDTH_CHANGED: { var _action$payload4 = action.payload, width = _action$payload4.width, mediaQueries = _action$payload4.mediaQueries; var mediaQueryCount = mediaQueries.length; var mediaQueryKey = null; for (var i = 0; i < mediaQueryCount; i++) { var _mediaQueries$i = mediaQueries[i], key = _mediaQueries$i.key, min = _mediaQueries$i.min, max = _mediaQueries$i.max; if (width >= min && width <= max) { mediaQueryKey = key; break; } } return (0, _timm.merge)(state, { viewportWidth: width, mediaQueryKey: mediaQueryKey }); } case IX2_MEDIA_QUERIES_DEFINED: { return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); } default: { return state; } } }; exports.ixSession = ixSession; /***/ }), /* 415 */ /***/ (function(module, exports, __webpack_require__) { var baseIsMatch = __webpack_require__(416), getMatchData = __webpack_require__(463), matchesStrictComparable = __webpack_require__(263); /** * The base implementation of `_.matches` which doesn't clone `source`. * * @private * @param {Object} source The object of property values to match. * @returns {Function} Returns the new spec function. */ function baseMatches(source) { var matchData = getMatchData(source); if (matchData.length == 1 && matchData[0][2]) { return matchesStrictComparable(matchData[0][0], matchData[0][1]); } return function(object) { return object === source || baseIsMatch(object, source, matchData); }; } module.exports = baseMatches; /***/ }), /* 416 */ /***/ (function(module, exports, __webpack_require__) { var Stack = __webpack_require__(120), baseIsEqual = __webpack_require__(252); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** * The base implementation of `_.isMatch` without support for iteratee shorthands. * * @private * @param {Object} object The object to inspect. * @param {Object} source The object of property values to match. * @param {Array} matchData The property names, values, and compare flags to match. * @param {Function} [customizer] The function to customize comparisons. * @returns {boolean} Returns `true` if `object` is a match, else `false`. */ function baseIsMatch(object, source, matchData, customizer) { var index = matchData.length, length = index, noCustomizer = !customizer; if (object == null) { return !length; } object = Object(object); while (index--) { var data = matchData[index]; if ((noCustomizer && data[2]) ? data[1] !== object[data[0]] : !(data[0] in object) ) { return false; } } while (++index < length) { data = matchData[index]; var key = data[0], objValue = object[key], srcValue = data[1]; if (noCustomizer && data[2]) { if (objValue === undefined && !(key in object)) { return false; } } else { var stack = new Stack; if (customizer) { var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result )) { return false; } } } return true; } module.exports = baseIsMatch; /***/ }), /* 417 */ /***/ (function(module, exports) { /** * Removes all key-value entries from the list cache. * * @private * @name clear * @memberOf ListCache */ function listCacheClear() { this.__data__ = []; this.size = 0; } module.exports = listCacheClear; /***/ }), /* 418 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(122); /** Used for built-in method references. */ var arrayProto = Array.prototype; /** Built-in value references. */ var splice = arrayProto.splice; /** * Removes `key` and its value from the list cache. * * @private * @name delete * @memberOf ListCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function listCacheDelete(key) { var data = this.__data__, index = assocIndexOf(data, key); if (index < 0) { return false; } var lastIndex = data.length - 1; if (index == lastIndex) { data.pop(); } else { splice.call(data, index, 1); } --this.size; return true; } module.exports = listCacheDelete; /***/ }), /* 419 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(122); /** * Gets the list cache value for `key`. * * @private * @name get * @memberOf ListCache * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function listCacheGet(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? undefined : data[index][1]; } module.exports = listCacheGet; /***/ }), /* 420 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(122); /** * Checks if a list cache value for `key` exists. * * @private * @name has * @memberOf ListCache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function listCacheHas(key) { return assocIndexOf(this.__data__, key) > -1; } module.exports = listCacheHas; /***/ }), /* 421 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(122); /** * Sets the list cache `key` to `value`. * * @private * @name set * @memberOf ListCache * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the list cache instance. */ function listCacheSet(key, value) { var data = this.__data__, index = assocIndexOf(data, key); if (index < 0) { ++this.size; data.push([key, value]); } else { data[index][1] = value; } return this; } module.exports = listCacheSet; /***/ }), /* 422 */ /***/ (function(module, exports, __webpack_require__) { var ListCache = __webpack_require__(121); /** * Removes all key-value entries from the stack. * * @private * @name clear * @memberOf Stack */ function stackClear() { this.__data__ = new ListCache; this.size = 0; } module.exports = stackClear; /***/ }), /* 423 */ /***/ (function(module, exports) { /** * Removes `key` and its value from the stack. * * @private * @name delete * @memberOf Stack * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function stackDelete(key) { var data = this.__data__, result = data['delete'](key); this.size = data.size; return result; } module.exports = stackDelete; /***/ }), /* 424 */ /***/ (function(module, exports) { /** * Gets the stack value for `key`. * * @private * @name get * @memberOf Stack * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function stackGet(key) { return this.__data__.get(key); } module.exports = stackGet; /***/ }), /* 425 */ /***/ (function(module, exports) { /** * Checks if a stack value for `key` exists. * * @private * @name has * @memberOf Stack * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function stackHas(key) { return this.__data__.has(key); } module.exports = stackHas; /***/ }), /* 426 */ /***/ (function(module, exports, __webpack_require__) { var ListCache = __webpack_require__(121), Map = __webpack_require__(165), MapCache = __webpack_require__(166); /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; /** * Sets the stack `key` to `value`. * * @private * @name set * @memberOf Stack * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the stack cache instance. */ function stackSet(key, value) { var data = this.__data__; if (data instanceof ListCache) { var pairs = data.__data__; if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { pairs.push([key, value]); this.size = ++data.size; return this; } data = this.__data__ = new MapCache(pairs); } data.set(key, value); this.size = data.size; return this; } module.exports = stackSet; /***/ }), /* 427 */ /***/ (function(module, exports, __webpack_require__) { var isFunction = __webpack_require__(72), isMasked = __webpack_require__(430), isObject = __webpack_require__(18), toSource = __webpack_require__(251); /** * Used to match `RegExp` * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). */ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; /** Used to detect host constructors (Safari). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; /** Used for built-in method references. */ var funcProto = Function.prototype, objectProto = Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to detect if a method is native. */ var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' ); /** * The base implementation of `_.isNative` without bad shim checks. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a native function, * else `false`. */ function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } module.exports = baseIsNative; /***/ }), /* 428 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(73); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Built-in value references. */ var symToStringTag = Symbol ? Symbol.toStringTag : undefined; /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } module.exports = getRawTag; /***/ }), /* 429 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** * Converts `value` to a string using `Object.prototype.toString`. * * @private * @param {*} value The value to convert. * @returns {string} Returns the converted string. */ function objectToString(value) { return nativeObjectToString.call(value); } module.exports = objectToString; /***/ }), /* 430 */ /***/ (function(module, exports, __webpack_require__) { var coreJsData = __webpack_require__(431); /** Used to detect methods masquerading as native. */ var maskSrcKey = (function() { var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); return uid ? ('Symbol(src)_1.' + uid) : ''; }()); /** * Checks if `func` has its source masked. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` is masked, else `false`. */ function isMasked(func) { return !!maskSrcKey && (maskSrcKey in func); } module.exports = isMasked; /***/ }), /* 431 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(28); /** Used to detect overreaching core-js shims. */ var coreJsData = root['__core-js_shared__']; module.exports = coreJsData; /***/ }), /* 432 */ /***/ (function(module, exports) { /** * Gets the value at `key` of `object`. * * @private * @param {Object} [object] The object to query. * @param {string} key The key of the property to get. * @returns {*} Returns the property value. */ function getValue(object, key) { return object == null ? undefined : object[key]; } module.exports = getValue; /***/ }), /* 433 */ /***/ (function(module, exports, __webpack_require__) { var Hash = __webpack_require__(434), ListCache = __webpack_require__(121), Map = __webpack_require__(165); /** * Removes all key-value entries from the map. * * @private * @name clear * @memberOf MapCache */ function mapCacheClear() { this.size = 0; this.__data__ = { 'hash': new Hash, 'map': new (Map || ListCache), 'string': new Hash }; } module.exports = mapCacheClear; /***/ }), /* 434 */ /***/ (function(module, exports, __webpack_require__) { var hashClear = __webpack_require__(435), hashDelete = __webpack_require__(436), hashGet = __webpack_require__(437), hashHas = __webpack_require__(438), hashSet = __webpack_require__(439); /** * Creates a hash object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function Hash(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } // Add methods to `Hash`. Hash.prototype.clear = hashClear; Hash.prototype['delete'] = hashDelete; Hash.prototype.get = hashGet; Hash.prototype.has = hashHas; Hash.prototype.set = hashSet; module.exports = Hash; /***/ }), /* 435 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(123); /** * Removes all key-value entries from the hash. * * @private * @name clear * @memberOf Hash */ function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; this.size = 0; } module.exports = hashClear; /***/ }), /* 436 */ /***/ (function(module, exports) { /** * Removes `key` and its value from the hash. * * @private * @name delete * @memberOf Hash * @param {Object} hash The hash to modify. * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function hashDelete(key) { var result = this.has(key) && delete this.__data__[key]; this.size -= result ? 1 : 0; return result; } module.exports = hashDelete; /***/ }), /* 437 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(123); /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Gets the hash value for `key`. * * @private * @name get * @memberOf Hash * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? undefined : result; } return hasOwnProperty.call(data, key) ? data[key] : undefined; } module.exports = hashGet; /***/ }), /* 438 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(123); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Checks if a hash value for `key` exists. * * @private * @name has * @memberOf Hash * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function hashHas(key) { var data = this.__data__; return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); } module.exports = hashHas; /***/ }), /* 439 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(123); /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** * Sets the hash `key` to `value`. * * @private * @name set * @memberOf Hash * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the hash instance. */ function hashSet(key, value) { var data = this.__data__; this.size += this.has(key) ? 0 : 1; data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; return this; } module.exports = hashSet; /***/ }), /* 440 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(124); /** * Removes `key` and its value from the map. * * @private * @name delete * @memberOf MapCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function mapCacheDelete(key) { var result = getMapData(this, key)['delete'](key); this.size -= result ? 1 : 0; return result; } module.exports = mapCacheDelete; /***/ }), /* 441 */ /***/ (function(module, exports) { /** * Checks if `value` is suitable for use as unique object key. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is suitable, else `false`. */ function isKeyable(value) { var type = typeof value; return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') ? (value !== '__proto__') : (value === null); } module.exports = isKeyable; /***/ }), /* 442 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(124); /** * Gets the map value for `key`. * * @private * @name get * @memberOf MapCache * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function mapCacheGet(key) { return getMapData(this, key).get(key); } module.exports = mapCacheGet; /***/ }), /* 443 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(124); /** * Checks if a map value for `key` exists. * * @private * @name has * @memberOf MapCache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function mapCacheHas(key) { return getMapData(this, key).has(key); } module.exports = mapCacheHas; /***/ }), /* 444 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(124); /** * Sets the map `key` to `value`. * * @private * @name set * @memberOf MapCache * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the map cache instance. */ function mapCacheSet(key, value) { var data = getMapData(this, key), size = data.size; data.set(key, value); this.size += data.size == size ? 0 : 1; return this; } module.exports = mapCacheSet; /***/ }), /* 445 */ /***/ (function(module, exports, __webpack_require__) { var Stack = __webpack_require__(120), equalArrays = __webpack_require__(253), equalByTag = __webpack_require__(451), equalObjects = __webpack_require__(453), getTag = __webpack_require__(59), isArray = __webpack_require__(10), isBuffer = __webpack_require__(74), isTypedArray = __webpack_require__(94); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1; /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', objectTag = '[object Object]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * A specialized version of `baseIsEqual` for arrays and objects which performs * deep comparisons and tracks traversed objects enabling objects with circular * references to be compared. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); objTag = objTag == argsTag ? objectTag : objTag; othTag = othTag == argsTag ? objectTag : othTag; var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; if (isSameTag && isBuffer(object)) { if (!isBuffer(other)) { return false; } objIsArr = true; objIsObj = false; } if (isSameTag && !objIsObj) { stack || (stack = new Stack); return (objIsArr || isTypedArray(object)) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); } if (!(bitmask & COMPARE_PARTIAL_FLAG)) { var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); if (objIsWrapped || othIsWrapped) { var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; stack || (stack = new Stack); return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack); return equalObjects(object, other, bitmask, customizer, equalFunc, stack); } module.exports = baseIsEqualDeep; /***/ }), /* 446 */ /***/ (function(module, exports, __webpack_require__) { var MapCache = __webpack_require__(166), setCacheAdd = __webpack_require__(447), setCacheHas = __webpack_require__(448); /** * * Creates an array cache object to store unique values. * * @private * @constructor * @param {Array} [values] The values to cache. */ function SetCache(values) { var index = -1, length = values == null ? 0 : values.length; this.__data__ = new MapCache; while (++index < length) { this.add(values[index]); } } // Add methods to `SetCache`. SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; SetCache.prototype.has = setCacheHas; module.exports = SetCache; /***/ }), /* 447 */ /***/ (function(module, exports) { /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** * Adds `value` to the array cache. * * @private * @name add * @memberOf SetCache * @alias push * @param {*} value The value to cache. * @returns {Object} Returns the cache instance. */ function setCacheAdd(value) { this.__data__.set(value, HASH_UNDEFINED); return this; } module.exports = setCacheAdd; /***/ }), /* 448 */ /***/ (function(module, exports) { /** * Checks if `value` is in the array cache. * * @private * @name has * @memberOf SetCache * @param {*} value The value to search for. * @returns {number} Returns `true` if `value` is found, else `false`. */ function setCacheHas(value) { return this.__data__.has(value); } module.exports = setCacheHas; /***/ }), /* 449 */ /***/ (function(module, exports) { /** * A specialized version of `_.some` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. */ function arraySome(array, predicate) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (predicate(array[index], index, array)) { return true; } } return false; } module.exports = arraySome; /***/ }), /* 450 */ /***/ (function(module, exports) { /** * Checks if a `cache` value for `key` exists. * * @private * @param {Object} cache The cache to query. * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function cacheHas(cache, key) { return cache.has(key); } module.exports = cacheHas; /***/ }), /* 451 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(73), Uint8Array = __webpack_require__(254), eq = __webpack_require__(91), equalArrays = __webpack_require__(253), mapToArray = __webpack_require__(255), setToArray = __webpack_require__(452); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** `Object#toString` result references. */ var boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', mapTag = '[object Map]', numberTag = '[object Number]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]'; /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** * A specialized version of `baseIsEqualDeep` for comparing objects of * the same `toStringTag`. * * **Note:** This function only supports comparing values with tags of * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {string} tag The `toStringTag` of the objects to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { switch (tag) { case dataViewTag: if ((object.byteLength != other.byteLength) || (object.byteOffset != other.byteOffset)) { return false; } object = object.buffer; other = other.buffer; case arrayBufferTag: if ((object.byteLength != other.byteLength) || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { return false; } return true; case boolTag: case dateTag: case numberTag: // Coerce booleans to `1` or `0` and dates to milliseconds. // Invalid dates are coerced to `NaN`. return eq(+object, +other); case errorTag: return object.name == other.name && object.message == other.message; case regexpTag: case stringTag: // Coerce regexes to strings and treat strings, primitives and objects, // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring // for more details. return object == (other + ''); case mapTag: var convert = mapToArray; case setTag: var isPartial = bitmask & COMPARE_PARTIAL_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { return false; } // Assume cyclic values are equal. var stacked = stack.get(object); if (stacked) { return stacked == other; } bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits). stack.set(object, other); var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); stack['delete'](object); return result; case symbolTag: if (symbolValueOf) { return symbolValueOf.call(object) == symbolValueOf.call(other); } } return false; } module.exports = equalByTag; /***/ }), /* 452 */ /***/ (function(module, exports) { /** * Converts `set` to an array of its values. * * @private * @param {Object} set The set to convert. * @returns {Array} Returns the values. */ function setToArray(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = value; }); return result; } module.exports = setToArray; /***/ }), /* 453 */ /***/ (function(module, exports, __webpack_require__) { var getAllKeys = __webpack_require__(256); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * A specialized version of `baseIsEqualDeep` for objects with support for * partial deep comparisons. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; if (objLength != othLength && !isPartial) { return false; } var index = objLength; while (index--) { var key = objProps[index]; if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { return false; } } // Check that cyclic values are equal. var objStacked = stack.get(object); var othStacked = stack.get(other); if (objStacked && othStacked) { return objStacked == other && othStacked == object; } var result = true; stack.set(object, other); stack.set(other, object); var skipCtor = isPartial; while (++index < objLength) { key = objProps[index]; var objValue = object[key], othValue = other[key]; if (customizer) { var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); } // Recursively compare objects (susceptible to call stack limits). if (!(compared === undefined ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) : compared )) { result = false; break; } skipCtor || (skipCtor = key == 'constructor'); } if (result && !skipCtor) { var objCtor = object.constructor, othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { result = false; } } stack['delete'](object); stack['delete'](other); return result; } module.exports = equalObjects; /***/ }), /* 454 */ /***/ (function(module, exports) { /** * A specialized version of `_.filter` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function arrayFilter(array, predicate) { var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (predicate(value, index, array)) { result[resIndex++] = value; } } return result; } module.exports = arrayFilter; /***/ }), /* 455 */ /***/ (function(module, exports) { /** * The base implementation of `_.times` without support for iteratee shorthands * or max array length checks. * * @private * @param {number} n The number of times to invoke `iteratee`. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the array of results. */ function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } module.exports = baseTimes; /***/ }), /* 456 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var argsTag = '[object Arguments]'; /** * The base implementation of `_.isArguments`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, */ function baseIsArguments(value) { return isObjectLike(value) && baseGetTag(value) == argsTag; } module.exports = baseIsArguments; /***/ }), /* 457 */ /***/ (function(module, exports) { /** * This method returns `false`. * * @static * @memberOf _ * @since 4.13.0 * @category Util * @returns {boolean} Returns `false`. * @example * * _.times(2, _.stubFalse); * // => [false, false] */ function stubFalse() { return false; } module.exports = stubFalse; /***/ }), /* 458 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isLength = __webpack_require__(169), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', funcTag = '[object Function]', mapTag = '[object Map]', numberTag = '[object Number]', objectTag = '[object Object]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', weakMapTag = '[object WeakMap]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]'; /** Used to identify `toStringTag` values of typed arrays. */ var typedArrayTags = {}; typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; /** * The base implementation of `_.isTypedArray` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. */ function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; } module.exports = baseIsTypedArray; /***/ }), /* 459 */ /***/ (function(module, exports, __webpack_require__) { var overArg = __webpack_require__(260); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeKeys = overArg(Object.keys, Object); module.exports = nativeKeys; /***/ }), /* 460 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57), root = __webpack_require__(28); /* Built-in method references that are verified to be native. */ var DataView = getNative(root, 'DataView'); module.exports = DataView; /***/ }), /* 461 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57), root = __webpack_require__(28); /* Built-in method references that are verified to be native. */ var Promise = getNative(root, 'Promise'); module.exports = Promise; /***/ }), /* 462 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(57), root = __webpack_require__(28); /* Built-in method references that are verified to be native. */ var Set = getNative(root, 'Set'); module.exports = Set; /***/ }), /* 463 */ /***/ (function(module, exports, __webpack_require__) { var isStrictComparable = __webpack_require__(262), keys = __webpack_require__(58); /** * Gets the property names, values, and compare flags of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the match data of `object`. */ function getMatchData(object) { var result = keys(object), length = result.length; while (length--) { var key = result[length], value = object[key]; result[length] = [key, value, isStrictComparable(value)]; } return result; } module.exports = getMatchData; /***/ }), /* 464 */ /***/ (function(module, exports, __webpack_require__) { var baseIsEqual = __webpack_require__(252), get = __webpack_require__(60), hasIn = __webpack_require__(468), isKey = __webpack_require__(172), isStrictComparable = __webpack_require__(262), matchesStrictComparable = __webpack_require__(263), toKey = __webpack_require__(95); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * * @private * @param {string} path The path of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */ function baseMatchesProperty(path, srcValue) { if (isKey(path) && isStrictComparable(srcValue)) { return matchesStrictComparable(toKey(path), srcValue); } return function(object) { var objValue = get(object, path); return (objValue === undefined && objValue === srcValue) ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); }; } module.exports = baseMatchesProperty; /***/ }), /* 465 */ /***/ (function(module, exports, __webpack_require__) { var memoizeCapped = __webpack_require__(466); /** Used to match property names within property paths. */ var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; /** Used to match backslashes in property paths. */ var reEscapeChar = /\\(\\)?/g; /** * Converts `string` to a property path array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the property path array. */ var stringToPath = memoizeCapped(function(string) { var result = []; if (string.charCodeAt(0) === 46 /* . */) { result.push(''); } string.replace(rePropName, function(match, number, quote, subString) { result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); }); return result; }); module.exports = stringToPath; /***/ }), /* 466 */ /***/ (function(module, exports, __webpack_require__) { var memoize = __webpack_require__(264); /** Used as the maximum memoize cache size. */ var MAX_MEMOIZE_SIZE = 500; /** * A specialized version of `_.memoize` which clears the memoized function's * cache when it exceeds `MAX_MEMOIZE_SIZE`. * * @private * @param {Function} func The function to have its output memoized. * @returns {Function} Returns the new memoized function. */ function memoizeCapped(func) { var result = memoize(func, function(key) { if (cache.size === MAX_MEMOIZE_SIZE) { cache.clear(); } return key; }); var cache = result.cache; return result; } module.exports = memoizeCapped; /***/ }), /* 467 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(73), arrayMap = __webpack_require__(173), isArray = __webpack_require__(10), isSymbol = __webpack_require__(130); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolToString = symbolProto ? symbolProto.toString : undefined; /** * The base implementation of `_.toString` which doesn't convert nullish * values to empty strings. * * @private * @param {*} value The value to process. * @returns {string} Returns the string. */ function baseToString(value) { // Exit early for strings to avoid a performance hit in some environments. if (typeof value == 'string') { return value; } if (isArray(value)) { // Recursively convert values (susceptible to call stack limits). return arrayMap(value, baseToString) + ''; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ''; } var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } module.exports = baseToString; /***/ }), /* 468 */ /***/ (function(module, exports, __webpack_require__) { var baseHasIn = __webpack_require__(469), hasPath = __webpack_require__(470); /** * Checks if `path` is a direct or inherited property of `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @returns {boolean} Returns `true` if `path` exists, else `false`. * @example * * var object = _.create({ 'a': _.create({ 'b': 2 }) }); * * _.hasIn(object, 'a'); * // => true * * _.hasIn(object, 'a.b'); * // => true * * _.hasIn(object, ['a', 'b']); * // => true * * _.hasIn(object, 'b'); * // => false */ function hasIn(object, path) { return object != null && hasPath(object, path, baseHasIn); } module.exports = hasIn; /***/ }), /* 469 */ /***/ (function(module, exports) { /** * The base implementation of `_.hasIn` without support for deep paths. * * @private * @param {Object} [object] The object to query. * @param {Array|string} key The key to check. * @returns {boolean} Returns `true` if `key` exists, else `false`. */ function baseHasIn(object, key) { return object != null && key in Object(object); } module.exports = baseHasIn; /***/ }), /* 470 */ /***/ (function(module, exports, __webpack_require__) { var castPath = __webpack_require__(129), isArguments = __webpack_require__(92), isArray = __webpack_require__(10), isIndex = __webpack_require__(125), isLength = __webpack_require__(169), toKey = __webpack_require__(95); /** * Checks if `path` exists on `object`. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @param {Function} hasFunc The function to check properties. * @returns {boolean} Returns `true` if `path` exists, else `false`. */ function hasPath(object, path, hasFunc) { path = castPath(path, object); var index = -1, length = path.length, result = false; while (++index < length) { var key = toKey(path[index]); if (!(result = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result || ++index != length) { return result; } length = object == null ? 0 : object.length; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } module.exports = hasPath; /***/ }), /* 471 */ /***/ (function(module, exports, __webpack_require__) { var baseProperty = __webpack_require__(265), basePropertyDeep = __webpack_require__(472), isKey = __webpack_require__(172), toKey = __webpack_require__(95); /** * Creates a function that returns the value at `path` of a given object. * * @static * @memberOf _ * @since 2.4.0 * @category Util * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new accessor function. * @example * * var objects = [ * { 'a': { 'b': 2 } }, * { 'a': { 'b': 1 } } * ]; * * _.map(objects, _.property('a.b')); * // => [2, 1] * * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); * // => [1, 2] */ function property(path) { return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } module.exports = property; /***/ }), /* 472 */ /***/ (function(module, exports, __webpack_require__) { var baseGet = __webpack_require__(171); /** * A specialized version of `baseProperty` which supports deep paths. * * @private * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new accessor function. */ function basePropertyDeep(path) { return function(object) { return baseGet(object, path); }; } module.exports = basePropertyDeep; /***/ }), /* 473 */ /***/ (function(module, exports, __webpack_require__) { var baseFindIndex = __webpack_require__(266), baseIteratee = __webpack_require__(40), toInteger = __webpack_require__(174); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; /** * This method is like `_.find` except that it returns the index of the first * element `predicate` returns truthy for instead of the element itself. * * @static * @memberOf _ * @since 1.1.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': true } * ]; * * _.findIndex(users, function(o) { return o.user == 'barney'; }); * // => 0 * * // The `_.matches` iteratee shorthand. * _.findIndex(users, { 'user': 'fred', 'active': false }); * // => 1 * * // The `_.matchesProperty` iteratee shorthand. * _.findIndex(users, ['active', false]); * // => 0 * * // The `_.property` iteratee shorthand. * _.findIndex(users, 'active'); * // => 2 */ function findIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = fromIndex == null ? 0 : toInteger(fromIndex); if (index < 0) { index = nativeMax(length + index, 0); } return baseFindIndex(array, baseIteratee(predicate, 3), index); } module.exports = findIndex; /***/ }), /* 474 */ /***/ (function(module, exports, __webpack_require__) { var toNumber = __webpack_require__(175); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_INTEGER = 1.7976931348623157e+308; /** * Converts `value` to a finite number. * * @static * @memberOf _ * @since 4.12.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted number. * @example * * _.toFinite(3.2); * // => 3.2 * * _.toFinite(Number.MIN_VALUE); * // => 5e-324 * * _.toFinite(Infinity); * // => 1.7976931348623157e+308 * * _.toFinite('3.2'); * // => 3.2 */ function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber(value); if (value === INFINITY || value === -INFINITY) { var sign = (value < 0 ? -1 : 1); return sign * MAX_INTEGER; } return value === value ? value : 0; } module.exports = toFinite; /***/ }), /* 475 */ /***/ (function(module, exports, __webpack_require__) { var trimmedEndIndex = __webpack_require__(476); /** Used to match leading whitespace. */ var reTrimStart = /^\s+/; /** * The base implementation of `_.trim`. * * @private * @param {string} string The string to trim. * @returns {string} Returns the trimmed string. */ function baseTrim(string) { return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string; } module.exports = baseTrim; /***/ }), /* 476 */ /***/ (function(module, exports) { /** Used to match a single whitespace character. */ var reWhitespace = /\s/; /** * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace * character of `string`. * * @private * @param {string} string The string to inspect. * @returns {number} Returns the index of the last non-whitespace character. */ function trimmedEndIndex(string) { var index = string.length; while (index-- && reWhitespace.test(string.charAt(index))) {} return index; } module.exports = trimmedEndIndex; /***/ }), /* 477 */ /***/ (function(module, exports) { function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } module.exports = _arrayWithoutHoles; /***/ }), /* 478 */ /***/ (function(module, exports) { function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } module.exports = _nonIterableSpread; /***/ }), /* 479 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createElementState = createElementState; exports.mergeActionState = mergeActionState; exports.ixElements = void 0; var _timm = __webpack_require__(90); var _constants = __webpack_require__(25); var _constants$IX2EngineC = _constants.IX2EngineConstants, HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; var initialState = {}; var refState = 'refState'; var ixElements = function ixElements() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; switch (action.type) { case IX2_SESSION_STOPPED: { return initialState; } case IX2_INSTANCE_ADDED: { var _action$payload = action.payload, elementId = _action$payload.elementId, ref = _action$payload.element, origin = _action$payload.origin, actionItem = _action$payload.actionItem, refType = _action$payload.refType; var actionTypeId = actionItem.actionTypeId; var newState = state; // Create new ref entry if it doesn't exist if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { newState = createElementState(newState, ref, refType, elementId, actionItem); } // Merge origin values into ref state return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); } case IX2_ELEMENT_STATE_CHANGED: { var _action$payload2 = action.payload, _elementId = _action$payload2.elementId, _actionTypeId = _action$payload2.actionTypeId, current = _action$payload2.current, _actionItem = _action$payload2.actionItem; return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); } default: { return state; } } }; exports.ixElements = ixElements; function createElementState(state, ref, refType, elementId, actionItem) { var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; return (0, _timm.mergeIn)(state, [elementId], { id: elementId, ref: ref, refId: refId, refType: refType }); } function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used actionItem) { var units = pickUnits(actionItem); var mergePath = [elementId, refState, actionTypeId]; return (0, _timm.mergeIn)(state, mergePath, actionState, units); } var valueUnitPairs = [[CONFIG_X_VALUE, CONFIG_X_UNIT], [CONFIG_Y_VALUE, CONFIG_Y_UNIT], [CONFIG_Z_VALUE, CONFIG_Z_UNIT], [CONFIG_VALUE, CONFIG_UNIT]]; // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types function pickUnits(actionItem) { var config = actionItem.config; return valueUnitPairs.reduce(function (result, pair) { var valueKey = pair[0]; var unitKey = pair[1]; var configValue = config[valueKey]; var configUnit = config[unitKey]; if (configValue != null && configUnit != null) { result[unitKey] = configUnit; } return result; }, {}); } /***/ }), /* 480 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; /* eslint-env browser */ // $FlowFixMe var getPluginConfig = function getPluginConfig(actionItemConfig) { return actionItemConfig.value; }; // $FlowFixMe exports.getPluginConfig = getPluginConfig; var getPluginDuration = function getPluginDuration(element, actionItem) { if (actionItem.config.duration !== 'auto') { return null; } var duration = parseFloat(element.getAttribute('data-duration')); if (duration > 0) { return duration * 1000; } return parseFloat(element.getAttribute('data-default-duration')) * 1000; }; // $FlowFixMe exports.getPluginDuration = getPluginDuration; var getPluginOrigin = function getPluginOrigin(refState) { return refState || { value: 0 }; }; // $FlowFixMe exports.getPluginOrigin = getPluginOrigin; var getPluginDestination = function getPluginDestination(actionItemConfig) { return { value: actionItemConfig.value }; }; // $FlowFixMe exports.getPluginDestination = getPluginDestination; var createPluginInstance = function createPluginInstance(element) { var instance = window.Webflow.require('lottie').createInstance(element); instance.stop(); instance.setSubframe(true); return instance; }; // $FlowFixMe exports.createPluginInstance = createPluginInstance; var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { if (!pluginInstance) { return; } var percent = refState[actionItem.actionTypeId].value / 100; pluginInstance.goToFrame(pluginInstance.frames * percent); }; // $FlowFixMe exports.renderPlugin = renderPlugin; var clearPlugin = function clearPlugin(element) { var instance = window.Webflow.require('lottie').createInstance(element); instance.stop(); }; exports.clearPlugin = clearPlugin; /***/ }), /* 481 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _typeof2 = _interopRequireDefault2(__webpack_require__(30)); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); var _Object$freeze, _Object$freeze2, _transformDefaults; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.getInstanceId = getInstanceId; exports.getElementId = getElementId; exports.reifyState = reifyState; exports.observeStore = observeStore; exports.getAffectedElements = getAffectedElements; exports.getComputedStyle = getComputedStyle; exports.getInstanceOrigin = getInstanceOrigin; exports.getDestinationValues = getDestinationValues; exports.getRenderType = getRenderType; exports.getStyleProp = getStyleProp; exports.renderHTMLElement = renderHTMLElement; exports.clearAllStyles = clearAllStyles; exports.cleanupHTMLElement = cleanupHTMLElement; exports.getMaxDurationItemIndex = getMaxDurationItemIndex; exports.getActionListProgress = getActionListProgress; exports.reduceListToGroup = reduceListToGroup; exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; exports.getNamespacedParameterId = getNamespacedParameterId; exports.shouldAllowMediaQuery = shouldAllowMediaQuery; exports.mediaQueriesEqual = mediaQueriesEqual; exports.stringifyTarget = stringifyTarget; Object.defineProperty(exports, "shallowEqual", { enumerable: true, get: function get() { return _shallowEqual["default"]; } }); exports.getItemConfigByKey = void 0; var _defaultTo = _interopRequireDefault(__webpack_require__(272)); var _reduce = _interopRequireDefault(__webpack_require__(482)); var _findLast = _interopRequireDefault(__webpack_require__(486)); var _timm = __webpack_require__(90); var _constants = __webpack_require__(25); var _shallowEqual = _interopRequireDefault(__webpack_require__(488)); var _IX2EasingUtils = __webpack_require__(269); var _IX2VanillaPlugins = __webpack_require__(271); var _IX2BrowserSupport = __webpack_require__(163); /* eslint-env browser */ var _constants$IX2EngineC = _constants.IX2EngineConstants, BACKGROUND = _constants$IX2EngineC.BACKGROUND, TRANSFORM = _constants$IX2EngineC.TRANSFORM, TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, SCALE_3D = _constants$IX2EngineC.SCALE_3D, ROTATE_X = _constants$IX2EngineC.ROTATE_X, ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, SKEW = _constants$IX2EngineC.SKEW, PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, FLEX = _constants$IX2EngineC.FLEX, OPACITY = _constants$IX2EngineC.OPACITY, FILTER = _constants$IX2EngineC.FILTER, FONT_VARIATION_SETTINGS = _constants$IX2EngineC.FONT_VARIATION_SETTINGS, WIDTH = _constants$IX2EngineC.WIDTH, HEIGHT = _constants$IX2EngineC.HEIGHT, BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, COLOR = _constants$IX2EngineC.COLOR, CHILDREN = _constants$IX2EngineC.CHILDREN, IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, SIBLINGS = _constants$IX2EngineC.SIBLINGS, PARENT = _constants$IX2EngineC.PARENT, DISPLAY = _constants$IX2EngineC.DISPLAY, WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, AUTO = _constants$IX2EngineC.AUTO, COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; var _constants$ActionType = _constants.ActionTypeConsts, TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, STYLE_FILTER = _constants$ActionType.STYLE_FILTER, STYLE_FONT_VARIATION = _constants$ActionType.STYLE_FONT_VARIATION, STYLE_SIZE = _constants$ActionType.STYLE_SIZE, STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, STYLE_BORDER = _constants$ActionType.STYLE_BORDER, STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; var OBJECT_VALUE = 'OBJECT_VALUE'; var trim = function trim(v) { return v.trim(); }; var colorStyleProps = Object.freeze((_Object$freeze = {}, (0, _defineProperty2["default"])(_Object$freeze, STYLE_BACKGROUND_COLOR, BACKGROUND_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_BORDER, BORDER_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_TEXT_COLOR, COLOR), _Object$freeze)); var willChangeProps = Object.freeze((_Object$freeze2 = {}, (0, _defineProperty2["default"])(_Object$freeze2, _IX2BrowserSupport.TRANSFORM_PREFIXED, TRANSFORM), (0, _defineProperty2["default"])(_Object$freeze2, BACKGROUND_COLOR, BACKGROUND), (0, _defineProperty2["default"])(_Object$freeze2, OPACITY, OPACITY), (0, _defineProperty2["default"])(_Object$freeze2, FILTER, FILTER), (0, _defineProperty2["default"])(_Object$freeze2, WIDTH, WIDTH), (0, _defineProperty2["default"])(_Object$freeze2, HEIGHT, HEIGHT), (0, _defineProperty2["default"])(_Object$freeze2, FONT_VARIATION_SETTINGS, FONT_VARIATION_SETTINGS), _Object$freeze2)); var objectCache = {}; var instanceCount = 1; function getInstanceId() { return 'i' + instanceCount++; } var elementCount = 1; // $FlowFixMe function getElementId(ixElements, ref) { // TODO: optimize element lookup for (var key in ixElements) { var ixEl = ixElements[key]; if (ixEl && ixEl.ref === ref) { return ixEl.id; } } return 'e' + elementCount++; } // $FlowFixMe function reifyState() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, events = _ref2.events, actionLists = _ref2.actionLists, site = _ref2.site; var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { var eventTypeId = event.eventTypeId; if (!result[eventTypeId]) { result[eventTypeId] = {}; } result[eventTypeId][event.id] = event; return result; }, {}); var mediaQueries = site && site.mediaQueries; var mediaQueryKeys = []; if (mediaQueries) { mediaQueryKeys = mediaQueries.map(function (mq) { return mq.key; }); } else { mediaQueries = []; console.warn("IX2 missing mediaQueries in site data"); } return { ixData: { events: events, actionLists: actionLists, eventTypeMap: eventTypeMap, mediaQueries: mediaQueries, mediaQueryKeys: mediaQueryKeys } }; } var strictEqual = function strictEqual(a, b) { return a === b; }; // $FlowFixMe function observeStore(_ref3) { var store = _ref3.store, select = _ref3.select, onChange = _ref3.onChange, _ref3$comparator = _ref3.comparator, comparator = _ref3$comparator === void 0 ? strictEqual : _ref3$comparator; var getState = store.getState, subscribe = store.subscribe; var unsubscribe = subscribe(handleChange); var currentState = select(getState()); function handleChange() { var nextState = select(getState()); if (nextState == null) { unsubscribe(); return; } if (!comparator(nextState, currentState)) { currentState = nextState; onChange(currentState, store); } } return unsubscribe; } function normalizeTarget(target) { var type = (0, _typeof2["default"])(target); if (type === 'string') { return { id: target }; } else if (target != null && type === 'object') { var id = target.id, objectId = target.objectId, selector = target.selector, selectorGuids = target.selectorGuids, appliesTo = target.appliesTo, useEventTarget = target.useEventTarget; return { id: id, objectId: objectId, selector: selector, selectorGuids: selectorGuids, appliesTo: appliesTo, useEventTarget: useEventTarget }; } return {}; } function getAffectedElements(_ref4) { var config = _ref4.config, event = _ref4.event, eventTarget = _ref4.eventTarget, elementRoot = _ref4.elementRoot, elementApi = _ref4.elementApi; var _ref, _event$action, _event$action$config; if (!elementApi) { throw new Error('IX2 missing elementApi'); } var targets = config.targets; if (Array.isArray(targets) && targets.length > 0) { return targets.reduce(function (accumulator, target) { return accumulator.concat(getAffectedElements({ config: { target: target }, event: event, eventTarget: eventTarget, elementRoot: elementRoot, elementApi: elementApi })); }, []); } var getValidDocument = elementApi.getValidDocument, getQuerySelector = elementApi.getQuerySelector, queryDocument = elementApi.queryDocument, getChildElements = elementApi.getChildElements, getSiblingElements = elementApi.getSiblingElements, matchSelector = elementApi.matchSelector, elementContains = elementApi.elementContains, isSiblingNode = elementApi.isSiblingNode; var target = config.target; if (!target) { return []; } var _normalizeTarget = normalizeTarget(target), id = _normalizeTarget.id, objectId = _normalizeTarget.objectId, selector = _normalizeTarget.selector, selectorGuids = _normalizeTarget.selectorGuids, appliesTo = _normalizeTarget.appliesTo, useEventTarget = _normalizeTarget.useEventTarget; if (objectId) { var ref = objectCache[objectId] || (objectCache[objectId] = {}); return [ref]; } if (appliesTo === _constants.EventAppliesTo.PAGE) { var doc = getValidDocument(id); return doc ? [doc] : []; } var overrides = (_ref = event === null || event === void 0 ? void 0 : (_event$action = event.action) === null || _event$action === void 0 ? void 0 : (_event$action$config = _event$action.config) === null || _event$action$config === void 0 ? void 0 : _event$action$config.affectedElements) !== null && _ref !== void 0 ? _ref : {}; var override = overrides[id || selector] || {}; var validOverride = Boolean(override.id || override.selector); var limitAffectedElements; var baseSelector; var finalSelector; var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); if (validOverride) { limitAffectedElements = override.limitAffectedElements; baseSelector = eventTargetSelector; finalSelector = getQuerySelector(override); } else { // pass in selectorGuids as well for server-side rendering. baseSelector = finalSelector = getQuerySelector({ id: id, selector: selector, selectorGuids: selectorGuids }); } if (event && useEventTarget) { // eventTarget is not defined when this function is called in a clear request, so find // all target elements associated with the event data, and return affected elements. var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); if (finalSelector) { if (useEventTarget === PARENT) { return queryDocument(finalSelector).filter(function (parentElement) { return eventTargets.some(function (targetElement) { return elementContains(parentElement, targetElement); }); }); } if (useEventTarget === CHILDREN) { return queryDocument(finalSelector).filter(function (childElement) { return eventTargets.some(function (targetElement) { return elementContains(targetElement, childElement); }); }); } if (useEventTarget === SIBLINGS) { return queryDocument(finalSelector).filter(function (siblingElement) { return eventTargets.some(function (targetElement) { return isSiblingNode(targetElement, siblingElement); }); }); } } return eventTargets; } if (baseSelector == null || finalSelector == null) { return []; } if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { return queryDocument(finalSelector).filter(function (element) { return elementRoot.contains(element); }); } if (limitAffectedElements === CHILDREN) { return queryDocument(baseSelector, finalSelector); } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); } else if (limitAffectedElements === SIBLINGS) { return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); } else { return queryDocument(finalSelector); } } // $FlowFixMe function getComputedStyle(_ref5) { var element = _ref5.element, actionItem = _ref5.actionItem; if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return {}; } var actionTypeId = actionItem.actionTypeId; switch (actionTypeId) { case STYLE_SIZE: case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: case GENERAL_DISPLAY: return window.getComputedStyle(element); default: return {}; } } var pxValueRegex = /px/; var getFilterDefaults = function getFilterDefaults(actionState, filters) { return filters.reduce(function (result, filter) { if (result[filter.type] == null) { result[filter.type] = filterDefaults[// $FlowFixMe - property `saturation` (did you mean `saturate`?) is missing in `filterDefaults` filter.type]; } return result; }, actionState || {}); }; var getFontVariationDefaults = function getFontVariationDefaults(actionState, fontVariations) { return fontVariations.reduce(function (result, fontVariation) { if (result[fontVariation.type] == null) { result[fontVariation.type] = fontVariationDefaults[fontVariation.type] || fontVariation.defaultValue || 0; } return result; }, actionState || {}); }; function getInstanceOrigin(element) { var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var actionItem = arguments.length > 3 ? arguments[3] : undefined; var elementApi = arguments.length > 4 ? arguments[4] : undefined; var getStyle = elementApi.getStyle; // Flow Hack: Passing actionTypeId to isPluginType and then trying // to do type refinement using the same variable via a switch statement // breaks down. This is is a workaround to ensure we can use type refinement. var actionTypeId = actionItem.actionTypeId; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); } switch (actionItem.actionTypeId) { case TRANSFORM_MOVE: case TRANSFORM_SCALE: case TRANSFORM_ROTATE: case TRANSFORM_SKEW: { return refState[actionItem.actionTypeId] || transformDefaults[actionItem.actionTypeId]; } case STYLE_FILTER: return getFilterDefaults(refState[actionItem.actionTypeId], actionItem.config.filters); case STYLE_FONT_VARIATION: return getFontVariationDefaults(refState[actionItem.actionTypeId], actionItem.config.fontVariations); case STYLE_OPACITY: return { value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) }; case STYLE_SIZE: { var inlineWidth = getStyle(element, WIDTH); var inlineHeight = getStyle(element, HEIGHT); var widthValue; var heightValue; // When destination unit is 'AUTO', ensure origin values are in px if (actionItem.config.widthUnit === AUTO) { widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); } else { widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); } if (actionItem.config.heightUnit === AUTO) { heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); } else { heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); } return { widthValue: widthValue, heightValue: heightValue }; } case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: return parseColor({ element: element, actionTypeId: actionItem.actionTypeId, computedStyle: computedStyle, getStyle: getStyle }); case GENERAL_DISPLAY: return { value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) }; // $FlowFixMe - `OBJECT_VALUE` is not an expected `actionTypeId` case OBJECT_VALUE: return refState[actionItem.actionTypeId] || { value: 0 }; default: { // As far as the type system can tell, we're missing a handler for // PLUGIN_LOTTIE. // // This is actually handled by `isPluginType` above. // // $FlowFixMe /*:: (actionItem: empty); */ return; } } } var reduceFilters = function reduceFilters(result, filter) { if (filter) { result[filter.type] = filter.value || 0; } return result; }; var reduceFontVariations = function reduceFontVariations(result, fontVariation) { if (fontVariation) { result[fontVariation.type] = fontVariation.value || 0; } return result; }; // $FlowFixMe var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); } switch (actionTypeId) { case STYLE_FILTER: { var filter = (0, _findLast["default"])(config.filters, function (_ref6) { var type = _ref6.type; return type === key; }); return filter ? filter.value : 0; } case STYLE_FONT_VARIATION: { var fontVariation = (0, _findLast["default"])(config.fontVariations, function (_ref7) { var type = _ref7.type; return type === key; }); return fontVariation ? fontVariation.value : 0; } default: return config[key]; } }; exports.getItemConfigByKey = getItemConfigByKey; function getDestinationValues(_ref8) { var element = _ref8.element, actionItem = _ref8.actionItem, elementApi = _ref8.elementApi; if ((0, _IX2VanillaPlugins.isPluginType)(actionItem.actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.getPluginDestination)(actionItem.actionTypeId)(actionItem.config); } switch (actionItem.actionTypeId) { case TRANSFORM_MOVE: case TRANSFORM_SCALE: case TRANSFORM_ROTATE: case TRANSFORM_SKEW: { var _actionItem$config = actionItem.config, xValue = _actionItem$config.xValue, yValue = _actionItem$config.yValue, zValue = _actionItem$config.zValue; return { xValue: xValue, yValue: yValue, zValue: zValue }; } case STYLE_SIZE: { var getStyle = elementApi.getStyle, setStyle = elementApi.setStyle, getProperty = elementApi.getProperty; var _actionItem$config2 = actionItem.config, widthUnit = _actionItem$config2.widthUnit, heightUnit = _actionItem$config2.heightUnit; var _actionItem$config3 = actionItem.config, widthValue = _actionItem$config3.widthValue, heightValue = _actionItem$config3.heightValue; if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return { widthValue: widthValue, heightValue: heightValue }; } if (widthUnit === AUTO) { var temp = getStyle(element, WIDTH); setStyle(element, WIDTH, ''); widthValue = getProperty(element, 'offsetWidth'); setStyle(element, WIDTH, temp); } if (heightUnit === AUTO) { var _temp = getStyle(element, HEIGHT); setStyle(element, HEIGHT, ''); heightValue = getProperty(element, 'offsetHeight'); setStyle(element, HEIGHT, _temp); } return { widthValue: widthValue, heightValue: heightValue }; } case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: { var _actionItem$config4 = actionItem.config, rValue = _actionItem$config4.rValue, gValue = _actionItem$config4.gValue, bValue = _actionItem$config4.bValue, aValue = _actionItem$config4.aValue; return { rValue: rValue, gValue: gValue, bValue: bValue, aValue: aValue }; } case STYLE_FILTER: { return actionItem.config.filters.reduce(reduceFilters, {}); } case STYLE_FONT_VARIATION: { return actionItem.config.fontVariations.reduce(reduceFontVariations, {}); } default: { var value = actionItem.config.value; return { value: value }; } } } // $FlowFixMe function getRenderType(actionTypeId) { if (/^TRANSFORM_/.test(actionTypeId)) { return RENDER_TRANSFORM; } if (/^STYLE_/.test(actionTypeId)) { return RENDER_STYLE; } if (/^GENERAL_/.test(actionTypeId)) { return RENDER_GENERAL; } if (/^PLUGIN_/.test(actionTypeId)) { return RENDER_PLUGIN; } } // $FlowFixMe function getStyleProp(renderType, actionTypeId) { return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; } function renderHTMLElement( // $FlowFixMe element, // $FlowFixMe refState, // $FlowFixMe actionState, // $FlowFixMe eventId, // $FlowFixMe actionItem, // $FlowFixMe styleProp, // $FlowFixMe elementApi, // $FlowFixMe renderType, // $FlowFixMe pluginInstance) { switch (renderType) { case RENDER_TRANSFORM: { return renderTransform(element, refState, actionState, actionItem, elementApi); } case RENDER_STYLE: { return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); } case RENDER_GENERAL: { return renderGeneral(element, actionItem, elementApi); } case RENDER_PLUGIN: { var actionTypeId = actionItem.actionTypeId; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); } } } } var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ xValue: 0, yValue: 0, zValue: 0 })), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ xValue: 1, yValue: 1, zValue: 1 })), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ xValue: 0, yValue: 0, zValue: 0 })), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ xValue: 0, yValue: 0 })), _transformDefaults); var filterDefaults = Object.freeze({ blur: 0, 'hue-rotate': 0, invert: 0, grayscale: 0, saturate: 100, sepia: 0, contrast: 100, brightness: 100 }); var fontVariationDefaults = Object.freeze({ wght: 0, opsz: 0, wdth: 0, slnt: 0 }); var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref9) { var type = _ref9.type; return type === filterType; }); if (filter && filter.unit) { return filter.unit; } switch (filterType) { case 'blur': return 'px'; case 'hue-rotate': return 'deg'; default: return '%'; } }; var transformKeys = Object.keys(transformDefaults); function renderTransform(element, refState, actionState, actionItem, elementApi) { var newTransform = transformKeys.map(function (actionTypeId) { var defaults = transformDefaults[actionTypeId]; var _ref10 = refState[actionTypeId] || {}, _ref10$xValue = _ref10.xValue, xValue = _ref10$xValue === void 0 ? defaults.xValue : _ref10$xValue, _ref10$yValue = _ref10.yValue, yValue = _ref10$yValue === void 0 ? defaults.yValue : _ref10$yValue, _ref10$zValue = _ref10.zValue, zValue = _ref10$zValue === void 0 ? defaults.zValue : _ref10$zValue, _ref10$xUnit = _ref10.xUnit, xUnit = _ref10$xUnit === void 0 ? '' : _ref10$xUnit, _ref10$yUnit = _ref10.yUnit, yUnit = _ref10$yUnit === void 0 ? '' : _ref10$yUnit, _ref10$zUnit = _ref10.zUnit, zUnit = _ref10$zUnit === void 0 ? '' : _ref10$zUnit; switch (actionTypeId) { case TRANSFORM_MOVE: return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); case TRANSFORM_SCALE: return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); case TRANSFORM_ROTATE: return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); case TRANSFORM_SKEW: return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); default: return ''; } }).join(' '); var setStyle = elementApi.setStyle; addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d if (hasDefined3dTransform(actionItem, actionState)) { setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); } } function renderFilter(element, actionState, actionItemConfig, elementApi) { var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); }, ''); var setStyle = elementApi.setStyle; addWillChange(element, FILTER, elementApi); setStyle(element, FILTER, filterValue); } function renderFontVariation(element, actionState, actionItemConfig, elementApi) { var fontVariationValue = (0, _reduce["default"])(actionState, function (result, value, type) { result.push("\"".concat(type, "\" ").concat(value)); return result; }, []).join(', '); var setStyle = elementApi.setStyle; addWillChange(element, FONT_VARIATION_SETTINGS, elementApi); setStyle(element, FONT_VARIATION_SETTINGS, fontVariationValue); } function hasDefined3dTransform(_ref11, _ref12) { var actionTypeId = _ref11.actionTypeId; var xValue = _ref12.xValue, yValue = _ref12.yValue, zValue = _ref12.zValue; // TRANSLATE_Z return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); } var paramCapture = '\\(([^)]+)\\)'; var rgbValidRegex = /^rgb/; var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); function getFirstMatch(regex, value) { var match = regex.exec(value); return match ? match[1] : ''; } function parseColor(_ref13) { var element = _ref13.element, actionTypeId = _ref13.actionTypeId, computedStyle = _ref13.computedStyle, getStyle = _ref13.getStyle; var prop = colorStyleProps[actionTypeId]; var inlineValue = getStyle(element, prop); var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); return { rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) }; } function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { var setStyle = elementApi.setStyle; switch (actionItem.actionTypeId) { case STYLE_SIZE: { var _actionItem$config5 = actionItem.config, _actionItem$config5$w = _actionItem$config5.widthUnit, widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, _actionItem$config5$h = _actionItem$config5.heightUnit, heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; var widthValue = actionState.widthValue, heightValue = actionState.heightValue; if (widthValue !== undefined) { if (widthUnit === AUTO) { widthUnit = 'px'; } addWillChange(element, WIDTH, elementApi); setStyle(element, WIDTH, widthValue + widthUnit); } if (heightValue !== undefined) { if (heightUnit === AUTO) { heightUnit = 'px'; } addWillChange(element, HEIGHT, elementApi); setStyle(element, HEIGHT, heightValue + heightUnit); } break; } case STYLE_FILTER: { renderFilter(element, actionState, actionItem.config, elementApi); break; } case STYLE_FONT_VARIATION: { renderFontVariation(element, actionState, actionItem.config, elementApi); break; } case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: { var prop = colorStyleProps[actionItem.actionTypeId]; var rValue = Math.round(actionState.rValue); var gValue = Math.round(actionState.gValue); var bValue = Math.round(actionState.bValue); var aValue = actionState.aValue; addWillChange(element, prop, elementApi); setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); break; } default: { var _actionItem$config$un = actionItem.config.unit, unit = _actionItem$config$un === void 0 ? '' : _actionItem$config$un; addWillChange(element, styleProp, elementApi); setStyle(element, styleProp, actionState.value + unit); break; } } } function renderGeneral(element, actionItem, elementApi) { var setStyle = elementApi.setStyle; switch (actionItem.actionTypeId) { case GENERAL_DISPLAY: { var value = actionItem.config.value; if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); } else { setStyle(element, DISPLAY, value); } return; } } } function addWillChange(element, prop, elementApi) { if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return; } var validProp = willChangeProps[prop]; if (!validProp) { return; } var getStyle = elementApi.getStyle, setStyle = elementApi.setStyle; var value = getStyle(element, WILL_CHANGE); if (!value) { setStyle(element, WILL_CHANGE, validProp); return; } var values = value.split(COMMA_DELIMITER).map(trim); if (values.indexOf(validProp) === -1) { setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); } } function removeWillChange(element, prop, elementApi) { if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return; } var validProp = willChangeProps[prop]; if (!validProp) { return; } var getStyle = elementApi.getStyle, setStyle = elementApi.setStyle; var value = getStyle(element, WILL_CHANGE); if (!value || value.indexOf(validProp) === -1) { return; } setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { return v !== validProp; }).join(COMMA_DELIMITER)); } // $FlowFixMe function clearAllStyles(_ref14) { var store = _ref14.store, elementApi = _ref14.elementApi; var _store$getState = store.getState(), ixData = _store$getState.ixData; var _ixData$events = ixData.events, events = _ixData$events === void 0 ? {} : _ixData$events, _ixData$actionLists = ixData.actionLists, actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; Object.keys(events).forEach(function (eventId) { var event = events[eventId]; var config = event.action.config; var actionListId = config.actionListId; var actionList = actionLists[actionListId]; if (actionList) { clearActionListStyles({ actionList: actionList, event: event, elementApi: elementApi }); } }); Object.keys(actionLists).forEach(function (actionListId) { clearActionListStyles({ actionList: actionLists[actionListId], elementApi: elementApi }); }); } // $FlowFixMe function clearActionListStyles(_ref15) { var _ref15$actionList = _ref15.actionList, actionList = _ref15$actionList === void 0 ? {} : _ref15$actionList, event = _ref15.event, elementApi = _ref15.elementApi; var actionItemGroups = actionList.actionItemGroups, continuousParameterGroups = actionList.continuousParameterGroups; actionItemGroups && actionItemGroups.forEach(function (actionGroup) { clearActionGroupStyles({ actionGroup: actionGroup, event: event, elementApi: elementApi }); }); continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { var continuousActionGroups = paramGroup.continuousActionGroups; continuousActionGroups.forEach(function (actionGroup) { clearActionGroupStyles({ actionGroup: actionGroup, event: event, elementApi: elementApi }); }); }); } function clearActionGroupStyles(_ref16) { var actionGroup = _ref16.actionGroup, event = _ref16.event, elementApi = _ref16.elementApi; var actionItems = actionGroup.actionItems; actionItems.forEach(function (_ref17) { var actionTypeId = _ref17.actionTypeId, config = _ref17.config; var clearElement; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); } else { clearElement = processElementByType({ effect: clearStyleProp, actionTypeId: actionTypeId, elementApi: elementApi }); } getAffectedElements({ config: config, event: event, elementApi: elementApi }).forEach(clearElement); }); } // $FlowFixMe function cleanupHTMLElement(element, actionItem, elementApi) { var setStyle = elementApi.setStyle, getStyle = elementApi.getStyle; var actionTypeId = actionItem.actionTypeId; if (actionTypeId === STYLE_SIZE) { var config = actionItem.config; if (config.widthUnit === AUTO) { setStyle(element, WIDTH, ''); } if (config.heightUnit === AUTO) { setStyle(element, HEIGHT, ''); } } if (getStyle(element, WILL_CHANGE)) { processElementByType({ effect: removeWillChange, actionTypeId: actionTypeId, elementApi: elementApi })(element); } } var processElementByType = function processElementByType(_ref18) { var effect = _ref18.effect, actionTypeId = _ref18.actionTypeId, elementApi = _ref18.elementApi; return function (element) { switch (actionTypeId) { case TRANSFORM_MOVE: case TRANSFORM_SCALE: case TRANSFORM_ROTATE: case TRANSFORM_SKEW: effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); break; case STYLE_FILTER: effect(element, FILTER, elementApi); break; case STYLE_FONT_VARIATION: effect(element, FONT_VARIATION_SETTINGS, elementApi); break; case STYLE_OPACITY: effect(element, OPACITY, elementApi); break; case STYLE_SIZE: effect(element, WIDTH, elementApi); effect(element, HEIGHT, elementApi); break; case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: effect(element, colorStyleProps[actionTypeId], elementApi); break; case GENERAL_DISPLAY: effect(element, DISPLAY, elementApi); break; } }; }; function clearStyleProp(element, prop, elementApi) { var setStyle = elementApi.setStyle; removeWillChange(element, prop, elementApi); setStyle(element, prop, ''); // Clear transform-style: preserve-3d if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); } } // $FlowFixMe function getMaxDurationItemIndex(actionItems) { var maxDuration = 0; var resultIndex = 0; actionItems.forEach(function (actionItem, index) { var config = actionItem.config; var total = config.delay + config.duration; if (total >= maxDuration) { maxDuration = total; resultIndex = index; } }); return resultIndex; } // $FlowFixMe function getActionListProgress(actionList, instance) { var actionItemGroups = actionList.actionItemGroups, useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; var instanceItem = instance.actionItem, _instance$verboseTime = instance.verboseTimeElapsed, verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; var totalDuration = 0; var elapsedDuration = 0; actionItemGroups.forEach(function (group, index) { if (useFirstGroupAsInitialState && index === 0) { return; } var actionItems = group.actionItems; var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; var config = carrierItem.config, actionTypeId = carrierItem.actionTypeId; if (instanceItem.id === carrierItem.id) { elapsedDuration = totalDuration + verboseTimeElapsed; } var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; totalDuration += config.delay + duration; }); return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; } // $FlowFixMe function reduceListToGroup(_ref19) { var actionList = _ref19.actionList, actionItemId = _ref19.actionItemId, rawData = _ref19.rawData; var actionItemGroups = actionList.actionItemGroups, continuousParameterGroups = actionList.continuousParameterGroups; var newActionItems = []; var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { delay: 0, duration: 0 })); return actionItem.id === actionItemId; }; actionItemGroups && actionItemGroups.some(function (_ref20) { var actionItems = _ref20.actionItems; return actionItems.some(takeItemUntilMatch); }); continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { var continuousActionGroups = paramGroup.continuousActionGroups; return continuousActionGroups.some(function (_ref21) { var actionItems = _ref21.actionItems; return actionItems.some(takeItemUntilMatch); }); }); return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { id: actionList.id, actionItemGroups: [{ actionItems: newActionItems }] })); } // $FlowFixMe function shouldNamespaceEventParameter(eventTypeId, _ref23) { var basedOn = _ref23.basedOn; return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; } function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; return namespacedParameterId; } // $FlowFixMe function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { // During design mode, current media query key does not exist if (mediaQueryKey == null) { return true; } return mediaQueries.indexOf(mediaQueryKey) !== -1; } // $FlowFixMe function mediaQueriesEqual(listA, listB) { return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); } // $FlowFixMe function stringifyTarget(target) { if (typeof target === 'string') { return target; } var _target$id = target.id, id = _target$id === void 0 ? '' : _target$id, _target$selector = target.selector, selector = _target$selector === void 0 ? '' : _target$selector, _target$useEventTarge = target.useEventTarget, useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; } /***/ }), /* 482 */ /***/ (function(module, exports, __webpack_require__) { var arrayReduce = __webpack_require__(273), baseEach = __webpack_require__(176), baseIteratee = __webpack_require__(40), baseReduce = __webpack_require__(485), isArray = __webpack_require__(10); /** * Reduces `collection` to a value which is the accumulated result of running * each element in `collection` thru `iteratee`, where each successive * invocation is supplied the return value of the previous. If `accumulator` * is not given, the first element of `collection` is used as the initial * value. The iteratee is invoked with four arguments: * (accumulator, value, index|key, collection). * * Many lodash methods are guarded to work as iteratees for methods like * `_.reduce`, `_.reduceRight`, and `_.transform`. * * The guarded methods are: * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, * and `sortBy` * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The initial value. * @returns {*} Returns the accumulated value. * @see _.reduceRight * @example * * _.reduce([1, 2], function(sum, n) { * return sum + n; * }, 0); * // => 3 * * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { * (result[value] || (result[value] = [])).push(key); * return result; * }, {}); * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) */ function reduce(collection, iteratee, accumulator) { var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); } module.exports = reduce; /***/ }), /* 483 */ /***/ (function(module, exports) { /** * Creates a base function for methods like `_.forIn` and `_.forOwn`. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } module.exports = createBaseFor; /***/ }), /* 484 */ /***/ (function(module, exports, __webpack_require__) { var isArrayLike = __webpack_require__(47); /** * Creates a `baseEach` or `baseEachRight` function. * * @private * @param {Function} eachFunc The function to iterate over a collection. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee) { if (collection == null) { return collection; } if (!isArrayLike(collection)) { return eachFunc(collection, iteratee); } var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); while ((fromRight ? index-- : ++index < length)) { if (iteratee(iterable[index], index, iterable) === false) { break; } } return collection; }; } module.exports = createBaseEach; /***/ }), /* 485 */ /***/ (function(module, exports) { /** * The base implementation of `_.reduce` and `_.reduceRight`, without support * for iteratee shorthands, which iterates over `collection` using `eachFunc`. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} accumulator The initial value. * @param {boolean} initAccum Specify using the first or last element of * `collection` as the initial value. * @param {Function} eachFunc The function to iterate over `collection`. * @returns {*} Returns the accumulated value. */ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { eachFunc(collection, function(value, index, collection) { accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection); }); return accumulator; } module.exports = baseReduce; /***/ }), /* 486 */ /***/ (function(module, exports, __webpack_require__) { var createFind = __webpack_require__(249), findLastIndex = __webpack_require__(487); /** * This method is like `_.find` except that it iterates over elements of * `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @category Collection * @param {Array|Object} collection The collection to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=collection.length-1] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example * * _.findLast([1, 2, 3, 4], function(n) { * return n % 2 == 1; * }); * // => 3 */ var findLast = createFind(findLastIndex); module.exports = findLast; /***/ }), /* 487 */ /***/ (function(module, exports, __webpack_require__) { var baseFindIndex = __webpack_require__(266), baseIteratee = __webpack_require__(40), toInteger = __webpack_require__(174); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, nativeMin = Math.min; /** * This method is like `_.findIndex` except that it iterates over elements * of `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=array.length-1] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); * // => 2 * * // The `_.matches` iteratee shorthand. * _.findLastIndex(users, { 'user': 'barney', 'active': true }); * // => 0 * * // The `_.matchesProperty` iteratee shorthand. * _.findLastIndex(users, ['active', false]); * // => 2 * * // The `_.property` iteratee shorthand. * _.findLastIndex(users, 'active'); * // => 0 */ function findLastIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = length - 1; if (fromIndex !== undefined) { index = toInteger(fromIndex); index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); } return baseFindIndex(array, baseIteratee(predicate, 3), index, true); } module.exports = findLastIndex; /***/ }), /* 488 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _typeof2 = _interopRequireDefault(__webpack_require__(30)); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; // from https://github.com/acdlite/recompose/blob/master/src/packages/recompose/shallowEqual.js /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @providesModule shallowEqual * @typechecks */ /* eslint-disable no-self-compare */ var hasOwnProperty = Object.prototype.hasOwnProperty; /** * inlined Object.is polyfill to avoid requiring consumers ship their own * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is */ function is(x, y) { // SameValue algorithm if (x === y) { // Steps 1-5, 7-10 // Steps 6.b-6.e: +0 != -0 // Added the nonzero y check to make Flow happy, but it is redundant return x !== 0 || y !== 0 || 1 / x === 1 / y; } // Step 6.a: NaN == NaN return x !== x && y !== y; } /** * Performs equality by iterating through keys on an object and returning false * when any key has values which are not strictly equal between the arguments. * Returns true when the values of all keys are strictly equal. */ function shallowEqual(objA, objB) { if (is(objA, objB)) { return true; } if ((0, _typeof2["default"])(objA) !== 'object' || objA === null || (0, _typeof2["default"])(objB) !== 'object' || objB === null) { return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); if (keysA.length !== keysB.length) { return false; } // Test for A's keys different from B. for (var i = 0; i < keysA.length; i++) { if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { return false; } } return true; } var _default = shallowEqual; exports["default"] = _default; /***/ }), /* 489 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixInstances = void 0; var _constants = __webpack_require__(25); var _shared = __webpack_require__(71); var _timm = __webpack_require__(90); /* eslint-env browser */ var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; var _shared$IX2EasingUtil = _shared.IX2EasingUtils, optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, applyEasing = _shared$IX2EasingUtil.applyEasing, createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, getRenderType = _shared$IX2VanillaUti.getRenderType, getStyleProp = _shared$IX2VanillaUti.getStyleProp; var continuousInstance = function continuousInstance(state, action) { var lastPosition = state.position, parameterId = state.parameterId, actionGroups = state.actionGroups, destinationKeys = state.destinationKeys, smoothing = state.smoothing, restingValue = state.restingValue, actionTypeId = state.actionTypeId, customEasingFn = state.customEasingFn, skipMotion = state.skipMotion, skipToValue = state.skipToValue; var parameters = action.payload.parameters; var velocity = Math.max(1 - smoothing, 0.01); var paramValue = parameters[parameterId]; if (paramValue == null) { velocity = 1; paramValue = restingValue; } var nextPosition = Math.max(paramValue, 0) || 0; var positionDiff = optimizeFloat(nextPosition - lastPosition); var position = skipMotion ? skipToValue : optimizeFloat(lastPosition + positionDiff * velocity); var keyframePosition = position * 100; if (position === lastPosition && state.current) { return state; } var fromActionItem; var toActionItem; var positionOffset; var positionRange; for (var i = 0, length = actionGroups.length; i < length; i++) { var _actionGroups$i = actionGroups[i], keyframe = _actionGroups$i.keyframe, actionItems = _actionGroups$i.actionItems; if (i === 0) { fromActionItem = actionItems[0]; } if (keyframePosition >= keyframe) { fromActionItem = actionItems[0]; var nextGroup = actionGroups[i + 1]; var hasNextItem = nextGroup && keyframePosition !== keyframe; toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; if (hasNextItem) { positionOffset = keyframe / 100; positionRange = (nextGroup.keyframe - keyframe) / 100; } } } var current = {}; if (fromActionItem && !toActionItem) { for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { var key = destinationKeys[_i]; current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); } } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { var localPosition = (position - positionOffset) / positionRange; var easing = fromActionItem.config.easing; var eased = applyEasing(easing, localPosition, customEasingFn); for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { var _key = destinationKeys[_i2]; var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe — toVal and fromVal could potentially be null, need to update type higher to determine number var diff = toVal - fromVal; // $FlowFixMe var value = diff * eased + fromVal; current[_key] = value; } } return (0, _timm.merge)(state, { position: position, current: current }); }; var timedInstance = function timedInstance(state, action) { var _state = state, active = _state.active, origin = _state.origin, start = _state.start, immediate = _state.immediate, renderType = _state.renderType, verbose = _state.verbose, actionItem = _state.actionItem, destination = _state.destination, destinationKeys = _state.destinationKeys, pluginDuration = _state.pluginDuration, instanceDelay = _state.instanceDelay, customEasingFn = _state.customEasingFn, skipMotion = _state.skipMotion; var easing = actionItem.config.easing; var _actionItem$config = actionItem.config, duration = _actionItem$config.duration, delay = _actionItem$config.delay; if (pluginDuration != null) { duration = pluginDuration; } delay = instanceDelay != null ? instanceDelay : delay; if (renderType === RENDER_GENERAL) { duration = 0; } else if (immediate || skipMotion) { duration = delay = 0; } var now = action.payload.now; if (active && origin) { var delta = now - (start + delay); if (verbose) { var verboseDelta = now - start; var verboseDuration = duration + delay; var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); } if (delta < 0) { return state; } var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); var eased = applyEasing(easing, position, customEasingFn); var newProps = {}; var current = null; if (destinationKeys.length) { current = destinationKeys.reduce(function (result, key) { var destValue = destination[key]; var originVal = parseFloat(origin[key]) || 0; var diff = parseFloat(destValue) - originVal; var value = diff * eased + originVal; result[key] = value; return result; }, {}); } newProps.current = current; newProps.position = position; if (position === 1) { newProps.active = false; newProps.complete = true; } return (0, _timm.merge)(state, newProps); } return state; }; var ixInstances = function ixInstances() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_RAW_DATA_IMPORTED: { return action.payload.ixInstances || Object.freeze({}); } case IX2_SESSION_STOPPED: { return Object.freeze({}); } case IX2_INSTANCE_ADDED: { var _action$payload = action.payload, instanceId = _action$payload.instanceId, elementId = _action$payload.elementId, actionItem = _action$payload.actionItem, eventId = _action$payload.eventId, eventTarget = _action$payload.eventTarget, eventStateKey = _action$payload.eventStateKey, actionListId = _action$payload.actionListId, groupIndex = _action$payload.groupIndex, isCarrier = _action$payload.isCarrier, origin = _action$payload.origin, destination = _action$payload.destination, immediate = _action$payload.immediate, verbose = _action$payload.verbose, continuous = _action$payload.continuous, parameterId = _action$payload.parameterId, actionGroups = _action$payload.actionGroups, smoothing = _action$payload.smoothing, restingValue = _action$payload.restingValue, pluginInstance = _action$payload.pluginInstance, pluginDuration = _action$payload.pluginDuration, instanceDelay = _action$payload.instanceDelay, skipMotion = _action$payload.skipMotion, skipToValue = _action$payload.skipToValue; var actionTypeId = actionItem.actionTypeId; var renderType = getRenderType(actionTypeId); var styleProp = getStyleProp(renderType, actionTypeId); var destinationKeys = Object.keys(destination).filter(function (key) { return destination[key] != null; }); var easing = actionItem.config.easing; return (0, _timm.set)(state, instanceId, { id: instanceId, elementId: elementId, active: false, position: 0, start: 0, origin: origin, destination: destination, destinationKeys: destinationKeys, immediate: immediate, verbose: verbose, current: null, actionItem: actionItem, actionTypeId: actionTypeId, eventId: eventId, eventTarget: eventTarget, eventStateKey: eventStateKey, actionListId: actionListId, groupIndex: groupIndex, renderType: renderType, isCarrier: isCarrier, styleProp: styleProp, continuous: continuous, parameterId: parameterId, actionGroups: actionGroups, smoothing: smoothing, restingValue: restingValue, pluginInstance: pluginInstance, pluginDuration: pluginDuration, instanceDelay: instanceDelay, skipMotion: skipMotion, skipToValue: skipToValue, customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined }); } case IX2_INSTANCE_STARTED: { var _action$payload2 = action.payload, _instanceId = _action$payload2.instanceId, time = _action$payload2.time; return (0, _timm.mergeIn)(state, [_instanceId], { active: true, complete: false, start: time }); } case IX2_INSTANCE_REMOVED: { var _instanceId2 = action.payload.instanceId; if (!state[_instanceId2]) { return state; } var newState = {}; var keys = Object.keys(state); var length = keys.length; for (var i = 0; i < length; i++) { var key = keys[i]; if (key !== _instanceId2) { newState[key] = state[key]; } } return newState; } case IX2_ANIMATION_FRAME_CHANGED: { var _newState = state; var _keys = Object.keys(state); var _length3 = _keys.length; for (var _i3 = 0; _i3 < _length3; _i3++) { var _key2 = _keys[_i3]; var instance = state[_key2]; var reducer = instance.continuous ? continuousInstance : timedInstance; _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); } return _newState; } default: { return state; } } }; exports.ixInstances = ixInstances; /***/ }), /* 490 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixParameters = void 0; var _constants = __webpack_require__(25); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore var ixParameters = function ixParameters() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { /*mutable flat state*/ }; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_RAW_DATA_IMPORTED: { return action.payload.ixParameters || { /*mutable flat state*/ }; } case IX2_SESSION_STOPPED: { return { /*mutable flat state*/ }; } case IX2_PARAMETER_CHANGED: { var _action$payload = action.payload, key = _action$payload.key, value = _action$payload.value; state[key] = value; return state; } default: { return state; } } }; exports.ixParameters = ixParameters; /***/ }), /* 491 */ /***/ (function(module, exports, __webpack_require__) { var baseKeys = __webpack_require__(170), getTag = __webpack_require__(59), isArrayLike = __webpack_require__(47), isString = __webpack_require__(277), stringSize = __webpack_require__(492); /** `Object#toString` result references. */ var mapTag = '[object Map]', setTag = '[object Set]'; /** * Gets the size of `collection` by returning its length for array-like * values or the number of own enumerable string keyed properties for objects. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object|string} collection The collection to inspect. * @returns {number} Returns the collection size. * @example * * _.size([1, 2, 3]); * // => 3 * * _.size({ 'a': 1, 'b': 2 }); * // => 2 * * _.size('pebbles'); * // => 7 */ function size(collection) { if (collection == null) { return 0; } if (isArrayLike(collection)) { return isString(collection) ? stringSize(collection) : collection.length; } var tag = getTag(collection); if (tag == mapTag || tag == setTag) { return collection.size; } return baseKeys(collection).length; } module.exports = size; /***/ }), /* 492 */ /***/ (function(module, exports, __webpack_require__) { var asciiSize = __webpack_require__(493), hasUnicode = __webpack_require__(177), unicodeSize = __webpack_require__(494); /** * Gets the number of symbols in `string`. * * @private * @param {string} string The string to inspect. * @returns {number} Returns the string size. */ function stringSize(string) { return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); } module.exports = stringSize; /***/ }), /* 493 */ /***/ (function(module, exports, __webpack_require__) { var baseProperty = __webpack_require__(265); /** * Gets the size of an ASCII `string`. * * @private * @param {string} string The string inspect. * @returns {number} Returns the string size. */ var asciiSize = baseProperty('length'); module.exports = asciiSize; /***/ }), /* 494 */ /***/ (function(module, exports) { /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = '\\ufe0e\\ufe0f'; /** Used to compose unicode capture groups. */ var rsAstral = '[' + rsAstralRange + ']', rsCombo = '[' + rsComboRange + ']', rsFitz = '\\ud83c[\\udffb-\\udfff]', rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', rsNonAstral = '[^' + rsAstralRange + ']', rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', rsZWJ = '\\u200d'; /** Used to compose unicode regexes. */ var reOptMod = rsModifier + '?', rsOptVar = '[' + rsVarRange + ']?', rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); /** * Gets the size of a Unicode `string`. * * @private * @param {string} string The string inspect. * @returns {number} Returns the string size. */ function unicodeSize(string) { var result = reUnicode.lastIndex = 0; while (reUnicode.test(string)) { ++result; } return result; } module.exports = unicodeSize; /***/ }), /* 495 */ /***/ (function(module, exports, __webpack_require__) { var baseIteratee = __webpack_require__(40), negate = __webpack_require__(496), pickBy = __webpack_require__(497); /** * The opposite of `_.pickBy`; this method creates an object composed of * the own and inherited enumerable string keyed properties of `object` that * `predicate` doesn't return truthy for. The predicate is invoked with two * arguments: (value, key). * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The source object. * @param {Function} [predicate=_.identity] The function invoked per property. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.omitBy(object, _.isNumber); * // => { 'b': '2' } */ function omitBy(object, predicate) { return pickBy(object, negate(baseIteratee(predicate))); } module.exports = omitBy; /***/ }), /* 496 */ /***/ (function(module, exports) { /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** * Creates a function that negates the result of the predicate `func`. The * `func` predicate is invoked with the `this` binding and arguments of the * created function. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {Function} predicate The predicate to negate. * @returns {Function} Returns the new negated function. * @example * * function isEven(n) { * return n % 2 == 0; * } * * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); * // => [1, 3, 5] */ function negate(predicate) { if (typeof predicate != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } return function() { var args = arguments; switch (args.length) { case 0: return !predicate.call(this); case 1: return !predicate.call(this, args[0]); case 2: return !predicate.call(this, args[0], args[1]); case 3: return !predicate.call(this, args[0], args[1], args[2]); } return !predicate.apply(this, args); }; } module.exports = negate; /***/ }), /* 497 */ /***/ (function(module, exports, __webpack_require__) { var arrayMap = __webpack_require__(173), baseIteratee = __webpack_require__(40), basePickBy = __webpack_require__(498), getAllKeysIn = __webpack_require__(279); /** * Creates an object composed of the `object` properties `predicate` returns * truthy for. The predicate is invoked with two arguments: (value, key). * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The source object. * @param {Function} [predicate=_.identity] The function invoked per property. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.pickBy(object, _.isNumber); * // => { 'a': 1, 'c': 3 } */ function pickBy(object, predicate) { if (object == null) { return {}; } var props = arrayMap(getAllKeysIn(object), function(prop) { return [prop]; }); predicate = baseIteratee(predicate); return basePickBy(object, props, function(value, path) { return predicate(value, path[0]); }); } module.exports = pickBy; /***/ }), /* 498 */ /***/ (function(module, exports, __webpack_require__) { var baseGet = __webpack_require__(171), baseSet = __webpack_require__(499), castPath = __webpack_require__(129); /** * The base implementation of `_.pickBy` without support for iteratee shorthands. * * @private * @param {Object} object The source object. * @param {string[]} paths The property paths to pick. * @param {Function} predicate The function invoked per property. * @returns {Object} Returns the new object. */ function basePickBy(object, paths, predicate) { var index = -1, length = paths.length, result = {}; while (++index < length) { var path = paths[index], value = baseGet(object, path); if (predicate(value, path)) { baseSet(result, castPath(path, object), value); } } return result; } module.exports = basePickBy; /***/ }), /* 499 */ /***/ (function(module, exports, __webpack_require__) { var assignValue = __webpack_require__(178), castPath = __webpack_require__(129), isIndex = __webpack_require__(125), isObject = __webpack_require__(18), toKey = __webpack_require__(95); /** * The base implementation of `_.set`. * * @private * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {*} value The value to set. * @param {Function} [customizer] The function to customize path creation. * @returns {Object} Returns `object`. */ function baseSet(object, path, value, customizer) { if (!isObject(object)) { return object; } path = castPath(path, object); var index = -1, length = path.length, lastIndex = length - 1, nested = object; while (nested != null && ++index < length) { var key = toKey(path[index]), newValue = value; if (key === '__proto__' || key === 'constructor' || key === 'prototype') { return object; } if (index != lastIndex) { var objValue = nested[key]; newValue = customizer ? customizer(objValue, key, nested) : undefined; if (newValue === undefined) { newValue = isObject(objValue) ? objValue : (isIndex(path[index + 1]) ? [] : {}); } } assignValue(nested, key, newValue); nested = nested[key]; } return object; } module.exports = baseSet; /***/ }), /* 500 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(18), isPrototype = __webpack_require__(128), nativeKeysIn = __webpack_require__(501); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeysIn(object) { if (!isObject(object)) { return nativeKeysIn(object); } var isProto = isPrototype(object), result = []; for (var key in object) { if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { result.push(key); } } return result; } module.exports = baseKeysIn; /***/ }), /* 501 */ /***/ (function(module, exports) { /** * This function is like * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * except that it includes inherited enumerable properties. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function nativeKeysIn(object) { var result = []; if (object != null) { for (var key in Object(object)) { result.push(key); } } return result; } module.exports = nativeKeysIn; /***/ }), /* 502 */ /***/ (function(module, exports, __webpack_require__) { var baseKeys = __webpack_require__(170), getTag = __webpack_require__(59), isArguments = __webpack_require__(92), isArray = __webpack_require__(10), isArrayLike = __webpack_require__(47), isBuffer = __webpack_require__(74), isPrototype = __webpack_require__(128), isTypedArray = __webpack_require__(94); /** `Object#toString` result references. */ var mapTag = '[object Map]', setTag = '[object Set]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Checks if `value` is an empty object, collection, map, or set. * * Objects are considered empty if they have no own enumerable string keyed * properties. * * Array-like values such as `arguments` objects, arrays, buffers, strings, or * jQuery-like collections are considered empty if they have a `length` of `0`. * Similarly, maps and sets are considered empty if they have a `size` of `0`. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is empty, else `false`. * @example * * _.isEmpty(null); * // => true * * _.isEmpty(true); * // => true * * _.isEmpty(1); * // => true * * _.isEmpty([1, 2, 3]); * // => false * * _.isEmpty({ 'a': 1 }); * // => false */ function isEmpty(value) { if (value == null) { return true; } if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) { return !value.length; } var tag = getTag(value); if (tag == mapTag || tag == setTag) { return !value.size; } if (isPrototype(value)) { return !baseKeys(value).length; } for (var key in value) { if (hasOwnProperty.call(value, key)) { return false; } } return true; } module.exports = isEmpty; /***/ }), /* 503 */ /***/ (function(module, exports, __webpack_require__) { var baseAssignValue = __webpack_require__(97), baseForOwn = __webpack_require__(131), baseIteratee = __webpack_require__(40); /** * Creates an object with the same keys as `object` and values generated * by running each own enumerable string keyed property of `object` thru * `iteratee`. The iteratee is invoked with three arguments: * (value, key, object). * * @static * @memberOf _ * @since 2.4.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns the new mapped object. * @see _.mapKeys * @example * * var users = { * 'fred': { 'user': 'fred', 'age': 40 }, * 'pebbles': { 'user': 'pebbles', 'age': 1 } * }; * * _.mapValues(users, function(o) { return o.age; }); * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) * * // The `_.property` iteratee shorthand. * _.mapValues(users, 'age'); * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) */ function mapValues(object, iteratee) { var result = {}; iteratee = baseIteratee(iteratee, 3); baseForOwn(object, function(value, key, object) { baseAssignValue(result, key, iteratee(value, key, object)); }); return result; } module.exports = mapValues; /***/ }), /* 504 */ /***/ (function(module, exports, __webpack_require__) { var identity = __webpack_require__(96); /** * Casts `value` to `identity` if it's not a function. * * @private * @param {*} value The value to inspect. * @returns {Function} Returns cast function. */ function castFunction(value) { return typeof value == 'function' ? value : identity; } module.exports = castFunction; /***/ }), /* 505 */ /***/ (function(module, exports, __webpack_require__) { var debounce = __webpack_require__(281), isObject = __webpack_require__(18); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** * Creates a throttled function that only invokes `func` at most once per * every `wait` milliseconds. The throttled function comes with a `cancel` * method to cancel delayed `func` invocations and a `flush` method to * immediately invoke them. Provide `options` to indicate whether `func` * should be invoked on the leading and/or trailing edge of the `wait` * timeout. The `func` is invoked with the last arguments provided to the * throttled function. Subsequent calls to the throttled function return the * result of the last `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is * invoked on the trailing edge of the timeout only if the throttled function * is invoked more than once during the `wait` timeout. * * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred * until to the next tick, similar to `setTimeout` with a timeout of `0`. * * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.throttle` and `_.debounce`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to throttle. * @param {number} [wait=0] The number of milliseconds to throttle invocations to. * @param {Object} [options={}] The options object. * @param {boolean} [options.leading=true] * Specify invoking on the leading edge of the timeout. * @param {boolean} [options.trailing=true] * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new throttled function. * @example * * // Avoid excessively updating the position while scrolling. * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); * * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); * jQuery(element).on('click', throttled); * * // Cancel the trailing throttled invocation. * jQuery(window).on('popstate', throttled.cancel); */ function throttle(func, wait, options) { var leading = true, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } if (isObject(options)) { leading = 'leading' in options ? !!options.leading : leading; trailing = 'trailing' in options ? !!options.trailing : trailing; } return debounce(func, wait, { 'leading': leading, 'maxWait': wait, 'trailing': trailing }); } module.exports = throttle; /***/ }), /* 506 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(28); /** * Gets the timestamp of the number of milliseconds that have elapsed since * the Unix epoch (1 January 1970 00:00:00 UTC). * * @static * @memberOf _ * @since 2.4.0 * @category Date * @returns {number} Returns the timestamp. * @example * * _.defer(function(stamp) { * console.log(_.now() - stamp); * }, _.now()); * // => Logs the number of milliseconds it took for the deferred invocation. */ var now = function() { return root.Date.now(); }; module.exports = now; /***/ }), /* 507 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _typeof2 = _interopRequireDefault(__webpack_require__(30)); Object.defineProperty(exports, "__esModule", { value: true }); exports.setStyle = setStyle; exports.getStyle = getStyle; exports.getProperty = getProperty; exports.matchSelector = matchSelector; exports.getQuerySelector = getQuerySelector; exports.getValidDocument = getValidDocument; exports.queryDocument = queryDocument; exports.elementContains = elementContains; exports.isSiblingNode = isSiblingNode; exports.getChildElements = getChildElements; exports.getSiblingElements = getSiblingElements; exports.getRefType = getRefType; exports.getClosestElement = void 0; var _shared = __webpack_require__(71); var _constants = __webpack_require__(25); /* eslint-env browser */ var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; var _constants$IX2EngineC = _constants.IX2EngineConstants, IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, WF_PAGE = _constants$IX2EngineC.WF_PAGE; function setStyle(element, prop, value) { // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream element.style[prop] = value; } function getStyle(element, prop) { // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream return element.style[prop]; } function getProperty(element, prop) { // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream return element[prop]; } function matchSelector(selector) { // $FlowIgnore — ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser return function (element) { return element[ELEMENT_MATCHES](selector); }; } function getQuerySelector(_ref) { var id = _ref.id, selector = _ref.selector; if (id) { var nodeId = id; if (id.indexOf(IX2_ID_DELIMITER) !== -1) { var pair = id.split(IX2_ID_DELIMITER); var pageId = pair[0]; nodeId = pair[1]; // Short circuit query if we're on the wrong page // $FlowIgnore — if documentElement is null crash if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { return null; } } return "[data-w-id=\"".concat(nodeId, "\"], [data-w-id^=\"").concat(nodeId, "_instance\"]"); } return selector; } function getValidDocument(pageId) { if (pageId == null || // $FlowIgnore — if documentElement is null crash pageId === document.documentElement.getAttribute(WF_PAGE)) { return document; } return null; } function queryDocument(baseSelector, descendantSelector) { return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); } function elementContains(parent, child) { return parent.contains(child); } function isSiblingNode(a, b) { return a !== b && a.parentNode === b.parentNode; } function getChildElements(sourceElements) { var childElements = []; for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { var children = sourceElements[i].children; var childCount = children.length; if (!childCount) { continue; } for (var j = 0; j < childCount; j++) { childElements.push(children[j]); } } return childElements; } // $FlowFixMe function getSiblingElements() { var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var elements = []; var parentCache = []; for (var i = 0, length = sourceElements.length; i < length; i++) { var parentNode = sourceElements[i].parentNode; if (!parentNode || !parentNode.children || !parentNode.children.length) { continue; } if (parentCache.indexOf(parentNode) !== -1) { continue; } parentCache.push(parentNode); var el = parentNode.firstElementChild; while (el != null) { if (sourceElements.indexOf(el) === -1) { elements.push(el); } el = el.nextElementSibling; } } return elements; } var getClosestElement = Element.prototype.closest ? function (element, selector) { // $FlowIgnore — ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser if (!document.documentElement.contains(element)) { return null; } return element.closest(selector); } : function (element, selector) { // $FlowIgnore — if documentElement is null crash if (!document.documentElement.contains(element)) { return null; } var el = element; do { // $FlowIgnore — if documentElement is null crash if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { return el; } el = el.parentNode; } while (el != null); return null; }; exports.getClosestElement = getClosestElement; function getRefType(ref) { if (ref != null && (0, _typeof2["default"])(ref) == 'object') { return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; } return null; } /***/ }), /* 508 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); var _typeof2 = _interopRequireDefault2(__webpack_require__(30)); var _default2; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _flow = _interopRequireDefault(__webpack_require__(509)); var _get = _interopRequireDefault(__webpack_require__(60)); var _clamp = _interopRequireDefault(__webpack_require__(524)); var _constants = __webpack_require__(25); var _IX2VanillaEngine = __webpack_require__(275); var _IX2EngineActions = __webpack_require__(181); var _shared = __webpack_require__(71); /* eslint-env browser */ var _constants$EventTypeC = _constants.EventTypeConsts, MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, MOUSE_UP = _constants$EventTypeC.MOUSE_UP, MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW, SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, PAGE_START = _constants$EventTypeC.PAGE_START, PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; var composableFilter = function composableFilter(predicate) { return function (options) { if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { return true; } return options; }; }; var isElement = composableFilter(function (_ref) { var element = _ref.element, nativeEvent = _ref.nativeEvent; return element === nativeEvent.target; }); var containsElement = composableFilter(function (_ref2) { var element = _ref2.element, nativeEvent = _ref2.nativeEvent; return element.contains(nativeEvent.target); }); var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { if (autoStopEventId) { var _store$getState = store.getState(), ixData = _store$getState.ixData; var events = ixData.events; var eventToStop = events[autoStopEventId]; if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { return eventToStop; } } return null; }; var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { var store = _ref3.store, event = _ref3.event; var eventAction = event.action; var autoStopEventId = eventAction.config.autoStopEventId; return Boolean(getAutoStopEvent(store, autoStopEventId)); }; var actionGroupCreator = function actionGroupCreator(_ref4, state) { var store = _ref4.store, event = _ref4.event, element = _ref4.element, eventStateKey = _ref4.eventStateKey; var eventAction = event.action, eventId = event.id; var _eventAction$config = eventAction.config, actionListId = _eventAction$config.actionListId, autoStopEventId = _eventAction$config.autoStopEventId; var eventToStop = getAutoStopEvent(store, autoStopEventId); if (eventToStop) { (0, _IX2VanillaEngine.stopActionGroup)({ store: store, eventId: autoStopEventId, eventTarget: element, eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') }); } (0, _IX2VanillaEngine.stopActionGroup)({ store: store, eventId: eventId, eventTarget: element, eventStateKey: eventStateKey, actionListId: actionListId }); (0, _IX2VanillaEngine.startActionGroup)({ store: store, eventId: eventId, eventTarget: element, eventStateKey: eventStateKey, actionListId: actionListId }); return state; }; // $FlowFixMe var withFilter = function withFilter(filter, handler) { return function (options, state) { return (// $FlowFixMe filter(options, state) === true ? handler(options, state) : state ); }; }; var baseActionGroupOptions = { handler: withFilter(isOrContainsElement, actionGroupCreator) }; var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') }); var SCROLL_EVENT_TYPES = [{ target: window, types: 'resize orientationchange', throttle: true }, { target: document, types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', throttle: true }]; var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; var baseScrollActionGroupOptions = { types: SCROLL_EVENT_TYPES }; var AUTO_STOP_DISABLED_EVENTS = { PAGE_START: PAGE_START, PAGE_FINISH: PAGE_FINISH }; var getDocumentState = function () { var supportOffset = window.pageXOffset !== undefined; var isCSS1Compat = document.compatMode === 'CSS1Compat'; var rootElement = isCSS1Compat ? document.documentElement : document.body; return function () { return { // $FlowFixMe scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, // $FlowFixMe scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, // required to remove elasticity in Safari scrolling. stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe rootElement.scrollHeight - window.innerHeight), // $FlowFixMe scrollWidth: rootElement.scrollWidth, // $FlowFixMe scrollHeight: rootElement.scrollHeight, // $FlowFixMe clientWidth: rootElement.clientWidth, // $FlowFixMe clientHeight: rootElement.clientHeight, innerWidth: window.innerWidth, innerHeight: window.innerHeight }; }; }(); var areBoxesIntersecting = function areBoxesIntersecting(a, b) { return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); }; var isElementHovered = function isElementHovered(_ref5) { var element = _ref5.element, nativeEvent = _ref5.nativeEvent; var type = nativeEvent.type, target = nativeEvent.target, relatedTarget = nativeEvent.relatedTarget; var containsTarget = element.contains(target); if (type === 'mouseover' && containsTarget) { return true; } var containsRelated = element.contains(relatedTarget); if (type === 'mouseout' && containsTarget && containsRelated) { return true; } return false; }; var isElementVisible = function isElementVisible(options) { var element = options.element, config = options.event.config; var _getDocumentState = getDocumentState(), clientWidth = _getDocumentState.clientWidth, clientHeight = _getDocumentState.clientHeight; var scrollOffsetValue = config.scrollOffsetValue; var scrollOffsetUnit = config.scrollOffsetUnit; var isPX = scrollOffsetUnit === 'PX'; var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; return areBoxesIntersecting(element.getBoundingClientRect(), { left: 0, top: offsetPadding, right: clientWidth, bottom: clientHeight - offsetPadding }); }; var whenComponentActiveChange = function whenComponentActiveChange(handler) { return function (options, oldState) { var type = options.nativeEvent.type; // prettier-ignore var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; var newState = (0, _extends2["default"])({}, oldState, { isActive: isActive }); if (!oldState || newState.isActive !== oldState.isActive) { return handler(options, newState) || newState; } return newState; }; }; var whenElementHoverChange = function whenElementHoverChange(handler) { return function (options, oldState) { var newState = { elementHovered: isElementHovered(options) }; if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { return handler(options, newState) || newState; } return newState; }; }; // $FlowFixMe var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { return function (options, oldState) { var newState = (0, _extends2["default"])({}, oldState, { elementVisible: isElementVisible(options) }); if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { return handler(options, newState) || newState; } return newState; }; }; // $FlowFixMe var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { return function (options) { var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _getDocumentState2 = getDocumentState(), scrollTop = _getDocumentState2.stiffScrollTop, scrollHeight = _getDocumentState2.scrollHeight, innerHeight = _getDocumentState2.innerHeight; var _options$event = options.event, config = _options$event.config, eventTypeId = _options$event.eventTypeId; var scrollOffsetValue = config.scrollOffsetValue, scrollOffsetUnit = config.scrollOffsetUnit; var isPX = scrollOffsetUnit === 'PX'; var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change if (oldState && oldState.percentTop === percentTop) { return oldState; } var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; var scrollingDown; var scrollDirectionChanged; var anchorTop = 0; if (oldState) { scrollingDown = percentTop > oldState.percentTop; scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; } var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; var newState = (0, _extends2["default"])({}, oldState, { percentTop: percentTop, inBounds: inBounds, anchorTop: anchorTop, scrollingDown: scrollingDown }); if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { return handler(options, newState) || newState; } return newState; }; }; var pointIntersects = function pointIntersects(point, rect) { return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; }; var whenPageLoadFinish = function whenPageLoadFinish(handler) { return function (options, oldState) { var newState = { finished: document.readyState === 'complete' }; if (newState.finished && !(oldState && oldState.finshed)) { handler(options); } return newState; }; }; var whenPageLoadStart = function whenPageLoadStart(handler) { return function (options, oldState) { var newState = { started: true }; if (!oldState) { handler(options); } return newState; }; }; var whenClickCountChange = function whenClickCountChange(handler) { return function (options) { var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { clickCount: 0 }; var newState = { clickCount: oldState.clickCount % 2 + 1 }; if (newState.clickCount !== oldState.clickCount) { return handler(options, newState) || newState; } return newState; }; }; var getComponentActiveOptions = function getComponentActiveOptions() { var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { return state.isActive ? baseActionGroupOptions.handler(options, state) : state; })) }); }; var getComponentInactiveOptions = function getComponentInactiveOptions() { var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; })) }); }; var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { handler: whenElementVisibiltyChange(function (options, state) { var elementVisible = state.elementVisible; var event = options.event, store = options.store; var _store$getState2 = store.getState(), ixData = _store$getState2.ixData; var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types // are registered. if (!events[event.action.config.autoStopEventId] && state.triggered) { return state; } if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { actionGroupCreator(options); return (0, _extends2["default"])({}, state, { triggered: true }); } else { return state; } }) }); var MOUSE_OUT_ROUND_THRESHOLD = 0.05; var _default = (_default2 = {}, (0, _defineProperty2["default"])(_default2, SLIDER_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, SLIDER_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_OPEN, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_CLOSE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, NAVBAR_OPEN, getComponentActiveOptions(false)), (0, _defineProperty2["default"])(_default2, NAVBAR_CLOSE, getComponentInactiveOptions(false)), (0, _defineProperty2["default"])(_default2, TAB_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, TAB_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_OPEN, { types: 'ecommerce-cart-open', handler: withFilter(isOrContainsElement, actionGroupCreator) }), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { types: 'ecommerce-cart-close', handler: withFilter(isOrContainsElement, actionGroupCreator) }), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { types: 'click', handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { var clickCount = _ref6.clickCount; if (hasAutoStopEvent(options)) { clickCount === 1 && actionGroupCreator(options); } else { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { types: 'click', handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { var clickCount = _ref7.clickCount; if (clickCount === 2) { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { types: 'mousedown' })), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { types: 'mouseup' })), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { types: MOUSE_OVER_OUT_TYPES, handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { if (state.elementHovered) { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { types: MOUSE_OVER_OUT_TYPES, handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { if (!state.elementHovered) { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { types: 'mousemove mouseout scroll', handler: function handler( // $FlowFixMe _ref8) { var store = _ref8.store, element = _ref8.element, eventConfig = _ref8.eventConfig, nativeEvent = _ref8.nativeEvent, eventStateKey = _ref8.eventStateKey; var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { clientX: 0, clientY: 0, pageX: 0, pageY: 0 }; var basedOn = eventConfig.basedOn, selectedAxis = eventConfig.selectedAxis, continuousParameterGroupId = eventConfig.continuousParameterGroupId, reverse = eventConfig.reverse, _eventConfig$restingS = eventConfig.restingState, restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; var _nativeEvent$clientX = nativeEvent.clientX, clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, _nativeEvent$clientY = nativeEvent.clientY, clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY, _nativeEvent$pageX = nativeEvent.pageX, pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, _nativeEvent$pageY = nativeEvent.pageY, pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; var isXAxis = selectedAxis === 'X_AXIS'; var isMouseOut = nativeEvent.type === 'mouseout'; var value = restingState / 100; var namespacedParameterId = continuousParameterGroupId; var elementHovered = false; switch (basedOn) { case _constants.EventBasedOn.VIEWPORT: { value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; break; } case _constants.EventBasedOn.PAGE: { var _getDocumentState3 = getDocumentState(), scrollLeft = _getDocumentState3.scrollLeft, scrollTop = _getDocumentState3.scrollTop, scrollWidth = _getDocumentState3.scrollWidth, scrollHeight = _getDocumentState3.scrollHeight; value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; break; } case _constants.EventBasedOn.ELEMENT: default: { namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target if (isMouseEvent && isOrContainsElement({ element: element, nativeEvent: nativeEvent }) !== true) { break; } var rect = element.getBoundingClientRect(); var left = rect.left, top = rect.top, width = rect.width, height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state // against the target element's rect if (!isMouseEvent && !pointIntersects({ left: clientX, top: clientY }, rect)) { break; } elementHovered = true; value = isXAxis ? (clientX - left) / width : (clientY - top) / height; break; } } // cover case where the event is a mouse out, but the value is not quite at 100% if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { value = Math.round(value); } // Only update based on element if the mouse is moving over or has just left the element if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe elementHovered !== state.elementHovered) { value = reverse ? 1 - value : value; store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); } return { elementHovered: elementHovered, clientX: clientX, clientY: clientY, pageX: pageX, pageY: pageY }; } }), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { types: SCROLL_EVENT_TYPES, // $FlowFixMe handler: function handler(_ref9) { var store = _ref9.store, eventConfig = _ref9.eventConfig; var continuousParameterGroupId = eventConfig.continuousParameterGroupId, reverse = eventConfig.reverse; var _getDocumentState4 = getDocumentState(), scrollTop = _getDocumentState4.scrollTop, scrollHeight = _getDocumentState4.scrollHeight, clientHeight = _getDocumentState4.clientHeight; var value = scrollTop / (scrollHeight - clientHeight); value = reverse ? 1 - value : value; store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); } }), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { types: SCROLL_EVENT_TYPES, handler: function handler( // $FlowFixMe _ref10) { var element = _ref10.element, store = _ref10.store, eventConfig = _ref10.eventConfig, eventStateKey = _ref10.eventStateKey; var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { scrollPercent: 0 }; var _getDocumentState5 = getDocumentState(), scrollLeft = _getDocumentState5.scrollLeft, scrollTop = _getDocumentState5.scrollTop, scrollWidth = _getDocumentState5.scrollWidth, scrollHeight = _getDocumentState5.scrollHeight, visibleHeight = _getDocumentState5.clientHeight; var basedOn = eventConfig.basedOn, selectedAxis = eventConfig.selectedAxis, continuousParameterGroupId = eventConfig.continuousParameterGroupId, startsEntering = eventConfig.startsEntering, startsExiting = eventConfig.startsExiting, addEndOffset = eventConfig.addEndOffset, addStartOffset = eventConfig.addStartOffset, _eventConfig$addOffse = eventConfig.addOffsetValue, addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, _eventConfig$endOffse = eventConfig.endOffsetValue, endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; var isXAxis = selectedAxis === 'X_AXIS'; if (basedOn === _constants.EventBasedOn.VIEWPORT) { var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; if (value !== state.scrollPercent) { store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); } return { scrollPercent: value }; } else { var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); var elementRect = element.getBoundingClientRect(); var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; var offsetHeight = offsetElementBottom - offsetElementTop; var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; if (fixedScrollPerc !== state.scrollPercent) { store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); } return { scrollPercent: fixedScrollPerc }; } } }), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { handler: whenScrollDirectionChange(function (options, state) { if (state.scrollingDown) { actionGroupCreator(options); } }) })), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { handler: whenScrollDirectionChange(function (options, state) { if (!state.scrollingDown) { actionGroupCreator(options); } }) })), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { types: 'readystatechange IX2_PAGE_UPDATE', handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) }), (0, _defineProperty2["default"])(_default2, PAGE_START, { types: 'readystatechange IX2_PAGE_UPDATE', handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) }), _default2); exports["default"] = _default; /***/ }), /* 509 */ /***/ (function(module, exports, __webpack_require__) { var createFlow = __webpack_require__(510); /** * Creates a function that returns the result of invoking the given functions * with the `this` binding of the created function, where each successive * invocation is supplied the return value of the previous. * * @static * @memberOf _ * @since 3.0.0 * @category Util * @param {...(Function|Function[])} [funcs] The functions to invoke. * @returns {Function} Returns the new composite function. * @see _.flowRight * @example * * function square(n) { * return n * n; * } * * var addSquare = _.flow([_.add, square]); * addSquare(1, 2); * // => 9 */ var flow = createFlow(); module.exports = flow; /***/ }), /* 510 */ /***/ (function(module, exports, __webpack_require__) { var LodashWrapper = __webpack_require__(182), flatRest = __webpack_require__(511), getData = __webpack_require__(285), getFuncName = __webpack_require__(286), isArray = __webpack_require__(10), isLaziable = __webpack_require__(521); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** Used to compose bitmasks for function metadata. */ var WRAP_CURRY_FLAG = 8, WRAP_PARTIAL_FLAG = 32, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256; /** * Creates a `_.flow` or `_.flowRight` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new flow function. */ function createFlow(fromRight) { return flatRest(function(funcs) { var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; if (fromRight) { funcs.reverse(); } while (index--) { var func = funcs[index]; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } if (prereq && !wrapper && getFuncName(func) == 'wrapper') { var wrapper = new LodashWrapper([], true); } } index = wrapper ? index : length; while (++index < length) { func = funcs[index]; var funcName = getFuncName(func), data = funcName == 'wrapper' ? getData(func) : undefined; if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1 ) { wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); } else { wrapper = (func.length == 1 && isLaziable(func)) ? wrapper[funcName]() : wrapper.thru(func); } } return function() { var args = arguments, value = args[0]; if (wrapper && args.length == 1 && isArray(value)) { return wrapper.plant(value).value(); } var index = 0, result = length ? funcs[index].apply(this, args) : value; while (++index < length) { result = funcs[index].call(this, result); } return result; }; }); } module.exports = createFlow; /***/ }), /* 511 */ /***/ (function(module, exports, __webpack_require__) { var flatten = __webpack_require__(512), overRest = __webpack_require__(282), setToString = __webpack_require__(283); /** * A specialized version of `baseRest` which flattens the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @returns {Function} Returns the new function. */ function flatRest(func) { return setToString(overRest(func, undefined, flatten), func + ''); } module.exports = flatRest; /***/ }), /* 512 */ /***/ (function(module, exports, __webpack_require__) { var baseFlatten = __webpack_require__(513); /** * Flattens `array` a single level deep. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to flatten. * @returns {Array} Returns the new flattened array. * @example * * _.flatten([1, [2, [3, [4]], 5]]); * // => [1, 2, [3, [4]], 5] */ function flatten(array) { var length = array == null ? 0 : array.length; return length ? baseFlatten(array, 1) : []; } module.exports = flatten; /***/ }), /* 513 */ /***/ (function(module, exports, __webpack_require__) { var arrayPush = __webpack_require__(167), isFlattenable = __webpack_require__(514); /** * The base implementation of `_.flatten` with support for restricting flattening. * * @private * @param {Array} array The array to flatten. * @param {number} depth The maximum recursion depth. * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. * @param {Array} [result=[]] The initial result value. * @returns {Array} Returns the new flattened array. */ function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, length = array.length; predicate || (predicate = isFlattenable); result || (result = []); while (++index < length) { var value = array[index]; if (depth > 0 && predicate(value)) { if (depth > 1) { // Recursively flatten arrays (susceptible to call stack limits). baseFlatten(value, depth - 1, predicate, isStrict, result); } else { arrayPush(result, value); } } else if (!isStrict) { result[result.length] = value; } } return result; } module.exports = baseFlatten; /***/ }), /* 514 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(73), isArguments = __webpack_require__(92), isArray = __webpack_require__(10); /** Built-in value references. */ var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; /** * Checks if `value` is a flattenable `arguments` object or array. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. */ function isFlattenable(value) { return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); } module.exports = isFlattenable; /***/ }), /* 515 */ /***/ (function(module, exports) { /** * A faster alternative to `Function#apply`, this function invokes `func` * with the `this` binding of `thisArg` and the arguments of `args`. * * @private * @param {Function} func The function to invoke. * @param {*} thisArg The `this` binding of `func`. * @param {Array} args The arguments to invoke `func` with. * @returns {*} Returns the result of `func`. */ function apply(func, thisArg, args) { switch (args.length) { case 0: return func.call(thisArg); case 1: return func.call(thisArg, args[0]); case 2: return func.call(thisArg, args[0], args[1]); case 3: return func.call(thisArg, args[0], args[1], args[2]); } return func.apply(thisArg, args); } module.exports = apply; /***/ }), /* 516 */ /***/ (function(module, exports, __webpack_require__) { var constant = __webpack_require__(284), defineProperty = __webpack_require__(278), identity = __webpack_require__(96); /** * The base implementation of `setToString` without support for hot loop shorting. * * @private * @param {Function} func The function to modify. * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ var baseSetToString = !defineProperty ? identity : function(func, string) { return defineProperty(func, 'toString', { 'configurable': true, 'enumerable': false, 'value': constant(string), 'writable': true }); }; module.exports = baseSetToString; /***/ }), /* 517 */ /***/ (function(module, exports) { /** Used to detect hot functions by number of calls within a span of milliseconds. */ var HOT_COUNT = 800, HOT_SPAN = 16; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeNow = Date.now; /** * Creates a function that'll short out and invoke `identity` instead * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` * milliseconds. * * @private * @param {Function} func The function to restrict. * @returns {Function} Returns the new shortable function. */ function shortOut(func) { var count = 0, lastCalled = 0; return function() { var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); lastCalled = stamp; if (remaining > 0) { if (++count >= HOT_COUNT) { return arguments[0]; } } else { count = 0; } return func.apply(undefined, arguments); }; } module.exports = shortOut; /***/ }), /* 518 */ /***/ (function(module, exports, __webpack_require__) { var WeakMap = __webpack_require__(261); /** Used to store function metadata. */ var metaMap = WeakMap && new WeakMap; module.exports = metaMap; /***/ }), /* 519 */ /***/ (function(module, exports) { /** * This method returns `undefined`. * * @static * @memberOf _ * @since 2.3.0 * @category Util * @example * * _.times(2, _.noop); * // => [undefined, undefined] */ function noop() { // No operation performed. } module.exports = noop; /***/ }), /* 520 */ /***/ (function(module, exports) { /** Used to lookup unminified function names. */ var realNames = {}; module.exports = realNames; /***/ }), /* 521 */ /***/ (function(module, exports, __webpack_require__) { var LazyWrapper = __webpack_require__(184), getData = __webpack_require__(285), getFuncName = __webpack_require__(286), lodash = __webpack_require__(522); /** * Checks if `func` has a lazy counterpart. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` has a lazy counterpart, * else `false`. */ function isLaziable(func) { var funcName = getFuncName(func), other = lodash[funcName]; if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { return false; } if (func === other) { return true; } var data = getData(other); return !!data && func === data[0]; } module.exports = isLaziable; /***/ }), /* 522 */ /***/ (function(module, exports, __webpack_require__) { var LazyWrapper = __webpack_require__(184), LodashWrapper = __webpack_require__(182), baseLodash = __webpack_require__(183), isArray = __webpack_require__(10), isObjectLike = __webpack_require__(22), wrapperClone = __webpack_require__(523); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Creates a `lodash` object which wraps `value` to enable implicit method * chain sequences. Methods that operate on and return arrays, collections, * and functions can be chained together. Methods that retrieve a single value * or may return a primitive value will automatically end the chain sequence * and return the unwrapped value. Otherwise, the value must be unwrapped * with `_#value`. * * Explicit chain sequences, which must be unwrapped with `_#value`, may be * enabled using `_.chain`. * * The execution of chained methods is lazy, that is, it's deferred until * `_#value` is implicitly or explicitly called. * * Lazy evaluation allows several methods to support shortcut fusion. * Shortcut fusion is an optimization to merge iteratee calls; this avoids * the creation of intermediate arrays and can greatly reduce the number of * iteratee executions. Sections of a chain sequence qualify for shortcut * fusion if the section is applied to an array and iteratees accept only * one argument. The heuristic for whether a section qualifies for shortcut * fusion is subject to change. * * Chaining is supported in custom builds as long as the `_#value` method is * directly or indirectly included in the build. * * In addition to lodash methods, wrappers have `Array` and `String` methods. * * The wrapper `Array` methods are: * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` * * The wrapper `String` methods are: * `replace` and `split` * * The wrapper methods that support shortcut fusion are: * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` * * The chainable wrapper methods are: * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, * `zipObject`, `zipObjectDeep`, and `zipWith` * * The wrapper methods that are **not** chainable by default are: * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, * `upperFirst`, `value`, and `words` * * @name _ * @constructor * @category Seq * @param {*} value The value to wrap in a `lodash` instance. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * function square(n) { * return n * n; * } * * var wrapped = _([1, 2, 3]); * * // Returns an unwrapped value. * wrapped.reduce(_.add); * // => 6 * * // Returns a wrapped value. * var squares = wrapped.map(square); * * _.isArray(squares); * // => false * * _.isArray(squares.value()); * // => true */ function lodash(value) { if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { if (value instanceof LodashWrapper) { return value; } if (hasOwnProperty.call(value, '__wrapped__')) { return wrapperClone(value); } } return new LodashWrapper(value); } // Ensure wrappers are instances of `baseLodash`. lodash.prototype = baseLodash.prototype; lodash.prototype.constructor = lodash; module.exports = lodash; /***/ }), /* 523 */ /***/ (function(module, exports, __webpack_require__) { var LazyWrapper = __webpack_require__(184), LodashWrapper = __webpack_require__(182), copyArray = __webpack_require__(185); /** * Creates a clone of `wrapper`. * * @private * @param {Object} wrapper The wrapper to clone. * @returns {Object} Returns the cloned wrapper. */ function wrapperClone(wrapper) { if (wrapper instanceof LazyWrapper) { return wrapper.clone(); } var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); result.__actions__ = copyArray(wrapper.__actions__); result.__index__ = wrapper.__index__; result.__values__ = wrapper.__values__; return result; } module.exports = wrapperClone; /***/ }), /* 524 */ /***/ (function(module, exports, __webpack_require__) { var baseClamp = __webpack_require__(525), toNumber = __webpack_require__(175); /** * Clamps `number` within the inclusive `lower` and `upper` bounds. * * @static * @memberOf _ * @since 4.0.0 * @category Number * @param {number} number The number to clamp. * @param {number} [lower] The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the clamped number. * @example * * _.clamp(-10, -5, 5); * // => -5 * * _.clamp(10, -5, 5); * // => 5 */ function clamp(number, lower, upper) { if (upper === undefined) { upper = lower; lower = undefined; } if (upper !== undefined) { upper = toNumber(upper); upper = upper === upper ? upper : 0; } if (lower !== undefined) { lower = toNumber(lower); lower = lower === lower ? lower : 0; } return baseClamp(toNumber(number), lower, upper); } module.exports = clamp; /***/ }), /* 525 */ /***/ (function(module, exports) { /** * The base implementation of `_.clamp` which doesn't coerce arguments. * * @private * @param {number} number The number to clamp. * @param {number} [lower] The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the clamped number. */ function baseClamp(number, lower, upper) { if (number === number) { if (upper !== undefined) { number = number <= upper ? number : upper; } if (lower !== undefined) { number = number >= lower ? number : lower; } } return number; } module.exports = baseClamp; /***/ }), /* 526 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: Auto-select links to current page or section */ var Webflow = __webpack_require__(20); Webflow.define('links', module.exports = function ($, _) { var api = {}; var $win = $(window); var designer; var inApp = Webflow.env(); var location = window.location; var tempLink = document.createElement('a'); var linkCurrent = 'w--current'; var indexPage = /index\.(html|php)$/; var dirList = /\/$/; var anchors; var slug; // ----------------------------------- // Module methods api.ready = api.design = api.preview = init; // ----------------------------------- // Private methods function init() { designer = inApp && Webflow.env('design'); slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors Webflow.scroll.off(scroll); anchors = []; // Test all links for a selectable href var links = document.links; for (var i = 0; i < links.length; ++i) { select(links[i]); } // Listen for scroll if any anchors exist if (anchors.length) { Webflow.scroll.on(scroll); scroll(); } } function select(link) { var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes if (href.indexOf(':') >= 0) { return; } var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { // Ignore any hrefs with Google Translate type hash // Example: jQuery can't parse $('#googtrans(en|es)') // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { return; } var $section = $(tempLink.hash); $section.length && anchors.push({ link: $link, sec: $section, active: false }); return; } // Ignore empty # links if (href === '#' || href === '') { return; } // Determine whether the link should be selected var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); setClass($link, linkCurrent, match); } function scroll() { var viewTop = $win.scrollTop(); var viewHeight = $win.height(); // Check each anchor for a section in view _.each(anchors, function (anchor) { var $link = anchor.link; var $section = anchor.sec; var top = $section.offset().top; var height = $section.outerHeight(); var offset = viewHeight * 0.5; var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; if (anchor.active === active) { return; } anchor.active = active; setClass($link, linkCurrent, active); }); } function setClass($elem, className, add) { var exists = $elem.hasClass(className); if (add && exists) { return; } if (!add && !exists) { return; } add ? $elem.addClass(className) : $elem.removeClass(className); } // Export module return api; }); /***/ }), /* 527 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: Smooth scroll */ var Webflow = __webpack_require__(20); Webflow.define('scroll', module.exports = function ($) { /** * A collection of namespaced events found in this module. * Namespaced events encapsulate our code, and make it safer and easier * for designers to apply custom code overrides. * @see https://api.jquery.com/on/#event-names * @typedef {Object.<string>} NamespacedEventsCollection */ var NS_EVENTS = { WF_CLICK_EMPTY: 'click.wf-empty-link', WF_CLICK_SCROLL: 'click.wf-scroll' }; var loc = window.location; var history = inIframe() ? null : window.history; var $win = $(window); var $doc = $(document); var $body = $(document.body); var animate = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) { window.setTimeout(fn, 15); }; var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; var headerSelector = 'header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'; var emptyHrefSelector = 'a[href="#"]'; /** * Select only links whose href: * - contains a # * - is not one of our namespaced TabLink elements * - is not _only_ a # */ var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; var scrollTargetOutlineCSS = '.wf-force-outline-none[tabindex="-1"]:focus{outline:none;}'; var focusStylesEl = document.createElement('style'); focusStylesEl.appendChild(document.createTextNode(scrollTargetOutlineCSS)); function inIframe() { try { return Boolean(window.frameElement); } catch (e) { return true; } } var validHash = /^#[a-zA-Z0-9][\w:.-]*$/; /** * Determine if link navigates to current page * @param {HTMLAnchorElement} link */ function linksToCurrentPage(link) { return validHash.test(link.hash) && link.host + link.pathname === loc.host + loc.pathname; } /** * Check if the designer has indicated that this page should * have no scroll animation, or if the end user has set * prefers-reduced-motion in their OS */ var reducedMotionMediaQuery = typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)'); function reducedMotionEnabled() { return document.body.getAttribute('data-wf-scroll-motion') === 'none' || reducedMotionMediaQuery.matches; } function setFocusable($el, action) { var initialTabindex; switch (action) { case 'add': initialTabindex = $el.attr('tabindex'); if (initialTabindex) { $el.attr('data-wf-tabindex-swap', initialTabindex); } else { $el.attr('tabindex', '-1'); } break; case 'remove': initialTabindex = $el.attr('data-wf-tabindex-swap'); if (initialTabindex) { $el.attr('tabindex', initialTabindex); $el.removeAttr('data-wf-tabindex-swap'); } else { $el.removeAttr('tabindex'); } break; } $el.toggleClass('wf-force-outline-none', action === 'add'); } /** * Determine if we should execute custom scroll */ function validateScroll(evt) { var target = evt.currentTarget; if ( // Bail if in Designer Webflow.env('design') || // Ignore links being used by jQuery mobile window.$.mobile && /(?:^|\s)ui-link(?:$|\s)/.test(target.className)) { return; } var hash = linksToCurrentPage(target) ? target.hash : ''; if (hash === '') return; var $el = $(hash); if (!$el.length) { return; } if (evt) { evt.preventDefault(); evt.stopPropagation(); } updateHistory(hash, evt); window.setTimeout(function () { scroll($el, function setFocus() { setFocusable($el, 'add'); $el.get(0).focus({ preventScroll: true }); setFocusable($el, 'remove'); }); }, evt ? 0 : 300); } function updateHistory(hash) { // Push new history state if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. !(Webflow.env.chrome && loc.protocol === 'file:')) { var oldHash = history.state && history.state.hash; if (oldHash !== hash) { history.pushState({ hash: hash }, '', hash); } } } function scroll($targetEl, cb) { var start = $win.scrollTop(); var end = calculateScrollEndPosition($targetEl); if (start === end) return; var duration = calculateScrollDuration($targetEl, start, end); var clock = Date.now(); var step = function step() { var elapsed = Date.now() - clock; window.scroll(0, getY(start, end, elapsed, duration)); if (elapsed <= duration) { animate(step); } else if (typeof cb === 'function') { cb(); } }; animate(step); } function calculateScrollEndPosition($targetEl) { // If a fixed header exists, offset for the height var $header = $(headerSelector); var offsetY = $header.css('position') === 'fixed' ? $header.outerHeight() : 0; var end = $targetEl.offset().top - offsetY; // If specified, scroll so that the element ends up in the middle of the viewport if ($targetEl.data('scroll') === 'mid') { var available = $win.height() - offsetY; var elHeight = $targetEl.outerHeight(); if (elHeight < available) { end -= Math.round((available - elHeight) / 2); } } return end; } function calculateScrollDuration($targetEl, start, end) { if (reducedMotionEnabled()) return 0; var mult = 1; // Check for custom time multiplier on the body and the scroll target $body.add($targetEl).each(function (_, el) { var time = parseFloat(el.getAttribute('data-scroll-time')); if (!isNaN(time) && time >= 0) { mult = time; } }); return (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; } function getY(start, end, elapsed, duration) { if (elapsed > duration) { return end; } return start + (end - start) * ease(elapsed / duration); } function ease(t) { return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; } function ready() { var WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); /** * Prevent empty hash links from triggering scroll. * Legacy feature to preserve: use the default "#" link * to trigger an interaction, and do not want the page * to scroll to the top. */ $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { e.preventDefault(); }); document.head.insertBefore(focusStylesEl, document.head.firstChild); } // Export module return { ready: ready }; }); /***/ }), /* 528 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals document, window */ /* eslint-disable no-var */ /** * Webflow: Touch events * Supports legacy 'tap' event * Adds a 'swipe' event to desktop and mobile */ var Webflow = __webpack_require__(20); Webflow.define('touch', module.exports = function ($) { var api = {}; var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' $.event.special.tap = { bindType: 'click', delegateType: 'click' }; api.init = function (el) { el = typeof el === 'string' ? $(el).get(0) : el; return el ? new Touch(el) : null; }; function Touch(el) { var active = false; var useTouch = false; var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); var startX; var lastX; el.addEventListener('touchstart', start, false); el.addEventListener('touchmove', move, false); el.addEventListener('touchend', end, false); el.addEventListener('touchcancel', cancel, false); el.addEventListener('mousedown', start, false); el.addEventListener('mousemove', move, false); el.addEventListener('mouseup', end, false); el.addEventListener('mouseout', cancel, false); function start(evt) { // We don’t handle multi-touch events yet. var touches = evt.touches; if (touches && touches.length > 1) { return; } active = true; if (touches) { useTouch = true; startX = touches[0].clientX; } else { startX = evt.clientX; } lastX = startX; } function move(evt) { if (!active) { return; } if (useTouch && evt.type === 'mousemove') { evt.preventDefault(); evt.stopPropagation(); return; } var touches = evt.touches; var x = touches ? touches[0].clientX : evt.clientX; var velocityX = x - lastX; lastX = x; // Allow swipes while pointer is down, but prevent them during text selection if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { triggerEvent('swipe', evt, { direction: velocityX > 0 ? 'right' : 'left' }); cancel(); } } function end(evt) { if (!active) { return; } active = false; if (useTouch && evt.type === 'mouseup') { evt.preventDefault(); evt.stopPropagation(); useTouch = false; return; } } function cancel() { active = false; } function destroy() { el.removeEventListener('touchstart', start, false); el.removeEventListener('touchmove', move, false); el.removeEventListener('touchend', end, false); el.removeEventListener('touchcancel', cancel, false); el.removeEventListener('mousedown', start, false); el.removeEventListener('mousemove', move, false); el.removeEventListener('mouseup', end, false); el.removeEventListener('mouseout', cancel, false); el = null; } // Public instance methods this.destroy = destroy; } // Wrap native event to supoprt preventdefault + stopPropagation function triggerEvent(type, evt, data) { var newEvent = $.Event(type, { originalEvent: evt }); $(evt.target).trigger(newEvent, data); } // Listen for touch events on all nodes by default. api.instance = api.init(document); // Export module return api; }); /***/ }), /* 529 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Webflow: E-commerce */ var Webflow = __webpack_require__(20); var commerce = __webpack_require__(530); Webflow.define('commerce', module.exports = function () { return commerce; }); /***/ }), /* 530 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(66); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.design = design; exports.destroy = destroy; exports.init = init; exports.preview = preview; __webpack_require__(531); __webpack_require__(532); __webpack_require__(294); __webpack_require__(636); __webpack_require__(640); __webpack_require__(645); __webpack_require__(648); var _apolloClient = __webpack_require__(311); var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _addToCartEvents = _interopRequireDefault(__webpack_require__(726)); var _cartEvents = _interopRequireDefault(__webpack_require__(824)); var _checkoutEvents = _interopRequireDefault(__webpack_require__(826)); var _orderConfirmationEvents = _interopRequireDefault(__webpack_require__(827)); var _webPaymentsEvents = _interopRequireDefault(__webpack_require__(226)); var _stripeStore = __webpack_require__(109); var _commerceUtils = __webpack_require__(37); __webpack_require__(370); __webpack_require__(372); var _checkoutUtils = __webpack_require__(152); var _paypalEvents = _interopRequireWildcard(__webpack_require__(831)); /* globals window, document */ // Symbol is used in various caching/memoization implementations // At a minimum, we need `Array.from` and `Array.find` support in IE11 // We need String.prototype.repeat for currency formatting (adding extra digits) // Object.entries does not exist in IE11, and it's in the Dynamo happy path // NodeLists do not have a native forEach even though they implement Iterable // IE11 does not support Number.isNaN, which is in the Dynamo happy path. // We're opting for importing the whole Number polyfill here since the other // Number prototype methods may exist in a lesser used path or in the future. var GQL_QUERY_PATH = '/.wf_graphql/apollo'; var handlerProxy; var apolloClient; var stripeStore; function attachHandlers() { handlerProxy && handlerProxy.attachHandlers(window); } function detachHandlers() { handlerProxy && handlerProxy.removeHandlers(window); } // Can be called from published sites or the Designer engine // Published sites: call point is defined in /models/site.js // Designer: call point is in CommerceProxyEngine function init(_ref) { var siteId = _ref.siteId; apolloClient = (0, _apolloClient.createApolloClient)({ path: window.Webflow.env('design') || window.Webflow.env('preview') ? "/api/v1/sites/".concat(siteId, "/apollo") : GQL_QUERY_PATH, maxAttempts: 5, useCsrf: true }); stripeStore = new _stripeStore.StripeStore(document); handlerProxy = new _eventHandlerProxyWithApolloClient["default"](apolloClient, stripeStore); _addToCartEvents["default"].register(handlerProxy); _cartEvents["default"].register(handlerProxy); _checkoutEvents["default"].register(handlerProxy); _orderConfirmationEvents["default"].register(handlerProxy); _webPaymentsEvents["default"].register(handlerProxy); _paypalEvents["default"].register(handlerProxy); (0, _checkoutUtils.initializeStripeElements)(stripeStore); detachHandlers(); attachHandlers(); (0, _commerceUtils.triggerRender)(null, true); if (!window.Webflow.env()) { window.Webflow.load((0, _paypalEvents.renderPaypalButtons)(apolloClient)); } } // `preview` should always be called after `init` function preview() { detachHandlers(); attachHandlers(); (0, _commerceUtils.triggerRender)(null, true); } // `design` should always be called after `init` function design() { detachHandlers(); // When variant option is changed, we need to reset the Apollo cache in oder to // render the right data for the selected variant (main-images, more-images, etc) if (apolloClient && apolloClient.store) { apolloClient.resetStore(); } } function destroy() { detachHandlers(); } /***/ }), /* 531 */ /***/ (function(module, exports) { // Polyfill for creating CustomEvents on IE9/10/11 // code pulled from: // https://github.com/d4tocchini/customevent-polyfill // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill (function() { if (typeof window === 'undefined') { return; } try { var ce = new window.CustomEvent('test', { cancelable: true }); ce.preventDefault(); if (ce.defaultPrevented !== true) { // IE has problems with .preventDefault() on custom events // http://stackoverflow.com/questions/23349191 throw new Error('Could not prevent default'); } } catch (e) { var CustomEvent = function(event, params) { var evt, origPrevent; params = params || {}; params.bubbles = !!params.bubbles; params.cancelable = !!params.cancelable; evt = document.createEvent('CustomEvent'); evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); origPrevent = evt.preventDefault; evt.preventDefault = function() { origPrevent.call(this); try { Object.defineProperty(this, 'defaultPrevented', { get: function() { return true; } }); } catch (e) { this.defaultPrevented = true; } }; return evt; }; CustomEvent.prototype = window.Event.prototype; window.CustomEvent = CustomEvent; // expose definition to window } })(); /***/ }), /* 532 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(533); __webpack_require__(557); __webpack_require__(558); __webpack_require__(559); __webpack_require__(560); __webpack_require__(561); // TODO: Remove from `core-js@4` __webpack_require__(562); // TODO: Remove from `core-js@4` __webpack_require__(563); module.exports = parent; /***/ }), /* 533 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(534); __webpack_require__(554); module.exports = parent; /***/ }), /* 534 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(287); __webpack_require__(187); __webpack_require__(536); __webpack_require__(537); __webpack_require__(538); __webpack_require__(539); __webpack_require__(540); __webpack_require__(541); __webpack_require__(542); __webpack_require__(543); __webpack_require__(544); __webpack_require__(545); __webpack_require__(546); __webpack_require__(547); __webpack_require__(548); __webpack_require__(549); __webpack_require__(550); __webpack_require__(551); __webpack_require__(552); __webpack_require__(553); var path = __webpack_require__(77); module.exports = path.Symbol; /***/ }), /* 535 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var TO_STRING_TAG_SUPPORT = __webpack_require__(186); var classof = __webpack_require__(100); // `Object.prototype.toString` method implementation // https://tc39.es/ecma262/#sec-object.prototype.tostring module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { return '[object ' + classof(this) + ']'; }; /***/ }), /* 536 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var getBuiltIn = __webpack_require__(24); var apply = __webpack_require__(134); var call = __webpack_require__(23); var uncurryThis = __webpack_require__(3); var IS_PURE = __webpack_require__(56); var DESCRIPTORS = __webpack_require__(16); var NATIVE_SYMBOL = __webpack_require__(155); var fails = __webpack_require__(5); var hasOwn = __webpack_require__(14); var isArray = __webpack_require__(48); var isCallable = __webpack_require__(6); var isObject = __webpack_require__(12); var isPrototypeOf = __webpack_require__(69); var isSymbol = __webpack_require__(112); var anObject = __webpack_require__(15); var toObject = __webpack_require__(9); var toIndexedObject = __webpack_require__(26); var toPropertyKey = __webpack_require__(86); var $toString = __webpack_require__(34); var createPropertyDescriptor = __webpack_require__(67); var nativeObjectCreate = __webpack_require__(39); var objectKeys = __webpack_require__(160); var getOwnPropertyNamesModule = __webpack_require__(88); var getOwnPropertyNamesExternal = __webpack_require__(289); var getOwnPropertySymbolsModule = __webpack_require__(236); var getOwnPropertyDescriptorModule = __webpack_require__(83); var definePropertyModule = __webpack_require__(17); var propertyIsEnumerableModule = __webpack_require__(154); var arraySlice = __webpack_require__(102); var redefine = __webpack_require__(27); var shared = __webpack_require__(156); var sharedKey = __webpack_require__(118); var hiddenKeys = __webpack_require__(87); var uid = __webpack_require__(115); var wellKnownSymbol = __webpack_require__(4); var wrappedWellKnownSymbolModule = __webpack_require__(290); var defineWellKnownSymbol = __webpack_require__(8); var setToStringTag = __webpack_require__(42); var InternalStateModule = __webpack_require__(38); var $forEach = __webpack_require__(35).forEach; var HIDDEN = sharedKey('hidden'); var SYMBOL = 'Symbol'; var PROTOTYPE = 'prototype'; var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(SYMBOL); var ObjectPrototype = Object[PROTOTYPE]; var $Symbol = global.Symbol; var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; var TypeError = global.TypeError; var QObject = global.QObject; var $stringify = getBuiltIn('JSON', 'stringify'); var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; var nativeDefineProperty = definePropertyModule.f; var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; var push = uncurryThis([].push); var AllSymbols = shared('symbols'); var ObjectPrototypeSymbols = shared('op-symbols'); var StringToSymbolRegistry = shared('string-to-symbol-registry'); var SymbolToStringRegistry = shared('symbol-to-string-registry'); var WellKnownSymbolsStore = shared('wks'); // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDescriptor = DESCRIPTORS && fails(function () { return nativeObjectCreate(nativeDefineProperty({}, 'a', { get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } })).a != 7; }) ? function (O, P, Attributes) { var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; nativeDefineProperty(O, P, Attributes); if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); } } : nativeDefineProperty; var wrap = function (tag, description) { var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); setInternalState(symbol, { type: SYMBOL, tag: tag, description: description }); if (!DESCRIPTORS) symbol.description = description; return symbol; }; var $defineProperty = function defineProperty(O, P, Attributes) { if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); anObject(O); var key = toPropertyKey(P); anObject(Attributes); if (hasOwn(AllSymbols, key)) { if (!Attributes.enumerable) { if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); O[HIDDEN][key] = true; } else { if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); } return setSymbolDescriptor(O, key, Attributes); } return nativeDefineProperty(O, key, Attributes); }; var $defineProperties = function defineProperties(O, Properties) { anObject(O); var properties = toIndexedObject(Properties); var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); $forEach(keys, function (key) { if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]); }); return O; }; var $create = function create(O, Properties) { return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); }; var $propertyIsEnumerable = function propertyIsEnumerable(V) { var P = toPropertyKey(V); var enumerable = call(nativePropertyIsEnumerable, this, P); if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false; return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { var it = toIndexedObject(O); var key = toPropertyKey(P); if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return; var descriptor = nativeGetOwnPropertyDescriptor(it, key); if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) { descriptor.enumerable = true; } return descriptor; }; var $getOwnPropertyNames = function getOwnPropertyNames(O) { var names = nativeGetOwnPropertyNames(toIndexedObject(O)); var result = []; $forEach(names, function (key) { if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key); }); return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); var result = []; $forEach(names, function (key) { if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) { push(result, AllSymbols[key]); } }); return result; }; // `Symbol` constructor // https://tc39.es/ecma262/#sec-symbol-constructor if (!NATIVE_SYMBOL) { $Symbol = function Symbol() { if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor'); var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); var tag = uid(description); var setter = function (value) { if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value); if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false; setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); }; if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); return wrap(tag, description); }; SymbolPrototype = $Symbol[PROTOTYPE]; redefine(SymbolPrototype, 'toString', function toString() { return getInternalState(this).tag; }); redefine($Symbol, 'withoutSetter', function (description) { return wrap(uid(description), description); }); propertyIsEnumerableModule.f = $propertyIsEnumerable; definePropertyModule.f = $defineProperty; getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; wrappedWellKnownSymbolModule.f = function (name) { return wrap(wellKnownSymbol(name), name); }; if (DESCRIPTORS) { // https://github.com/tc39/proposal-Symbol-description nativeDefineProperty(SymbolPrototype, 'description', { configurable: true, get: function description() { return getInternalState(this).description; } }); if (!IS_PURE) { redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); } } } $({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, { Symbol: $Symbol }); $forEach(objectKeys(WellKnownSymbolsStore), function (name) { defineWellKnownSymbol(name); }); $({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, { // `Symbol.for` method // https://tc39.es/ecma262/#sec-symbol.for 'for': function (key) { var string = $toString(key); if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; var symbol = $Symbol(string); StringToSymbolRegistry[string] = symbol; SymbolToStringRegistry[symbol] = string; return symbol; }, // `Symbol.keyFor` method // https://tc39.es/ecma262/#sec-symbol.keyfor keyFor: function keyFor(sym) { if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol'); if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; }, useSetter: function () { USE_SETTER = true; }, useSimple: function () { USE_SETTER = false; } }); $({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, { // `Object.create` method // https://tc39.es/ecma262/#sec-object.create create: $create, // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty defineProperty: $defineProperty, // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties defineProperties: $defineProperties, // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors getOwnPropertyDescriptor: $getOwnPropertyDescriptor }); $({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, { // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames getOwnPropertyNames: $getOwnPropertyNames, // `Object.getOwnPropertySymbols` method // https://tc39.es/ecma262/#sec-object.getownpropertysymbols getOwnPropertySymbols: $getOwnPropertySymbols }); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives // https://bugs.chromium.org/p/v8/issues/detail?id=3443 $({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, { getOwnPropertySymbols: function getOwnPropertySymbols(it) { return getOwnPropertySymbolsModule.f(toObject(it)); } }); // `JSON.stringify` method behavior with symbols // https://tc39.es/ecma262/#sec-json.stringify if ($stringify) { var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () { var symbol = $Symbol(); // MS Edge converts symbol values to JSON as {} return $stringify([symbol]) != '[null]' // WebKit converts symbol values to JSON as null || $stringify({ a: symbol }) != '{}' // V8 throws on boxed symbols || $stringify(Object(symbol)) != '{}'; }); $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, { // eslint-disable-next-line no-unused-vars -- required for `.length` stringify: function stringify(it, replacer, space) { var args = arraySlice(arguments); var $replacer = replacer; if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined if (!isArray(replacer)) replacer = function (key, value) { if (isCallable($replacer)) value = call($replacer, this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; return apply($stringify, null, args); } }); } // `Symbol.prototype[@@toPrimitive]` method // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive if (!SymbolPrototype[TO_PRIMITIVE]) { var valueOf = SymbolPrototype.valueOf; // eslint-disable-next-line no-unused-vars -- required for .length redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) { // TODO: improve hint logic return call(valueOf, this); }); } // `Symbol.prototype[@@toStringTag]` property // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag setToStringTag($Symbol, SYMBOL); hiddenKeys[HIDDEN] = true; /***/ }), /* 537 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.asyncIterator` well-known symbol // https://tc39.es/ecma262/#sec-symbol.asynciterator defineWellKnownSymbol('asyncIterator'); /***/ }), /* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // `Symbol.prototype.description` getter // https://tc39.es/ecma262/#sec-symbol.prototype.description var $ = __webpack_require__(2); var DESCRIPTORS = __webpack_require__(16); var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var hasOwn = __webpack_require__(14); var isCallable = __webpack_require__(6); var isPrototypeOf = __webpack_require__(69); var toString = __webpack_require__(34); var defineProperty = __webpack_require__(17).f; var copyConstructorProperties = __webpack_require__(234); var NativeSymbol = global.Symbol; var SymbolPrototype = NativeSymbol && NativeSymbol.prototype; if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) || // Safari 12 bug NativeSymbol().description !== undefined )) { var EmptyStringDescriptionStore = {}; // wrap Symbol constructor for correct work with undefined description var SymbolWrapper = function Symbol() { var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]); var result = isPrototypeOf(SymbolPrototype, this) ? new NativeSymbol(description) // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)' : description === undefined ? NativeSymbol() : NativeSymbol(description); if (description === '') EmptyStringDescriptionStore[result] = true; return result; }; copyConstructorProperties(SymbolWrapper, NativeSymbol); SymbolWrapper.prototype = SymbolPrototype; SymbolPrototype.constructor = SymbolWrapper; var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)'; var symbolToString = uncurryThis(SymbolPrototype.toString); var symbolValueOf = uncurryThis(SymbolPrototype.valueOf); var regexp = /^Symbol\((.*)\)[^)]+$/; var replace = uncurryThis(''.replace); var stringSlice = uncurryThis(''.slice); defineProperty(SymbolPrototype, 'description', { configurable: true, get: function description() { var symbol = symbolValueOf(this); var string = symbolToString(symbol); if (hasOwn(EmptyStringDescriptionStore, symbol)) return ''; var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1'); return desc === '' ? undefined : desc; } }); $({ global: true, forced: true }, { Symbol: SymbolWrapper }); } /***/ }), /* 539 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.hasInstance` well-known symbol // https://tc39.es/ecma262/#sec-symbol.hasinstance defineWellKnownSymbol('hasInstance'); /***/ }), /* 540 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.isConcatSpreadable` well-known symbol // https://tc39.es/ecma262/#sec-symbol.isconcatspreadable defineWellKnownSymbol('isConcatSpreadable'); /***/ }), /* 541 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.iterator` well-known symbol // https://tc39.es/ecma262/#sec-symbol.iterator defineWellKnownSymbol('iterator'); /***/ }), /* 542 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.match` well-known symbol // https://tc39.es/ecma262/#sec-symbol.match defineWellKnownSymbol('match'); /***/ }), /* 543 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.matchAll` well-known symbol // https://tc39.es/ecma262/#sec-symbol.matchall defineWellKnownSymbol('matchAll'); /***/ }), /* 544 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.replace` well-known symbol // https://tc39.es/ecma262/#sec-symbol.replace defineWellKnownSymbol('replace'); /***/ }), /* 545 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.search` well-known symbol // https://tc39.es/ecma262/#sec-symbol.search defineWellKnownSymbol('search'); /***/ }), /* 546 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.species` well-known symbol // https://tc39.es/ecma262/#sec-symbol.species defineWellKnownSymbol('species'); /***/ }), /* 547 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.split` well-known symbol // https://tc39.es/ecma262/#sec-symbol.split defineWellKnownSymbol('split'); /***/ }), /* 548 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.toPrimitive` well-known symbol // https://tc39.es/ecma262/#sec-symbol.toprimitive defineWellKnownSymbol('toPrimitive'); /***/ }), /* 549 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.toStringTag` well-known symbol // https://tc39.es/ecma262/#sec-symbol.tostringtag defineWellKnownSymbol('toStringTag'); /***/ }), /* 550 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.unscopables` well-known symbol // https://tc39.es/ecma262/#sec-symbol.unscopables defineWellKnownSymbol('unscopables'); /***/ }), /* 551 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var setToStringTag = __webpack_require__(42); // JSON[@@toStringTag] property // https://tc39.es/ecma262/#sec-json-@@tostringtag setToStringTag(global.JSON, 'JSON', true); /***/ }), /* 552 */ /***/ (function(module, exports, __webpack_require__) { var setToStringTag = __webpack_require__(42); // Math[@@toStringTag] property // https://tc39.es/ecma262/#sec-math-@@tostringtag setToStringTag(Math, 'Math', true); /***/ }), /* 553 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var global = __webpack_require__(1); var setToStringTag = __webpack_require__(42); $({ global: true }, { Reflect: {} }); // Reflect[@@toStringTag] property // https://tc39.es/ecma262/#sec-reflect-@@tostringtag setToStringTag(global.Reflect, 'Reflect', true); /***/ }), /* 554 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var DOMIterables = __webpack_require__(291); var DOMTokenListPrototype = __webpack_require__(292); var ArrayIteratorMethods = __webpack_require__(188); var createNonEnumerableProperty = __webpack_require__(70); var wellKnownSymbol = __webpack_require__(4); var ITERATOR = wellKnownSymbol('iterator'); var TO_STRING_TAG = wellKnownSymbol('toStringTag'); var ArrayValues = ArrayIteratorMethods.values; var handlePrototype = function (CollectionPrototype, COLLECTION_NAME) { if (CollectionPrototype) { // some Chrome versions have non-configurable methods on DOMTokenList if (CollectionPrototype[ITERATOR] !== ArrayValues) try { createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); } catch (error) { CollectionPrototype[ITERATOR] = ArrayValues; } if (!CollectionPrototype[TO_STRING_TAG]) { createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); } if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) { // some Chrome versions have non-configurable methods on DOMTokenList if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try { createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); } catch (error) { CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; } } } }; for (var COLLECTION_NAME in DOMIterables) { handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME); } handlePrototype(DOMTokenListPrototype, 'DOMTokenList'); /***/ }), /* 555 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); module.exports = !fails(function () { function F() { /* empty */ } F.prototype.constructor = null; // eslint-disable-next-line es/no-object-getprototypeof -- required for testing return Object.getPrototypeOf(new F()) !== F.prototype; }); /***/ }), /* 556 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isCallable = __webpack_require__(6); var String = global.String; var TypeError = global.TypeError; module.exports = function (argument) { if (typeof argument == 'object' || isCallable(argument)) return argument; throw TypeError("Can't set " + String(argument) + ' as a prototype'); }; /***/ }), /* 557 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.asyncDispose` well-known symbol // https://github.com/tc39/proposal-using-statement defineWellKnownSymbol('asyncDispose'); /***/ }), /* 558 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.dispose` well-known symbol // https://github.com/tc39/proposal-using-statement defineWellKnownSymbol('dispose'); /***/ }), /* 559 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.matcher` well-known symbol // https://github.com/tc39/proposal-pattern-matching defineWellKnownSymbol('matcher'); /***/ }), /* 560 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.metadata` well-known symbol // https://github.com/tc39/proposal-decorators defineWellKnownSymbol('metadata'); /***/ }), /* 561 */ /***/ (function(module, exports, __webpack_require__) { var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.observable` well-known symbol // https://github.com/tc39/proposal-observable defineWellKnownSymbol('observable'); /***/ }), /* 562 */ /***/ (function(module, exports, __webpack_require__) { // TODO: remove from `core-js@4` var defineWellKnownSymbol = __webpack_require__(8); // `Symbol.patternMatch` well-known symbol // https://github.com/tc39/proposal-pattern-matching defineWellKnownSymbol('patternMatch'); /***/ }), /* 563 */ /***/ (function(module, exports, __webpack_require__) { // TODO: remove from `core-js@4` var defineWellKnownSymbol = __webpack_require__(8); defineWellKnownSymbol('replaceAll'); /***/ }), /* 564 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(565); module.exports = parent; /***/ }), /* 565 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(566); __webpack_require__(569); __webpack_require__(570); __webpack_require__(297); __webpack_require__(287); __webpack_require__(571); __webpack_require__(573); __webpack_require__(574); __webpack_require__(576); __webpack_require__(577); __webpack_require__(578); __webpack_require__(579); __webpack_require__(580); __webpack_require__(581); __webpack_require__(229); __webpack_require__(582); __webpack_require__(188); __webpack_require__(583); __webpack_require__(584); __webpack_require__(586); __webpack_require__(587); __webpack_require__(588); __webpack_require__(589); __webpack_require__(590); __webpack_require__(591); __webpack_require__(592); __webpack_require__(596); __webpack_require__(597); __webpack_require__(598); __webpack_require__(599); __webpack_require__(187); __webpack_require__(600); var path = __webpack_require__(77); module.exports = path.Array; /***/ }), /* 566 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var from = __webpack_require__(567); var checkCorrectnessOfIteration = __webpack_require__(193); var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { // eslint-disable-next-line es/no-array-from -- required for testing Array.from(iterable); }); // `Array.from` method // https://tc39.es/ecma262/#sec-array.from $({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { from: from }); /***/ }), /* 567 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(1); var bind = __webpack_require__(29); var call = __webpack_require__(23); var toObject = __webpack_require__(9); var callWithSafeIterationClosing = __webpack_require__(568); var isArrayIteratorMethod = __webpack_require__(296); var isConstructor = __webpack_require__(76); var lengthOfArrayLike = __webpack_require__(7); var createProperty = __webpack_require__(99); var getIterator = __webpack_require__(104); var getIteratorMethod = __webpack_require__(105); var Array = global.Array; // `Array.from` method implementation // https://tc39.es/ecma262/#sec-array.from module.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { var O = toObject(arrayLike); var IS_CONSTRUCTOR = isConstructor(this); var argumentsLength = arguments.length; var mapfn = argumentsLength > 1 ? arguments[1] : undefined; var mapping = mapfn !== undefined; if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); var iteratorMethod = getIteratorMethod(O); var index = 0; var length, result, step, iterator, next, value; // if the target is not iterable or it's an array with the default iterator - use a simple case if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) { iterator = getIterator(O, iteratorMethod); next = iterator.next; result = IS_CONSTRUCTOR ? new this() : []; for (;!(step = call(next, iterator)).done; index++) { value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; createProperty(result, index, value); } } else { length = lengthOfArrayLike(O); result = IS_CONSTRUCTOR ? new this(length) : Array(length); for (;length > index; index++) { value = mapping ? mapfn(O[index], index) : O[index]; createProperty(result, index, value); } } result.length = index; return result; }; /***/ }), /* 568 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(15); var iteratorClose = __webpack_require__(295); // call something on iterator step with safe closing on error module.exports = function (iterator, fn, value, ENTRIES) { try { return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); } catch (error) { iteratorClose(iterator, 'throw', error); } }; /***/ }), /* 569 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var isArray = __webpack_require__(48); // `Array.isArray` method // https://tc39.es/ecma262/#sec-array.isarray $({ target: 'Array', stat: true }, { isArray: isArray }); /***/ }), /* 570 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var fails = __webpack_require__(5); var isConstructor = __webpack_require__(76); var createProperty = __webpack_require__(99); var Array = global.Array; var ISNT_GENERIC = fails(function () { function F() { /* empty */ } return !(Array.of.call(F) instanceof F); }); // `Array.of` method // https://tc39.es/ecma262/#sec-array.of // WebKit Array.of isn't generic $({ target: 'Array', stat: true, forced: ISNT_GENERIC }, { of: function of(/* ...args */) { var index = 0; var argumentsLength = arguments.length; var result = new (isConstructor(this) ? this : Array)(argumentsLength); while (argumentsLength > index) createProperty(result, index, arguments[index++]); result.length = argumentsLength; return result; } }); /***/ }), /* 571 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var copyWithin = __webpack_require__(572); var addToUnscopables = __webpack_require__(13); // `Array.prototype.copyWithin` method // https://tc39.es/ecma262/#sec-array.prototype.copywithin $({ target: 'Array', proto: true }, { copyWithin: copyWithin }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('copyWithin'); /***/ }), /* 572 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toObject = __webpack_require__(9); var toAbsoluteIndex = __webpack_require__(89); var lengthOfArrayLike = __webpack_require__(7); var min = Math.min; // `Array.prototype.copyWithin` method implementation // https://tc39.es/ecma262/#sec-array.prototype.copywithin // eslint-disable-next-line es/no-array-prototype-copywithin -- safe module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { var O = toObject(this); var len = lengthOfArrayLike(O); var to = toAbsoluteIndex(target, len); var from = toAbsoluteIndex(start, len); var end = arguments.length > 2 ? arguments[2] : undefined; var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); var inc = 1; if (from < to && to < from + count) { inc = -1; from += count - 1; to += count - 1; } while (count-- > 0) { if (from in O) O[to] = O[from]; else delete O[to]; to += inc; from += inc; } return O; }; /***/ }), /* 573 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $every = __webpack_require__(35).every; var arrayMethodIsStrict = __webpack_require__(43); var STRICT_METHOD = arrayMethodIsStrict('every'); // `Array.prototype.every` method // https://tc39.es/ecma262/#sec-array.prototype.every $({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { every: function every(callbackfn /* , thisArg */) { return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 574 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var fill = __webpack_require__(575); var addToUnscopables = __webpack_require__(13); // `Array.prototype.fill` method // https://tc39.es/ecma262/#sec-array.prototype.fill $({ target: 'Array', proto: true }, { fill: fill }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('fill'); /***/ }), /* 575 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toObject = __webpack_require__(9); var toAbsoluteIndex = __webpack_require__(89); var lengthOfArrayLike = __webpack_require__(7); // `Array.prototype.fill` method implementation // https://tc39.es/ecma262/#sec-array.prototype.fill module.exports = function fill(value /* , start = 0, end = @length */) { var O = toObject(this); var length = lengthOfArrayLike(O); var argumentsLength = arguments.length; var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length); var end = argumentsLength > 2 ? arguments[2] : undefined; var endPos = end === undefined ? length : toAbsoluteIndex(end, length); while (endPos > index) O[index++] = value; return O; }; /***/ }), /* 576 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $filter = __webpack_require__(35).filter; var arrayMethodHasSpeciesSupport = __webpack_require__(101); var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); // `Array.prototype.filter` method // https://tc39.es/ecma262/#sec-array.prototype.filter // with adding support of @@species $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { filter: function filter(callbackfn /* , thisArg */) { return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 577 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $find = __webpack_require__(35).find; var addToUnscopables = __webpack_require__(13); var FIND = 'find'; var SKIPS_HOLES = true; // Shouldn't skip holes if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); // `Array.prototype.find` method // https://tc39.es/ecma262/#sec-array.prototype.find $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { find: function find(callbackfn /* , that = undefined */) { return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables(FIND); /***/ }), /* 578 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $findIndex = __webpack_require__(35).findIndex; var addToUnscopables = __webpack_require__(13); var FIND_INDEX = 'findIndex'; var SKIPS_HOLES = true; // Shouldn't skip holes if (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; }); // `Array.prototype.findIndex` method // https://tc39.es/ecma262/#sec-array.prototype.findindex $({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { findIndex: function findIndex(callbackfn /* , that = undefined */) { return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables(FIND_INDEX); /***/ }), /* 579 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var flattenIntoArray = __webpack_require__(298); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var toIntegerOrInfinity = __webpack_require__(32); var arraySpeciesCreate = __webpack_require__(75); // `Array.prototype.flat` method // https://tc39.es/ecma262/#sec-array.prototype.flat $({ target: 'Array', proto: true }, { flat: function flat(/* depthArg = 1 */) { var depthArg = arguments.length ? arguments[0] : undefined; var O = toObject(this); var sourceLen = lengthOfArrayLike(O); var A = arraySpeciesCreate(O, 0); A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg)); return A; } }); /***/ }), /* 580 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var flattenIntoArray = __webpack_require__(298); var aCallable = __webpack_require__(31); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var arraySpeciesCreate = __webpack_require__(75); // `Array.prototype.flatMap` method // https://tc39.es/ecma262/#sec-array.prototype.flatmap $({ target: 'Array', proto: true }, { flatMap: function flatMap(callbackfn /* , thisArg */) { var O = toObject(this); var sourceLen = lengthOfArrayLike(O); var A; aCallable(callbackfn); A = arraySpeciesCreate(O, 0); A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined); return A; } }); /***/ }), /* 581 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var forEach = __webpack_require__(194); // `Array.prototype.forEach` method // https://tc39.es/ecma262/#sec-array.prototype.foreach // eslint-disable-next-line es/no-array-prototype-foreach -- safe $({ target: 'Array', proto: true, forced: [].forEach != forEach }, { forEach: forEach }); /***/ }), /* 582 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-array-prototype-indexof -- required for testing */ var $ = __webpack_require__(2); var uncurryThis = __webpack_require__(3); var $IndexOf = __webpack_require__(158).indexOf; var arrayMethodIsStrict = __webpack_require__(43); var un$IndexOf = uncurryThis([].indexOf); var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0; var STRICT_METHOD = arrayMethodIsStrict('indexOf'); // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof $({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, { indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { var fromIndex = arguments.length > 1 ? arguments[1] : undefined; return NEGATIVE_ZERO // convert -0 to +0 ? un$IndexOf(this, searchElement, fromIndex) || 0 : $IndexOf(this, searchElement, fromIndex); } }); /***/ }), /* 583 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var uncurryThis = __webpack_require__(3); var IndexedObject = __webpack_require__(68); var toIndexedObject = __webpack_require__(26); var arrayMethodIsStrict = __webpack_require__(43); var un$Join = uncurryThis([].join); var ES3_STRINGS = IndexedObject != Object; var STRICT_METHOD = arrayMethodIsStrict('join', ','); // `Array.prototype.join` method // https://tc39.es/ecma262/#sec-array.prototype.join $({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, { join: function join(separator) { return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator); } }); /***/ }), /* 584 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var lastIndexOf = __webpack_require__(585); // `Array.prototype.lastIndexOf` method // https://tc39.es/ecma262/#sec-array.prototype.lastindexof // eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing $({ target: 'Array', proto: true, forced: lastIndexOf !== [].lastIndexOf }, { lastIndexOf: lastIndexOf }); /***/ }), /* 585 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* eslint-disable es/no-array-prototype-lastindexof -- safe */ var apply = __webpack_require__(134); var toIndexedObject = __webpack_require__(26); var toIntegerOrInfinity = __webpack_require__(32); var lengthOfArrayLike = __webpack_require__(7); var arrayMethodIsStrict = __webpack_require__(43); var min = Math.min; var $lastIndexOf = [].lastIndexOf; var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; // `Array.prototype.lastIndexOf` method implementation // https://tc39.es/ecma262/#sec-array.prototype.lastindexof module.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { // convert -0 to +0 if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; var O = toIndexedObject(this); var length = lengthOfArrayLike(O); var index = length - 1; if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); if (index < 0) index = length + index; for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; return -1; } : $lastIndexOf; /***/ }), /* 586 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $map = __webpack_require__(35).map; var arrayMethodHasSpeciesSupport = __webpack_require__(101); var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); // `Array.prototype.map` method // https://tc39.es/ecma262/#sec-array.prototype.map // with adding support of @@species $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { map: function map(callbackfn /* , thisArg */) { return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 587 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $reduce = __webpack_require__(299).left; var arrayMethodIsStrict = __webpack_require__(43); var CHROME_VERSION = __webpack_require__(53); var IS_NODE = __webpack_require__(106); var STRICT_METHOD = arrayMethodIsStrict('reduce'); // Chrome 80-82 has a critical bug // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; // `Array.prototype.reduce` method // https://tc39.es/ecma262/#sec-array.prototype.reduce $({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, { reduce: function reduce(callbackfn /* , initialValue */) { var length = arguments.length; return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 588 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $reduceRight = __webpack_require__(299).right; var arrayMethodIsStrict = __webpack_require__(43); var CHROME_VERSION = __webpack_require__(53); var IS_NODE = __webpack_require__(106); var STRICT_METHOD = arrayMethodIsStrict('reduceRight'); // Chrome 80-82 has a critical bug // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; // `Array.prototype.reduceRight` method // https://tc39.es/ecma262/#sec-array.prototype.reduceright $({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, { reduceRight: function reduceRight(callbackfn /* , initialValue */) { return $reduceRight(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 589 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var uncurryThis = __webpack_require__(3); var isArray = __webpack_require__(48); var un$Reverse = uncurryThis([].reverse); var test = [1, 2]; // `Array.prototype.reverse` method // https://tc39.es/ecma262/#sec-array.prototype.reverse // fix for Safari 12.0 bug // https://bugs.webkit.org/show_bug.cgi?id=188794 $({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { reverse: function reverse() { // eslint-disable-next-line no-self-assign -- dirty hack if (isArray(this)) this.length = this.length; return un$Reverse(this); } }); /***/ }), /* 590 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var isArray = __webpack_require__(48); var isConstructor = __webpack_require__(76); var isObject = __webpack_require__(12); var toAbsoluteIndex = __webpack_require__(89); var lengthOfArrayLike = __webpack_require__(7); var toIndexedObject = __webpack_require__(26); var createProperty = __webpack_require__(99); var wellKnownSymbol = __webpack_require__(4); var arrayMethodHasSpeciesSupport = __webpack_require__(101); var un$Slice = __webpack_require__(102); var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice'); var SPECIES = wellKnownSymbol('species'); var Array = global.Array; var max = Math.max; // `Array.prototype.slice` method // https://tc39.es/ecma262/#sec-array.prototype.slice // fallback for not array-like ES3 strings and DOM objects $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { slice: function slice(start, end) { var O = toIndexedObject(this); var length = lengthOfArrayLike(O); var k = toAbsoluteIndex(start, length); var fin = toAbsoluteIndex(end === undefined ? length : end, length); // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible var Constructor, result, n; if (isArray(O)) { Constructor = O.constructor; // cross-realm fallback if (isConstructor(Constructor) && (Constructor === Array || isArray(Constructor.prototype))) { Constructor = undefined; } else if (isObject(Constructor)) { Constructor = Constructor[SPECIES]; if (Constructor === null) Constructor = undefined; } if (Constructor === Array || Constructor === undefined) { return un$Slice(O, k, fin); } } result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0)); for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]); result.length = n; return result; } }); /***/ }), /* 591 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $some = __webpack_require__(35).some; var arrayMethodIsStrict = __webpack_require__(43); var STRICT_METHOD = arrayMethodIsStrict('some'); // `Array.prototype.some` method // https://tc39.es/ecma262/#sec-array.prototype.some $({ target: 'Array', proto: true, forced: !STRICT_METHOD }, { some: function some(callbackfn /* , thisArg */) { return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 592 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var uncurryThis = __webpack_require__(3); var aCallable = __webpack_require__(31); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var toString = __webpack_require__(34); var fails = __webpack_require__(5); var internalSort = __webpack_require__(300); var arrayMethodIsStrict = __webpack_require__(43); var FF = __webpack_require__(593); var IE_OR_EDGE = __webpack_require__(594); var V8 = __webpack_require__(53); var WEBKIT = __webpack_require__(595); var test = []; var un$Sort = uncurryThis(test.sort); var push = uncurryThis(test.push); // IE8- var FAILS_ON_UNDEFINED = fails(function () { test.sort(undefined); }); // V8 bug var FAILS_ON_NULL = fails(function () { test.sort(null); }); // Old WebKit var STRICT_METHOD = arrayMethodIsStrict('sort'); var STABLE_SORT = !fails(function () { // feature detection can be too slow, so check engines versions if (V8) return V8 < 70; if (FF && FF > 3) return; if (IE_OR_EDGE) return true; if (WEBKIT) return WEBKIT < 603; var result = ''; var code, chr, value, index; // generate an array with more 512 elements (Chakra and old V8 fails only in this case) for (code = 65; code < 76; code++) { chr = String.fromCharCode(code); switch (code) { case 66: case 69: case 70: case 72: value = 3; break; case 68: case 71: value = 4; break; default: value = 2; } for (index = 0; index < 47; index++) { test.push({ k: chr + index, v: value }); } } test.sort(function (a, b) { return b.v - a.v; }); for (index = 0; index < test.length; index++) { chr = test[index].k.charAt(0); if (result.charAt(result.length - 1) !== chr) result += chr; } return result !== 'DGBEFHACIJK'; }); var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT; var getSortCompare = function (comparefn) { return function (x, y) { if (y === undefined) return -1; if (x === undefined) return 1; if (comparefn !== undefined) return +comparefn(x, y) || 0; return toString(x) > toString(y) ? 1 : -1; }; }; // `Array.prototype.sort` method // https://tc39.es/ecma262/#sec-array.prototype.sort $({ target: 'Array', proto: true, forced: FORCED }, { sort: function sort(comparefn) { if (comparefn !== undefined) aCallable(comparefn); var array = toObject(this); if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn); var items = []; var arrayLength = lengthOfArrayLike(array); var itemsLength, index; for (index = 0; index < arrayLength; index++) { if (index in array) push(items, array[index]); } internalSort(items, getSortCompare(comparefn)); itemsLength = items.length; index = 0; while (index < itemsLength) array[index] = items[index++]; while (index < arrayLength) delete array[index++]; return array; } }); /***/ }), /* 593 */ /***/ (function(module, exports, __webpack_require__) { var userAgent = __webpack_require__(54); var firefox = userAgent.match(/firefox\/(\d+)/i); module.exports = !!firefox && +firefox[1]; /***/ }), /* 594 */ /***/ (function(module, exports, __webpack_require__) { var UA = __webpack_require__(54); module.exports = /MSIE|Trident/.test(UA); /***/ }), /* 595 */ /***/ (function(module, exports, __webpack_require__) { var userAgent = __webpack_require__(54); var webkit = userAgent.match(/AppleWebKit\/(\d+)\./); module.exports = !!webkit && +webkit[1]; /***/ }), /* 596 */ /***/ (function(module, exports, __webpack_require__) { var setSpecies = __webpack_require__(195); // `Array[@@species]` getter // https://tc39.es/ecma262/#sec-get-array-@@species setSpecies('Array'); /***/ }), /* 597 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var toAbsoluteIndex = __webpack_require__(89); var toIntegerOrInfinity = __webpack_require__(32); var lengthOfArrayLike = __webpack_require__(7); var toObject = __webpack_require__(9); var arraySpeciesCreate = __webpack_require__(75); var createProperty = __webpack_require__(99); var arrayMethodHasSpeciesSupport = __webpack_require__(101); var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice'); var TypeError = global.TypeError; var max = Math.max; var min = Math.min; var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; var MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded'; // `Array.prototype.splice` method // https://tc39.es/ecma262/#sec-array.prototype.splice // with adding support of @@species $({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { splice: function splice(start, deleteCount /* , ...items */) { var O = toObject(this); var len = lengthOfArrayLike(O); var actualStart = toAbsoluteIndex(start, len); var argumentsLength = arguments.length; var insertCount, actualDeleteCount, A, k, from, to; if (argumentsLength === 0) { insertCount = actualDeleteCount = 0; } else if (argumentsLength === 1) { insertCount = 0; actualDeleteCount = len - actualStart; } else { insertCount = argumentsLength - 2; actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart); } if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) { throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED); } A = arraySpeciesCreate(O, actualDeleteCount); for (k = 0; k < actualDeleteCount; k++) { from = actualStart + k; if (from in O) createProperty(A, k, O[from]); } A.length = actualDeleteCount; if (insertCount < actualDeleteCount) { for (k = actualStart; k < len - actualDeleteCount; k++) { from = k + actualDeleteCount; to = k + insertCount; if (from in O) O[to] = O[from]; else delete O[to]; } for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1]; } else if (insertCount > actualDeleteCount) { for (k = len - actualDeleteCount; k > actualStart; k--) { from = k + actualDeleteCount - 1; to = k + insertCount - 1; if (from in O) O[to] = O[from]; else delete O[to]; } } for (k = 0; k < insertCount; k++) { O[k + actualStart] = arguments[k + 2]; } O.length = len - actualDeleteCount + insertCount; return A; } }); /***/ }), /* 598 */ /***/ (function(module, exports, __webpack_require__) { // this method was added to unscopables after implementation // in popular engines, so it's moved to a separate module var addToUnscopables = __webpack_require__(13); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('flat'); /***/ }), /* 599 */ /***/ (function(module, exports, __webpack_require__) { // this method was added to unscopables after implementation // in popular engines, so it's moved to a separate module var addToUnscopables = __webpack_require__(13); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('flatMap'); /***/ }), /* 600 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var charAt = __webpack_require__(601).charAt; var toString = __webpack_require__(34); var InternalStateModule = __webpack_require__(38); var defineIterator = __webpack_require__(189); var STRING_ITERATOR = 'String Iterator'; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); // `String.prototype[@@iterator]` method // https://tc39.es/ecma262/#sec-string.prototype-@@iterator defineIterator(String, 'String', function (iterated) { setInternalState(this, { type: STRING_ITERATOR, string: toString(iterated), index: 0 }); // `%StringIteratorPrototype%.next` method // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next }, function next() { var state = getInternalState(this); var string = state.string; var index = state.index; var point; if (index >= string.length) return { value: undefined, done: true }; point = charAt(string, index); state.index += point.length; return { value: point, done: false }; }); /***/ }), /* 601 */ /***/ (function(module, exports, __webpack_require__) { var uncurryThis = __webpack_require__(3); var toIntegerOrInfinity = __webpack_require__(32); var toString = __webpack_require__(34); var requireObjectCoercible = __webpack_require__(85); var charAt = uncurryThis(''.charAt); var charCodeAt = uncurryThis(''.charCodeAt); var stringSlice = uncurryThis(''.slice); var createMethod = function (CONVERT_TO_STRING) { return function ($this, pos) { var S = toString(requireObjectCoercible($this)); var position = toIntegerOrInfinity(pos); var size = S.length; var first, second; if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; first = charCodeAt(S, position); return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt(S, position) : first : CONVERT_TO_STRING ? stringSlice(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; }; }; module.exports = { // `String.prototype.codePointAt` method // https://tc39.es/ecma262/#sec-string.prototype.codepointat codeAt: createMethod(false), // `String.prototype.at` method // https://github.com/mathiasbynens/String.prototype.at charAt: createMethod(true) }; /***/ }), /* 602 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var collection = __webpack_require__(603); var collectionStrong = __webpack_require__(605); // `Map` constructor // https://tc39.es/ecma262/#sec-map-objects collection('Map', function (init) { return function Map() { return init(this, arguments.length ? arguments[0] : undefined); }; }, collectionStrong); /***/ }), /* 603 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var isForced = __webpack_require__(119); var redefine = __webpack_require__(27); var InternalMetadataModule = __webpack_require__(301); var iterate = __webpack_require__(196); var anInstance = __webpack_require__(135); var isCallable = __webpack_require__(6); var isObject = __webpack_require__(12); var fails = __webpack_require__(5); var checkCorrectnessOfIteration = __webpack_require__(193); var setToStringTag = __webpack_require__(42); var inheritIfRequired = __webpack_require__(302); module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; var ADDER = IS_MAP ? 'set' : 'add'; var NativeConstructor = global[CONSTRUCTOR_NAME]; var NativePrototype = NativeConstructor && NativeConstructor.prototype; var Constructor = NativeConstructor; var exported = {}; var fixMethod = function (KEY) { var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]); redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) { uncurriedNativeMethod(this, value === 0 ? 0 : value); return this; } : KEY == 'delete' ? function (key) { return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : KEY == 'get' ? function get(key) { return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : KEY == 'has' ? function has(key) { return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key); } : function set(key, value) { uncurriedNativeMethod(this, key === 0 ? 0 : key, value); return this; } ); }; var REPLACE = isForced( CONSTRUCTOR_NAME, !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () { new NativeConstructor().entries().next(); })) ); if (REPLACE) { // create collection constructor Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); InternalMetadataModule.enable(); } else if (isForced(CONSTRUCTOR_NAME, true)) { var instance = new Constructor(); // early implementations not supports chaining var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); // most early implementations doesn't supports iterables, most modern - not close it correctly // eslint-disable-next-line no-new -- required for testing var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); }); // for early implementations -0 and +0 not the same var BUGGY_ZERO = !IS_WEAK && fails(function () { // V8 ~ Chromium 42- fails only with 5+ elements var $instance = new NativeConstructor(); var index = 5; while (index--) $instance[ADDER](index, index); return !$instance.has(-0); }); if (!ACCEPT_ITERABLES) { Constructor = wrapper(function (dummy, iterable) { anInstance(dummy, NativePrototype); var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); return that; }); Constructor.prototype = NativePrototype; NativePrototype.constructor = Constructor; } if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { fixMethod('delete'); fixMethod('has'); IS_MAP && fixMethod('get'); } if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); // weak collections should not contains .clear method if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear; } exported[CONSTRUCTOR_NAME] = Constructor; $({ global: true, forced: Constructor != NativeConstructor }, exported); setToStringTag(Constructor, CONSTRUCTOR_NAME); if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); return Constructor; }; /***/ }), /* 604 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); module.exports = !fails(function () { // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing return Object.isExtensible(Object.preventExtensions({})); }); /***/ }), /* 605 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var defineProperty = __webpack_require__(17).f; var create = __webpack_require__(39); var redefineAll = __webpack_require__(136); var bind = __webpack_require__(29); var anInstance = __webpack_require__(135); var iterate = __webpack_require__(196); var defineIterator = __webpack_require__(189); var setSpecies = __webpack_require__(195); var DESCRIPTORS = __webpack_require__(16); var fastKey = __webpack_require__(301).fastKey; var InternalStateModule = __webpack_require__(38); var setInternalState = InternalStateModule.set; var internalStateGetterFor = InternalStateModule.getterFor; module.exports = { getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { var Constructor = wrapper(function (that, iterable) { anInstance(that, Prototype); setInternalState(that, { type: CONSTRUCTOR_NAME, index: create(null), first: undefined, last: undefined, size: 0 }); if (!DESCRIPTORS) that.size = 0; if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP }); }); var Prototype = Constructor.prototype; var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); var define = function (that, key, value) { var state = getInternalState(that); var entry = getEntry(that, key); var previous, index; // change existing entry if (entry) { entry.value = value; // create new entry } else { state.last = entry = { index: index = fastKey(key, true), key: key, value: value, previous: previous = state.last, next: undefined, removed: false }; if (!state.first) state.first = entry; if (previous) previous.next = entry; if (DESCRIPTORS) state.size++; else that.size++; // add to index if (index !== 'F') state.index[index] = entry; } return that; }; var getEntry = function (that, key) { var state = getInternalState(that); // fast case var index = fastKey(key); var entry; if (index !== 'F') return state.index[index]; // frozen object case for (entry = state.first; entry; entry = entry.next) { if (entry.key == key) return entry; } }; redefineAll(Prototype, { // `{ Map, Set }.prototype.clear()` methods // https://tc39.es/ecma262/#sec-map.prototype.clear // https://tc39.es/ecma262/#sec-set.prototype.clear clear: function clear() { var that = this; var state = getInternalState(that); var data = state.index; var entry = state.first; while (entry) { entry.removed = true; if (entry.previous) entry.previous = entry.previous.next = undefined; delete data[entry.index]; entry = entry.next; } state.first = state.last = undefined; if (DESCRIPTORS) state.size = 0; else that.size = 0; }, // `{ Map, Set }.prototype.delete(key)` methods // https://tc39.es/ecma262/#sec-map.prototype.delete // https://tc39.es/ecma262/#sec-set.prototype.delete 'delete': function (key) { var that = this; var state = getInternalState(that); var entry = getEntry(that, key); if (entry) { var next = entry.next; var prev = entry.previous; delete state.index[entry.index]; entry.removed = true; if (prev) prev.next = next; if (next) next.previous = prev; if (state.first == entry) state.first = next; if (state.last == entry) state.last = prev; if (DESCRIPTORS) state.size--; else that.size--; } return !!entry; }, // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods // https://tc39.es/ecma262/#sec-map.prototype.foreach // https://tc39.es/ecma262/#sec-set.prototype.foreach forEach: function forEach(callbackfn /* , that = undefined */) { var state = getInternalState(this); var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined); var entry; while (entry = entry ? entry.next : state.first) { boundFunction(entry.value, entry.key, this); // revert to the last existing entry while (entry && entry.removed) entry = entry.previous; } }, // `{ Map, Set}.prototype.has(key)` methods // https://tc39.es/ecma262/#sec-map.prototype.has // https://tc39.es/ecma262/#sec-set.prototype.has has: function has(key) { return !!getEntry(this, key); } }); redefineAll(Prototype, IS_MAP ? { // `Map.prototype.get(key)` method // https://tc39.es/ecma262/#sec-map.prototype.get get: function get(key) { var entry = getEntry(this, key); return entry && entry.value; }, // `Map.prototype.set(key, value)` method // https://tc39.es/ecma262/#sec-map.prototype.set set: function set(key, value) { return define(this, key === 0 ? 0 : key, value); } } : { // `Set.prototype.add(value)` method // https://tc39.es/ecma262/#sec-set.prototype.add add: function add(value) { return define(this, value = value === 0 ? 0 : value, value); } }); if (DESCRIPTORS) defineProperty(Prototype, 'size', { get: function () { return getInternalState(this).size; } }); return Constructor; }, setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) { var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods // https://tc39.es/ecma262/#sec-map.prototype.entries // https://tc39.es/ecma262/#sec-map.prototype.keys // https://tc39.es/ecma262/#sec-map.prototype.values // https://tc39.es/ecma262/#sec-map.prototype-@@iterator // https://tc39.es/ecma262/#sec-set.prototype.entries // https://tc39.es/ecma262/#sec-set.prototype.keys // https://tc39.es/ecma262/#sec-set.prototype.values // https://tc39.es/ecma262/#sec-set.prototype-@@iterator defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) { setInternalState(this, { type: ITERATOR_NAME, target: iterated, state: getInternalCollectionState(iterated), kind: kind, last: undefined }); }, function () { var state = getInternalIteratorState(this); var kind = state.kind; var entry = state.last; // revert to the last existing entry while (entry && entry.removed) entry = entry.previous; // get next entry if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { // or finish the iteration state.target = undefined; return { value: undefined, done: true }; } // return step by kind if (kind == 'keys') return { value: entry.key, done: false }; if (kind == 'values') return { value: entry.value, done: false }; return { value: [entry.key, entry.value], done: false }; }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // `{ Map, Set }.prototype[@@species]` accessors // https://tc39.es/ecma262/#sec-get-map-@@species // https://tc39.es/ecma262/#sec-get-set-@@species setSpecies(CONSTRUCTOR_NAME); } }; /***/ }), /* 606 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var IS_PURE = __webpack_require__(56); var global = __webpack_require__(1); var getBuiltIn = __webpack_require__(24); var call = __webpack_require__(23); var NativePromise = __webpack_require__(607); var redefine = __webpack_require__(27); var redefineAll = __webpack_require__(136); var setPrototypeOf = __webpack_require__(192); var setToStringTag = __webpack_require__(42); var setSpecies = __webpack_require__(195); var aCallable = __webpack_require__(31); var isCallable = __webpack_require__(6); var isObject = __webpack_require__(12); var anInstance = __webpack_require__(135); var inspectSource = __webpack_require__(117); var iterate = __webpack_require__(196); var checkCorrectnessOfIteration = __webpack_require__(193); var speciesConstructor = __webpack_require__(608); var task = __webpack_require__(303).set; var microtask = __webpack_require__(610); var promiseResolve = __webpack_require__(613); var hostReportErrors = __webpack_require__(614); var newPromiseCapabilityModule = __webpack_require__(305); var perform = __webpack_require__(615); var InternalStateModule = __webpack_require__(38); var isForced = __webpack_require__(119); var wellKnownSymbol = __webpack_require__(4); var IS_BROWSER = __webpack_require__(616); var IS_NODE = __webpack_require__(106); var V8_VERSION = __webpack_require__(53); var SPECIES = wellKnownSymbol('species'); var PROMISE = 'Promise'; var getInternalState = InternalStateModule.get; var setInternalState = InternalStateModule.set; var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); var NativePromisePrototype = NativePromise && NativePromise.prototype; var PromiseConstructor = NativePromise; var PromisePrototype = NativePromisePrototype; var TypeError = global.TypeError; var document = global.document; var process = global.process; var newPromiseCapability = newPromiseCapabilityModule.f; var newGenericPromiseCapability = newPromiseCapability; var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); var NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent); var UNHANDLED_REJECTION = 'unhandledrejection'; var REJECTION_HANDLED = 'rejectionhandled'; var PENDING = 0; var FULFILLED = 1; var REJECTED = 2; var HANDLED = 1; var UNHANDLED = 2; var SUBCLASSING = false; var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; var FORCED = isForced(PROMISE, function () { var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor); var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor); // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 // We can't detect it synchronously, so just check versions if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true; // We need Promise#finally in the pure version for preventing prototype pollution if (IS_PURE && !PromisePrototype['finally']) return true; // We can't use @@species feature detection in V8 since it causes // deoptimization and performance degradation // https://github.com/zloirock/core-js/issues/679 if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false; // Detect correctness of subclassing with @@species support var promise = new PromiseConstructor(function (resolve) { resolve(1); }); var FakePromise = function (exec) { exec(function () { /* empty */ }, function () { /* empty */ }); }; var constructor = promise.constructor = {}; constructor[SPECIES] = FakePromise; SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; if (!SUBCLASSING) return true; // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT; }); var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { PromiseConstructor.all(iterable)['catch'](function () { /* empty */ }); }); // helpers var isThenable = function (it) { var then; return isObject(it) && isCallable(then = it.then) ? then : false; }; var notify = function (state, isReject) { if (state.notified) return; state.notified = true; var chain = state.reactions; microtask(function () { var value = state.value; var ok = state.state == FULFILLED; var index = 0; // variable length - can't use forEach while (chain.length > index) { var reaction = chain[index++]; var handler = ok ? reaction.ok : reaction.fail; var resolve = reaction.resolve; var reject = reaction.reject; var domain = reaction.domain; var result, then, exited; try { if (handler) { if (!ok) { if (state.rejection === UNHANDLED) onHandleUnhandled(state); state.rejection = HANDLED; } if (handler === true) result = value; else { if (domain) domain.enter(); result = handler(value); // can throw if (domain) { domain.exit(); exited = true; } } if (result === reaction.promise) { reject(TypeError('Promise-chain cycle')); } else if (then = isThenable(result)) { call(then, result, resolve, reject); } else resolve(result); } else reject(value); } catch (error) { if (domain && !exited) domain.exit(); reject(error); } } state.reactions = []; state.notified = false; if (isReject && !state.rejection) onUnhandled(state); }); }; var dispatchEvent = function (name, promise, reason) { var event, handler; if (DISPATCH_EVENT) { event = document.createEvent('Event'); event.promise = promise; event.reason = reason; event.initEvent(name, false, true); global.dispatchEvent(event); } else event = { promise: promise, reason: reason }; if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event); else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); }; var onUnhandled = function (state) { call(task, global, function () { var promise = state.facade; var value = state.value; var IS_UNHANDLED = isUnhandled(state); var result; if (IS_UNHANDLED) { result = perform(function () { if (IS_NODE) { process.emit('unhandledRejection', value, promise); } else dispatchEvent(UNHANDLED_REJECTION, promise, value); }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; if (result.error) throw result.value; } }); }; var isUnhandled = function (state) { return state.rejection !== HANDLED && !state.parent; }; var onHandleUnhandled = function (state) { call(task, global, function () { var promise = state.facade; if (IS_NODE) { process.emit('rejectionHandled', promise); } else dispatchEvent(REJECTION_HANDLED, promise, state.value); }); }; var bind = function (fn, state, unwrap) { return function (value) { fn(state, value, unwrap); }; }; var internalReject = function (state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; state.value = value; state.state = REJECTED; notify(state, true); }; var internalResolve = function (state, value, unwrap) { if (state.done) return; state.done = true; if (unwrap) state = unwrap; try { if (state.facade === value) throw TypeError("Promise can't be resolved itself"); var then = isThenable(value); if (then) { microtask(function () { var wrapper = { done: false }; try { call(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state) ); } catch (error) { internalReject(wrapper, error, state); } }); } else { state.value = value; state.state = FULFILLED; notify(state, false); } } catch (error) { internalReject({ done: false }, error, state); } }; // constructor polyfill if (FORCED) { // 25.4.3.1 Promise(executor) PromiseConstructor = function Promise(executor) { anInstance(this, PromisePrototype); aCallable(executor); call(Internal, this); var state = getInternalState(this); try { executor(bind(internalResolve, state), bind(internalReject, state)); } catch (error) { internalReject(state, error); } }; PromisePrototype = PromiseConstructor.prototype; // eslint-disable-next-line no-unused-vars -- required for `.length` Internal = function Promise(executor) { setInternalState(this, { type: PROMISE, done: false, notified: false, parent: false, reactions: [], rejection: false, state: PENDING, value: undefined }); }; Internal.prototype = redefineAll(PromisePrototype, { // `Promise.prototype.then` method // https://tc39.es/ecma262/#sec-promise.prototype.then then: function then(onFulfilled, onRejected) { var state = getInternalPromiseState(this); var reactions = state.reactions; var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); reaction.ok = isCallable(onFulfilled) ? onFulfilled : true; reaction.fail = isCallable(onRejected) && onRejected; reaction.domain = IS_NODE ? process.domain : undefined; state.parent = true; reactions[reactions.length] = reaction; if (state.state != PENDING) notify(state, false); return reaction.promise; }, // `Promise.prototype.catch` method // https://tc39.es/ecma262/#sec-promise.prototype.catch 'catch': function (onRejected) { return this.then(undefined, onRejected); } }); OwnPromiseCapability = function () { var promise = new Internal(); var state = getInternalState(promise); this.promise = promise; this.resolve = bind(internalResolve, state); this.reject = bind(internalReject, state); }; newPromiseCapabilityModule.f = newPromiseCapability = function (C) { return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); }; if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) { nativeThen = NativePromisePrototype.then; if (!SUBCLASSING) { // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) { var that = this; return new PromiseConstructor(function (resolve, reject) { call(nativeThen, that, resolve, reject); }).then(onFulfilled, onRejected); // https://github.com/zloirock/core-js/issues/640 }, { unsafe: true }); // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then` redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { unsafe: true }); } // make `.constructor === Promise` work for native promise-based APIs try { delete NativePromisePrototype.constructor; } catch (error) { /* empty */ } // make `instanceof Promise` work for native promise-based APIs if (setPrototypeOf) { setPrototypeOf(NativePromisePrototype, PromisePrototype); } } } $({ global: true, wrap: true, forced: FORCED }, { Promise: PromiseConstructor }); setToStringTag(PromiseConstructor, PROMISE, false, true); setSpecies(PROMISE); PromiseWrapper = getBuiltIn(PROMISE); // statics $({ target: PROMISE, stat: true, forced: FORCED }, { // `Promise.reject` method // https://tc39.es/ecma262/#sec-promise.reject reject: function reject(r) { var capability = newPromiseCapability(this); call(capability.reject, undefined, r); return capability.promise; } }); $({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, { // `Promise.resolve` method // https://tc39.es/ecma262/#sec-promise.resolve resolve: function resolve(x) { return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); } }); $({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, { // `Promise.all` method // https://tc39.es/ecma262/#sec-promise.all all: function all(iterable) { var C = this; var capability = newPromiseCapability(C); var resolve = capability.resolve; var reject = capability.reject; var result = perform(function () { var $promiseResolve = aCallable(C.resolve); var values = []; var counter = 0; var remaining = 1; iterate(iterable, function (promise) { var index = counter++; var alreadyCalled = false; remaining++; call($promiseResolve, C, promise).then(function (value) { if (alreadyCalled) return; alreadyCalled = true; values[index] = value; --remaining || resolve(values); }, reject); }); --remaining || resolve(values); }); if (result.error) reject(result.value); return capability.promise; }, // `Promise.race` method // https://tc39.es/ecma262/#sec-promise.race race: function race(iterable) { var C = this; var capability = newPromiseCapability(C); var reject = capability.reject; var result = perform(function () { var $promiseResolve = aCallable(C.resolve); iterate(iterable, function (promise) { call($promiseResolve, C, promise).then(capability.resolve, reject); }); }); if (result.error) reject(result.value); return capability.promise; } }); /***/ }), /* 607 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); module.exports = global.Promise; /***/ }), /* 608 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(15); var aConstructor = __webpack_require__(609); var wellKnownSymbol = __webpack_require__(4); var SPECIES = wellKnownSymbol('species'); // `SpeciesConstructor` abstract operation // https://tc39.es/ecma262/#sec-speciesconstructor module.exports = function (O, defaultConstructor) { var C = anObject(O).constructor; var S; return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S); }; /***/ }), /* 609 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var isConstructor = __webpack_require__(76); var tryToString = __webpack_require__(113); var TypeError = global.TypeError; // `Assert: IsConstructor(argument) is true` module.exports = function (argument) { if (isConstructor(argument)) return argument; throw TypeError(tryToString(argument) + ' is not a constructor'); }; /***/ }), /* 610 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var bind = __webpack_require__(29); var getOwnPropertyDescriptor = __webpack_require__(83).f; var macrotask = __webpack_require__(303).set; var IS_IOS = __webpack_require__(304); var IS_IOS_PEBBLE = __webpack_require__(611); var IS_WEBOS_WEBKIT = __webpack_require__(612); var IS_NODE = __webpack_require__(106); var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; var document = global.document; var process = global.process; var Promise = global.Promise; // Node.js 11 shows ExperimentalWarning on getting `queueMicrotask` var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; var flush, head, last, notify, toggle, node, promise, then; // modern engines have queueMicrotask method if (!queueMicrotask) { flush = function () { var parent, fn; if (IS_NODE && (parent = process.domain)) parent.exit(); while (head) { fn = head.fn; head = head.next; try { fn(); } catch (error) { if (head) notify(); else last = undefined; throw error; } } last = undefined; if (parent) parent.enter(); }; // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) { toggle = true; node = document.createTextNode(''); new MutationObserver(flush).observe(node, { characterData: true }); notify = function () { node.data = toggle = !toggle; }; // environments with maybe non-completely correct, but existent Promise } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) { // Promise.resolve without an argument throws an error in LG WebOS 2 promise = Promise.resolve(undefined); // workaround of WebKit ~ iOS Safari 10.1 bug promise.constructor = Promise; then = bind(promise.then, promise); notify = function () { then(flush); }; // Node.js without promises } else if (IS_NODE) { notify = function () { process.nextTick(flush); }; // for other environments - macrotask based on: // - setImmediate // - MessageChannel // - window.postMessag // - onreadystatechange // - setTimeout } else { // strange IE + webpack dev server bug - use .bind(global) macrotask = bind(macrotask, global); notify = function () { macrotask(flush); }; } } module.exports = queueMicrotask || function (fn) { var task = { fn: fn, next: undefined }; if (last) last.next = task; if (!head) { head = task; notify(); } last = task; }; /***/ }), /* 611 */ /***/ (function(module, exports, __webpack_require__) { var userAgent = __webpack_require__(54); var global = __webpack_require__(1); module.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined; /***/ }), /* 612 */ /***/ (function(module, exports, __webpack_require__) { var userAgent = __webpack_require__(54); module.exports = /web0s(?!.*chrome)/i.test(userAgent); /***/ }), /* 613 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(15); var isObject = __webpack_require__(12); var newPromiseCapability = __webpack_require__(305); module.exports = function (C, x) { anObject(C); if (isObject(x) && x.constructor === C) return x; var promiseCapability = newPromiseCapability.f(C); var resolve = promiseCapability.resolve; resolve(x); return promiseCapability.promise; }; /***/ }), /* 614 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); module.exports = function (a, b) { var console = global.console; if (console && console.error) { arguments.length == 1 ? console.error(a) : console.error(a, b); } }; /***/ }), /* 615 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return { error: false, value: exec() }; } catch (error) { return { error: true, value: error }; } }; /***/ }), /* 616 */ /***/ (function(module, exports) { module.exports = typeof window == 'object'; /***/ }), /* 617 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var fromAsync = __webpack_require__(618); // `Array.fromAsync` method // https://github.com/tc39/proposal-array-from-async $({ target: 'Array', stat: true }, { fromAsync: fromAsync }); /***/ }), /* 618 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var bind = __webpack_require__(29); var toObject = __webpack_require__(9); var isConstructor = __webpack_require__(76); var getAsyncIterator = __webpack_require__(619); var getIterator = __webpack_require__(104); var getIteratorMethod = __webpack_require__(105); var getMethod = __webpack_require__(55); var getVirtual = __webpack_require__(621); var getBuiltIn = __webpack_require__(24); var wellKnownSymbol = __webpack_require__(4); var AsyncFromSyncIterator = __webpack_require__(306); var toArray = __webpack_require__(622).toArray; var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); var arrayIterator = getVirtual('Array').values; // `Array.fromAsync` method implementation // https://github.com/tc39/proposal-array-from-async module.exports = function fromAsync(asyncItems /* , mapfn = undefined, thisArg = undefined */) { var C = this; var argumentsLength = arguments.length; var mapfn = argumentsLength > 1 ? arguments[1] : undefined; var thisArg = argumentsLength > 2 ? arguments[2] : undefined; return new (getBuiltIn('Promise'))(function (resolve) { var O = toObject(asyncItems); if (mapfn !== undefined) mapfn = bind(mapfn, thisArg); var usingAsyncIterator = getMethod(O, ASYNC_ITERATOR); var usingSyncIterator = usingAsyncIterator ? undefined : getIteratorMethod(O) || arrayIterator; var A = isConstructor(C) ? new C() : []; var iterator = usingAsyncIterator ? getAsyncIterator(O, usingAsyncIterator) : new AsyncFromSyncIterator(getIterator(O, usingSyncIterator)); resolve(toArray(iterator, mapfn, A)); }); }; /***/ }), /* 619 */ /***/ (function(module, exports, __webpack_require__) { var call = __webpack_require__(23); var AsyncFromSyncIterator = __webpack_require__(306); var anObject = __webpack_require__(15); var getIterator = __webpack_require__(104); var getMethod = __webpack_require__(55); var wellKnownSymbol = __webpack_require__(4); var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); module.exports = function (it, usingIterator) { var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator; return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIterator(it)); }; /***/ }), /* 620 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var shared = __webpack_require__(114); var isCallable = __webpack_require__(6); var create = __webpack_require__(39); var getPrototypeOf = __webpack_require__(191); var redefine = __webpack_require__(27); var wellKnownSymbol = __webpack_require__(4); var IS_PURE = __webpack_require__(56); var USE_FUNCTION_CONSTRUCTOR = 'USE_FUNCTION_CONSTRUCTOR'; var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator'); var AsyncIterator = global.AsyncIterator; var PassedAsyncIteratorPrototype = shared.AsyncIteratorPrototype; var AsyncIteratorPrototype, prototype; if (PassedAsyncIteratorPrototype) { AsyncIteratorPrototype = PassedAsyncIteratorPrototype; } else if (isCallable(AsyncIterator)) { AsyncIteratorPrototype = AsyncIterator.prototype; } else if (shared[USE_FUNCTION_CONSTRUCTOR] || global[USE_FUNCTION_CONSTRUCTOR]) { try { // eslint-disable-next-line no-new-func -- we have no alternatives without usage of modern syntax prototype = getPrototypeOf(getPrototypeOf(getPrototypeOf(Function('return async function*(){}()')()))); if (getPrototypeOf(prototype) === Object.prototype) AsyncIteratorPrototype = prototype; } catch (error) { /* empty */ } } if (!AsyncIteratorPrototype) AsyncIteratorPrototype = {}; else if (IS_PURE) AsyncIteratorPrototype = create(AsyncIteratorPrototype); if (!isCallable(AsyncIteratorPrototype[ASYNC_ITERATOR])) { redefine(AsyncIteratorPrototype, ASYNC_ITERATOR, function () { return this; }); } module.exports = AsyncIteratorPrototype; /***/ }), /* 621 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); module.exports = function (CONSTRUCTOR) { return global[CONSTRUCTOR].prototype; }; /***/ }), /* 622 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // https://github.com/tc39/proposal-iterator-helpers // https://github.com/tc39/proposal-array-from-async var global = __webpack_require__(1); var call = __webpack_require__(23); var aCallable = __webpack_require__(31); var anObject = __webpack_require__(15); var getBuiltIn = __webpack_require__(24); var getMethod = __webpack_require__(55); var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; var TypeError = global.TypeError; var createMethod = function (TYPE) { var IS_TO_ARRAY = TYPE == 0; var IS_FOR_EACH = TYPE == 1; var IS_EVERY = TYPE == 2; var IS_SOME = TYPE == 3; return function (iterator, fn, target) { anObject(iterator); var Promise = getBuiltIn('Promise'); var next = aCallable(iterator.next); var index = 0; var MAPPING = fn !== undefined; if (MAPPING || !IS_TO_ARRAY) aCallable(fn); return new Promise(function (resolve, reject) { var closeIteration = function (method, argument) { try { var returnMethod = getMethod(iterator, 'return'); if (returnMethod) { return Promise.resolve(call(returnMethod, iterator)).then(function () { method(argument); }, function (error) { reject(error); }); } } catch (error2) { return reject(error2); } method(argument); }; var onError = function (error) { closeIteration(reject, error); }; var loop = function () { try { if (IS_TO_ARRAY && (index > MAX_SAFE_INTEGER) && MAPPING) { throw TypeError('The allowed number of iterations has been exceeded'); } Promise.resolve(anObject(call(next, iterator))).then(function (step) { try { if (anObject(step).done) { if (IS_TO_ARRAY) { target.length = index; resolve(target); } else resolve(IS_SOME ? false : IS_EVERY || undefined); } else { var value = step.value; if (MAPPING) { Promise.resolve(IS_TO_ARRAY ? fn(value, index) : fn(value)).then(function (result) { if (IS_FOR_EACH) { loop(); } else if (IS_EVERY) { result ? loop() : closeIteration(resolve, false); } else if (IS_TO_ARRAY) { target[index++] = result; loop(); } else { result ? closeIteration(resolve, IS_SOME || value) : loop(); } }, onError); } else { target[index++] = value; loop(); } } } catch (error) { onError(error); } }, onError); } catch (error2) { onError(error2); } }; loop(); }); }; }; module.exports = { toArray: createMethod(0), forEach: createMethod(1), every: createMethod(2), some: createMethod(3), find: createMethod(4) }; /***/ }), /* 623 */ /***/ (function(module, exports, __webpack_require__) { // TODO: Remove from `core-js@4` __webpack_require__(297); /***/ }), /* 624 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // TODO: remove from `core-js@4` var $ = __webpack_require__(2); var $filterReject = __webpack_require__(35).filterReject; var addToUnscopables = __webpack_require__(13); // `Array.prototype.filterOut` method // https://github.com/tc39/proposal-array-filtering $({ target: 'Array', proto: true }, { filterOut: function filterOut(callbackfn /* , thisArg */) { return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); addToUnscopables('filterOut'); /***/ }), /* 625 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $filterReject = __webpack_require__(35).filterReject; var addToUnscopables = __webpack_require__(13); // `Array.prototype.filterReject` method // https://github.com/tc39/proposal-array-filtering $({ target: 'Array', proto: true }, { filterReject: function filterReject(callbackfn /* , thisArg */) { return $filterReject(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); addToUnscopables('filterReject'); /***/ }), /* 626 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $findLast = __webpack_require__(307).findLast; var addToUnscopables = __webpack_require__(13); // `Array.prototype.findLast` method // https://github.com/tc39/proposal-array-find-from-last $({ target: 'Array', proto: true }, { findLast: function findLast(callbackfn /* , that = undefined */) { return $findLast(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); addToUnscopables('findLast'); /***/ }), /* 627 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $findLastIndex = __webpack_require__(307).findLastIndex; var addToUnscopables = __webpack_require__(13); // `Array.prototype.findLastIndex` method // https://github.com/tc39/proposal-array-find-from-last $({ target: 'Array', proto: true }, { findLastIndex: function findLastIndex(callbackfn /* , that = undefined */) { return $findLastIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); addToUnscopables('findLastIndex'); /***/ }), /* 628 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var $groupBy = __webpack_require__(629); var arraySpeciesConstructor = __webpack_require__(288); var addToUnscopables = __webpack_require__(13); // `Array.prototype.groupBy` method // https://github.com/tc39/proposal-array-grouping $({ target: 'Array', proto: true }, { groupBy: function groupBy(callbackfn /* , thisArg */) { var thisArg = arguments.length > 1 ? arguments[1] : undefined; return $groupBy(this, callbackfn, thisArg, arraySpeciesConstructor); } }); addToUnscopables('groupBy'); /***/ }), /* 629 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var bind = __webpack_require__(29); var uncurryThis = __webpack_require__(3); var IndexedObject = __webpack_require__(68); var toObject = __webpack_require__(9); var toPropertyKey = __webpack_require__(86); var lengthOfArrayLike = __webpack_require__(7); var objectCreate = __webpack_require__(39); var arrayFromConstructorAndList = __webpack_require__(630); var Array = global.Array; var push = uncurryThis([].push); module.exports = function ($this, callbackfn, that, specificConstructor) { var O = toObject($this); var self = IndexedObject(O); var boundFunction = bind(callbackfn, that); var target = objectCreate(null); var length = lengthOfArrayLike(self); var index = 0; var Constructor, key, value; for (;length > index; index++) { value = self[index]; key = toPropertyKey(boundFunction(value, index, O)); // in some IE10 builds, `hasOwnProperty` returns incorrect result on integer keys // but since it's a `null` prototype object, we can safely use `in` if (key in target) push(target[key], value); else target[key] = [value]; } if (specificConstructor) { Constructor = specificConstructor(O); if (Constructor !== Array) { for (key in target) target[key] = arrayFromConstructorAndList(Constructor, target[key]); } } return target; }; /***/ }), /* 630 */ /***/ (function(module, exports) { module.exports = function (Constructor, list) { var index = 0; var length = list.length; var result = new Constructor(length); while (length > index) result[index] = list[index++]; return result; }; /***/ }), /* 631 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var isArray = __webpack_require__(48); // eslint-disable-next-line es/no-object-isfrozen -- safe var isFrozen = Object.isFrozen; var isFrozenStringArray = function (array, allowUndefined) { if (!isFrozen || !isArray(array) || !isFrozen(array)) return false; var index = 0; var length = array.length; var element; while (index < length) { element = array[index++]; if (!(typeof element == 'string' || (allowUndefined && typeof element == 'undefined'))) { return false; } } return length !== 0; }; // `Array.isTemplateObject` method // https://github.com/tc39/proposal-array-is-template-object $({ target: 'Array', stat: true }, { isTemplateObject: function isTemplateObject(value) { if (!isFrozenStringArray(value, true)) return false; var raw = value.raw; if (raw.length !== value.length || !isFrozenStringArray(raw, false)) return false; return true; } }); /***/ }), /* 632 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(16); var addToUnscopables = __webpack_require__(13); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var defineProperty = __webpack_require__(17).f; // `Array.prototype.lastIndex` accessor // https://github.com/keithamus/proposal-array-last if (DESCRIPTORS && !('lastItem' in [])) { defineProperty(Array.prototype, 'lastItem', { configurable: true, get: function lastItem() { var O = toObject(this); var len = lengthOfArrayLike(O); return len == 0 ? undefined : O[len - 1]; }, set: function lastItem(value) { var O = toObject(this); var len = lengthOfArrayLike(O); return O[len == 0 ? 0 : len - 1] = value; } }); addToUnscopables('lastItem'); } /***/ }), /* 633 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(16); var addToUnscopables = __webpack_require__(13); var toObject = __webpack_require__(9); var lengthOfArrayLike = __webpack_require__(7); var defineProperty = __webpack_require__(17).f; // `Array.prototype.lastIndex` getter // https://github.com/keithamus/proposal-array-last if (DESCRIPTORS && !('lastIndex' in [])) { defineProperty(Array.prototype, 'lastIndex', { configurable: true, get: function lastIndex() { var O = toObject(this); var len = lengthOfArrayLike(O); return len == 0 ? 0 : len - 1; } }); addToUnscopables('lastIndex'); } /***/ }), /* 634 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var addToUnscopables = __webpack_require__(13); var uniqueBy = __webpack_require__(635); // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique $({ target: 'Array', proto: true }, { uniqueBy: uniqueBy }); addToUnscopables('uniqueBy'); /***/ }), /* 635 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var getBuiltIn = __webpack_require__(24); var uncurryThis = __webpack_require__(3); var aCallable = __webpack_require__(31); var lengthOfArrayLike = __webpack_require__(7); var toObject = __webpack_require__(9); var arraySpeciesCreate = __webpack_require__(75); var Map = getBuiltIn('Map'); var MapPrototype = Map.prototype; var mapForEach = uncurryThis(MapPrototype.forEach); var mapHas = uncurryThis(MapPrototype.has); var mapSet = uncurryThis(MapPrototype.set); var push = uncurryThis([].push); // `Array.prototype.uniqueBy` method // https://github.com/tc39/proposal-array-unique module.exports = function uniqueBy(resolver) { var that = toObject(this); var length = lengthOfArrayLike(that); var result = arraySpeciesCreate(that, 0); var map = new Map(); var resolverFunction = resolver != null ? aCallable(resolver) : function (value) { return value; }; var index, item, key; for (index = 0; index < length; index++) { item = that[index]; key = resolverFunction(item); if (!mapHas(map, key)) mapSet(map, key, item); } mapForEach(map, function (value) { push(result, value); }); return result; }; /***/ }), /* 636 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(637); module.exports = parent; /***/ }), /* 637 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(638); module.exports = parent; /***/ }), /* 638 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(639); var entryUnbind = __webpack_require__(239); module.exports = entryUnbind('String', 'repeat'); /***/ }), /* 639 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var repeat = __webpack_require__(308); // `String.prototype.repeat` method // https://tc39.es/ecma262/#sec-string.prototype.repeat $({ target: 'String', proto: true }, { repeat: repeat }); /***/ }), /* 640 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(641); module.exports = parent; /***/ }), /* 641 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(642); module.exports = parent; /***/ }), /* 642 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(643); var path = __webpack_require__(77); module.exports = path.Object.entries; /***/ }), /* 643 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var $entries = __webpack_require__(644).entries; // `Object.entries` method // https://tc39.es/ecma262/#sec-object.entries $({ target: 'Object', stat: true }, { entries: function entries(O) { return $entries(O); } }); /***/ }), /* 644 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(16); var uncurryThis = __webpack_require__(3); var objectKeys = __webpack_require__(160); var toIndexedObject = __webpack_require__(26); var $propertyIsEnumerable = __webpack_require__(154).f; var propertyIsEnumerable = uncurryThis($propertyIsEnumerable); var push = uncurryThis([].push); // `Object.{ entries, values }` methods implementation var createMethod = function (TO_ENTRIES) { return function (it) { var O = toIndexedObject(it); var keys = objectKeys(O); var length = keys.length; var i = 0; var result = []; var key; while (length > i) { key = keys[i++]; if (!DESCRIPTORS || propertyIsEnumerable(O, key)) { push(result, TO_ENTRIES ? [key, O[key]] : O[key]); } } return result; }; }; module.exports = { // `Object.entries` method // https://tc39.es/ecma262/#sec-object.entries entries: createMethod(true), // `Object.values` method // https://tc39.es/ecma262/#sec-object.values values: createMethod(false) }; /***/ }), /* 645 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(646); module.exports = parent; /***/ }), /* 646 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(647); var parent = __webpack_require__(194); module.exports = parent; /***/ }), /* 647 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var DOMIterables = __webpack_require__(291); var DOMTokenListPrototype = __webpack_require__(292); var forEach = __webpack_require__(194); var createNonEnumerableProperty = __webpack_require__(70); var handlePrototype = function (CollectionPrototype) { // some Chrome versions have non-configurable methods on DOMTokenList if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try { createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach); } catch (error) { CollectionPrototype.forEach = forEach; } }; for (var COLLECTION_NAME in DOMIterables) { if (DOMIterables[COLLECTION_NAME]) { handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype); } } handlePrototype(DOMTokenListPrototype); /***/ }), /* 648 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(649); module.exports = parent; __webpack_require__(187); __webpack_require__(665); __webpack_require__(666); /***/ }), /* 649 */ /***/ (function(module, exports, __webpack_require__) { var parent = __webpack_require__(650); module.exports = parent; /***/ }), /* 650 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(651); __webpack_require__(652); __webpack_require__(653); __webpack_require__(655); __webpack_require__(656); __webpack_require__(657); __webpack_require__(658); __webpack_require__(659); __webpack_require__(660); __webpack_require__(662); __webpack_require__(663); __webpack_require__(664); var path = __webpack_require__(77); module.exports = path.Number; /***/ }), /* 651 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var DESCRIPTORS = __webpack_require__(16); var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var isForced = __webpack_require__(119); var redefine = __webpack_require__(27); var hasOwn = __webpack_require__(14); var inheritIfRequired = __webpack_require__(302); var isPrototypeOf = __webpack_require__(69); var isSymbol = __webpack_require__(112); var toPrimitive = __webpack_require__(230); var fails = __webpack_require__(5); var getOwnPropertyNames = __webpack_require__(88).f; var getOwnPropertyDescriptor = __webpack_require__(83).f; var defineProperty = __webpack_require__(17).f; var thisNumberValue = __webpack_require__(197); var trim = __webpack_require__(198).trim; var NUMBER = 'Number'; var NativeNumber = global[NUMBER]; var NumberPrototype = NativeNumber.prototype; var TypeError = global.TypeError; var arraySlice = uncurryThis(''.slice); var charCodeAt = uncurryThis(''.charCodeAt); // `ToNumeric` abstract operation // https://tc39.es/ecma262/#sec-tonumeric var toNumeric = function (value) { var primValue = toPrimitive(value, 'number'); return typeof primValue == 'bigint' ? primValue : toNumber(primValue); }; // `ToNumber` abstract operation // https://tc39.es/ecma262/#sec-tonumber var toNumber = function (argument) { var it = toPrimitive(argument, 'number'); var first, third, radix, maxCode, digits, length, index, code; if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number'); if (typeof it == 'string' && it.length > 2) { it = trim(it); first = charCodeAt(it, 0); if (first === 43 || first === 45) { third = charCodeAt(it, 2); if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix } else if (first === 48) { switch (charCodeAt(it, 1)) { case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i default: return +it; } digits = arraySlice(it, 2); length = digits.length; for (index = 0; index < length; index++) { code = charCodeAt(digits, index); // parseInt parses a string to a first unavailable symbol // but ToNumber should return NaN if a string contains unavailable symbols if (code < 48 || code > maxCode) return NaN; } return parseInt(digits, radix); } } return +it; }; // `Number` constructor // https://tc39.es/ecma262/#sec-number-constructor if (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) { var NumberWrapper = function Number(value) { var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value)); var dummy = this; // check on 1..constructor(foo) case return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); }) ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n; }; for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : ( // ES3: 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES2015 (in case, if modules with ES2015 Number statics required before): 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' + // ESNext 'fromString,range' ).split(','), j = 0, key; keys.length > j; j++) { if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) { defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key)); } } NumberWrapper.prototype = NumberPrototype; NumberPrototype.constructor = NumberWrapper; redefine(global, NUMBER, NumberWrapper); } /***/ }), /* 652 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); // `Number.EPSILON` constant // https://tc39.es/ecma262/#sec-number.epsilon $({ target: 'Number', stat: true }, { EPSILON: Math.pow(2, -52) }); /***/ }), /* 653 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var numberIsFinite = __webpack_require__(654); // `Number.isFinite` method // https://tc39.es/ecma262/#sec-number.isfinite $({ target: 'Number', stat: true }, { isFinite: numberIsFinite }); /***/ }), /* 654 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var globalIsFinite = global.isFinite; // `Number.isFinite` method // https://tc39.es/ecma262/#sec-number.isfinite // eslint-disable-next-line es/no-number-isfinite -- safe module.exports = Number.isFinite || function isFinite(it) { return typeof it == 'number' && globalIsFinite(it); }; /***/ }), /* 655 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var isIntegralNumber = __webpack_require__(309); // `Number.isInteger` method // https://tc39.es/ecma262/#sec-number.isinteger $({ target: 'Number', stat: true }, { isInteger: isIntegralNumber }); /***/ }), /* 656 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); // `Number.isNaN` method // https://tc39.es/ecma262/#sec-number.isnan $({ target: 'Number', stat: true }, { isNaN: function isNaN(number) { // eslint-disable-next-line no-self-compare -- NaN check return number != number; } }); /***/ }), /* 657 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var isIntegralNumber = __webpack_require__(309); var abs = Math.abs; // `Number.isSafeInteger` method // https://tc39.es/ecma262/#sec-number.issafeinteger $({ target: 'Number', stat: true }, { isSafeInteger: function isSafeInteger(number) { return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF; } }); /***/ }), /* 658 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); // `Number.MAX_SAFE_INTEGER` constant // https://tc39.es/ecma262/#sec-number.max_safe_integer $({ target: 'Number', stat: true }, { MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF }); /***/ }), /* 659 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); // `Number.MIN_SAFE_INTEGER` constant // https://tc39.es/ecma262/#sec-number.min_safe_integer $({ target: 'Number', stat: true }, { MIN_SAFE_INTEGER: -0x1FFFFFFFFFFFFF }); /***/ }), /* 660 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var parseFloat = __webpack_require__(661); // `Number.parseFloat` method // https://tc39.es/ecma262/#sec-number.parseFloat // eslint-disable-next-line es/no-number-parsefloat -- required for testing $({ target: 'Number', stat: true, forced: Number.parseFloat != parseFloat }, { parseFloat: parseFloat }); /***/ }), /* 661 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(1); var fails = __webpack_require__(5); var uncurryThis = __webpack_require__(3); var toString = __webpack_require__(34); var trim = __webpack_require__(198).trim; var whitespaces = __webpack_require__(199); var charAt = uncurryThis(''.charAt); var n$ParseFloat = global.parseFloat; var Symbol = global.Symbol; var ITERATOR = Symbol && Symbol.iterator; var FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity // MS Edge 18- broken with boxed symbols || (ITERATOR && !fails(function () { n$ParseFloat(Object(ITERATOR)); })); // `parseFloat` method // https://tc39.es/ecma262/#sec-parsefloat-string module.exports = FORCED ? function parseFloat(string) { var trimmedString = trim(toString(string)); var result = n$ParseFloat(trimmedString); return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result; } : n$ParseFloat; /***/ }), /* 662 */ /***/ (function(module, exports, __webpack_require__) { var $ = __webpack_require__(2); var parseInt = __webpack_require__(310); // `Number.parseInt` method // https://tc39.es/ecma262/#sec-number.parseint // eslint-disable-next-line es/no-number-parseint -- required for testing $({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, { parseInt: parseInt }); /***/ }), /* 663 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var toIntegerOrInfinity = __webpack_require__(32); var thisNumberValue = __webpack_require__(197); var $repeat = __webpack_require__(308); var fails = __webpack_require__(5); var RangeError = global.RangeError; var String = global.String; var floor = Math.floor; var repeat = uncurryThis($repeat); var stringSlice = uncurryThis(''.slice); var un$ToFixed = uncurryThis(1.0.toFixed); var pow = function (x, n, acc) { return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); }; var log = function (x) { var n = 0; var x2 = x; while (x2 >= 4096) { n += 12; x2 /= 4096; } while (x2 >= 2) { n += 1; x2 /= 2; } return n; }; var multiply = function (data, n, c) { var index = -1; var c2 = c; while (++index < 6) { c2 += n * data[index]; data[index] = c2 % 1e7; c2 = floor(c2 / 1e7); } }; var divide = function (data, n) { var index = 6; var c = 0; while (--index >= 0) { c += data[index]; data[index] = floor(c / n); c = (c % n) * 1e7; } }; var dataToString = function (data) { var index = 6; var s = ''; while (--index >= 0) { if (s !== '' || index === 0 || data[index] !== 0) { var t = String(data[index]); s = s === '' ? t : s + repeat('0', 7 - t.length) + t; } } return s; }; var FORCED = fails(function () { return un$ToFixed(0.00008, 3) !== '0.000' || un$ToFixed(0.9, 0) !== '1' || un$ToFixed(1.255, 2) !== '1.25' || un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128'; }) || !fails(function () { // V8 ~ Android 4.3- un$ToFixed({}); }); // `Number.prototype.toFixed` method // https://tc39.es/ecma262/#sec-number.prototype.tofixed $({ target: 'Number', proto: true, forced: FORCED }, { toFixed: function toFixed(fractionDigits) { var number = thisNumberValue(this); var fractDigits = toIntegerOrInfinity(fractionDigits); var data = [0, 0, 0, 0, 0, 0]; var sign = ''; var result = '0'; var e, z, j, k; if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits'); // eslint-disable-next-line no-self-compare -- NaN check if (number != number) return 'NaN'; if (number <= -1e21 || number >= 1e21) return String(number); if (number < 0) { sign = '-'; number = -number; } if (number > 1e-21) { e = log(number * pow(2, 69, 1)) - 69; z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1); z *= 0x10000000000000; e = 52 - e; if (e > 0) { multiply(data, 0, z); j = fractDigits; while (j >= 7) { multiply(data, 1e7, 0); j -= 7; } multiply(data, pow(10, j, 1), 0); j = e - 1; while (j >= 23) { divide(data, 1 << 23); j -= 23; } divide(data, 1 << j); multiply(data, 1, 1); divide(data, 2); result = dataToString(data); } else { multiply(data, 0, z); multiply(data, 1 << -e, 0); result = dataToString(data) + repeat('0', fractDigits); } } if (fractDigits > 0) { k = result.length; result = sign + (k <= fractDigits ? '0.' + repeat('0', fractDigits - k) + result : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits)); } else { result = sign + result; } return result; } }); /***/ }), /* 664 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var uncurryThis = __webpack_require__(3); var fails = __webpack_require__(5); var thisNumberValue = __webpack_require__(197); var un$ToPrecision = uncurryThis(1.0.toPrecision); var FORCED = fails(function () { // IE7- return un$ToPrecision(1, undefined) !== '1'; }) || !fails(function () { // V8 ~ Android 4.3- un$ToPrecision({}); }); // `Number.prototype.toPrecision` method // https://tc39.es/ecma262/#sec-number.prototype.toprecision $({ target: 'Number', proto: true, forced: FORCED }, { toPrecision: function toPrecision(precision) { return precision === undefined ? un$ToPrecision(thisNumberValue(this)) : un$ToPrecision(thisNumberValue(this), precision); } }); /***/ }), /* 665 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var global = __webpack_require__(1); var uncurryThis = __webpack_require__(3); var toIntegerOrInfinity = __webpack_require__(32); var parseInt = __webpack_require__(310); var INVALID_NUMBER_REPRESENTATION = 'Invalid number representation'; var INVALID_RADIX = 'Invalid radix'; var RangeError = global.RangeError; var SyntaxError = global.SyntaxError; var TypeError = global.TypeError; var valid = /^[\da-z]+$/; var charAt = uncurryThis(''.charAt); var exec = uncurryThis(valid.exec); var numberToString = uncurryThis(1.0.toString); var stringSlice = uncurryThis(''.slice); // `Number.fromString` method // https://github.com/tc39/proposal-number-fromstring $({ target: 'Number', stat: true }, { fromString: function fromString(string, radix) { var sign = 1; var R, mathNum; if (typeof string != 'string') throw TypeError(INVALID_NUMBER_REPRESENTATION); if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION); if (charAt(string, 0) == '-') { sign = -1; string = stringSlice(string, 1); if (!string.length) throw SyntaxError(INVALID_NUMBER_REPRESENTATION); } R = radix === undefined ? 10 : toIntegerOrInfinity(radix); if (R < 2 || R > 36) throw RangeError(INVALID_RADIX); if (!exec(valid, string) || numberToString(mathNum = parseInt(string, R), R) !== string) { throw SyntaxError(INVALID_NUMBER_REPRESENTATION); } return sign * mathNum; } }); /***/ }), /* 666 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(2); var NumericRangeIterator = __webpack_require__(667); // `Number.range` method // https://github.com/tc39/proposal-Number.range $({ target: 'Number', stat: true }, { range: function range(start, end, option) { return new NumericRangeIterator(start, end, option, 'number', 0, 1); } }); /***/ }), /* 667 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(1); var InternalStateModule = __webpack_require__(38); var createIteratorConstructor = __webpack_require__(190); var isObject = __webpack_require__(12); var defineProperties = __webpack_require__(237); var DESCRIPTORS = __webpack_require__(16); var INCORRECT_RANGE = 'Incorrect Number.range arguments'; var NUMERIC_RANGE_ITERATOR = 'NumericRangeIterator'; var setInternalState = InternalStateModule.set; var getInternalState = InternalStateModule.getterFor(NUMERIC_RANGE_ITERATOR); var RangeError = global.RangeError; var TypeError = global.TypeError; var $RangeIterator = createIteratorConstructor(function NumericRangeIterator(start, end, option, type, zero, one) { if (typeof start != type || (end !== Infinity && end !== -Infinity && typeof end != type)) { throw new TypeError(INCORRECT_RANGE); } if (start === Infinity || start === -Infinity) { throw new RangeError(INCORRECT_RANGE); } var ifIncrease = end > start; var inclusiveEnd = false; var step; if (option === undefined) { step = undefined; } else if (isObject(option)) { step = option.step; inclusiveEnd = !!option.inclusive; } else if (typeof option == type) { step = option; } else { throw new TypeError(INCORRECT_RANGE); } if (step == null) { step = ifIncrease ? one : -one; } if (typeof step != type) { throw new TypeError(INCORRECT_RANGE); } if (step === Infinity || step === -Infinity || (step === zero && start !== end)) { throw new RangeError(INCORRECT_RANGE); } // eslint-disable-next-line no-self-compare -- NaN check var hitsEnd = start != start || end != end || step != step || (end > start) !== (step > zero); setInternalState(this, { type: NUMERIC_RANGE_ITERATOR, start: start, end: end, step: step, inclusiveEnd: inclusiveEnd, hitsEnd: hitsEnd, currentCount: zero, zero: zero }); if (!DESCRIPTORS) { this.start = start; this.end = end; this.step = step; this.inclusive = inclusiveEnd; } }, NUMERIC_RANGE_ITERATOR, function next() { var state = getInternalState(this); if (state.hitsEnd) return { value: undefined, done: true }; var start = state.start; var end = state.end; var step = state.step; var currentYieldingValue = start + (step * state.currentCount++); if (currentYieldingValue === end) state.hitsEnd = true; var inclusiveEnd = state.inclusiveEnd; var endCondition; if (end > start) { endCondition = inclusiveEnd ? currentYieldingValue > end : currentYieldingValue >= end; } else { endCondition = inclusiveEnd ? end > currentYieldingValue : end >= currentYieldingValue; } if (endCondition) { return { value: undefined, done: state.hitsEnd = true }; } return { value: currentYieldingValue, done: false }; }); var getter = function (fn) { return { get: fn, set: function () { /* empty */ }, configurable: true, enumerable: false }; }; if (DESCRIPTORS) { defineProperties($RangeIterator.prototype, { start: getter(function () { return getInternalState(this).start; }), end: getter(function () { return getInternalState(this).end; }), inclusive: getter(function () { return getInternalState(this).inclusiveEnd; }), step: getter(function () { return getInternalState(this).step; }) }); } module.exports = $RangeIterator; /***/ }), /* 668 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.buildApolloClientUri = exports.createApolloClient = void 0; var _apolloClient = _interopRequireDefault(__webpack_require__(137)); var _apolloLinkBatchHttp = __webpack_require__(677); var _apolloCacheInmemory = __webpack_require__(680); var _apolloLink = __webpack_require__(49); var _apolloLinkError = __webpack_require__(689); var _fetchWithCsrf = __webpack_require__(693); var _helpers = __webpack_require__(339); // Returns an ApolloClient instance // https://www.apollographql.com/docs/react/ var createApolloClient = function createApolloClient(_ref) { var _ref$origin = _ref.origin, origin = _ref$origin === void 0 ? '' : _ref$origin, path = _ref.path, publicationId = _ref.publicationId, previewKey = _ref.previewKey, _ref$ssrMode = _ref.ssrMode, ssrMode = _ref$ssrMode === void 0 ? false : _ref$ssrMode, _ref$credentials = _ref.credentials, credentials = _ref$credentials === void 0 ? 'same-origin' : _ref$credentials, _ref$headers = _ref.headers, headers = _ref$headers === void 0 ? {} : _ref$headers, _ref$useCsrf = _ref.useCsrf, useCsrf = _ref$useCsrf === void 0 ? false : _ref$useCsrf, _ref$maxAttempts = _ref.maxAttempts, maxAttempts = _ref$maxAttempts === void 0 ? 1 : _ref$maxAttempts, onError = _ref.onError, _ref$disableBatching = _ref.disableBatching, disableBatching = _ref$disableBatching === void 0 ? false : _ref$disableBatching; var uri = buildApolloClientUri({ origin: origin, path: path, publicationId: publicationId, previewKey: previewKey }); var requestHeaders = { Accept: 'application/json' }; Object.keys(headers).forEach(function (headerKey) { requestHeaders[headerKey] = headers[headerKey]; }); var batchLinkArgs = { uri: uri, headers: requestHeaders, credentials: credentials }; // Disable batching if (disableBatching) { batchLinkArgs.batchMax = 1; batchLinkArgs.batchInterval = 0; } // Fetch using a CSRF token if toggled if (useCsrf) { batchLinkArgs.fetch = _fetchWithCsrf.fetchWithCsrf; } var batchLink = new _apolloLinkBatchHttp.BatchHttpLink(batchLinkArgs); var links = []; if (maxAttempts > 1) { links.push((0, _helpers.createRetryLink)(maxAttempts)); } if (onError) { links.push((0, _apolloLinkError.onError)(onError)); } var apolloClient = new _apolloClient["default"]({ link: _apolloLink.ApolloLink.from([].concat(links, [batchLink])), cache: new _apolloCacheInmemory.InMemoryCache({ dataIdFromObject: function dataIdFromObject(object) { switch (object.__typename) { case 'sku_props': return null; default: return object.id; } } }), ssrMode: ssrMode }); return apolloClient; }; exports.createApolloClient = createApolloClient; var buildApolloClientUri = function buildApolloClientUri(_ref2) { var _ref2$origin = _ref2.origin, origin = _ref2$origin === void 0 ? '' : _ref2$origin, path = _ref2.path, publicationId = _ref2.publicationId, previewKey = _ref2.previewKey; var params = []; if (publicationId) { params.push("pub=".concat(publicationId)); } if (previewKey) { params.push("preview=".concat(previewKey)); } // Replace multiple slashes with single slashes var cleanPath = "".concat(origin).concat(path).replace(/([^:])\/\/+/g, '$1/'); return "".concat(cleanPath).concat(params.length ? "?".concat(params.join('&')) : ''); }; exports.buildApolloClientUri = buildApolloClientUri; /***/ }), /* 669 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // === Symbol Support === var hasSymbols = function () { return typeof Symbol === 'function'; }; var hasSymbol = function (name) { return hasSymbols() && Boolean(Symbol[name]); }; var getSymbol = function (name) { return hasSymbol(name) ? Symbol[name] : '@@' + name; }; if (hasSymbols() && !hasSymbol('observable')) { Symbol.observable = Symbol('observable'); } // === Abstract Operations === function getMethod(obj, key) { var value = obj[key]; if (value == null) return undefined; if (typeof value !== 'function') throw new TypeError(value + ' is not a function'); return value; } function getSpecies(obj) { var ctor = obj.constructor; if (ctor !== undefined) { ctor = ctor[getSymbol('species')]; if (ctor === null) { ctor = undefined; } } return ctor !== undefined ? ctor : Observable; } function isObservable(x) { return x instanceof Observable; // SPEC: Brand check } function hostReportError(e) { if (hostReportError.log) { hostReportError.log(e); } else { setTimeout(function () { throw e; }); } } function enqueue(fn) { Promise.resolve().then(function () { try { fn(); } catch (e) { hostReportError(e); } }); } function cleanupSubscription(subscription) { var cleanup = subscription._cleanup; if (cleanup === undefined) return; subscription._cleanup = undefined; if (!cleanup) { return; } try { if (typeof cleanup === 'function') { cleanup(); } else { var unsubscribe = getMethod(cleanup, 'unsubscribe'); if (unsubscribe) { unsubscribe.call(cleanup); } } } catch (e) { hostReportError(e); } } function closeSubscription(subscription) { subscription._observer = undefined; subscription._queue = undefined; subscription._state = 'closed'; } function flushSubscription(subscription) { var queue = subscription._queue; if (!queue) { return; } subscription._queue = undefined; subscription._state = 'ready'; for (var i = 0; i < queue.length; ++i) { notifySubscription(subscription, queue[i].type, queue[i].value); if (subscription._state === 'closed') break; } } function notifySubscription(subscription, type, value) { subscription._state = 'running'; var observer = subscription._observer; try { var m = getMethod(observer, type); switch (type) { case 'next': if (m) m.call(observer, value); break; case 'error': closeSubscription(subscription); if (m) m.call(observer, value);else throw value; break; case 'complete': closeSubscription(subscription); if (m) m.call(observer); break; } } catch (e) { hostReportError(e); } if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready'; } function onNotify(subscription, type, value) { if (subscription._state === 'closed') return; if (subscription._state === 'buffering') { subscription._queue.push({ type: type, value: value }); return; } if (subscription._state !== 'ready') { subscription._state = 'buffering'; subscription._queue = [{ type: type, value: value }]; enqueue(function () { return flushSubscription(subscription); }); return; } notifySubscription(subscription, type, value); } var Subscription = function () { function Subscription(observer, subscriber) { _classCallCheck(this, Subscription); // ASSERT: observer is an object // ASSERT: subscriber is callable this._cleanup = undefined; this._observer = observer; this._queue = undefined; this._state = 'initializing'; var subscriptionObserver = new SubscriptionObserver(this); try { this._cleanup = subscriber.call(undefined, subscriptionObserver); } catch (e) { subscriptionObserver.error(e); } if (this._state === 'initializing') this._state = 'ready'; } _createClass(Subscription, [{ key: 'unsubscribe', value: function unsubscribe() { if (this._state !== 'closed') { closeSubscription(this); cleanupSubscription(this); } } }, { key: 'closed', get: function () { return this._state === 'closed'; } }]); return Subscription; }(); var SubscriptionObserver = function () { function SubscriptionObserver(subscription) { _classCallCheck(this, SubscriptionObserver); this._subscription = subscription; } _createClass(SubscriptionObserver, [{ key: 'next', value: function next(value) { onNotify(this._subscription, 'next', value); } }, { key: 'error', value: function error(value) { onNotify(this._subscription, 'error', value); } }, { key: 'complete', value: function complete() { onNotify(this._subscription, 'complete'); } }, { key: 'closed', get: function () { return this._subscription._state === 'closed'; } }]); return SubscriptionObserver; }(); var Observable = exports.Observable = function () { function Observable(subscriber) { _classCallCheck(this, Observable); if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function'); if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function'); this._subscriber = subscriber; } _createClass(Observable, [{ key: 'subscribe', value: function subscribe(observer) { if (typeof observer !== 'object' || observer === null) { observer = { next: observer, error: arguments[1], complete: arguments[2] }; } return new Subscription(observer, this._subscriber); } }, { key: 'forEach', value: function forEach(fn) { var _this = this; return new Promise(function (resolve, reject) { if (typeof fn !== 'function') { reject(new TypeError(fn + ' is not a function')); return; } function done() { subscription.unsubscribe(); resolve(); } var subscription = _this.subscribe({ next: function (value) { try { fn(value, done); } catch (e) { reject(e); subscription.unsubscribe(); } }, error: reject, complete: resolve }); }); } }, { key: 'map', value: function map(fn) { var _this2 = this; if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); var C = getSpecies(this); return new C(function (observer) { return _this2.subscribe({ next: function (value) { try { value = fn(value); } catch (e) { return observer.error(e); } observer.next(value); }, error: function (e) { observer.error(e); }, complete: function () { observer.complete(); } }); }); } }, { key: 'filter', value: function filter(fn) { var _this3 = this; if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); var C = getSpecies(this); return new C(function (observer) { return _this3.subscribe({ next: function (value) { try { if (!fn(value)) return; } catch (e) { return observer.error(e); } observer.next(value); }, error: function (e) { observer.error(e); }, complete: function () { observer.complete(); } }); }); } }, { key: 'reduce', value: function reduce(fn) { var _this4 = this; if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); var C = getSpecies(this); var hasSeed = arguments.length > 1; var hasValue = false; var seed = arguments[1]; var acc = seed; return new C(function (observer) { return _this4.subscribe({ next: function (value) { var first = !hasValue; hasValue = true; if (!first || hasSeed) { try { acc = fn(acc, value); } catch (e) { return observer.error(e); } } else { acc = value; } }, error: function (e) { observer.error(e); }, complete: function () { if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence')); observer.next(acc); observer.complete(); } }); }); } }, { key: 'concat', value: function concat() { var _this5 = this; for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) { sources[_key] = arguments[_key]; } var C = getSpecies(this); return new C(function (observer) { var subscription = void 0; function startNext(next) { subscription = next.subscribe({ next: function (v) { observer.next(v); }, error: function (e) { observer.error(e); }, complete: function () { if (sources.length === 0) { subscription = undefined; observer.complete(); } else { startNext(C.from(sources.shift())); } } }); } startNext(_this5); return function () { if (subscription) { subscription = undefined; subscription.unsubscribe(); } }; }); } }, { key: 'flatMap', value: function flatMap(fn) { var _this6 = this; if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function'); var C = getSpecies(this); return new C(function (observer) { var subscriptions = []; var outer = _this6.subscribe({ next: function (value) { if (fn) { try { value = fn(value); } catch (e) { return observer.error(e); } } var inner = C.from(value).subscribe({ next: function (value) { observer.next(value); }, error: function (e) { observer.error(e); }, complete: function () { var i = subscriptions.indexOf(inner); if (i >= 0) subscriptions.splice(i, 1); completeIfDone(); } }); subscriptions.push(inner); }, error: function (e) { observer.error(e); }, complete: function () { completeIfDone(); } }); function completeIfDone() { if (outer.closed && subscriptions.length === 0) observer.complete(); } return function () { subscriptions.forEach(function (s) { return s.unsubscribe(); }); outer.unsubscribe(); }; }); } }, { key: getSymbol('observable'), value: function () { return this; } }], [{ key: 'from', value: function from(x) { var C = typeof this === 'function' ? this : Observable; if (x == null) throw new TypeError(x + ' is not an object'); var method = getMethod(x, getSymbol('observable')); if (method) { var observable = method.call(x); if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object'); if (isObservable(observable) && observable.constructor === C) return observable; return new C(function (observer) { return observable.subscribe(observer); }); } if (hasSymbol('iterator')) { method = getMethod(x, getSymbol('iterator')); if (method) { return new C(function (observer) { enqueue(function () { if (observer.closed) return; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var item = _step.value; observer.next(item); if (observer.closed) return; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } observer.complete(); }); }); } } if (Array.isArray(x)) { return new C(function (observer) { enqueue(function () { if (observer.closed) return; for (var i = 0; i < x.length; ++i) { observer.next(x[i]); if (observer.closed) return; } observer.complete(); }); }); } throw new TypeError(x + ' is not observable'); } }, { key: 'of', value: function of() { for (var _len2 = arguments.length, items = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { items[_key2] = arguments[_key2]; } var C = typeof this === 'function' ? this : Observable; return new C(function (observer) { enqueue(function () { if (observer.closed) return; for (var i = 0; i < items.length; ++i) { observer.next(items[i]); if (observer.closed) return; } observer.complete(); }); }); } }, { key: getSymbol('species'), get: function () { return this; } }]); return Observable; }(); if (hasSymbols()) { Object.defineProperty(Observable, Symbol('extensions'), { value: { symbol: getSymbol('observable'), hostReportError: hostReportError }, configurabe: true }); } /***/ }), /* 670 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryManager", function() { return QueryManager; }); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(graphql_language_printer__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var apollo_link_dedup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(671); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63); /* harmony import */ var _scheduler_scheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(672); /* harmony import */ var _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(144); /* harmony import */ var _util_Observable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(320); /* harmony import */ var _data_mutations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(673); /* harmony import */ var _data_queries__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(674); /* harmony import */ var _ObservableQuery__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(139); /* harmony import */ var _networkStatus__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(79); /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(107); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var defaultQueryInfo = { listeners: [], invalidated: false, document: null, newData: null, lastRequestId: null, observableQuery: null, subscriptions: [], }; var QueryManager = /** @class */ (function () { function QueryManager(_a) { var link = _a.link, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, store = _a.store, _c = _a.onBroadcast, onBroadcast = _c === void 0 ? function () { return undefined; } : _c, _d = _a.ssrMode, ssrMode = _d === void 0 ? false : _d; this.mutationStore = new _data_mutations__WEBPACK_IMPORTED_MODULE_7__["MutationStore"](); this.queryStore = new _data_queries__WEBPACK_IMPORTED_MODULE_8__["QueryStore"](); // let's not start at zero to avoid pain with bad checks this.idCounter = 1; // XXX merge with ObservableQuery but that needs to be expanded to support mutations and // subscriptions as well this.queries = new Map(); // A map going from a requestId to a promise that has not yet been resolved. We use this to keep // track of queries that are inflight and reject them in case some // destabalizing action occurs (e.g. reset of the Apollo store). this.fetchQueryPromises = new Map(); // A map going from the name of a query to an observer issued for it by watchQuery. This is // generally used to refetches for refetchQueries and to update mutation results through // updateQueries. this.queryIdsByName = {}; this.link = link; this.deduplicator = apollo_link__WEBPACK_IMPORTED_MODULE_0__["ApolloLink"].from([new apollo_link_dedup__WEBPACK_IMPORTED_MODULE_2__["DedupLink"](), link]); this.queryDeduplication = queryDeduplication; this.dataStore = store; this.onBroadcast = onBroadcast; this.scheduler = new _scheduler_scheduler__WEBPACK_IMPORTED_MODULE_4__["QueryScheduler"]({ queryManager: this, ssrMode: ssrMode }); } QueryManager.prototype.mutate = function (_a) { var _this = this; var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueriesByName = _a.updateQueries, _b = _a.refetchQueries, refetchQueries = _b === void 0 ? [] : _b, updateWithProxyFn = _a.update, _c = _a.errorPolicy, errorPolicy = _c === void 0 ? 'none' : _c, fetchPolicy = _a.fetchPolicy, _d = _a.context, context = _d === void 0 ? {} : _d; if (!mutation) { throw new Error('mutation option is required. You must specify your GraphQL document in the mutation option.'); } if (fetchPolicy && fetchPolicy !== 'no-cache') { throw new Error("fetchPolicy for mutations currently only supports the 'no-cache' policy"); } var mutationId = this.generateQueryId(); var cache = this.dataStore.getCache(); (mutation = cache.transformDocument(mutation)), (variables = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["assign"])({}, Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getDefaultValues"])(Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getMutationDefinition"])(mutation)), variables)); var mutationString = Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_1__["print"])(mutation); this.setQuery(mutationId, function () { return ({ document: mutation }); }); // Create a map of update queries by id to the query instead of by name. var generateUpdateQueriesInfo = function () { var ret = {}; if (updateQueriesByName) { Object.keys(updateQueriesByName).forEach(function (queryName) { return (_this.queryIdsByName[queryName] || []).forEach(function (queryId) { ret[queryId] = { updater: updateQueriesByName[queryName], query: _this.queryStore.get(queryId), }; }); }); } return ret; }; this.mutationStore.initMutation(mutationId, mutationString, variables); this.dataStore.markMutationInit({ mutationId: mutationId, document: mutation, variables: variables || {}, updateQueries: generateUpdateQueriesInfo(), update: updateWithProxyFn, optimisticResponse: optimisticResponse, }); this.broadcastQueries(); return new Promise(function (resolve, reject) { var storeResult; var error; var operation = _this.buildOperationForLink(mutation, variables, __assign({}, context, { optimisticResponse: optimisticResponse })); Object(apollo_link__WEBPACK_IMPORTED_MODULE_0__["execute"])(_this.link, operation).subscribe({ next: function (result) { if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["graphQLResultHasError"])(result) && errorPolicy === 'none') { error = new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["ApolloError"]({ graphQLErrors: result.errors, }); return; } _this.mutationStore.markMutationResult(mutationId); if (fetchPolicy !== 'no-cache') { _this.dataStore.markMutationResult({ mutationId: mutationId, result: result, document: mutation, variables: variables || {}, updateQueries: generateUpdateQueriesInfo(), update: updateWithProxyFn, }); } storeResult = result; }, error: function (err) { _this.mutationStore.markMutationError(mutationId, err); _this.dataStore.markMutationComplete({ mutationId: mutationId, optimisticResponse: optimisticResponse, }); _this.broadcastQueries(); _this.setQuery(mutationId, function () { return ({ document: undefined }); }); reject(new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["ApolloError"]({ networkError: err, })); }, complete: function () { if (error) { _this.mutationStore.markMutationError(mutationId, error); } _this.dataStore.markMutationComplete({ mutationId: mutationId, optimisticResponse: optimisticResponse, }); _this.broadcastQueries(); if (error) { reject(error); return; } // allow for conditional refetches // XXX do we want to make this the only API one day? if (typeof refetchQueries === 'function') { refetchQueries = refetchQueries(storeResult); } if (refetchQueries) { refetchQueries.forEach(function (refetchQuery) { if (typeof refetchQuery === 'string') { _this.refetchQueryByName(refetchQuery); return; } _this.query({ query: refetchQuery.query, variables: refetchQuery.variables, fetchPolicy: 'network-only', }); }); } _this.setQuery(mutationId, function () { return ({ document: undefined }); }); if (errorPolicy === 'ignore' && storeResult && Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["graphQLResultHasError"])(storeResult)) { delete storeResult.errors; } resolve(storeResult); }, }); }); }; QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, // This allows us to track if this is a query spawned by a `fetchMore` // call for another query. We need this data to compute the `fetchMore` // network status for the query this is fetching for. fetchMoreForQueryId) { var _this = this; var _a = options.variables, variables = _a === void 0 ? {} : _a, _b = options.metadata, metadata = _b === void 0 ? null : _b, _c = options.fetchPolicy, fetchPolicy = _c === void 0 ? 'cache-first' : _c; var cache = this.dataStore.getCache(); var query = cache.transformDocument(options.query); var storeResult; var needToFetch = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache'; // If this is not a force fetch, we want to diff the query against the // store before we fetch it from the network interface. // TODO we hit the cache even if the policy is network-first. This could be unnecessary if the network is up. if (fetchType !== _types__WEBPACK_IMPORTED_MODULE_11__["FetchType"].refetch && fetchPolicy !== 'network-only' && fetchPolicy !== 'no-cache') { var _d = this.dataStore.getCache().diff({ query: query, variables: variables, returnPartialData: true, optimistic: false, }), complete = _d.complete, result = _d.result; // If we're in here, only fetch if we have missing fields needToFetch = !complete || fetchPolicy === 'cache-and-network'; storeResult = result; } var shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby'; // we need to check to see if this is an operation that uses the @live directive if (Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["hasDirectives"])(['live'], query)) shouldFetch = true; var requestId = this.generateRequestId(); // set up a watcher to listen to cache updates var cancel = this.updateQueryWatch(queryId, query, options); // Initialize query in store with unique requestId this.setQuery(queryId, function () { return ({ document: query, lastRequestId: requestId, invalidated: true, cancel: cancel, }); }); this.invalidate(true, fetchMoreForQueryId); this.queryStore.initQuery({ queryId: queryId, document: query, storePreviousVariables: shouldFetch, variables: variables, isPoll: fetchType === _types__WEBPACK_IMPORTED_MODULE_11__["FetchType"].poll, isRefetch: fetchType === _types__WEBPACK_IMPORTED_MODULE_11__["FetchType"].refetch, metadata: metadata, fetchMoreForQueryId: fetchMoreForQueryId, }); this.broadcastQueries(); // If there is no part of the query we need to fetch from the server (or, // fetchPolicy is cache-only), we just write the store result as the final result. var shouldDispatchClientResult = !shouldFetch || fetchPolicy === 'cache-and-network'; if (shouldDispatchClientResult) { this.queryStore.markQueryResultClient(queryId, !shouldFetch); this.invalidate(true, queryId, fetchMoreForQueryId); this.broadcastQueries(); } if (shouldFetch) { var networkResult = this.fetchRequest({ requestId: requestId, queryId: queryId, document: query, options: options, fetchMoreForQueryId: fetchMoreForQueryId, }).catch(function (error) { // This is for the benefit of `refetch` promises, which currently don't get their errors // through the store like watchQuery observers do if (Object(_errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["isApolloError"])(error)) { throw error; } else { var lastRequestId = _this.getQuery(queryId).lastRequestId; if (requestId >= (lastRequestId || 1)) { _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId); _this.invalidate(true, queryId, fetchMoreForQueryId); _this.broadcastQueries(); } _this.removeFetchQueryPromise(requestId); throw new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["ApolloError"]({ networkError: error }); } }); // we don't return the promise for cache-and-network since it is already // returned below from the cache if (fetchPolicy !== 'cache-and-network') { return networkResult; } else { // however we need to catch the error so it isn't unhandled in case of // network error networkResult.catch(function () { }); } } // If we have no query to send to the server, we should return the result // found within the store. return Promise.resolve({ data: storeResult }); }; // Returns a query listener that will update the given observer based on the // results (or lack thereof) for a particular query. QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) { var _this = this; var previouslyHadError = false; return function (queryStoreValue, newData) { // we're going to take a look at the data, so the query is no longer invalidated _this.invalidate(false, queryId); // The query store value can be undefined in the event of a store // reset. if (!queryStoreValue) return; var observableQuery = _this.getQuery(queryId).observableQuery; var fetchPolicy = observableQuery ? observableQuery.options.fetchPolicy : options.fetchPolicy; // don't watch the store for queries on standby if (fetchPolicy === 'standby') return; var errorPolicy = observableQuery ? observableQuery.options.errorPolicy : options.errorPolicy; var lastResult = observableQuery ? observableQuery.getLastResult() : null; var lastError = observableQuery ? observableQuery.getLastError() : null; var shouldNotifyIfLoading = (!newData && queryStoreValue.previousVariables != null) || fetchPolicy === 'cache-only' || fetchPolicy === 'cache-and-network'; // if this caused by a cache broadcast but the query is still in flight // don't notify the observer // if ( // isCacheBroadcast && // isNetworkRequestInFlight(queryStoreValue.networkStatus) // ) { // shouldNotifyIfLoading = false; // } var networkStatusChanged = Boolean(lastResult && queryStoreValue.networkStatus !== lastResult.networkStatus); var errorStatusChanged = errorPolicy && (lastError && lastError.graphQLErrors) !== queryStoreValue.graphQLErrors && errorPolicy !== 'none'; if (!Object(_networkStatus__WEBPACK_IMPORTED_MODULE_10__["isNetworkRequestInFlight"])(queryStoreValue.networkStatus) || (networkStatusChanged && options.notifyOnNetworkStatusChange) || shouldNotifyIfLoading) { // If we have either a GraphQL error or a network error, we create // an error and tell the observer about it. if (((!errorPolicy || errorPolicy === 'none') && queryStoreValue.graphQLErrors && queryStoreValue.graphQLErrors.length > 0) || queryStoreValue.networkError) { var apolloError_1 = new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["ApolloError"]({ graphQLErrors: queryStoreValue.graphQLErrors, networkError: queryStoreValue.networkError, }); previouslyHadError = true; if (observer.error) { try { observer.error(apolloError_1); } catch (e) { // Throw error outside this control flow to avoid breaking Apollo's state setTimeout(function () { throw e; }, 0); } } else { // Throw error outside this control flow to avoid breaking Apollo's state setTimeout(function () { throw apolloError_1; }, 0); if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["isProduction"])()) { /* tslint:disable-next-line */ console.info('An unhandled error was thrown because no error handler is registered ' + 'for the query ' + Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_1__["print"])(queryStoreValue.document)); } } return; } try { var data = void 0; var isMissing = void 0; if (newData) { // clear out the latest new data, since we're now using it _this.setQuery(queryId, function () { return ({ newData: null }); }); data = newData.result; isMissing = !newData.complete ? !newData.complete : false; } else { if (lastResult && lastResult.data && !errorStatusChanged) { data = lastResult.data; isMissing = false; } else { var document_1 = _this.getQuery(queryId).document; var readResult = _this.dataStore.getCache().diff({ query: document_1, variables: queryStoreValue.previousVariables || queryStoreValue.variables, optimistic: true, }); data = readResult.result; isMissing = !readResult.complete; } } var resultFromStore = void 0; // If there is some data missing and the user has told us that they // do not tolerate partial data then we want to return the previous // result and mark it as stale. if (isMissing && fetchPolicy !== 'cache-only') { resultFromStore = { data: lastResult && lastResult.data, loading: Object(_networkStatus__WEBPACK_IMPORTED_MODULE_10__["isNetworkRequestInFlight"])(queryStoreValue.networkStatus), networkStatus: queryStoreValue.networkStatus, stale: true, }; } else { resultFromStore = { data: data, loading: Object(_networkStatus__WEBPACK_IMPORTED_MODULE_10__["isNetworkRequestInFlight"])(queryStoreValue.networkStatus), networkStatus: queryStoreValue.networkStatus, stale: false, }; } // if the query wants updates on errors we need to add it to the result if (errorPolicy === 'all' && queryStoreValue.graphQLErrors && queryStoreValue.graphQLErrors.length > 0) { resultFromStore.errors = queryStoreValue.graphQLErrors; } if (observer.next) { var isDifferentResult = !(lastResult && resultFromStore && lastResult.networkStatus === resultFromStore.networkStatus && lastResult.stale === resultFromStore.stale && // We can do a strict equality check here because we include a `previousResult` // with `readQueryFromStore`. So if the results are the same they will be // referentially equal. lastResult.data === resultFromStore.data); if (isDifferentResult || previouslyHadError) { try { observer.next(Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["maybeDeepFreeze"])(resultFromStore)); } catch (e) { // Throw error outside this control flow to avoid breaking Apollo's state setTimeout(function () { throw e; }, 0); } } } previouslyHadError = false; } catch (error) { previouslyHadError = true; if (observer.error) observer.error(new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["ApolloError"]({ networkError: error })); return; } } }; }; // The shouldSubscribe option is a temporary fix that tells us whether watchQuery was called // directly (i.e. through ApolloClient) or through the query method within QueryManager. // Currently, the query method uses watchQuery in order to handle non-network errors correctly // but we don't want to keep track observables issued for the query method since those aren't // supposed to be refetched in the event of a store reset. Once we unify error handling for // network errors and non-network errors, the shouldSubscribe option will go away. QueryManager.prototype.watchQuery = function (options, shouldSubscribe) { if (shouldSubscribe === void 0) { shouldSubscribe = true; } if (options.fetchPolicy === 'standby') { throw new Error('client.watchQuery cannot be called with fetchPolicy set to "standby"'); } // get errors synchronously var queryDefinition = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getQueryDefinition"])(options.query); // assign variable default values if supplied if (queryDefinition.variableDefinitions && queryDefinition.variableDefinitions.length) { var defaultValues = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getDefaultValues"])(queryDefinition); options.variables = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["assign"])({}, defaultValues, options.variables); } if (typeof options.notifyOnNetworkStatusChange === 'undefined') { options.notifyOnNetworkStatusChange = false; } var transformedOptions = __assign({}, options); return new _ObservableQuery__WEBPACK_IMPORTED_MODULE_9__["ObservableQuery"]({ scheduler: this.scheduler, options: transformedOptions, shouldSubscribe: shouldSubscribe, }); }; QueryManager.prototype.query = function (options) { var _this = this; if (!options.query) { throw new Error('query option is required. You must specify your GraphQL document ' + 'in the query option.'); } if (options.query.kind !== 'Document') { throw new Error('You must wrap the query string in a "gql" tag.'); } if (options.returnPartialData) { throw new Error('returnPartialData option only supported on watchQuery.'); } if (options.pollInterval) { throw new Error('pollInterval option only supported on watchQuery.'); } var requestId = this.idCounter; return new Promise(function (resolve, reject) { _this.addFetchQueryPromise(requestId, resolve, reject); return _this.watchQuery(options, false) .result() .then(function (result) { _this.removeFetchQueryPromise(requestId); resolve(result); }) .catch(function (error) { _this.removeFetchQueryPromise(requestId); reject(error); }); }); }; QueryManager.prototype.generateQueryId = function () { var queryId = this.idCounter.toString(); this.idCounter++; return queryId; }; QueryManager.prototype.stopQueryInStore = function (queryId) { this.queryStore.stopQuery(queryId); this.invalidate(true, queryId); this.broadcastQueries(); }; QueryManager.prototype.addQueryListener = function (queryId, listener) { this.setQuery(queryId, function (_a) { var _b = _a.listeners, listeners = _b === void 0 ? [] : _b; return ({ listeners: listeners.concat([listener]), invalidate: false, }); }); }; QueryManager.prototype.updateQueryWatch = function (queryId, document, options) { var _this = this; var cancel = this.getQuery(queryId).cancel; if (cancel) cancel(); var previousResult = function () { var previousResult = null; var observableQuery = _this.getQuery(queryId).observableQuery; if (observableQuery) { var lastResult = observableQuery.getLastResult(); if (lastResult) { previousResult = lastResult.data; } } return previousResult; }; return this.dataStore.getCache().watch({ query: document, variables: options.variables, optimistic: true, previousResult: previousResult, callback: function (newData) { _this.setQuery(queryId, function () { return ({ invalidated: true, newData: newData }); }); }, }); }; // Adds a promise to this.fetchQueryPromises for a given request ID. QueryManager.prototype.addFetchQueryPromise = function (requestId, resolve, reject) { this.fetchQueryPromises.set(requestId.toString(), { resolve: resolve, reject: reject, }); }; // Removes the promise in this.fetchQueryPromises for a particular request ID. QueryManager.prototype.removeFetchQueryPromise = function (requestId) { this.fetchQueryPromises.delete(requestId.toString()); }; // Adds an ObservableQuery to this.observableQueries and to this.observableQueriesByName. QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) { this.setQuery(queryId, function () { return ({ observableQuery: observableQuery }); }); // Insert the ObservableQuery into this.observableQueriesByName if the query has a name var queryDef = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getQueryDefinition"])(observableQuery.options.query); if (queryDef.name && queryDef.name.value) { var queryName = queryDef.name.value; // XXX we may we want to warn the user about query name conflicts in the future this.queryIdsByName[queryName] = this.queryIdsByName[queryName] || []; this.queryIdsByName[queryName].push(observableQuery.queryId); } }; QueryManager.prototype.removeObservableQuery = function (queryId) { var _a = this.getQuery(queryId), observableQuery = _a.observableQuery, cancel = _a.cancel; if (cancel) cancel(); if (!observableQuery) return; var definition = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getQueryDefinition"])(observableQuery.options.query); var queryName = definition.name ? definition.name.value : null; this.setQuery(queryId, function () { return ({ observableQuery: null }); }); if (queryName) { this.queryIdsByName[queryName] = this.queryIdsByName[queryName].filter(function (val) { return !(observableQuery.queryId === val); }); } }; QueryManager.prototype.clearStore = function () { // Before we have sent the reset action to the store, // we can no longer rely on the results returned by in-flight // requests since these may depend on values that previously existed // in the data portion of the store. So, we cancel the promises and observers // that we have issued so far and not yet resolved (in the case of // queries). this.fetchQueryPromises.forEach(function (_a) { var reject = _a.reject; reject(new Error('Store reset while query was in flight(not completed in link chain)')); }); var resetIds = []; this.queries.forEach(function (_a, queryId) { var observableQuery = _a.observableQuery; if (observableQuery) resetIds.push(queryId); }); this.queryStore.reset(resetIds); this.mutationStore.reset(); // begin removing data from the store var reset = this.dataStore.reset(); return reset; }; QueryManager.prototype.resetStore = function () { var _this = this; // Similarly, we have to have to refetch each of the queries currently being // observed. We refetch instead of error'ing on these since the assumption is that // resetting the store doesn't eliminate the need for the queries currently being // watched. If there is an existing query in flight when the store is reset, // the promise for it will be rejected and its results will not be written to the // store. return this.clearStore().then(function () { return _this.reFetchObservableQueries(); }); }; QueryManager.prototype.getObservableQueryPromises = function (includeStandby) { var _this = this; var observableQueryPromises = []; this.queries.forEach(function (_a, queryId) { var observableQuery = _a.observableQuery; if (!observableQuery) return; var fetchPolicy = observableQuery.options.fetchPolicy; observableQuery.resetLastResults(); if (fetchPolicy !== 'cache-only' && (includeStandby || fetchPolicy !== 'standby')) { observableQueryPromises.push(observableQuery.refetch()); } _this.setQuery(queryId, function () { return ({ newData: null }); }); _this.invalidate(true, queryId); }); return observableQueryPromises; }; QueryManager.prototype.reFetchObservableQueries = function (includeStandby) { var observableQueryPromises = this.getObservableQueryPromises(includeStandby); this.broadcastQueries(); return Promise.all(observableQueryPromises); }; QueryManager.prototype.startQuery = function (queryId, options, listener) { this.addQueryListener(queryId, listener); this.fetchQuery(queryId, options) // `fetchQuery` returns a Promise. In case of a failure it should be caucht or else the // console will show an `Uncaught (in promise)` message. Ignore the error for now. .catch(function () { return undefined; }); return queryId; }; QueryManager.prototype.startGraphQLSubscription = function (options) { var _this = this; var query = options.query; var cache = this.dataStore.getCache(); var transformedDoc = cache.transformDocument(query); var variables = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["assign"])({}, Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getDefaultValues"])(Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getOperationDefinition"])(query)), options.variables); var sub; var observers = []; return new _util_Observable__WEBPACK_IMPORTED_MODULE_6__["Observable"](function (observer) { observers.push(observer); // If this is the first observer, actually initiate the network subscription if (observers.length === 1) { var handler = { next: function (result) { _this.dataStore.markSubscriptionResult(result, transformedDoc, variables); _this.broadcastQueries(); // It's slightly awkward that the data for subscriptions doesn't come from the store. observers.forEach(function (obs) { // XXX I'd prefer a different way to handle errors for subscriptions if (obs.next) obs.next(result); }); }, error: function (error) { observers.forEach(function (obs) { if (obs.error) obs.error(error); }); }, }; // TODO: Should subscriptions also accept a `context` option to pass // through to links? var operation = _this.buildOperationForLink(transformedDoc, variables); sub = Object(apollo_link__WEBPACK_IMPORTED_MODULE_0__["execute"])(_this.link, operation).subscribe(handler); } return function () { observers = observers.filter(function (obs) { return obs !== observer; }); // If we removed the last observer, tear down the network subscription if (observers.length === 0 && sub) { sub.unsubscribe(); } }; }); }; QueryManager.prototype.stopQuery = function (queryId) { this.stopQueryInStore(queryId); this.removeQuery(queryId); }; QueryManager.prototype.removeQuery = function (queryId) { var subscriptions = this.getQuery(queryId).subscriptions; // teardown all links subscriptions.forEach(function (x) { return x.unsubscribe(); }); this.queries.delete(queryId); }; QueryManager.prototype.getCurrentQueryResult = function (observableQuery, optimistic) { if (optimistic === void 0) { optimistic = true; } var _a = observableQuery.options, variables = _a.variables, query = _a.query; var lastResult = observableQuery.getLastResult(); var newData = this.getQuery(observableQuery.queryId).newData; // XXX test this if (newData) { return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["maybeDeepFreeze"])({ data: newData.result, partial: false }); } else { try { // the query is brand new, so we read from the store to see if anything is there var data = this.dataStore.getCache().read({ query: query, variables: variables, previousResult: lastResult ? lastResult.data : undefined, optimistic: optimistic, }); return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["maybeDeepFreeze"])({ data: data, partial: false }); } catch (e) { return Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["maybeDeepFreeze"])({ data: {}, partial: true }); } } }; QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable) { var observableQuery; if (typeof queryIdOrObservable === 'string') { var foundObserveableQuery = this.getQuery(queryIdOrObservable).observableQuery; if (!foundObserveableQuery) { throw new Error("ObservableQuery with this id doesn't exist: " + queryIdOrObservable); } observableQuery = foundObserveableQuery; } else { observableQuery = queryIdOrObservable; } var _a = observableQuery.options, variables = _a.variables, query = _a.query; var data = this.getCurrentQueryResult(observableQuery, false).data; return { previousResult: data, variables: variables, document: query, }; }; QueryManager.prototype.broadcastQueries = function () { var _this = this; this.onBroadcast(); this.queries.forEach(function (info, id) { if (!info.invalidated || !info.listeners) return; info.listeners // it's possible for the listener to be undefined if the query is being stopped // See here for more detail: https://github.com/apollostack/apollo-client/issues/231 .filter(function (x) { return !!x; }) .forEach(function (listener) { listener(_this.queryStore.get(id), info.newData); }); }); }; // Takes a request id, query id, a query document and information associated with the query // and send it to the network interface. Returns // a promise for the result associated with that request. QueryManager.prototype.fetchRequest = function (_a) { var _this = this; var requestId = _a.requestId, queryId = _a.queryId, document = _a.document, options = _a.options, fetchMoreForQueryId = _a.fetchMoreForQueryId; var variables = options.variables, context = options.context, _b = options.errorPolicy, errorPolicy = _b === void 0 ? 'none' : _b, fetchPolicy = options.fetchPolicy; var operation = this.buildOperationForLink(document, variables, __assign({}, context, { // TODO: Should this be included for all entry points via // buildOperationForLink? forceFetch: !this.queryDeduplication })); var resultFromStore; var errorsFromStore; return new Promise(function (resolve, reject) { _this.addFetchQueryPromise(requestId, resolve, reject); var subscription = Object(apollo_link__WEBPACK_IMPORTED_MODULE_0__["execute"])(_this.deduplicator, operation).subscribe({ next: function (result) { // default the lastRequestId to 1 var lastRequestId = _this.getQuery(queryId).lastRequestId; if (requestId >= (lastRequestId || 1)) { if (fetchPolicy !== 'no-cache') { try { _this.dataStore.markQueryResult(result, document, variables, fetchMoreForQueryId, errorPolicy === 'ignore' || errorPolicy === 'all'); } catch (e) { reject(e); return; } } else { _this.setQuery(queryId, function () { return ({ newData: { result: result.data, complete: true }, }); }); } _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId); _this.invalidate(true, queryId, fetchMoreForQueryId); _this.broadcastQueries(); } if (result.errors && errorPolicy === 'none') { reject(new _errors_ApolloError__WEBPACK_IMPORTED_MODULE_5__["ApolloError"]({ graphQLErrors: result.errors, })); return; } else if (errorPolicy === 'all') { errorsFromStore = result.errors; } if (fetchMoreForQueryId || fetchPolicy === 'no-cache') { // We don't write fetchMore results to the store because this would overwrite // the original result in case an @connection directive is used. resultFromStore = result.data; } else { try { // ensure result is combined with data already in store resultFromStore = _this.dataStore.getCache().read({ variables: variables, query: document, optimistic: false, }); // this will throw an error if there are missing fields in // the results which can happen with errors from the server. // tslint:disable-next-line } catch (e) { } } }, error: function (error) { _this.removeFetchQueryPromise(requestId); _this.setQuery(queryId, function (_a) { var subscriptions = _a.subscriptions; return ({ subscriptions: subscriptions.filter(function (x) { return x !== subscription; }), }); }); reject(error); }, complete: function () { _this.removeFetchQueryPromise(requestId); _this.setQuery(queryId, function (_a) { var subscriptions = _a.subscriptions; return ({ subscriptions: subscriptions.filter(function (x) { return x !== subscription; }), }); }); resolve({ data: resultFromStore, errors: errorsFromStore, loading: false, networkStatus: _networkStatus__WEBPACK_IMPORTED_MODULE_10__["NetworkStatus"].ready, stale: false, }); }, }); _this.setQuery(queryId, function (_a) { var subscriptions = _a.subscriptions; return ({ subscriptions: subscriptions.concat([subscription]), }); }); }); }; // Refetches a query given that query's name. Refetches // all ObservableQuery instances associated with the query name. QueryManager.prototype.refetchQueryByName = function (queryName) { var _this = this; var refetchedQueries = this.queryIdsByName[queryName]; // early return if the query named does not exist (not yet fetched) // this used to warn but it may be inteneded behavoir to try and refetch // un called queries because they could be on different routes if (refetchedQueries === undefined) return; return Promise.all(refetchedQueries .map(function (id) { return _this.getQuery(id).observableQuery; }) .filter(function (x) { return !!x; }) .map(function (x) { return x.refetch(); })); }; QueryManager.prototype.generateRequestId = function () { var requestId = this.idCounter; this.idCounter++; return requestId; }; QueryManager.prototype.getQuery = function (queryId) { return this.queries.get(queryId) || __assign({}, defaultQueryInfo); }; QueryManager.prototype.setQuery = function (queryId, updater) { var prev = this.getQuery(queryId); var newInfo = __assign({}, prev, updater(prev)); this.queries.set(queryId, newInfo); }; QueryManager.prototype.invalidate = function (invalidated, queryId, fetchMoreForQueryId) { if (queryId) this.setQuery(queryId, function () { return ({ invalidated: invalidated }); }); if (fetchMoreForQueryId) { this.setQuery(fetchMoreForQueryId, function () { return ({ invalidated: invalidated }); }); } }; QueryManager.prototype.buildOperationForLink = function (document, variables, extraContext) { var cache = this.dataStore.getCache(); return { query: cache.transformForLink ? cache.transformForLink(document) : document, variables: variables, operationName: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getOperationName"])(document) || undefined, context: __assign({}, extraContext, { cache: cache, // getting an entry's cache key is useful for cacheResolvers & state-link getCacheKey: function (obj) { if (cache.config) { // on the link, we just want the id string, not the full id value from toIdValue return cache.config.dataIdFromObject(obj); } else { throw new Error('To use context.getCacheKey, you need to use a cache that has a configurable dataIdFromObject, like apollo-cache-inmemory.'); } } }), }; }; return QueryManager; }()); //# sourceMappingURL=QueryManager.js.map /***/ }), /* 671 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _dedupLink__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(323); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DedupLink", function() { return _dedupLink__WEBPACK_IMPORTED_MODULE_0__["DedupLink"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 672 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryScheduler", function() { return QueryScheduler; }); /* harmony import */ var _core_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(107); /* harmony import */ var _core_ObservableQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(139); /* harmony import */ var _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79); // The QueryScheduler is supposed to be a mechanism that schedules polling queries such that // they are clustered into the time slots of the QueryBatcher and are batched together. It // also makes sure that for a given polling query, if one instance of the query is inflight, // another instance will not be fired until the query returns or times out. We do this because // another query fires while one is already in flight, the data will stay in the "loading" state // even after the first query has returned. var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var QueryScheduler = /** @class */ (function () { function QueryScheduler(_a) { var queryManager = _a.queryManager, ssrMode = _a.ssrMode; // Map going from queryIds to query options that are in flight. this.inFlightQueries = {}; // Map going from query ids to the query options associated with those queries. Contains all of // the queries, both in flight and not in flight. this.registeredQueries = {}; // Map going from polling interval with to the query ids that fire on that interval. // These query ids are associated with a set of options in the this.registeredQueries. this.intervalQueries = {}; // Map going from polling interval widths to polling timers. this.pollingTimers = {}; this.ssrMode = false; this.queryManager = queryManager; this.ssrMode = ssrMode || false; } QueryScheduler.prototype.checkInFlight = function (queryId) { var query = this.queryManager.queryStore.get(queryId); return (query && query.networkStatus !== _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].ready && query.networkStatus !== _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].error); }; QueryScheduler.prototype.fetchQuery = function (queryId, options, fetchType) { var _this = this; return new Promise(function (resolve, reject) { _this.queryManager .fetchQuery(queryId, options, fetchType) .then(function (result) { resolve(result); }) .catch(function (error) { reject(error); }); }); }; QueryScheduler.prototype.startPollingQuery = function (options, queryId, listener) { if (!options.pollInterval) { throw new Error('Attempted to start a polling query without a polling interval.'); } // Do not poll in SSR mode if (this.ssrMode) return queryId; this.registeredQueries[queryId] = options; if (listener) { this.queryManager.addQueryListener(queryId, listener); } this.addQueryOnInterval(queryId, options); return queryId; }; QueryScheduler.prototype.stopPollingQuery = function (queryId) { // Remove the query options from one of the registered queries. // The polling function will then take care of not firing it anymore. delete this.registeredQueries[queryId]; }; // Fires the all of the queries on a particular interval. Called on a setInterval. QueryScheduler.prototype.fetchQueriesOnInterval = function (interval) { var _this = this; // XXX this "filter" here is nasty, because it does two things at the same time. // 1. remove queries that have stopped polling // 2. call fetchQueries for queries that are polling and not in flight. // TODO: refactor this to make it cleaner this.intervalQueries[interval] = this.intervalQueries[interval].filter(function (queryId) { // If queryOptions can't be found from registeredQueries or if it has a // different interval, it means that this queryId is no longer registered // and should be removed from the list of queries firing on this interval. // // We don't remove queries from intervalQueries immediately in // stopPollingQuery so that we can keep the timer consistent when queries // are removed and replaced, and to avoid quadratic behavior when stopping // many queries. if (!(_this.registeredQueries.hasOwnProperty(queryId) && _this.registeredQueries[queryId].pollInterval === interval)) { return false; } // Don't fire this instance of the polling query is one of the instances is already in // flight. if (_this.checkInFlight(queryId)) { return true; } var queryOptions = _this.registeredQueries[queryId]; var pollingOptions = __assign({}, queryOptions); pollingOptions.fetchPolicy = 'network-only'; // don't let unhandled rejections happen _this.fetchQuery(queryId, pollingOptions, _core_types__WEBPACK_IMPORTED_MODULE_0__["FetchType"].poll).catch(function () { }); return true; }); if (this.intervalQueries[interval].length === 0) { clearInterval(this.pollingTimers[interval]); delete this.intervalQueries[interval]; } }; // Adds a query on a particular interval to this.intervalQueries and then fires // that query with all the other queries executing on that interval. Note that the query id // and query options must have been added to this.registeredQueries before this function is called. QueryScheduler.prototype.addQueryOnInterval = function (queryId, queryOptions) { var _this = this; var interval = queryOptions.pollInterval; if (!interval) { throw new Error("A poll interval is required to start polling query with id '" + queryId + "'."); } // If there are other queries on this interval, this query will just fire with those // and we don't need to create a new timer. if (this.intervalQueries.hasOwnProperty(interval.toString()) && this.intervalQueries[interval].length > 0) { this.intervalQueries[interval].push(queryId); } else { this.intervalQueries[interval] = [queryId]; // set up the timer for the function that will handle this interval this.pollingTimers[interval] = setInterval(function () { _this.fetchQueriesOnInterval(interval); }, interval); } }; // Used only for unit testing. QueryScheduler.prototype.registerPollingQuery = function (queryOptions) { if (!queryOptions.pollInterval) { throw new Error('Attempted to register a non-polling query with the scheduler.'); } return new _core_ObservableQuery__WEBPACK_IMPORTED_MODULE_1__["ObservableQuery"]({ scheduler: this, options: queryOptions, }); }; return QueryScheduler; }()); //# sourceMappingURL=scheduler.js.map /***/ }), /* 673 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MutationStore", function() { return MutationStore; }); var MutationStore = /** @class */ (function () { function MutationStore() { this.store = {}; } MutationStore.prototype.getStore = function () { return this.store; }; MutationStore.prototype.get = function (mutationId) { return this.store[mutationId]; }; MutationStore.prototype.initMutation = function (mutationId, mutationString, variables) { this.store[mutationId] = { mutationString: mutationString, variables: variables || {}, loading: true, error: null, }; }; MutationStore.prototype.markMutationError = function (mutationId, error) { var mutation = this.store[mutationId]; if (!mutation) { return; } mutation.loading = false; mutation.error = error; }; MutationStore.prototype.markMutationResult = function (mutationId) { var mutation = this.store[mutationId]; if (!mutation) { return; } mutation.loading = false; mutation.error = null; }; MutationStore.prototype.reset = function () { this.store = {}; }; return MutationStore; }()); //# sourceMappingURL=mutations.js.map /***/ }), /* 674 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryStore", function() { return QueryStore; }); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63); /* harmony import */ var _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var QueryStore = /** @class */ (function () { function QueryStore() { this.store = {}; } QueryStore.prototype.getStore = function () { return this.store; }; QueryStore.prototype.get = function (queryId) { return this.store[queryId]; }; QueryStore.prototype.initQuery = function (query) { var previousQuery = this.store[query.queryId]; if (previousQuery && previousQuery.document !== query.document && Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"])(previousQuery.document) !== Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"])(query.document)) { // XXX we're throwing an error here to catch bugs where a query gets overwritten by a new one. // we should implement a separate action for refetching so that QUERY_INIT may never overwrite // an existing query (see also: https://github.com/apollostack/apollo-client/issues/732) throw new Error('Internal Error: may not update existing query string in store'); } var isSetVariables = false; var previousVariables = null; if (query.storePreviousVariables && previousQuery && previousQuery.networkStatus !== _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].loading // if the previous query was still loading, we don't want to remember it at all. ) { if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_1__["isEqual"])(previousQuery.variables, query.variables)) { isSetVariables = true; previousVariables = previousQuery.variables; } } // TODO break this out into a separate function var networkStatus; if (isSetVariables) { networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].setVariables; } else if (query.isPoll) { networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].poll; } else if (query.isRefetch) { networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].refetch; // TODO: can we determine setVariables here if it's a refetch and the variables have changed? } else { networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].loading; } var graphQLErrors = []; if (previousQuery && previousQuery.graphQLErrors) { graphQLErrors = previousQuery.graphQLErrors; } // XXX right now if QUERY_INIT is fired twice, like in a refetch situation, we just overwrite // the store. We probably want a refetch action instead, because I suspect that if you refetch // before the initial fetch is done, you'll get an error. this.store[query.queryId] = { document: query.document, variables: query.variables, previousVariables: previousVariables, networkError: null, graphQLErrors: graphQLErrors, networkStatus: networkStatus, metadata: query.metadata, }; // If the action had a `moreForQueryId` property then we need to set the // network status on that query as well to `fetchMore`. // // We have a complement to this if statement in the query result and query // error action branch, but importantly *not* in the client result branch. // This is because the implementation of `fetchMore` *always* sets // `fetchPolicy` to `network-only` so we would never have a client result. if (typeof query.fetchMoreForQueryId === 'string' && this.store[query.fetchMoreForQueryId]) { this.store[query.fetchMoreForQueryId].networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].fetchMore; } }; QueryStore.prototype.markQueryResult = function (queryId, result, fetchMoreForQueryId) { if (!this.store[queryId]) return; this.store[queryId].networkError = null; this.store[queryId].graphQLErrors = result.errors && result.errors.length ? result.errors : []; this.store[queryId].previousVariables = null; this.store[queryId].networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].ready; // If we have a `fetchMoreForQueryId` then we need to update the network // status for that query. See the branch for query initialization for more // explanation about this process. if (typeof fetchMoreForQueryId === 'string' && this.store[fetchMoreForQueryId]) { this.store[fetchMoreForQueryId].networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].ready; } }; QueryStore.prototype.markQueryError = function (queryId, error, fetchMoreForQueryId) { if (!this.store[queryId]) return; this.store[queryId].networkError = error; this.store[queryId].networkStatus = _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].error; // If we have a `fetchMoreForQueryId` then we need to update the network // status for that query. See the branch for query initialization for more // explanation about this process. if (typeof fetchMoreForQueryId === 'string') { this.markQueryResultClient(fetchMoreForQueryId, true); } }; QueryStore.prototype.markQueryResultClient = function (queryId, complete) { if (!this.store[queryId]) return; this.store[queryId].networkError = null; this.store[queryId].previousVariables = null; this.store[queryId].networkStatus = complete ? _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].ready : _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].loading; }; QueryStore.prototype.stopQuery = function (queryId) { delete this.store[queryId]; }; QueryStore.prototype.reset = function (observableQueryIds) { var _this = this; // keep only the queries with query ids that are associated with observables this.store = Object.keys(this.store) .filter(function (queryId) { return observableQueryIds.indexOf(queryId) > -1; }) .reduce(function (res, key) { // XXX set loading to true so listeners don't trigger unless they want results with partial data res[key] = __assign({}, _this.store[key], { networkStatus: _core_networkStatus__WEBPACK_IMPORTED_MODULE_2__["NetworkStatus"].loading }); return res; }, {}); }; return QueryStore; }()); //# sourceMappingURL=queries.js.map /***/ }), /* 675 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataStore", function() { return DataStore; }); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); var DataStore = /** @class */ (function () { function DataStore(initialCache) { this.cache = initialCache; } DataStore.prototype.getCache = function () { return this.cache; }; DataStore.prototype.markQueryResult = function (result, document, variables, fetchMoreForQueryId, ignoreErrors) { if (ignoreErrors === void 0) { ignoreErrors = false; } var writeWithErrors = !Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["graphQLResultHasError"])(result); if (ignoreErrors && Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["graphQLResultHasError"])(result) && result.data) { writeWithErrors = true; } if (!fetchMoreForQueryId && writeWithErrors) { this.cache.write({ result: result.data, dataId: 'ROOT_QUERY', query: document, variables: variables, }); } }; DataStore.prototype.markSubscriptionResult = function (result, document, variables) { // the subscription interface should handle not sending us results we no longer subscribe to. // XXX I don't think we ever send in an object with errors, but we might in the future... if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["graphQLResultHasError"])(result)) { this.cache.write({ result: result.data, dataId: 'ROOT_SUBSCRIPTION', query: document, variables: variables, }); } }; DataStore.prototype.markMutationInit = function (mutation) { var _this = this; if (mutation.optimisticResponse) { var optimistic_1; if (typeof mutation.optimisticResponse === 'function') { optimistic_1 = mutation.optimisticResponse(mutation.variables); } else { optimistic_1 = mutation.optimisticResponse; } var changeFn_1 = function () { _this.markMutationResult({ mutationId: mutation.mutationId, result: { data: optimistic_1 }, document: mutation.document, variables: mutation.variables, updateQueries: mutation.updateQueries, update: mutation.update, }); }; this.cache.recordOptimisticTransaction(function (c) { var orig = _this.cache; _this.cache = c; try { changeFn_1(); } finally { _this.cache = orig; } }, mutation.mutationId); } }; DataStore.prototype.markMutationResult = function (mutation) { var _this = this; // Incorporate the result from this mutation into the store if (!Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["graphQLResultHasError"])(mutation.result)) { var cacheWrites_1 = []; cacheWrites_1.push({ result: mutation.result.data, dataId: 'ROOT_MUTATION', query: mutation.document, variables: mutation.variables, }); if (mutation.updateQueries) { Object.keys(mutation.updateQueries) .filter(function (id) { return mutation.updateQueries[id]; }) .forEach(function (queryId) { var _a = mutation.updateQueries[queryId], query = _a.query, updater = _a.updater; // Read the current query result from the store. var _b = _this.cache.diff({ query: query.document, variables: query.variables, returnPartialData: true, optimistic: false, }), currentQueryResult = _b.result, complete = _b.complete; if (!complete) { return; } // Run our reducer using the current query result and the mutation result. var nextQueryResult = Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["tryFunctionOrLogError"])(function () { return updater(currentQueryResult, { mutationResult: mutation.result, queryName: Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["getOperationName"])(query.document) || undefined, queryVariables: query.variables, }); }); // Write the modified result back into the store if we got a new result. if (nextQueryResult) { cacheWrites_1.push({ result: nextQueryResult, dataId: 'ROOT_QUERY', query: query.document, variables: query.variables, }); } }); } this.cache.performTransaction(function (c) { cacheWrites_1.forEach(function (write) { return c.write(write); }); }); // If the mutation has some writes associated with it then we need to // apply those writes to the store by running this reducer again with a // write action. var update_1 = mutation.update; if (update_1) { this.cache.performTransaction(function (c) { Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_0__["tryFunctionOrLogError"])(function () { return update_1(c, mutation.result); }); }); } } }; DataStore.prototype.markMutationComplete = function (_a) { var mutationId = _a.mutationId, optimisticResponse = _a.optimisticResponse; if (!optimisticResponse) return; this.cache.removeOptimistic(mutationId); }; DataStore.prototype.markUpdateQueryResult = function (document, variables, newResult) { this.cache.write({ result: newResult, dataId: 'ROOT_QUERY', variables: variables, query: document, }); }; DataStore.prototype.reset = function () { return this.cache.reset(); }; return DataStore; }()); //# sourceMappingURL=store.js.map /***/ }), /* 676 */ /***/ (function(module, exports) { exports.version = "2.3.4" /***/ }), /* 677 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _batchHttpLink__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(324); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BatchHttpLink", function() { return _batchHttpLink__WEBPACK_IMPORTED_MODULE_0__["BatchHttpLink"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 678 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fallbackHttpConfig", function() { return fallbackHttpConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwServerError", function() { return throwServerError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseAndCheckHttpResponse", function() { return parseAndCheckHttpResponse; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkFetcher", function() { return checkFetcher; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createSignalIfSupported", function() { return createSignalIfSupported; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectHttpOptionsAndBody", function() { return selectHttpOptionsAndBody; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serializeFetchParameter", function() { return serializeFetchParameter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "selectURI", function() { return selectURI; }); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* harmony import */ var graphql_language_printer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__); var __assign = (undefined && undefined.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var defaultHttpOptions = { includeQuery: true, includeExtensions: false, }; var defaultHeaders = { // headers are case insensitive (https://stackoverflow.com/a/5259004) accept: '*/*', 'content-type': 'application/json', }; var defaultOptions = { method: 'POST', }; var fallbackHttpConfig = { http: defaultHttpOptions, headers: defaultHeaders, options: defaultOptions, }; var throwServerError = function (response, result, message) { var error = new Error(message); error.response = response; error.statusCode = response.status; error.result = result; throw error; }; //TODO: when conditional types come in ts 2.8, operations should be a generic type that extends Operation | Array<Operation> var parseAndCheckHttpResponse = function (operations) { return function (response) { return (response .text() .then(function (bodyText) { try { return JSON.parse(bodyText); } catch (err) { var parseError = err; parseError.response = response; parseError.statusCode = response.status; parseError.bodyText = bodyText; return Promise.reject(parseError); } }) .then(function (result) { if (response.status >= 300) { //Network error throwServerError(response, result, "Response not successful: Received status code " + response.status); } //TODO should really error per response in a Batch based on properties // - could be done in a validation link if (!Array.isArray(result) && !result.hasOwnProperty('data') && !result.hasOwnProperty('errors')) { //Data error throwServerError(response, result, "Server response was missing for query '" + (Array.isArray(operations) ? operations.map(function (op) { return op.operationName; }) : operations.operationName) + "'."); } return result; })); }; }; var checkFetcher = function (fetcher) { if (!fetcher && typeof fetch === 'undefined') { var library = 'unfetch'; if (typeof window === 'undefined') library = 'node-fetch'; throw new Error("\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\nyour environment like https://www.npmjs.com/package/" + library + ".\n\nFor example:\nimport fetch from '" + library + "';\nimport { createHttpLink } from 'apollo-link-http';\n\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });"); } }; var createSignalIfSupported = function () { if (typeof AbortController === 'undefined') return { controller: false, signal: false }; var controller = new AbortController(); var signal = controller.signal; return { controller: controller, signal: signal }; }; var selectHttpOptionsAndBody = function (operation, fallbackConfig) { var configs = []; for (var _i = 2; _i < arguments.length; _i++) { configs[_i - 2] = arguments[_i]; } var options = __assign({}, fallbackConfig.options, { headers: fallbackConfig.headers, credentials: fallbackConfig.credentials }); var http = fallbackConfig.http; /* * use the rest of the configs to populate the options * configs later in the list will overwrite earlier fields */ configs.forEach(function (config) { options = __assign({}, options, config.options, { headers: __assign({}, options.headers, config.headers) }); if (config.credentials) options.credentials = config.credentials; http = __assign({}, http, config.http); }); //The body depends on the http options var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query; var body = { operationName: operationName, variables: variables }; if (http.includeExtensions) body.extensions = extensions; // not sending the query (i.e persisted queries) if (http.includeQuery) body.query = Object(graphql_language_printer__WEBPACK_IMPORTED_MODULE_0__["print"])(query); return { options: options, body: body, }; }; var serializeFetchParameter = function (p, label) { var serialized; try { serialized = JSON.stringify(p); } catch (e) { var parseError = new Error("Network request failed. " + label + " is not serializable: " + e.message); parseError.parseError = e; throw parseError; } return serialized; }; //selects "/graphql" by default var selectURI = function (operation, fallbackURI) { var context = operation.getContext(); var contextURI = context.uri; if (contextURI) { return contextURI; } else if (typeof fallbackURI === 'function') { return fallbackURI(operation); } else { return fallbackURI || '/graphql'; } }; //# sourceMappingURL=index.js.map /***/ }), /* 679 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _batchLink__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(325); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OperationBatcher", function() { return _batchLink__WEBPACK_IMPORTED_MODULE_0__["OperationBatcher"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BatchLink", function() { return _batchLink__WEBPACK_IMPORTED_MODULE_0__["BatchLink"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 680 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _inMemoryCache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InMemoryCache", function() { return _inMemoryCache__WEBPACK_IMPORTED_MODULE_0__["InMemoryCache"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultDataIdFromObject", function() { return _inMemoryCache__WEBPACK_IMPORTED_MODULE_0__["defaultDataIdFromObject"]; }); /* harmony import */ var _readFromStore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(211); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StoreReader", function() { return _readFromStore__WEBPACK_IMPORTED_MODULE_1__["StoreReader"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "assertIdValue", function() { return _readFromStore__WEBPACK_IMPORTED_MODULE_1__["assertIdValue"]; }); /* harmony import */ var _writeToStore__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(214); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WriteError", function() { return _writeToStore__WEBPACK_IMPORTED_MODULE_2__["WriteError"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "enhanceErrorWithDocument", function() { return _writeToStore__WEBPACK_IMPORTED_MODULE_2__["enhanceErrorWithDocument"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StoreWriter", function() { return _writeToStore__WEBPACK_IMPORTED_MODULE_2__["StoreWriter"]; }); /* harmony import */ var _fragmentMatcher__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(210); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeuristicFragmentMatcher", function() { return _fragmentMatcher__WEBPACK_IMPORTED_MODULE_3__["HeuristicFragmentMatcher"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IntrospectionFragmentMatcher", function() { return _fragmentMatcher__WEBPACK_IMPORTED_MODULE_3__["IntrospectionFragmentMatcher"]; }); /* harmony import */ var _objectCache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(215); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ObjectCache", function() { return _objectCache__WEBPACK_IMPORTED_MODULE_4__["ObjectCache"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultNormalizedCacheFactory", function() { return _objectCache__WEBPACK_IMPORTED_MODULE_4__["defaultNormalizedCacheFactory"]; }); /* harmony import */ var _recordingCache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(216); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RecordingCache", function() { return _recordingCache__WEBPACK_IMPORTED_MODULE_5__["RecordingCache"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "record", function() { return _recordingCache__WEBPACK_IMPORTED_MODULE_5__["record"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 681 */ /***/ (function(module, exports) { var testMap = new Map(); if (testMap.set(1, 2) !== testMap) { var set_1 = testMap.set; Map.prototype.set = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } set_1.apply(this, args); return this; }; } var testSet = new Set(); if (testSet.add(3) !== testSet) { var add_1 = testSet.add; Set.prototype.add = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } add_1.apply(this, args); return this; }; } var frozen = {}; if (typeof Object.freeze === 'function') { Object.freeze(frozen); } try { testMap.set(frozen, frozen).delete(frozen); } catch (_a) { var wrap = function (method) { return method && (function (obj) { try { testMap.set(obj, obj).delete(obj); } finally { return method.call(Object, obj); } }); }; Object.freeze = wrap(Object.freeze); Object.seal = wrap(Object.seal); Object.preventExtensions = wrap(Object.preventExtensions); } //# sourceMappingURL=fixPolyfills.js.map /***/ }), /* 682 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(326); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ApolloCache", function() { return _cache__WEBPACK_IMPORTED_MODULE_0__["ApolloCache"]; }); /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(335); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Cache", function() { return _types__WEBPACK_IMPORTED_MODULE_1__["Cache"]; }); //# sourceMappingURL=index.js.map /***/ }), /* 683 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queryFromPojo", function() { return queryFromPojo; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fragmentFromPojo", function() { return fragmentFromPojo; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "justTypenameQuery", function() { return justTypenameQuery; }); function queryFromPojo(obj) { var op = { kind: 'OperationDefinition', operation: 'query', name: { kind: 'Name', value: 'GeneratedClientQuery', }, selectionSet: selectionSetFromObj(obj), }; var out = { kind: 'Document', definitions: [op], }; return out; } function fragmentFromPojo(obj, typename) { var frag = { kind: 'FragmentDefinition', typeCondition: { kind: 'NamedType', name: { kind: 'Name', value: typename || '__FakeType', }, }, name: { kind: 'Name', value: 'GeneratedClientQuery', }, selectionSet: selectionSetFromObj(obj), }; var out = { kind: 'Document', definitions: [frag], }; return out; } function selectionSetFromObj(obj) { if (typeof obj === 'number' || typeof obj === 'boolean' || typeof obj === 'string' || typeof obj === 'undefined' || obj === null) { return null; } if (Array.isArray(obj)) { return selectionSetFromObj(obj[0]); } var selections = []; Object.keys(obj).forEach(function (key) { var field = { kind: 'Field', name: { kind: 'Name', value: key, }, }; var nestedSelSet = selectionSetFromObj(obj[key]); if (nestedSelSet) { field.selectionSet = nestedSelSet; } selections.push(field); }); var selectionSet = { kind: 'SelectionSet', selections: selections, }; return selectionSet; } var justTypenameQuery = { kind: 'Document', definitions: [ { kind: 'OperationDefinition', operation: 'query', name: null, variableDefinitions: null, directives: [], selectionSet: { kind: 'SelectionSet', selections: [ { kind: 'Field', alias: null, name: { kind: 'Name', value: '__typename', }, arguments: [], directives: [], selectionSet: null, }, ], }, }, ], }; //# sourceMappingURL=utils.js.map /***/ }), /* 684 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var Cache = __webpack_require__(685).Cache; var tuple = __webpack_require__(686).tuple; var Entry = __webpack_require__(687).Entry; var getLocal = __webpack_require__(337).get; function defaultMakeCacheKey() { return tuple.apply(null, arguments); } // Exported so that custom makeCacheKey functions can easily reuse the // default implementation (with different arguments). exports.defaultMakeCacheKey = defaultMakeCacheKey; function normalizeOptions(options) { options = options || Object.create(null); if (typeof options.makeCacheKey !== "function") { options.makeCacheKey = defaultMakeCacheKey; } if (typeof options.max !== "number") { options.max = Math.pow(2, 16); } return options; } function wrap(fn, options) { options = normalizeOptions(options); // If this wrapped function is disposable, then its creator does not // care about its return value, and it should be removed from the cache // immediately when it no longer has any parents that depend on it. var disposable = !! options.disposable; var cache = new Cache({ max: options.max, dispose: function (key, entry) { entry.dispose(); } }); function reportOrphan(entry) { if (disposable) { // Triggers the entry.dispose() call above. cache.delete(entry.key); return true; } } function optimistic() { if (disposable && ! getLocal().currentParentEntry) { // If there's no current parent computation, and this wrapped // function is disposable (meaning we don't care about entry.value, // just dependency tracking), then we can short-cut everything else // in this function, because entry.recompute() is going to recycle // the entry object without recomputing anything, anyway. return; } var key = options.makeCacheKey.apply(null, arguments); if (! key) { return fn.apply(null, arguments); } var args = [], len = arguments.length; while (len--) args[len] = arguments[len]; var entry = cache.get(key); if (entry) { entry.args = args; } else { cache.set(key, entry = Entry.acquire(fn, key, args)); entry.subscribe = options.subscribe; if (disposable) { entry.reportOrphan = reportOrphan; } } var value = entry.recompute(); // If options.disposable is truthy, the caller of wrap is telling us // they don't care about the result of entry.recompute(), so we should // avoid returning the value, so it won't be accidentally used. if (! disposable) { return value; } } optimistic.dirty = function () { var key = options.makeCacheKey.apply(null, arguments); if (! key) { return; } if (! cache.has(key)) { return; } cache.get(key).setDirty(); }; return optimistic; } exports.wrap = wrap; /***/ }), /* 685 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; function Cache(options) { this.map = new Map; this.newest = null; this.oldest = null; this.max = options && options.max; this.dispose = options && options.dispose; } exports.Cache = Cache; var Cp = Cache.prototype; Cp.has = function (key) { return this.map.has(key); }; Cp.get = function (key) { var entry = getEntry(this, key); return entry && entry.value; }; function getEntry(cache, key) { var entry = cache.map.get(key); if (entry && entry !== cache.newest) { var older = entry.older; var newer = entry.newer; if (newer) { newer.older = older; } if (older) { older.newer = newer; } entry.older = cache.newest; entry.older.newer = entry; entry.newer = null; cache.newest = entry; if (entry === cache.oldest) { cache.oldest = newer; } } return entry; } Cp.set = function (key, value) { var entry = getEntry(this, key); if (entry) { return entry.value = value; } entry = { key: key, value: value, newer: null, older: this.newest }; if (this.newest) { this.newest.newer = entry; } this.newest = entry; this.oldest = this.oldest || entry; this.map.set(key, entry); if (typeof this.max === "number") { while (this.oldest && this.map.size > this.max) { this.delete(this.oldest.key); } } return entry.value; }; Cp.delete = function (key) { var entry = this.map.get(key); if (entry) { if (entry === this.newest) { this.newest = entry.older; } if (entry === this.oldest) { this.oldest = entry.newer; } if (entry.newer) { entry.newer.older = entry.older; } if (entry.older) { entry.older.newer = entry.newer; } this.map.delete(key); if (typeof this.dispose === "function") { this.dispose(key, entry.value); } return true; } return false; }; /***/ }), /* 686 */ /***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tuple", function() { return tuple; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lookup", function() { return lookup; }); // A map data structure that holds object keys weakly, yet can also hold // non-object keys, unlike the native `WeakMap`. var UniversalWeakMap = function UniversalWeakMap() { // Since a `WeakMap` cannot hold primitive values as keys, we need a // backup `Map` instance to hold primitive keys. Both `this._weakMap` // and `this._strongMap` are lazily initialized. this._weakMap = null; this._strongMap = null; this.data = null; }; // Since `get` and `set` are the only methods used, that's all I've // implemented here. UniversalWeakMap.prototype.get = function get (key) { var map = this._getMap(key, false); if (map) { return map.get(key); } }; UniversalWeakMap.prototype.set = function set (key, value) { this._getMap(key, true).set(key, value); // An actual `Map` or `WeakMap` would return `this` here, but // returning the `value` is more convenient for the `tuple` // implementation. return value; }; UniversalWeakMap.prototype._getMap = function _getMap (key, canCreate) { if (! canCreate) { return isObjRef(key) ? this._weakMap : this._strongMap; } if (isObjRef(key)) { return this._weakMap || (this._weakMap = new WeakMap); } return this._strongMap || (this._strongMap = new Map); }; function isObjRef(value) { switch (typeof value) { case "object": if (value === null) { return false; } case "function": return true; default: return false; } } // Although `Symbol` is widely supported these days, we can safely fall // back to using a non-enumerable string property without violating any // assumptions elsewhere in the implementation. var useSymbol = typeof Symbol === "function"; // Used to mark `tuple.prototype` so that all objects that inherit from // any `tuple.prototype` object (there could be more than one) will test // positive according to `tuple.isTuple`. var brand = useSymbol ? Symbol.for("immutable-tuple") : "@@__IMMUTABLE_TUPLE__@@"; // Used to save a reference to the globally shared `UniversalWeakMap` that // stores all known `tuple` objects. var globalKey = useSymbol ? Symbol.for("immutable-tuple-root") : "@@__IMMUTABLE_TUPLE_ROOT__@@"; // Convenient helper for defining hidden immutable properties. function def(obj, name, value, enumerable) { Object.defineProperty(obj, name, { value: value, enumerable: !! enumerable, writable: false, configurable: false }); return value; } var freeze = Object.freeze || function (obj) { return obj; }; // The `mustConvertThisToArray` value is true when the corresponding // `Array` method does not attempt to modify `this`, which means we can // pass a `tuple` object as `this` without first converting it to an // `Array`. function forEachArrayMethod(fn) { function call(name, mustConvertThisToArray) { var desc = Object.getOwnPropertyDescriptor(Array.prototype, name); fn(name, desc, !! mustConvertThisToArray); } call("every"); call("filter"); call("find"); call("findIndex"); call("forEach"); call("includes"); call("indexOf"); call("join"); call("lastIndexOf"); call("map"); call("reduce"); call("reduceRight"); call("slice"); call("some"); call("toLocaleString"); call("toString"); // The `reverse` and `sort` methods are usually destructive, but for // `tuple` objects they return a new `tuple` object that has been // appropriately reversed/sorted. call("reverse", true); call("sort", true); // Make `[...someTuple]` work. call(useSymbol && Symbol.iterator || "@@iterator"); } // See [`universal-weak-map.js`](universal-weak-map.html). // See [`util.js`](util.html). // If this package is installed multiple times, there could be mutiple // implementations of the `tuple` function with distinct `tuple.prototype` // objects, but the shared pool of `tuple` objects must be the same across // all implementations. While it would be ideal to use the `global` // object, there's no reliable way to get the global object across all JS // environments without using the `Function` constructor, so instead we // use the global `Array` constructor as a shared namespace. var root = Array[globalKey] || def(Array, globalKey, new UniversalWeakMap, false); function lookup() { var arguments$1 = arguments; var node = root; // Because we are building a tree of *weak* maps, the tree will not // prevent objects in tuples from being garbage collected, since the // tree itself will be pruned over time when the corresponding `tuple` // objects become unreachable. In addition to internalization, this // property is a key advantage of the `immutable-tuple` package. var argc = arguments.length; for (var i = 0; i < argc; ++i) { var item = arguments$1[i]; node = node.get(item) || node.set(item, new UniversalWeakMap); } // Return node.data rather than node itself to prevent tampering with // the UniversalWeakMap tree. return node.data || (node.data = Object.create(null)); } // See [`lookup.js`](lookup.html). // See [`util.js`](util.html). // When called with any number of arguments, this function returns an // object that inherits from `tuple.prototype` and is guaranteed to be // `===` any other `tuple` object that has exactly the same items. In // computer science jargon, `tuple` instances are "internalized" or just // "interned," which allows for constant-time equality checking, and makes // it possible for tuple objects to be used as `Map` or `WeakMap` keys, or // stored in a `Set`. function tuple() { var arguments$1 = arguments; var node = lookup.apply(null, arguments); if (node.tuple) { return node.tuple; } var t = Object.create(tuple.prototype); // Define immutable items with numeric indexes, and permanently fix the // `.length` property. var argc = arguments.length; for (var i = 0; i < argc; ++i) { t[i] = arguments$1[i]; } def(t, "length", argc, false); // Remember this new `tuple` object so that we can return the same object // earlier next time. return freeze(node.tuple = t); } // Since the `immutable-tuple` package could be installed multiple times // in an application, there is no guarantee that the `tuple` constructor // or `tuple.prototype` will be unique, so `value instanceof tuple` is // unreliable. Instead, to test if a value is a tuple, you should use // `tuple.isTuple(value)`. def(tuple.prototype, brand, true, false); function isTuple(that) { return !! (that && that[brand] === true); } tuple.isTuple = isTuple; function toArray(tuple) { var array = []; var i = tuple.length; while (i--) { array[i] = tuple[i]; } return array; } // Copy all generic non-destructive Array methods to `tuple.prototype`. // This works because (for example) `Array.prototype.slice` can be invoked // against any `Array`-like object. forEachArrayMethod(function (name, desc, mustConvertThisToArray) { var method = desc && desc.value; if (typeof method === "function") { desc.value = function () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; var result = method.apply( mustConvertThisToArray ? toArray(this) : this, args ); // Of course, `tuple.prototype.slice` should return a `tuple` object, // not a new `Array`. return Array.isArray(result) ? tuple.apply(void 0, result) : result; }; Object.defineProperty(tuple.prototype, name, desc); } }); // Like `Array.prototype.concat`, except for the extra effort required to // convert any tuple arguments to arrays, so that // ``` // tuple(1).concat(tuple(2), 3) === tuple(1, 2, 3) // ``` var ref = Array.prototype; var concat = ref.concat; tuple.prototype.concat = function () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return tuple.apply(void 0, concat.apply(toArray(this), args.map( function (item) { return isTuple(item) ? toArray(item) : item; } ))); }; /* harmony default export */ __webpack_exports__["default"] = (tuple); /***/ }), /* 687 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var getLocal = __webpack_require__(337).get; var UNKNOWN_VALUE = Object.create(null); var emptySetPool = []; var entryPool = []; // Don't let the emptySetPool or entryPool grow larger than this size, // since unconstrained pool growth could lead to memory leaks. exports.POOL_TARGET_SIZE = 100; // Since this package might be used browsers, we should avoid using the // Node built-in assert module. function assert(condition, optionalMessage) { if (! condition) { throw new Error(optionalMessage || "assertion failure"); } } function Entry(fn, key, args) { this.parents = new Set; this.childValues = new Map; // When this Entry has children that are dirty, this property becomes // a Set containing other Entry objects, borrowed from emptySetPool. // When the set becomes empty, it gets recycled back to emptySetPool. this.dirtyChildren = null; reset(this, fn, key, args); ++Entry.count; } Entry.count = 0; function reset(entry, fn, key, args) { entry.fn = fn; entry.key = key; entry.args = args; entry.value = UNKNOWN_VALUE; entry.dirty = true; entry.subscribe = null; entry.unsubscribe = null; entry.recomputing = false; // Optional callback that will be invoked when entry.parents becomes // empty. The Entry object is given as the first parameter. If the // callback returns true, then this entry can be removed from the graph // and safely recycled into the entryPool. entry.reportOrphan = null; } Entry.acquire = function (fn, key, args) { var entry = entryPool.pop(); if (entry) { reset(entry, fn, key, args); return entry; } return new Entry(fn, key, args); }; function release(entry) { assert(entry.parents.size === 0); assert(entry.childValues.size === 0); assert(entry.dirtyChildren === null); if (entryPool.length < exports.POOL_TARGET_SIZE) { entryPool.push(entry); } } exports.Entry = Entry; var Ep = Entry.prototype; // The public API of Entry objects consists of the Entry constructor, // along with the recompute, setDirty, and dispose methods. Ep.recompute = function recompute() { if (! rememberParent(this) && maybeReportOrphan(this)) { // The recipient of the entry.reportOrphan callback decided to dispose // of this orphan entry by calling entry.dispos(), which recycles it // into the entryPool, so we don't need to (and should not) proceed // with the recomputation. return; } return recomputeIfDirty(this); }; // If the given entry has a reportOrphan method, and no remaining parents, // call entry.reportOrphan and return true iff it returns true. The // reportOrphan function should return true to indicate entry.dispose() // has been called, and the entry has been removed from any other caches // (see index.js for the only current example). function maybeReportOrphan(entry) { var report = entry.reportOrphan; return typeof report === "function" && entry.parents.size === 0 && report(entry) === true; } Ep.setDirty = function setDirty() { if (this.dirty) return; this.dirty = true; this.value = UNKNOWN_VALUE; reportDirty(this); // We can go ahead and unsubscribe here, since any further dirty // notifications we receive will be redundant, and unsubscribing may // free up some resources, e.g. file watchers. unsubscribe(this); }; Ep.dispose = function dispose() { var entry = this; forgetChildren(entry).forEach(maybeReportOrphan); unsubscribe(entry); // Because this entry has been kicked out of the cache (in index.js), // we've lost the ability to find out if/when this entry becomes dirty, // whether that happens through a subscription, because of a direct call // to entry.setDirty(), or because one of its children becomes dirty. // Because of this loss of future information, we have to assume the // worst (that this entry might have become dirty very soon), so we must // immediately mark this entry's parents as dirty. Normally we could // just call entry.setDirty() rather than calling parent.setDirty() for // each parent, but that would leave this entry in parent.childValues // and parent.dirtyChildren, which would prevent the child from being // truly forgotten. entry.parents.forEach(function (parent) { parent.setDirty(); forgetChild(parent, entry); }); // Since this entry has no parents and no children anymore, and the // caller of Entry#dispose has indicated that entry.value no longer // matters, we can safely recycle this Entry object for later use. release(entry); }; function setClean(entry) { entry.dirty = false; if (mightBeDirty(entry)) { // This Entry may still have dirty children, in which case we can't // let our parents know we're clean just yet. return; } reportClean(entry); } function reportDirty(entry) { entry.parents.forEach(function (parent) { reportDirtyChild(parent, entry); }); } function reportClean(entry) { entry.parents.forEach(function (parent) { reportCleanChild(parent, entry); }); } function mightBeDirty(entry) { return entry.dirty || (entry.dirtyChildren && entry.dirtyChildren.size); } // Let a parent Entry know that one of its children may be dirty. function reportDirtyChild(entry, child) { // Must have called rememberParent(child) before calling // reportDirtyChild(parent, child). assert(entry.childValues.has(child)); assert(mightBeDirty(child)); if (! entry.dirtyChildren) { entry.dirtyChildren = emptySetPool.pop() || new Set; } else if (entry.dirtyChildren.has(child)) { // If we already know this child is dirty, then we must have already // informed our own parents that we are dirty, so we can terminate // the recursion early. return; } entry.dirtyChildren.add(child); reportDirty(entry); } // Let a parent Entry know that one of its children is no longer dirty. function reportCleanChild(entry, child) { var cv = entry.childValues; // Must have called rememberChild(child) before calling // reportCleanChild(parent, child). assert(cv.has(child)); assert(! mightBeDirty(child)); var childValue = cv.get(child); if (childValue === UNKNOWN_VALUE) { cv.set(child, child.value); } else if (childValue !== child.value) { entry.setDirty(); } removeDirtyChild(entry, child); if (mightBeDirty(entry)) { return; } reportClean(entry); } function removeDirtyChild(entry, child) { var dc = entry.dirtyChildren; if (dc) { dc.delete(child); if (dc.size === 0) { if (emptySetPool.length < exports.POOL_TARGET_SIZE) { emptySetPool.push(dc); } entry.dirtyChildren = null; } } } function rememberParent(entry) { var local = getLocal(); var parent = local.currentParentEntry; if (parent) { entry.parents.add(parent); if (! parent.childValues.has(entry)) { parent.childValues.set(entry, UNKNOWN_VALUE); } if (mightBeDirty(entry)) { reportDirtyChild(parent, entry); } else { reportCleanChild(parent, entry); } return parent; } } // This is the most important method of the Entry API, because it // determines whether the cached entry.value can be returned immediately, // or must be recomputed. The overall performance of the caching system // depends on the truth of the following observations: (1) this.dirty is // usually false, (2) this.dirtyChildren is usually null/empty, and thus // (3) this.value is usally returned very quickly, without recomputation. function recomputeIfDirty(entry) { if (entry.dirty) { // If this Entry is explicitly dirty because someone called // entry.setDirty(), recompute. return reallyRecompute(entry); } if (mightBeDirty(entry)) { // Get fresh values for any dirty children, and if those values // disagree with this.childValues, mark this Entry explicitly dirty. entry.dirtyChildren.forEach(function (child) { assert(entry.childValues.has(child)); try { recomputeIfDirty(child); } catch (e) { entry.setDirty(); } }); if (entry.dirty) { // If this Entry has become explicitly dirty after comparing the fresh // values of its dirty children against this.childValues, recompute. return reallyRecompute(entry); } } assert(entry.value !== UNKNOWN_VALUE); return entry.value; } function reallyRecompute(entry) { assert(! entry.recomputing, "already recomputing"); entry.recomputing = true; // Since this recomputation is likely to re-remember some of this // entry's children, we forget our children here but do not call // maybeReportOrphan until after the recomputation finishes. var originalChildren = forgetChildren(entry); var local = getLocal(); var parent = local.currentParentEntry; local.currentParentEntry = entry; var threw = true; try { entry.value = entry.fn.apply(null, entry.args); threw = false; } finally { entry.recomputing = false; assert(local.currentParentEntry === entry); local.currentParentEntry = parent; if (threw || ! subscribe(entry)) { // Mark this Entry dirty if entry.fn threw or we failed to // resubscribe. This is important because, if we have a subscribe // function and it failed, then we're going to miss important // notifications about the potential dirtiness of entry.value. entry.setDirty(); } else { // If we successfully recomputed entry.value and did not fail to // (re)subscribe, then this Entry is no longer explicitly dirty. setClean(entry); } } // Now that we've had a chance to re-remember any children that were // involved in the recomputation, we can safely report any orphan // children that remain. originalChildren.forEach(maybeReportOrphan); return entry.value; } var reusableEmptyArray = []; // Removes all children from this entry and returns an array of the // removed children. function forgetChildren(entry) { var children = reusableEmptyArray; if (entry.childValues.size > 0) { children = []; entry.childValues.forEach(function (value, child) { forgetChild(entry, child); children.push(child); }); } // After we forget all our children, this.dirtyChildren must be empty // and therefor must have been reset to null. assert(entry.dirtyChildren === null); return children; } function forgetChild(entry, child) { child.parents.delete(entry); entry.childValues.delete(child); removeDirtyChild(entry, child); } function subscribe(entry) { if (typeof entry.subscribe === "function") { try { unsubscribe(entry); // Prevent double subscriptions. entry.unsubscribe = entry.subscribe.apply(null, entry.args); } catch (e) { // If this Entry has a subscribe function and it threw an exception // (or an unsubscribe function it previously returned now throws), // return false to indicate that we were not able to subscribe (or // unsubscribe), and this Entry should remain dirty. entry.setDirty(); return false; } } // Returning true indicates either that there was no entry.subscribe // function or that it succeeded. return true; } function unsubscribe(entry) { var unsub = entry.unsubscribe; if (typeof unsub === "function") { entry.unsubscribe = null; unsub(); } } /***/ }), /* 688 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueryKeyMaker", function() { return QueryKeyMaker; }); /* harmony import */ var graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(138); /* harmony import */ var graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__); var __assign = (undefined && undefined.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var CIRCULAR = Object.create(null); var objToStr = Object.prototype.toString; var QueryKeyMaker = (function () { function QueryKeyMaker(cacheKeyRoot) { this.cacheKeyRoot = cacheKeyRoot; this.perQueryKeyMakers = new Map(); } QueryKeyMaker.prototype.forQuery = function (document) { if (!this.perQueryKeyMakers.has(document)) { this.perQueryKeyMakers.set(document, new PerQueryKeyMaker(this.cacheKeyRoot, document)); } return this.perQueryKeyMakers.get(document); }; return QueryKeyMaker; }()); var PerQueryKeyMaker = (function () { function PerQueryKeyMaker(cacheKeyRoot, query) { this.cacheKeyRoot = cacheKeyRoot; this.query = query; this.cache = new Map; this.lookupArray = this.cacheMethod(this.lookupArray); this.lookupObject = this.cacheMethod(this.lookupObject); this.lookupFragmentSpread = this.cacheMethod(this.lookupFragmentSpread); } PerQueryKeyMaker.prototype.cacheMethod = function (method) { var _this = this; return function (value) { if (_this.cache.has(value)) { var cached = _this.cache.get(value); if (cached === CIRCULAR) { throw new Error("QueryKeyMaker cannot handle circular query structures"); } return cached; } _this.cache.set(value, CIRCULAR); try { var result = method.call(_this, value); _this.cache.set(value, result); return result; } catch (e) { _this.cache.delete(value); throw e; } }; }; PerQueryKeyMaker.prototype.lookupQuery = function (document) { return this.lookupObject(document); }; PerQueryKeyMaker.prototype.lookupSelectionSet = function (selectionSet) { return this.lookupObject(selectionSet); }; PerQueryKeyMaker.prototype.lookupFragmentSpread = function (fragmentSpread) { var name = fragmentSpread.name.value; var fragment = null; this.query.definitions.some(function (definition) { if (definition.kind === "FragmentDefinition" && definition.name.value === name) { fragment = definition; return true; } return false; }); return this.lookupObject(__assign({}, fragmentSpread, { fragment: fragment })); }; PerQueryKeyMaker.prototype.lookupAny = function (value) { if (Array.isArray(value)) { return this.lookupArray(value); } if (typeof value === "object" && value !== null) { if (value.kind === "FragmentSpread") { return this.lookupFragmentSpread(value); } return this.lookupObject(value); } return value; }; PerQueryKeyMaker.prototype.lookupArray = function (array) { var elements = array.map(this.lookupAny, this); return this.cacheKeyRoot.lookup(objToStr.call(array), this.cacheKeyRoot.lookupArray(elements)); }; PerQueryKeyMaker.prototype.lookupObject = function (object) { var _this = this; var keys = safeSortedKeys(object); var values = keys.map(function (key) { return _this.lookupAny(object[key]); }); return this.cacheKeyRoot.lookup(objToStr.call(object), this.cacheKeyRoot.lookupArray(keys), this.cacheKeyRoot.lookupArray(values)); }; return PerQueryKeyMaker; }()); var queryKeyMap = Object.create(null); Object.keys(graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["QueryDocumentKeys"]).forEach(function (parentKind) { var childKeys = queryKeyMap[parentKind] = Object.create(null); graphql_language_visitor__WEBPACK_IMPORTED_MODULE_0__["QueryDocumentKeys"][parentKind].forEach(function (childKey) { childKeys[childKey] = true; }); if (parentKind === "FragmentSpread") { childKeys["fragment"] = true; } }); function safeSortedKeys(object) { var keys = Object.keys(object); var keyCount = keys.length; var knownKeys = typeof object.kind === "string" && queryKeyMap[object.kind]; var target = 0; for (var source = target; source < keyCount; ++source) { var key = keys[source]; var value = object[key]; var isObjectOrArray = value !== null && typeof value === "object"; if (!isObjectOrArray || !knownKeys || knownKeys[key] === true) { keys[target++] = key; } } keys.length = target; return keys.sort(); } //# sourceMappingURL=queryKeyMaker.js.map /***/ }), /* 689 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorLink", function() { return ErrorLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onError", function() { return onError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(338); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(690); function onError(errorHandler) { return new apollo_link__WEBPACK_IMPORTED_MODULE_1__["ApolloLink"](function (operation, forward) { return new apollo_link__WEBPACK_IMPORTED_MODULE_1__["Observable"](function (observer) { var sub; var retriedSub; var retriedResult; try { sub = forward(operation).subscribe({ next: function (result) { if (result.errors) { retriedResult = errorHandler({ graphQLErrors: result.errors, response: result, operation: operation, forward: forward, }); if (retriedResult) { retriedSub = retriedResult.subscribe({ next: observer.next.bind(observer), error: observer.error.bind(observer), complete: observer.complete.bind(observer), }); return; } } observer.next(result); }, error: function (networkError) { retriedResult = errorHandler({ operation: operation, networkError: networkError, graphQLErrors: networkError && networkError.result && networkError.result.errors, forward: forward, }); if (retriedResult) { retriedSub = retriedResult.subscribe({ next: observer.next.bind(observer), error: observer.error.bind(observer), complete: observer.complete.bind(observer), }); return; } observer.error(networkError); }, complete: function () { if (!retriedResult) { observer.complete.bind(observer)(); } }, }); } catch (e) { errorHandler({ networkError: e, operation: operation, forward: forward }); observer.error(e); } return function () { if (sub) sub.unsubscribe(); if (retriedSub) sub.unsubscribe(); }; }); }); } var ErrorLink = (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(ErrorLink, _super); function ErrorLink(errorHandler) { var _this = _super.call(this) || this; _this.link = onError(errorHandler); return _this; } ErrorLink.prototype.request = function (operation, forward) { return this.link.request(operation, forward); }; return ErrorLink; }(apollo_link__WEBPACK_IMPORTED_MODULE_1__["ApolloLink"])); //# sourceMappingURL=bundle.esm.js.map /***/ }), /* 690 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApolloLink", function() { return ApolloLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createOperation", function() { return createOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "execute", function() { return execute; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromError", function() { return fromError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromPromise", function() { return fromPromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makePromise", function() { return makePromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "split", function() { return split; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toPromise", function() { return toPromise; }); /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(217); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"]; }); /* harmony import */ var ts_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(147); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(338); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(218); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getOperationName"]; }); function validateOperation(operation) { var OPERATION_FIELDS = [ 'query', 'operationName', 'variables', 'extensions', 'context', ]; for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) { var key = _a[_i]; if (OPERATION_FIELDS.indexOf(key) < 0) { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](2) : undefined; } } return operation; } var LinkError = (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__extends"])(LinkError, _super); function LinkError(message, link) { var _this = _super.call(this, message) || this; _this.link = link; return _this; } return LinkError; }(Error)); function isTerminating(link) { return link.request.length <= 1; } function toPromise(observable) { var completed = false; return new Promise(function (resolve, reject) { observable.subscribe({ next: function (data) { if (completed) { true || false; } else { completed = true; resolve(data); } }, error: reject, }); }); } var makePromise = toPromise; function fromPromise(promise) { return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) { promise .then(function (value) { observer.next(value); observer.complete(); }) .catch(observer.error.bind(observer)); }); } function fromError(errorValue) { return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) { observer.error(errorValue); }); } function transformOperation(operation) { var transformedOperation = { variables: operation.variables || {}, extensions: operation.extensions || {}, operationName: operation.operationName, query: operation.query, }; if (!transformedOperation.operationName) { transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getOperationName"])(transformedOperation.query) : ''; } return transformedOperation; } function createOperation(starting, operation) { var context = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, starting); var setContext = function (next) { if (typeof next === 'function') { context = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, context, next(context)); } else { context = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, context, next); } }; var getContext = function () { return (Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, context)); }; Object.defineProperty(operation, 'setContext', { enumerable: false, value: setContext, }); Object.defineProperty(operation, 'getContext', { enumerable: false, value: getContext, }); Object.defineProperty(operation, 'toKey', { enumerable: false, value: function () { return getKey(operation); }, }); return operation; } function getKey(operation) { var query = operation.query, variables = operation.variables, operationName = operation.operationName; return JSON.stringify([operationName, query, variables]); } function passthrough(op, forward) { return forward ? forward(op) : zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); } function toLink(handler) { return typeof handler === 'function' ? new ApolloLink(handler) : handler; } function empty() { return new ApolloLink(function () { return zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } function from(links) { if (links.length === 0) return empty(); return links.map(toLink).reduce(function (x, y) { return x.concat(y); }); } function split(test, left, right) { var leftLink = toLink(left); var rightLink = toLink(right || new ApolloLink(passthrough)); if (isTerminating(leftLink) && isTerminating(rightLink)) { return new ApolloLink(function (operation) { return test(operation) ? leftLink.request(operation) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of() : rightLink.request(operation) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } else { return new ApolloLink(function (operation, forward) { return test(operation) ? leftLink.request(operation, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of() : rightLink.request(operation, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } } var concat = function (first, second) { var firstLink = toLink(first); if (isTerminating(firstLink)) { true || false; return firstLink; } var nextLink = toLink(second); if (isTerminating(nextLink)) { return new ApolloLink(function (operation) { return firstLink.request(operation, function (op) { return nextLink.request(op) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } else { return new ApolloLink(function (operation, forward) { return (firstLink.request(operation, function (op) { return nextLink.request(op, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); }); } }; var ApolloLink = (function () { function ApolloLink(request) { if (request) this.request = request; } ApolloLink.prototype.split = function (test, left, right) { return this.concat(split(test, left, right || new ApolloLink(passthrough))); }; ApolloLink.prototype.concat = function (next) { return concat(this, next); }; ApolloLink.prototype.request = function (operation, forward) { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](1) : undefined; }; ApolloLink.empty = empty; ApolloLink.from = from; ApolloLink.split = split; ApolloLink.execute = execute; return ApolloLink; }()); function execute(link, operation) { return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); } //# sourceMappingURL=bundle.esm.js.map /***/ }), /* 691 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 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); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; 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; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; 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); 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); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result.default = mod; return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } /***/ }), /* 692 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 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); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; 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; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; 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); 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); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result.default = mod; return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } /***/ }), /* 693 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchWithCsrf = fetchWithCsrf; exports.getLocalCsrfCookie = getLocalCsrfCookie; var _extends2 = _interopRequireDefault(__webpack_require__(11)); /* globals window, document, fetch, */ var WF_CSRF_COOKIE_REGEX = '(^|;)\\s*wf-csrf\\s*=\\s*([^;]+)'; var WF_CSRF_URI = '/.wf_graphql/csrf'; var hasFetchedCsrfCookie = false; function fetchWithCsrf(uri, options) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return fetch(uri, options); } var localCsrvCookie = getLocalCsrfCookie(); var requestHeaders = options && options.headers || {}; return new Promise(function (resolve, reject) { if (hasFetchedCsrfCookie && localCsrvCookie) { requestHeaders['X-Wf-Csrf'] = localCsrvCookie; resolve(fetch(uri, (0, _extends2["default"])({}, options, { headers: requestHeaders }))); } else { fetch(WF_CSRF_URI, { method: 'POST', credentials: 'include', headers: { 'X-Requested-With': 'XMLHttpRequest' } }).then(function () { var newWfCsrfCookie = getLocalCsrfCookie(); if (newWfCsrfCookie) { hasFetchedCsrfCookie = true; requestHeaders['X-Wf-Csrf'] = newWfCsrfCookie; resolve(fetch(uri, (0, _extends2["default"])({}, options, { headers: requestHeaders }))); } else { reject(new Error('Did not receive CSRF token')); } })["catch"](function (err) { return reject(err); }); } }); } function getLocalCsrfCookie() { var wfCsrfCookieArray = document.cookie.match(WF_CSRF_COOKIE_REGEX); return wfCsrfCookieArray ? wfCsrfCookieArray.pop() : null; } /***/ }), /* 694 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RetryLink", function() { return RetryLink; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(340); /* harmony import */ var apollo_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(695); function buildDelayFunction(delayOptions) { var _a = delayOptions || {}, _b = _a.initial, initial = _b === void 0 ? 300 : _b, _c = _a.jitter, jitter = _c === void 0 ? true : _c, _d = _a.max, max = _d === void 0 ? Infinity : _d; var baseDelay = jitter ? initial : initial / 2; return function delayFunction(count) { var delay = Math.min(max, baseDelay * Math.pow(2, count)); if (jitter) { delay = Math.random() * delay; } return delay; }; } function buildRetryFunction(retryOptions) { var _a = retryOptions || {}, retryIf = _a.retryIf, _b = _a.max, max = _b === void 0 ? 5 : _b; return function retryFunction(count, operation, error) { if (count >= max) return false; return retryIf ? retryIf(error, operation) : !!error; }; } var RetryableOperation = (function () { function RetryableOperation(operation, nextLink, delayFor, retryIf) { var _this = this; this.operation = operation; this.nextLink = nextLink; this.delayFor = delayFor; this.retryIf = retryIf; this.retryCount = 0; this.values = []; this.complete = false; this.canceled = false; this.observers = []; this.currentSubscription = null; this.onNext = function (value) { _this.values.push(value); for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) { var observer = _a[_i]; if (!observer) continue; observer.next(value); } }; this.onComplete = function () { _this.complete = true; for (var _i = 0, _a = _this.observers; _i < _a.length; _i++) { var observer = _a[_i]; if (!observer) continue; observer.complete(); } }; this.onError = function (error) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () { var shouldRetry, _i, _a, observer; return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_b) { switch (_b.label) { case 0: this.retryCount += 1; return [4, this.retryIf(this.retryCount, this.operation, error)]; case 1: shouldRetry = _b.sent(); if (shouldRetry) { this.scheduleRetry(this.delayFor(this.retryCount, this.operation, error)); return [2]; } this.error = error; for (_i = 0, _a = this.observers; _i < _a.length; _i++) { observer = _a[_i]; if (!observer) continue; observer.error(error); } return [2]; } }); }); }; } RetryableOperation.prototype.subscribe = function (observer) { if (this.canceled) { throw new Error("Subscribing to a retryable link that was canceled is not supported"); } this.observers.push(observer); for (var _i = 0, _a = this.values; _i < _a.length; _i++) { var value = _a[_i]; observer.next(value); } if (this.complete) { observer.complete(); } else if (this.error) { observer.error(this.error); } }; RetryableOperation.prototype.unsubscribe = function (observer) { var index = this.observers.indexOf(observer); if (index < 0) { throw new Error("RetryLink BUG! Attempting to unsubscribe unknown observer!"); } this.observers[index] = null; if (this.observers.every(function (o) { return o === null; })) { this.cancel(); } }; RetryableOperation.prototype.start = function () { if (this.currentSubscription) return; this.try(); }; RetryableOperation.prototype.cancel = function () { if (this.currentSubscription) { this.currentSubscription.unsubscribe(); } clearTimeout(this.timerId); this.timerId = null; this.currentSubscription = null; this.canceled = true; }; RetryableOperation.prototype.try = function () { this.currentSubscription = this.nextLink(this.operation).subscribe({ next: this.onNext, error: this.onError, complete: this.onComplete, }); }; RetryableOperation.prototype.scheduleRetry = function (delay) { var _this = this; if (this.timerId) { throw new Error("RetryLink BUG! Encountered overlapping retries"); } this.timerId = setTimeout(function () { _this.timerId = null; _this.try(); }, delay); }; return RetryableOperation; }()); var RetryLink = (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(RetryLink, _super); function RetryLink(options) { var _this = _super.call(this) || this; var _a = options || {}, attempts = _a.attempts, delay = _a.delay; _this.delayFor = typeof delay === 'function' ? delay : buildDelayFunction(delay); _this.retryIf = typeof attempts === 'function' ? attempts : buildRetryFunction(attempts); return _this; } RetryLink.prototype.request = function (operation, nextLink) { var retryable = new RetryableOperation(operation, nextLink, this.delayFor, this.retryIf); retryable.start(); return new apollo_link__WEBPACK_IMPORTED_MODULE_1__["Observable"](function (observer) { retryable.subscribe(observer); return function () { retryable.unsubscribe(observer); }; }); }; return RetryLink; }(apollo_link__WEBPACK_IMPORTED_MODULE_1__["ApolloLink"])); //# sourceMappingURL=bundle.esm.js.map /***/ }), /* 695 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ApolloLink", function() { return ApolloLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createOperation", function() { return createOperation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "execute", function() { return execute; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromError", function() { return fromError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromPromise", function() { return fromPromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makePromise", function() { return makePromise; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "split", function() { return split; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toPromise", function() { return toPromise; }); /* harmony import */ var zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(219); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"]; }); /* harmony import */ var ts_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(147); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(340); /* harmony import */ var apollo_utilities__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(220); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getOperationName", function() { return apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getOperationName"]; }); function validateOperation(operation) { var OPERATION_FIELDS = [ 'query', 'operationName', 'variables', 'extensions', 'context', ]; for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) { var key = _a[_i]; if (OPERATION_FIELDS.indexOf(key) < 0) { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](2) : undefined; } } return operation; } var LinkError = (function (_super) { Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__extends"])(LinkError, _super); function LinkError(message, link) { var _this = _super.call(this, message) || this; _this.link = link; return _this; } return LinkError; }(Error)); function isTerminating(link) { return link.request.length <= 1; } function toPromise(observable) { var completed = false; return new Promise(function (resolve, reject) { observable.subscribe({ next: function (data) { if (completed) { true || false; } else { completed = true; resolve(data); } }, error: reject, }); }); } var makePromise = toPromise; function fromPromise(promise) { return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) { promise .then(function (value) { observer.next(value); observer.complete(); }) .catch(observer.error.bind(observer)); }); } function fromError(errorValue) { return new zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"](function (observer) { observer.error(errorValue); }); } function transformOperation(operation) { var transformedOperation = { variables: operation.variables || {}, extensions: operation.extensions || {}, operationName: operation.operationName, query: operation.query, }; if (!transformedOperation.operationName) { transformedOperation.operationName = typeof transformedOperation.query !== 'string' ? Object(apollo_utilities__WEBPACK_IMPORTED_MODULE_3__["getOperationName"])(transformedOperation.query) : ''; } return transformedOperation; } function createOperation(starting, operation) { var context = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, starting); var setContext = function (next) { if (typeof next === 'function') { context = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, context, next(context)); } else { context = Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, context, next); } }; var getContext = function () { return (Object(tslib__WEBPACK_IMPORTED_MODULE_2__["__assign"])({}, context)); }; Object.defineProperty(operation, 'setContext', { enumerable: false, value: setContext, }); Object.defineProperty(operation, 'getContext', { enumerable: false, value: getContext, }); Object.defineProperty(operation, 'toKey', { enumerable: false, value: function () { return getKey(operation); }, }); return operation; } function getKey(operation) { var query = operation.query, variables = operation.variables, operationName = operation.operationName; return JSON.stringify([operationName, query, variables]); } function passthrough(op, forward) { return forward ? forward(op) : zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); } function toLink(handler) { return typeof handler === 'function' ? new ApolloLink(handler) : handler; } function empty() { return new ApolloLink(function () { return zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } function from(links) { if (links.length === 0) return empty(); return links.map(toLink).reduce(function (x, y) { return x.concat(y); }); } function split(test, left, right) { var leftLink = toLink(left); var rightLink = toLink(right || new ApolloLink(passthrough)); if (isTerminating(leftLink) && isTerminating(rightLink)) { return new ApolloLink(function (operation) { return test(operation) ? leftLink.request(operation) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of() : rightLink.request(operation) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } else { return new ApolloLink(function (operation, forward) { return test(operation) ? leftLink.request(operation, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of() : rightLink.request(operation, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } } var concat = function (first, second) { var firstLink = toLink(first); if (isTerminating(firstLink)) { true || false; return firstLink; } var nextLink = toLink(second); if (isTerminating(nextLink)) { return new ApolloLink(function (operation) { return firstLink.request(operation, function (op) { return nextLink.request(op) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }); } else { return new ApolloLink(function (operation, forward) { return (firstLink.request(operation, function (op) { return nextLink.request(op, forward) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of(); }) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); }); } }; var ApolloLink = (function () { function ApolloLink(request) { if (request) this.request = request; } ApolloLink.prototype.split = function (test, left, right) { return this.concat(split(test, left, right || new ApolloLink(passthrough))); }; ApolloLink.prototype.concat = function (next) { return concat(this, next); }; ApolloLink.prototype.request = function (operation, forward) { throw true ? new ts_invariant__WEBPACK_IMPORTED_MODULE_1__["InvariantError"](1) : undefined; }; ApolloLink.empty = empty; ApolloLink.from = from; ApolloLink.split = split; ApolloLink.execute = execute; return ApolloLink; }()); function execute(link, operation) { return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || zen_observable_ts__WEBPACK_IMPORTED_MODULE_0__["default"].of()); } //# sourceMappingURL=bundle.esm.js.map /***/ }), /* 696 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; }); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; } return __assign.apply(this, arguments); } function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; } function __param(paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } } function __metadata(metadataKey, metadataValue) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); } function __awaiter(thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { 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; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } function __exportStar(m, exports) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } function __values(o) { var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; if (m) return m.call(o); return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; } function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; } function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } function __asyncGenerator(thisArg, _arguments, generator) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; 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); }); }; } function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } } function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; 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; } } function __asyncValues(o) { if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; 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); 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); }); }; } function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } } function __makeTemplateObject(cooked, raw) { if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } return cooked; }; function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result.default = mod; return result; } function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } /***/ }), /* 697 */ /***/ (function(module, exports, __webpack_require__) { var baseMerge = __webpack_require__(342), createAssigner = __webpack_require__(348); /** * This method is like `_.assign` except that it recursively merges own and * inherited enumerable string keyed properties of source objects into the * destination object. Source properties that resolve to `undefined` are * skipped if a destination value exists. Array and plain object properties * are merged recursively. Other objects and value types are overridden by * assignment. Source objects are applied from left to right. Subsequent * sources overwrite property assignments of previous sources. * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 0.5.0 * @category Object * @param {Object} object The destination object. * @param {...Object} [sources] The source objects. * @returns {Object} Returns `object`. * @example * * var object = { * 'a': [{ 'b': 2 }, { 'd': 4 }] * }; * * var other = { * 'a': [{ 'c': 3 }, { 'e': 5 }] * }; * * _.merge(object, other); * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } */ var merge = createAssigner(function(object, source, srcIndex) { baseMerge(object, source, srcIndex); }); module.exports = merge; /***/ }), /* 698 */ /***/ (function(module, exports, __webpack_require__) { var assignMergeValue = __webpack_require__(343), cloneBuffer = __webpack_require__(344), cloneTypedArray = __webpack_require__(345), copyArray = __webpack_require__(185), initCloneObject = __webpack_require__(346), isArguments = __webpack_require__(92), isArray = __webpack_require__(10), isArrayLikeObject = __webpack_require__(699), isBuffer = __webpack_require__(74), isFunction = __webpack_require__(72), isObject = __webpack_require__(18), isPlainObject = __webpack_require__(700), isTypedArray = __webpack_require__(94), safeGet = __webpack_require__(347), toPlainObject = __webpack_require__(701); /** * A specialized version of `baseMerge` for arrays and objects which performs * deep merges and tracks traversed objects enabling objects with circular * references to be merged. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @param {string} key The key of the value to merge. * @param {number} srcIndex The index of `source`. * @param {Function} mergeFunc The function to merge values. * @param {Function} [customizer] The function to customize assigned values. * @param {Object} [stack] Tracks traversed source values and their merged * counterparts. */ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); if (stacked) { assignMergeValue(object, key, stacked); return; } var newValue = customizer ? customizer(objValue, srcValue, (key + ''), object, source, stack) : undefined; var isCommon = newValue === undefined; if (isCommon) { var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); newValue = srcValue; if (isArr || isBuff || isTyped) { if (isArray(objValue)) { newValue = objValue; } else if (isArrayLikeObject(objValue)) { newValue = copyArray(objValue); } else if (isBuff) { isCommon = false; newValue = cloneBuffer(srcValue, true); } else if (isTyped) { isCommon = false; newValue = cloneTypedArray(srcValue, true); } else { newValue = []; } } else if (isPlainObject(srcValue) || isArguments(srcValue)) { newValue = objValue; if (isArguments(objValue)) { newValue = toPlainObject(objValue); } else if (!isObject(objValue) || isFunction(objValue)) { newValue = initCloneObject(srcValue); } } else { isCommon = false; } } if (isCommon) { // Recursively merge objects and arrays (susceptible to call stack limits). stack.set(srcValue, newValue); mergeFunc(newValue, srcValue, srcIndex, customizer, stack); stack['delete'](srcValue); } assignMergeValue(object, key, newValue); } module.exports = baseMergeDeep; /***/ }), /* 699 */ /***/ (function(module, exports, __webpack_require__) { var isArrayLike = __webpack_require__(47), isObjectLike = __webpack_require__(22); /** * This method is like `_.isArrayLike` except that it also checks if `value` * is an object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array-like object, * else `false`. * @example * * _.isArrayLikeObject([1, 2, 3]); * // => true * * _.isArrayLikeObject(document.body.children); * // => true * * _.isArrayLikeObject('abc'); * // => false * * _.isArrayLikeObject(_.noop); * // => false */ function isArrayLikeObject(value) { return isObjectLike(value) && isArrayLike(value); } module.exports = isArrayLikeObject; /***/ }), /* 700 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), getPrototype = __webpack_require__(132), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var objectTag = '[object Object]'; /** Used for built-in method references. */ var funcProto = Function.prototype, objectProto = Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to infer the `Object` constructor. */ var objectCtorString = funcToString.call(Object); /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * @static * @memberOf _ * @since 0.8.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * * function Foo() { * this.a = 1; * } * * _.isPlainObject(new Foo); * // => false * * _.isPlainObject([1, 2, 3]); * // => false * * _.isPlainObject({ 'x': 0, 'y': 0 }); * // => true * * _.isPlainObject(Object.create(null)); * // => true */ function isPlainObject(value) { if (!isObjectLike(value) || baseGetTag(value) != objectTag) { return false; } var proto = getPrototype(value); if (proto === null) { return true; } var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; } module.exports = isPlainObject; /***/ }), /* 701 */ /***/ (function(module, exports, __webpack_require__) { var copyObject = __webpack_require__(110), keysIn = __webpack_require__(98); /** * Converts `value` to a plain object flattening inherited enumerable string * keyed properties of `value` to own properties of the plain object. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to convert. * @returns {Object} Returns the converted plain object. * @example * * function Foo() { * this.b = 2; * } * * Foo.prototype.c = 3; * * _.assign({ 'a': 1 }, new Foo); * // => { 'a': 1, 'b': 2 } * * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); * // => { 'a': 1, 'b': 2, 'c': 3 } */ function toPlainObject(value) { return copyObject(value, keysIn(value)); } module.exports = toPlainObject; /***/ }), /* 702 */ /***/ (function(module, exports, __webpack_require__) { var identity = __webpack_require__(96), overRest = __webpack_require__(282), setToString = __webpack_require__(283); /** * The base implementation of `_.rest` which doesn't validate or coerce arguments. * * @private * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @returns {Function} Returns the new function. */ function baseRest(func, start) { return setToString(overRest(func, start, identity), func + ''); } module.exports = baseRest; /***/ }), /* 703 */ /***/ (function(module, exports, __webpack_require__) { var eq = __webpack_require__(91), isArrayLike = __webpack_require__(47), isIndex = __webpack_require__(125), isObject = __webpack_require__(18); /** * Checks if the given arguments are from an iteratee call. * * @private * @param {*} value The potential iteratee value argument. * @param {*} index The potential iteratee index or key argument. * @param {*} object The potential iteratee object argument. * @returns {boolean} Returns `true` if the arguments are from an iteratee call, * else `false`. */ function isIterateeCall(value, index, object) { if (!isObject(object)) { return false; } var type = typeof index; if (type == 'number' ? (isArrayLike(object) && isIndex(index, object.length)) : (type == 'string' && index in object) ) { return eq(object[index], value); } return false; } module.exports = isIterateeCall; /***/ }), /* 704 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.3.0 // https://github.com/bgrins/TinyColor // Brian Grinstead, MIT License (function(Math) { var trimLeft = /^\s+/, trimRight = /\s+$/, tinyCounter = 0, mathRound = Math.round, mathMin = Math.min, mathMax = Math.max, mathRandom = Math.random; function tinycolor (color, opts) { color = (color) ? color : ''; opts = opts || { }; // If input is already a tinycolor, return itself if (color instanceof tinycolor) { return color; } // If we are called as a function, call using new instead if (!(this instanceof tinycolor)) { return new tinycolor(color, opts); } var rgb = inputToRGB(color); this._originalInput = color, this._r = rgb.r, this._g = rgb.g, this._b = rgb.b, this._a = rgb.a, this._roundA = mathRound(100*this._a) / 100, this._format = opts.format || rgb.format; this._gradientType = opts.gradientType; // Don't let the range of [0,255] come back in [0,1]. // Potentially lose a little bit of precision here, but will fix issues where // .5 gets interpreted as half of the total, instead of half of 1 // If it was supposed to be 128, this was already taken care of by `inputToRgb` if (this._r < 1) { this._r = mathRound(this._r); } if (this._g < 1) { this._g = mathRound(this._g); } if (this._b < 1) { this._b = mathRound(this._b); } this._ok = rgb.ok; this._tc_id = tinyCounter++; } tinycolor.prototype = { isDark: function() { return this.getBrightness() < 128; }, isLight: function() { return !this.isDark(); }, isValid: function() { return this._ok; }, getOriginalInput: function() { return this._originalInput; }, getFormat: function() { return this._format; }, getAlpha: function() { return this._a; }, getBrightness: function() { //http://www.w3.org/TR/AERT#color-contrast var rgb = this.toRgb(); return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; }, getLuminance: function() { //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef var rgb = this.toRgb(); var RsRGB, GsRGB, BsRGB, R, G, B; RsRGB = rgb.r/255; GsRGB = rgb.g/255; BsRGB = rgb.b/255; if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);} if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);} if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);} return (0.2126 * R) + (0.7152 * G) + (0.0722 * B); }, setAlpha: function(value) { this._a = boundAlpha(value); this._roundA = mathRound(100*this._a) / 100; return this; }, toHsv: function() { var hsv = rgbToHsv(this._r, this._g, this._b); return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; }, toHsvString: function() { var hsv = rgbToHsv(this._r, this._g, this._b); var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); return (this._a == 1) ? "hsv(" + h + ", " + s + "%, " + v + "%)" : "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; }, toHsl: function() { var hsl = rgbToHsl(this._r, this._g, this._b); return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; }, toHslString: function() { var hsl = rgbToHsl(this._r, this._g, this._b); var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); return (this._a == 1) ? "hsl(" + h + ", " + s + "%, " + l + "%)" : "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; }, toHex: function(allow3Char) { return rgbToHex(this._r, this._g, this._b, allow3Char); }, toHexString: function(allow3Char) { return '#' + this.toHex(allow3Char); }, toHex8: function(allow4Char) { return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); }, toHex8String: function(allow4Char) { return '#' + this.toHex8(allow4Char); }, toRgb: function() { return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; }, toRgbString: function() { return (this._a == 1) ? "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; }, toPercentageRgb: function() { return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; }, toPercentageRgbString: function() { return (this._a == 1) ? "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; }, toName: function() { if (this._a === 0) { return "transparent"; } if (this._a < 1) { return false; } return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; }, toFilter: function(secondColor) { var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); var secondHex8String = hex8String; var gradientType = this._gradientType ? "GradientType = 1, " : ""; if (secondColor) { var s = tinycolor(secondColor); secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); } return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; }, toString: function(format) { var formatSet = !!format; format = format || this._format; var formattedString = false; var hasAlpha = this._a < 1 && this._a >= 0; var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); if (needsAlphaFormat) { // Special case for "transparent", all other non-alpha formats // will return rgba when there is transparency. if (format === "name" && this._a === 0) { return this.toName(); } return this.toRgbString(); } if (format === "rgb") { formattedString = this.toRgbString(); } if (format === "prgb") { formattedString = this.toPercentageRgbString(); } if (format === "hex" || format === "hex6") { formattedString = this.toHexString(); } if (format === "hex3") { formattedString = this.toHexString(true); } if (format === "hex4") { formattedString = this.toHex8String(true); } if (format === "hex8") { formattedString = this.toHex8String(); } if (format === "name") { formattedString = this.toName(); } if (format === "hsl") { formattedString = this.toHslString(); } if (format === "hsv") { formattedString = this.toHsvString(); } return formattedString || this.toHexString(); }, clone: function() { return tinycolor(this.toString()); }, _applyModification: function(fn, args) { var color = fn.apply(null, [this].concat([].slice.call(args))); this._r = color._r; this._g = color._g; this._b = color._b; this.setAlpha(color._a); return this; }, lighten: function() { return this._applyModification(lighten, arguments); }, brighten: function() { return this._applyModification(brighten, arguments); }, darken: function() { return this._applyModification(darken, arguments); }, desaturate: function() { return this._applyModification(desaturate, arguments); }, saturate: function() { return this._applyModification(saturate, arguments); }, greyscale: function() { return this._applyModification(greyscale, arguments); }, spin: function() { return this._applyModification(spin, arguments); }, _applyCombination: function(fn, args) { return fn.apply(null, [this].concat([].slice.call(args))); }, analogous: function() { return this._applyCombination(analogous, arguments); }, complement: function() { return this._applyCombination(complement, arguments); }, monochromatic: function() { return this._applyCombination(monochromatic, arguments); }, splitcomplement: function() { return this._applyCombination(splitcomplement, arguments); }, triad: function() { return this._applyCombination(triad, arguments); }, tetrad: function() { return this._applyCombination(tetrad, arguments); } }; // If input is an object, force 1 into "1.0" to handle ratios properly // String input requires "1.0" as input, so 1 will be treated as 1 tinycolor.fromRatio = function(color, opts) { if (typeof color == "object") { var newColor = {}; for (var i in color) { if (color.hasOwnProperty(i)) { if (i === "a") { newColor[i] = color[i]; } else { newColor[i] = convertToPercentage(color[i]); } } } color = newColor; } return tinycolor(color, opts); }; // Given a string or object, convert that input to RGB // Possible string inputs: // // "red" // "#f00" or "f00" // "#ff0000" or "ff0000" // "#ff000000" or "ff000000" // "rgb 255 0 0" or "rgb (255, 0, 0)" // "rgb 1.0 0 0" or "rgb (1, 0, 0)" // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" // function inputToRGB(color) { var rgb = { r: 0, g: 0, b: 0 }; var a = 1; var s = null; var v = null; var l = null; var ok = false; var format = false; if (typeof color == "string") { color = stringInputToObject(color); } if (typeof color == "object") { if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { rgb = rgbToRgb(color.r, color.g, color.b); ok = true; format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { s = convertToPercentage(color.s); v = convertToPercentage(color.v); rgb = hsvToRgb(color.h, s, v); ok = true; format = "hsv"; } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { s = convertToPercentage(color.s); l = convertToPercentage(color.l); rgb = hslToRgb(color.h, s, l); ok = true; format = "hsl"; } if (color.hasOwnProperty("a")) { a = color.a; } } a = boundAlpha(a); return { ok: ok, format: color.format || format, r: mathMin(255, mathMax(rgb.r, 0)), g: mathMin(255, mathMax(rgb.g, 0)), b: mathMin(255, mathMax(rgb.b, 0)), a: a }; } // Conversion Functions // -------------------- // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript> // `rgbToRgb` // Handle bounds / percentage checking to conform to CSS color spec // <http://www.w3.org/TR/css3-color/> // *Assumes:* r, g, b in [0, 255] or [0, 1] // *Returns:* { r, g, b } in [0, 255] function rgbToRgb(r, g, b){ return { r: bound01(r, 255) * 255, g: bound01(g, 255) * 255, b: bound01(b, 255) * 255 }; } // `rgbToHsl` // Converts an RGB color value to HSL. // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] // *Returns:* { h, s, l } in [0,1] function rgbToHsl(r, g, b) { r = bound01(r, 255); g = bound01(g, 255); b = bound01(b, 255); var max = mathMax(r, g, b), min = mathMin(r, g, b); var h, s, l = (max + min) / 2; if(max == min) { h = s = 0; // achromatic } else { var d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch(max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return { h: h, s: s, l: l }; } // `hslToRgb` // Converts an HSL color value to RGB. // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] // *Returns:* { r, g, b } in the set [0, 255] function hslToRgb(h, s, l) { var r, g, b; h = bound01(h, 360); s = bound01(s, 100); l = bound01(l, 100); function hue2rgb(p, q, t) { if(t < 0) t += 1; if(t > 1) t -= 1; if(t < 1/6) return p + (q - p) * 6 * t; if(t < 1/2) return q; if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; return p; } if(s === 0) { r = g = b = l; // achromatic } else { var q = l < 0.5 ? l * (1 + s) : l + s - l * s; var p = 2 * l - q; r = hue2rgb(p, q, h + 1/3); g = hue2rgb(p, q, h); b = hue2rgb(p, q, h - 1/3); } return { r: r * 255, g: g * 255, b: b * 255 }; } // `rgbToHsv` // Converts an RGB color value to HSV // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] // *Returns:* { h, s, v } in [0,1] function rgbToHsv(r, g, b) { r = bound01(r, 255); g = bound01(g, 255); b = bound01(b, 255); var max = mathMax(r, g, b), min = mathMin(r, g, b); var h, s, v = max; var d = max - min; s = max === 0 ? 0 : d / max; if(max == min) { h = 0; // achromatic } else { switch(max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return { h: h, s: s, v: v }; } // `hsvToRgb` // Converts an HSV color value to RGB. // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] // *Returns:* { r, g, b } in the set [0, 255] function hsvToRgb(h, s, v) { h = bound01(h, 360) * 6; s = bound01(s, 100); v = bound01(v, 100); var i = Math.floor(h), f = h - i, p = v * (1 - s), q = v * (1 - f * s), t = v * (1 - (1 - f) * s), mod = i % 6, r = [v, q, p, p, t, v][mod], g = [t, v, v, q, p, p][mod], b = [p, p, t, v, v, q][mod]; return { r: r * 255, g: g * 255, b: b * 255 }; } // `rgbToHex` // Converts an RGB color to hex // Assumes r, g, and b are contained in the set [0, 255] // Returns a 3 or 6 character hex function rgbToHex(r, g, b, allow3Char) { var hex = [ pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16)) ]; // Return a 3 character hex if possible if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); } return hex.join(""); } // `rgbaToHex` // Converts an RGBA color plus alpha transparency to hex // Assumes r, g, b are contained in the set [0, 255] and // a in [0, 1]. Returns a 4 or 8 character rgba hex function rgbaToHex(r, g, b, a, allow4Char) { var hex = [ pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16)), pad2(convertDecimalToHex(a)) ]; // Return a 4 character hex if possible if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); } return hex.join(""); } // `rgbaToArgbHex` // Converts an RGBA color to an ARGB Hex8 string // Rarely used, but required for "toFilter()" function rgbaToArgbHex(r, g, b, a) { var hex = [ pad2(convertDecimalToHex(a)), pad2(mathRound(r).toString(16)), pad2(mathRound(g).toString(16)), pad2(mathRound(b).toString(16)) ]; return hex.join(""); } // `equals` // Can be called with any tinycolor input tinycolor.equals = function (color1, color2) { if (!color1 || !color2) { return false; } return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); }; tinycolor.random = function() { return tinycolor.fromRatio({ r: mathRandom(), g: mathRandom(), b: mathRandom() }); }; // Modification Functions // ---------------------- // Thanks to less.js for some of the basics here // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js> function desaturate(color, amount) { amount = (amount === 0) ? 0 : (amount || 10); var hsl = tinycolor(color).toHsl(); hsl.s -= amount / 100; hsl.s = clamp01(hsl.s); return tinycolor(hsl); } function saturate(color, amount) { amount = (amount === 0) ? 0 : (amount || 10); var hsl = tinycolor(color).toHsl(); hsl.s += amount / 100; hsl.s = clamp01(hsl.s); return tinycolor(hsl); } function greyscale(color) { return tinycolor(color).desaturate(100); } function lighten (color, amount) { amount = (amount === 0) ? 0 : (amount || 10); var hsl = tinycolor(color).toHsl(); hsl.l += amount / 100; hsl.l = clamp01(hsl.l); return tinycolor(hsl); } function brighten(color, amount) { amount = (amount === 0) ? 0 : (amount || 10); var rgb = tinycolor(color).toRgb(); rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); return tinycolor(rgb); } function darken (color, amount) { amount = (amount === 0) ? 0 : (amount || 10); var hsl = tinycolor(color).toHsl(); hsl.l -= amount / 100; hsl.l = clamp01(hsl.l); return tinycolor(hsl); } // Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. // Values outside of this range will be wrapped into this range. function spin(color, amount) { var hsl = tinycolor(color).toHsl(); var hue = (hsl.h + amount) % 360; hsl.h = hue < 0 ? 360 + hue : hue; return tinycolor(hsl); } // Combination Functions // --------------------- // Thanks to jQuery xColor for some of the ideas behind these // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js> function complement(color) { var hsl = tinycolor(color).toHsl(); hsl.h = (hsl.h + 180) % 360; return tinycolor(hsl); } function triad(color) { var hsl = tinycolor(color).toHsl(); var h = hsl.h; return [ tinycolor(color), tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) ]; } function tetrad(color) { var hsl = tinycolor(color).toHsl(); var h = hsl.h; return [ tinycolor(color), tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) ]; } function splitcomplement(color) { var hsl = tinycolor(color).toHsl(); var h = hsl.h; return [ tinycolor(color), tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) ]; } function analogous(color, results, slices) { results = results || 6; slices = slices || 30; var hsl = tinycolor(color).toHsl(); var part = 360 / slices; var ret = [tinycolor(color)]; for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { hsl.h = (hsl.h + part) % 360; ret.push(tinycolor(hsl)); } return ret; } function monochromatic(color, results) { results = results || 6; var hsv = tinycolor(color).toHsv(); var h = hsv.h, s = hsv.s, v = hsv.v; var ret = []; var modification = 1 / results; while (results--) { ret.push(tinycolor({ h: h, s: s, v: v})); v = (v + modification) % 1; } return ret; } // Utility Functions // --------------------- tinycolor.mix = function(color1, color2, amount) { amount = (amount === 0) ? 0 : (amount || 50); var rgb1 = tinycolor(color1).toRgb(); var rgb2 = tinycolor(color2).toRgb(); var p = amount / 100; var rgba = { r: ((rgb2.r - rgb1.r) * p) + rgb1.r, g: ((rgb2.g - rgb1.g) * p) + rgb1.g, b: ((rgb2.b - rgb1.b) * p) + rgb1.b, a: ((rgb2.a - rgb1.a) * p) + rgb1.a }; return tinycolor(rgba); }; // Readability Functions // --------------------- // <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2) // `contrast` // Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2) tinycolor.readability = function(color1, color2) { var c1 = tinycolor(color1); var c2 = tinycolor(color2); return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05); }; // `isReadable` // Ensure that foreground and background color combinations meet WCAG2 guidelines. // The third argument is an optional Object. // the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA'; // the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'. // If the entire object is absent, isReadable defaults to {level:"AA",size:"small"}. // *Example* // tinycolor.isReadable("#000", "#111") => false // tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false tinycolor.isReadable = function(color1, color2, wcag2) { var readability = tinycolor.readability(color1, color2); var wcag2Parms, out; out = false; wcag2Parms = validateWCAG2Parms(wcag2); switch (wcag2Parms.level + wcag2Parms.size) { case "AAsmall": case "AAAlarge": out = readability >= 4.5; break; case "AAlarge": out = readability >= 3; break; case "AAAsmall": out = readability >= 7; break; } return out; }; // `mostReadable` // Given a base color and a list of possible foreground or background // colors for that base, returns the most readable color. // Optionally returns Black or White if the most readable color is unreadable. // *Example* // tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" // tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" // tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" // tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" tinycolor.mostReadable = function(baseColor, colorList, args) { var bestColor = null; var bestScore = 0; var readability; var includeFallbackColors, level, size ; args = args || {}; includeFallbackColors = args.includeFallbackColors ; level = args.level; size = args.size; for (var i= 0; i < colorList.length ; i++) { readability = tinycolor.readability(baseColor, colorList[i]); if (readability > bestScore) { bestScore = readability; bestColor = tinycolor(colorList[i]); } } if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) { return bestColor; } else { args.includeFallbackColors=false; return tinycolor.mostReadable(baseColor,["#fff", "#000"],args); } }; // Big List of Colors // ------------------ // <http://www.w3.org/TR/css3-color/#svg-color> var names = tinycolor.names = { aliceblue: "f0f8ff", antiquewhite: "faebd7", aqua: "0ff", aquamarine: "7fffd4", azure: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "000", blanchedalmond: "ffebcd", blue: "00f", blueviolet: "8a2be2", brown: "a52a2a", burlywood: "deb887", burntsienna: "ea7e5d", cadetblue: "5f9ea0", chartreuse: "7fff00", chocolate: "d2691e", coral: "ff7f50", cornflowerblue: "6495ed", cornsilk: "fff8dc", crimson: "dc143c", cyan: "0ff", darkblue: "00008b", darkcyan: "008b8b", darkgoldenrod: "b8860b", darkgray: "a9a9a9", darkgreen: "006400", darkgrey: "a9a9a9", darkkhaki: "bdb76b", darkmagenta: "8b008b", darkolivegreen: "556b2f", darkorange: "ff8c00", darkorchid: "9932cc", darkred: "8b0000", darksalmon: "e9967a", darkseagreen: "8fbc8f", darkslateblue: "483d8b", darkslategray: "2f4f4f", darkslategrey: "2f4f4f", darkturquoise: "00ced1", darkviolet: "9400d3", deeppink: "ff1493", deepskyblue: "00bfff", dimgray: "696969", dimgrey: "696969", dodgerblue: "1e90ff", firebrick: "b22222", floralwhite: "fffaf0", forestgreen: "228b22", fuchsia: "f0f", gainsboro: "dcdcdc", ghostwhite: "f8f8ff", gold: "ffd700", goldenrod: "daa520", gray: "808080", green: "008000", greenyellow: "adff2f", grey: "808080", honeydew: "f0fff0", hotpink: "ff69b4", indianred: "cd5c5c", indigo: "4b0082", ivory: "fffff0", khaki: "f0e68c", lavender: "e6e6fa", lavenderblush: "fff0f5", lawngreen: "7cfc00", lemonchiffon: "fffacd", lightblue: "add8e6", lightcoral: "f08080", lightcyan: "e0ffff", lightgoldenrodyellow: "fafad2", lightgray: "d3d3d3", lightgreen: "90ee90", lightgrey: "d3d3d3", lightpink: "ffb6c1", lightsalmon: "ffa07a", lightseagreen: "20b2aa", lightskyblue: "87cefa", lightslategray: "789", lightslategrey: "789", lightsteelblue: "b0c4de", lightyellow: "ffffe0", lime: "0f0", limegreen: "32cd32", linen: "faf0e6", magenta: "f0f", maroon: "800000", mediumaquamarine: "66cdaa", mediumblue: "0000cd", mediumorchid: "ba55d3", mediumpurple: "9370db", mediumseagreen: "3cb371", mediumslateblue: "7b68ee", mediumspringgreen: "00fa9a", mediumturquoise: "48d1cc", mediumvioletred: "c71585", midnightblue: "191970", mintcream: "f5fffa", mistyrose: "ffe4e1", moccasin: "ffe4b5", navajowhite: "ffdead", navy: "000080", oldlace: "fdf5e6", olive: "808000", olivedrab: "6b8e23", orange: "ffa500", orangered: "ff4500", orchid: "da70d6", palegoldenrod: "eee8aa", palegreen: "98fb98", paleturquoise: "afeeee", palevioletred: "db7093", papayawhip: "ffefd5", peachpuff: "ffdab9", peru: "cd853f", pink: "ffc0cb", plum: "dda0dd", powderblue: "b0e0e6", purple: "800080", rebeccapurple: "663399", red: "f00", rosybrown: "bc8f8f", royalblue: "4169e1", saddlebrown: "8b4513", salmon: "fa8072", sandybrown: "f4a460", seagreen: "2e8b57", seashell: "fff5ee", sienna: "a0522d", silver: "c0c0c0", skyblue: "87ceeb", slateblue: "6a5acd", slategray: "708090", slategrey: "708090", snow: "fffafa", springgreen: "00ff7f", steelblue: "4682b4", tan: "d2b48c", teal: "008080", thistle: "d8bfd8", tomato: "ff6347", turquoise: "40e0d0", violet: "ee82ee", wheat: "f5deb3", white: "fff", whitesmoke: "f5f5f5", yellow: "ff0", yellowgreen: "9acd32" }; // Make it easy to access colors via `hexNames[hex]` var hexNames = tinycolor.hexNames = flip(names); // Utilities // --------- // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` function flip(o) { var flipped = { }; for (var i in o) { if (o.hasOwnProperty(i)) { flipped[o[i]] = i; } } return flipped; } // Return a valid alpha value [0,1] with all invalid values being set to 1 function boundAlpha(a) { a = parseFloat(a); if (isNaN(a) || a < 0 || a > 1) { a = 1; } return a; } // Take input from [0, n] and return it as [0, 1] function bound01(n, max) { if (isOnePointZero(n)) { n = "100%"; } var processPercent = isPercentage(n); n = mathMin(max, mathMax(0, parseFloat(n))); // Automatically convert percentage into number if (processPercent) { n = parseInt(n * max, 10) / 100; } // Handle floating point rounding errors if ((Math.abs(n - max) < 0.000001)) { return 1; } // Convert into [0, 1] range if it isn't already return (n % max) / parseFloat(max); } // Force a number between 0 and 1 function clamp01(val) { return mathMin(1, mathMax(0, val)); } // Parse a base-16 hex value into a base-10 integer function parseIntFromHex(val) { return parseInt(val, 16); } // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0> function isOnePointZero(n) { return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; } // Check to see if string passed in is a percentage function isPercentage(n) { return typeof n === "string" && n.indexOf('%') != -1; } // Force a hex value to have 2 characters function pad2(c) { return c.length == 1 ? '0' + c : '' + c; } // Replace a decimal with it's percentage value function convertToPercentage(n) { if (n <= 1) { n = (n * 100) + "%"; } return n; } // Converts a decimal to a hex value function convertDecimalToHex(d) { return Math.round(parseFloat(d) * 255).toString(16); } // Converts a hex value to a decimal function convertHexToDecimal(h) { return (parseIntFromHex(h) / 255); } var matchers = (function() { // <http://www.w3.org/TR/css3-values/#integers> var CSS_INTEGER = "[-\\+]?\\d+%?"; // <http://www.w3.org/TR/css3-values/#number-value> var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; // Actual matching. // Parentheses and commas are optional, but not required. // Whitespace can take the place of commas or opening paren var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; return { CSS_UNIT: new RegExp(CSS_UNIT), rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ }; })(); // `isValidCSSUnit` // Take in a single string / number and check to see if it looks like a CSS unit // (see `matchers` above for definition). function isValidCSSUnit(color) { return !!matchers.CSS_UNIT.exec(color); } // `stringInputToObject` // Permissive string parsing. Take in a number of formats, and output an object // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` function stringInputToObject(color) { color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase(); var named = false; if (names[color]) { color = names[color]; named = true; } else if (color == 'transparent') { return { r: 0, g: 0, b: 0, a: 0, format: "name" }; } // Try to match string input using regular expressions. // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] // Just return an object and let the conversion functions handle that. // This way the result will be the same whether the tinycolor is initialized with string or object. var match; if ((match = matchers.rgb.exec(color))) { return { r: match[1], g: match[2], b: match[3] }; } if ((match = matchers.rgba.exec(color))) { return { r: match[1], g: match[2], b: match[3], a: match[4] }; } if ((match = matchers.hsl.exec(color))) { return { h: match[1], s: match[2], l: match[3] }; } if ((match = matchers.hsla.exec(color))) { return { h: match[1], s: match[2], l: match[3], a: match[4] }; } if ((match = matchers.hsv.exec(color))) { return { h: match[1], s: match[2], v: match[3] }; } if ((match = matchers.hsva.exec(color))) { return { h: match[1], s: match[2], v: match[3], a: match[4] }; } if ((match = matchers.hex8.exec(color))) { return { r: parseIntFromHex(match[1]), g: parseIntFromHex(match[2]), b: parseIntFromHex(match[3]), a: convertHexToDecimal(match[4]), format: named ? "name" : "hex8" }; } if ((match = matchers.hex6.exec(color))) { return { r: parseIntFromHex(match[1]), g: parseIntFromHex(match[2]), b: parseIntFromHex(match[3]), format: named ? "name" : "hex" }; } if ((match = matchers.hex4.exec(color))) { return { r: parseIntFromHex(match[1] + '' + match[1]), g: parseIntFromHex(match[2] + '' + match[2]), b: parseIntFromHex(match[3] + '' + match[3]), a: convertHexToDecimal(match[4] + '' + match[4]), format: named ? "name" : "hex8" }; } if ((match = matchers.hex3.exec(color))) { return { r: parseIntFromHex(match[1] + '' + match[1]), g: parseIntFromHex(match[2] + '' + match[2]), b: parseIntFromHex(match[3] + '' + match[3]), format: named ? "name" : "hex" }; } return false; } function validateWCAG2Parms(parms) { // return valid WCAG2 parms for isReadable. // If input parms are invalid, return {"level":"AA", "size":"small"} var level, size; parms = parms || {"level":"AA", "size":"small"}; level = (parms.level || "AA").toUpperCase(); size = (parms.size || "small").toLowerCase(); if (level !== "AA" && level !== "AAA") { level = "AA"; } if (size !== "small" && size !== "large") { size = "small"; } return {"level":level, "size":size}; } // Node: Export function if ( true && module.exports) { module.exports = tinycolor; } // AMD/requirejs: Define the module else if (true) { !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } // Browser: Expose to window else {} })(Math); /***/ }), /* 705 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); var _DEFAULT_BREAKPOINTS_, _LARGER_BREAKPOINTS_C, _LARGER_BREAKPOINTS_W; Object.defineProperty(exports, "__esModule", { value: true }); exports.LARGER_BREAKPOINTS_WORDING = exports.LARGER_BREAKPOINTS_CONFIG = exports.DEFAULT_BREAKPOINTS_CONFIG = void 0; var _breakpointIds = __webpack_require__(349); /* * Data used to store breakpoints in the backend. */ var DEFAULT_BREAKPOINTS_CONFIG = (_DEFAULT_BREAKPOINTS_ = {}, (0, _defineProperty2["default"])(_DEFAULT_BREAKPOINTS_, _breakpointIds.BREAKPOINT_ID_MAIN, { maxWidth: 10000 }), (0, _defineProperty2["default"])(_DEFAULT_BREAKPOINTS_, _breakpointIds.BREAKPOINT_ID_MEDIUM, { maxWidth: 991 }), (0, _defineProperty2["default"])(_DEFAULT_BREAKPOINTS_, _breakpointIds.BREAKPOINT_ID_SMALL, { maxWidth: 767 }), (0, _defineProperty2["default"])(_DEFAULT_BREAKPOINTS_, _breakpointIds.BREAKPOINT_ID_TINY, { maxWidth: 479 }), _DEFAULT_BREAKPOINTS_); exports.DEFAULT_BREAKPOINTS_CONFIG = DEFAULT_BREAKPOINTS_CONFIG; var LARGER_BREAKPOINTS_CONFIG = (_LARGER_BREAKPOINTS_C = {}, (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_MAIN, { maxWidth: 10000 }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_XXL, { minWidth: 1920 }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_XL, { minWidth: 1440 }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_LARGE, { minWidth: 1280 }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_MEDIUM, { maxWidth: 991 }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_SMALL, { maxWidth: 767 }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_C, _breakpointIds.BREAKPOINT_ID_TINY, { maxWidth: 479 }), _LARGER_BREAKPOINTS_C); /* * Strings used to describe breakpoints in the UI and co. */ exports.LARGER_BREAKPOINTS_CONFIG = LARGER_BREAKPOINTS_CONFIG; var LARGER_BREAKPOINTS_WORDING = (_LARGER_BREAKPOINTS_W = {}, (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_XXL, { label: '1920px and up', description: null, copy: 'Styles added here will apply at 1920px and up.' }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_XL, { label: '1440px and up', description: null, copy: 'Styles added here will apply at 1440px and up, unless they’re edited at a larger breakpoint.' }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_LARGE, { label: '1280px and up', description: null, copy: 'Styles added here will apply at 1280px and up, unless they’re edited at a larger breakpoint.' }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_MAIN, { label: 'Desktop', description: 'Base breakpoint', copy: 'Desktop styles apply at all breakpoints, unless they’re edited at a larger or smaller breakpoint. Start your styling here.' }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_MEDIUM, { label: 'Tablet', description: '991px and down', copy: 'Styles added here will apply at 991px and down, unless they’re edited at a smaller breakpoint.' }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_SMALL, { label: 'Mobile landscape', description: '767px and down', copy: 'Styles added here will apply at 767px and down, unless they’re edited at a smaller breakpoint.' }), (0, _defineProperty2["default"])(_LARGER_BREAKPOINTS_W, _breakpointIds.BREAKPOINT_ID_TINY, { label: 'Mobile portrait', description: '478px and down', copy: 'Styles added here will apply at 478px and down.' }), _LARGER_BREAKPOINTS_W); exports.LARGER_BREAKPOINTS_WORDING = LARGER_BREAKPOINTS_WORDING; /***/ }), /* 706 */ /***/ (function(module, exports, __webpack_require__) { var capitalize = __webpack_require__(707), createCompounder = __webpack_require__(715); /** * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the camel cased string. * @example * * _.camelCase('Foo Bar'); * // => 'fooBar' * * _.camelCase('--foo-bar--'); * // => 'fooBar' * * _.camelCase('__FOO_BAR__'); * // => 'fooBar' */ var camelCase = createCompounder(function(result, word, index) { word = word.toLowerCase(); return result + (index ? capitalize(word) : word); }); module.exports = camelCase; /***/ }), /* 707 */ /***/ (function(module, exports, __webpack_require__) { var toString = __webpack_require__(61), upperFirst = __webpack_require__(708); /** * Converts the first character of `string` to upper case and the remaining * to lower case. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to capitalize. * @returns {string} Returns the capitalized string. * @example * * _.capitalize('FRED'); * // => 'Fred' */ function capitalize(string) { return upperFirst(toString(string).toLowerCase()); } module.exports = capitalize; /***/ }), /* 708 */ /***/ (function(module, exports, __webpack_require__) { var createCaseFirst = __webpack_require__(709); /** * Converts the first character of `string` to upper case. * * @static * @memberOf _ * @since 4.0.0 * @category String * @param {string} [string=''] The string to convert. * @returns {string} Returns the converted string. * @example * * _.upperFirst('fred'); * // => 'Fred' * * _.upperFirst('FRED'); * // => 'FRED' */ var upperFirst = createCaseFirst('toUpperCase'); module.exports = upperFirst; /***/ }), /* 709 */ /***/ (function(module, exports, __webpack_require__) { var castSlice = __webpack_require__(710), hasUnicode = __webpack_require__(177), stringToArray = __webpack_require__(712), toString = __webpack_require__(61); /** * Creates a function like `_.lowerFirst`. * * @private * @param {string} methodName The name of the `String` case method to use. * @returns {Function} Returns the new case function. */ function createCaseFirst(methodName) { return function(string) { string = toString(string); var strSymbols = hasUnicode(string) ? stringToArray(string) : undefined; var chr = strSymbols ? strSymbols[0] : string.charAt(0); var trailing = strSymbols ? castSlice(strSymbols, 1).join('') : string.slice(1); return chr[methodName]() + trailing; }; } module.exports = createCaseFirst; /***/ }), /* 710 */ /***/ (function(module, exports, __webpack_require__) { var baseSlice = __webpack_require__(711); /** * Casts `array` to a slice if it's needed. * * @private * @param {Array} array The array to inspect. * @param {number} start The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the cast slice. */ function castSlice(array, start, end) { var length = array.length; end = end === undefined ? length : end; return (!start && end >= length) ? array : baseSlice(array, start, end); } module.exports = castSlice; /***/ }), /* 711 */ /***/ (function(module, exports) { /** * The base implementation of `_.slice` without an iteratee call guard. * * @private * @param {Array} array The array to slice. * @param {number} [start=0] The start position. * @param {number} [end=array.length] The end position. * @returns {Array} Returns the slice of `array`. */ function baseSlice(array, start, end) { var index = -1, length = array.length; if (start < 0) { start = -start > length ? 0 : (length + start); } end = end > length ? length : end; if (end < 0) { end += length; } length = start > end ? 0 : ((end - start) >>> 0); start >>>= 0; var result = Array(length); while (++index < length) { result[index] = array[index + start]; } return result; } module.exports = baseSlice; /***/ }), /* 712 */ /***/ (function(module, exports, __webpack_require__) { var asciiToArray = __webpack_require__(713), hasUnicode = __webpack_require__(177), unicodeToArray = __webpack_require__(714); /** * Converts `string` to an array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function stringToArray(string) { return hasUnicode(string) ? unicodeToArray(string) : asciiToArray(string); } module.exports = stringToArray; /***/ }), /* 713 */ /***/ (function(module, exports) { /** * Converts an ASCII `string` to an array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function asciiToArray(string) { return string.split(''); } module.exports = asciiToArray; /***/ }), /* 714 */ /***/ (function(module, exports) { /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = '\\ufe0e\\ufe0f'; /** Used to compose unicode capture groups. */ var rsAstral = '[' + rsAstralRange + ']', rsCombo = '[' + rsComboRange + ']', rsFitz = '\\ud83c[\\udffb-\\udfff]', rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', rsNonAstral = '[^' + rsAstralRange + ']', rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', rsZWJ = '\\u200d'; /** Used to compose unicode regexes. */ var reOptMod = rsModifier + '?', rsOptVar = '[' + rsVarRange + ']?', rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); /** * Converts a Unicode `string` to an array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the converted array. */ function unicodeToArray(string) { return string.match(reUnicode) || []; } module.exports = unicodeToArray; /***/ }), /* 715 */ /***/ (function(module, exports, __webpack_require__) { var arrayReduce = __webpack_require__(273), deburr = __webpack_require__(716), words = __webpack_require__(718); /** Used to compose unicode capture groups. */ var rsApos = "['\u2019]"; /** Used to match apostrophes. */ var reApos = RegExp(rsApos, 'g'); /** * Creates a function like `_.camelCase`. * * @private * @param {Function} callback The function to combine each word. * @returns {Function} Returns the new compounder function. */ function createCompounder(callback) { return function(string) { return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); }; } module.exports = createCompounder; /***/ }), /* 716 */ /***/ (function(module, exports, __webpack_require__) { var deburrLetter = __webpack_require__(717), toString = __webpack_require__(61); /** Used to match Latin Unicode letters (excluding mathematical operators). */ var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; /** Used to compose unicode character classes. */ var rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange; /** Used to compose unicode capture groups. */ var rsCombo = '[' + rsComboRange + ']'; /** * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). */ var reComboMark = RegExp(rsCombo, 'g'); /** * Deburrs `string` by converting * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) * letters to basic Latin letters and removing * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to deburr. * @returns {string} Returns the deburred string. * @example * * _.deburr('déjà vu'); * // => 'deja vu' */ function deburr(string) { string = toString(string); return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); } module.exports = deburr; /***/ }), /* 717 */ /***/ (function(module, exports, __webpack_require__) { var basePropertyOf = __webpack_require__(222); /** Used to map Latin Unicode letters to basic Latin letters. */ var deburredLetters = { // Latin-1 Supplement block. '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', '\xc7': 'C', '\xe7': 'c', '\xd0': 'D', '\xf0': 'd', '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', '\xd1': 'N', '\xf1': 'n', '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', '\xc6': 'Ae', '\xe6': 'ae', '\xde': 'Th', '\xfe': 'th', '\xdf': 'ss', // Latin Extended-A block. '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', '\u0134': 'J', '\u0135': 'j', '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', '\u0163': 't', '\u0165': 't', '\u0167': 't', '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', '\u0174': 'W', '\u0175': 'w', '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', '\u0132': 'IJ', '\u0133': 'ij', '\u0152': 'Oe', '\u0153': 'oe', '\u0149': "'n", '\u017f': 's' }; /** * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A * letters to basic Latin letters. * * @private * @param {string} letter The matched letter to deburr. * @returns {string} Returns the deburred letter. */ var deburrLetter = basePropertyOf(deburredLetters); module.exports = deburrLetter; /***/ }), /* 718 */ /***/ (function(module, exports, __webpack_require__) { var asciiWords = __webpack_require__(719), hasUnicodeWord = __webpack_require__(720), toString = __webpack_require__(61), unicodeWords = __webpack_require__(721); /** * Splits `string` into an array of its words. * * @static * @memberOf _ * @since 3.0.0 * @category String * @param {string} [string=''] The string to inspect. * @param {RegExp|string} [pattern] The pattern to match words. * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. * @returns {Array} Returns the words of `string`. * @example * * _.words('fred, barney, & pebbles'); * // => ['fred', 'barney', 'pebbles'] * * _.words('fred, barney, & pebbles', /[^, ]+/g); * // => ['fred', 'barney', '&', 'pebbles'] */ function words(string, pattern, guard) { string = toString(string); pattern = guard ? undefined : pattern; if (pattern === undefined) { return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); } return string.match(pattern) || []; } module.exports = words; /***/ }), /* 719 */ /***/ (function(module, exports) { /** Used to match words composed of alphanumeric characters. */ var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; /** * Splits an ASCII `string` into an array of its words. * * @private * @param {string} The string to inspect. * @returns {Array} Returns the words of `string`. */ function asciiWords(string) { return string.match(reAsciiWord) || []; } module.exports = asciiWords; /***/ }), /* 720 */ /***/ (function(module, exports) { /** Used to detect strings that need a more robust regexp to match words. */ var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; /** * Checks if `string` contains a word composed of Unicode symbols. * * @private * @param {string} string The string to inspect. * @returns {boolean} Returns `true` if a word is found, else `false`. */ function hasUnicodeWord(string) { return reHasUnicodeWord.test(string); } module.exports = hasUnicodeWord; /***/ }), /* 721 */ /***/ (function(module, exports) { /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = '\\u2700-\\u27bf', rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', rsPunctuationRange = '\\u2000-\\u206f', rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', rsVarRange = '\\ufe0e\\ufe0f', rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; /** Used to compose unicode capture groups. */ var rsApos = "['\u2019]", rsBreak = '[' + rsBreakRange + ']', rsCombo = '[' + rsComboRange + ']', rsDigits = '\\d+', rsDingbat = '[' + rsDingbatRange + ']', rsLower = '[' + rsLowerRange + ']', rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', rsFitz = '\\ud83c[\\udffb-\\udfff]', rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', rsNonAstral = '[^' + rsAstralRange + ']', rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', rsUpper = '[' + rsUpperRange + ']', rsZWJ = '\\u200d'; /** Used to compose unicode regexes. */ var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', reOptMod = rsModifier + '?', rsOptVar = '[' + rsVarRange + ']?', rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq; /** Used to match complex or compound words. */ var reUnicodeWord = RegExp([ rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, rsUpper + '+' + rsOptContrUpper, rsOrdUpper, rsOrdLower, rsDigits, rsEmoji ].join('|'), 'g'); /** * Splits a Unicode `string` into an array of its words. * * @private * @param {string} The string to inspect. * @returns {Array} Returns the words of `string`. */ function unicodeWords(string) { return string.match(reUnicodeWord) || []; } module.exports = unicodeWords; /***/ }), /* 722 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.COMMERCE_SKU_COLLECTION_SLUG = exports.COMMERCE_CART_ITEM_ID_ATTR = exports.COMMERCE_CART_PUBLISHED_SITE_ACTIONS = exports.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR = exports.CART_PRODUCT_ADDED_DEFAULT = exports.CART_PRODUCT_ADDED_KEYPATH = exports.CART_PRODUCT_ADDED_KEY = exports.CART_TYPE_DROPDOWN_ON_OPEN_KEY = exports.ALIGN_DEFAULT = exports.ALIGN_KEY = exports.CART_TYPE_KEY = exports.CHECKOUT_PLACE_ORDER_LOADING_TEXT_DEFAULT = exports.CHECKOUT_PLACE_ORDER_BUTTON_TEXT_DEFAULT = exports.CART_CHECKOUT_LOADING_TEXT_DEFAULT = exports.CART_CHECKOUT_BUTTON_TEXT_DEFAULT = exports.LOADING_TEXT_DEFAULT = exports.LOADING_TEXT = exports.HIDE_CART_COUNT_DEFAULT = exports.HIDE_CART_COUNT_KEY = exports.HIDE_CART_WHEN_EMPTY_DEFAULT = exports.HIDE_CART_WHEN_EMPTY_KEYPATH = exports.HIDE_CART_WHEN_EMPTY_KEY = exports.BILLING_ADDRESS_TOGGLE_DEFAULT = exports.BILLING_ADDRESS_TOGGLE_KEYPATH = exports.BILLING_ADDRESS_TOGGLE_KEY = exports.OPEN_STATE_DEFAULT = exports.OPEN_STATE_KEYPATH = exports.OPEN_STATE_KEY = exports.SHIPPING_METHODS_STATE = exports.CHECKOUT_STATE = exports.QUICK_CHECKOUT_STATE_KEYPATH = exports.QUICK_CHECKOUT_STATE = exports.CART_STATE = exports.STATE = exports.QUANTITY_ENABLED = exports.PREVIEW_ITEMS_KEYPATH = exports.PREVIEW_ITEMS_KEY = exports.PREVIEW_ITEMS_DEFAULT = exports.QUICK_CHECKOUT_AUTOMATION = exports.QUICK_CHECKOUT_STATES = exports.CART_COUNT_HIDE_RULES = exports.CART_TYPES = exports.CART_TYPE_DROPDOWN_ON_OPEN = exports.SHIPPING_METHODS_STATES = exports.CHECKOUT_STATES = exports.CART_STATES_AUTOMATION = exports.CART_STATES = exports.ADD_TO_CART_STATES = exports.NODE_TYPE_ADD_TO_CART_ERROR = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_BUTTON = exports.NODE_TYPE_COMMERCE_DOWNLOADS_BUTTON = exports.NODE_TYPE_COMMERCE_BUY_NOW_BUTTON = exports.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_INPUT = exports.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_FORM = exports.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_ERROR_STATE = exports.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER = exports.NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO = exports.NODE_TYPE_COMMERCE_CART_APPLE_PAY_BUTTON = exports.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_BUTTON = exports.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_ACTIONS = exports.NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER = exports.NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE = exports.NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON = exports.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX = exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_EMPTY_STATE = exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_LIST = exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER = exports.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER = exports.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_ZIP_FIELD = exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_ZIP_FIELD = exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER = exports.NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER = exports.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER = exports.NODE_NAME_COMMERCE_ADD_TO_CART_QUANTITY_INPUT = exports.NODE_TYPE_COMMERCE_CART_FORM = exports.NODE_TYPE_COMMERCE_CART_CHECKOUT_BUTTON = exports.NODE_TYPE_COMMERCE_CART_CONTAINER = exports.NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER = exports.NODE_TYPE_COMMERCE_CART_CLOSE_LINK = exports.NODE_TYPE_COMMERCE_CART_OPEN_LINK = exports.NODE_TYPE_COMMERCE_CART_WRAPPER = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT = exports.NODE_TYPE_COMMERCE_CART_ERROR = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR = exports.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM = exports.DATA_ATTR_SUBSCRIPTION_TEXT = exports.DATA_ATTR_DEFAULT_TEXT = exports.DATA_ATTR_PRESELECT_DEFAULT_VARIANT = exports.DATA_ATTR_COUNT_HIDE_RULE = exports.DATA_ATTR_OPEN_ON_HOVER = exports.DATA_ATTR_OPEN_PRODUCT = exports.DATA_ATTR_LOADING_TEXT = exports.DATA_ATTR_NODE_TYPE = exports.DATA_ATTR_COMMERCE_PRODUCT_ID = exports.DATA_ATTR_COMMERCE_OPTION_SET_ID = exports.DATA_ATTR_COMMERCE_PRODUCT_CURRENT_SKU_VALUES = exports.DATA_ATTR_COMMERCE_SKU_ID = void 0; exports.COMMERCE_DEFAULT_COPY = exports.SECTION_NAMES = exports.EASE_DEFAULT = exports.EASINGS = exports.STRIPE_ECOMMERCE_ACCOUNT_ID = exports.STRIPE_ECOMMERCE_KEY = exports.ORDER_QUERY = exports.getCartErrorMessageForType = exports.PAYPAL_BUTTON_ELEMENT_INSTANCE = exports.PAYPAL_ELEMENT_INSTANCE = exports.CART_QUERY = exports.CART_TYPE = exports.CART_OPEN = exports.CART_ERROR_MESSAGE_SELECTOR = exports.CART_ERROR_MESSAGE = exports.CART_CHECKOUT_ERROR_MESSAGE_SELECTOR = exports.CART_CHECKOUT_ERROR_MESSAGE = exports.CART_GENERAL_ERROR_MESSAGE = exports.REQUIRES_ACTION = exports.getCheckoutErrorMessageForType = exports.CHECKOUT_QUERY = exports.CHECKOUT_DISABLED_ERROR_MESSAGE = exports.getATCErrorMessageForType = exports.ADD_TO_CART_ERROR_MESSAGE = exports.CHANGE_CART_EVENT = exports.ADD_TO_CART_LOADING = exports.STRIPE_ELEMENT_STYLE = exports.STRIPE_ELEMENT_TYPE = exports.STRIPE_ELEMENT_INSTANCE = exports.REQUIRES_SHIPPING = exports.NEEDS_REFRESH = exports.RENDER_TREE_EVENT = exports.ORDER_TYPE = exports.CHECKOUT_BINDING_ROOT_QUERY_PATH = exports.symbolMap = exports.EDITABLE_STYLE_NAMES = exports.DATA_ATTR_PUBLISHABLE_KEY = exports.ANIMATION_DURATION_KEYPATH = exports.ANIMATION_DURATION_KEY = exports.ANIMATION_DURATION_DEFAULT = exports.DATA_ATTR_ANIMATION_DURATION = exports.ANIMATION_EASING_KEYPATH = exports.ANIMATION_EASING_KEY = exports.ANIMATION_EASING_DEFAULT = exports.DATA_ATTR_ANIMATION_EASING = exports.ADD_TO_CART_ERRORS = exports.CART_ERRORS = exports.CHECKOUT_ERRORS = exports.COMMERCE_ERROR_CATEGORY = exports.WF_TEMPLATE_TYPE = exports.WF_SKU_CONDITION_DATA_KEY = exports.WF_SKU_BINDING_DATA_KEY = exports.WF_TEMPLATE_ID_DATA_KEY = exports.WF_COLLECTION_DATA_KEY = exports.WF_CONDITION_DATA_KEY = exports.WF_BINDING_DATA_KEY = exports.DEFAULT_SKU_SLUG = exports.COMMERCE_PLUGIN_KEY = exports.COMMERCE_CATEGORY_COLLECTION_SLUG = exports.COMMERCE_PRODUCT_FIELD_SLUG = exports.COMMERCE_PRODUCT_COLLECTION_SLUG = exports.COMMERCE_SKU_FIELD_SLUG = void 0; var DATA_ATTR_COMMERCE_SKU_ID = 'data-commerce-sku-id'; exports.DATA_ATTR_COMMERCE_SKU_ID = DATA_ATTR_COMMERCE_SKU_ID; var DATA_ATTR_COMMERCE_PRODUCT_CURRENT_SKU_VALUES = 'data-commerce-product-sku-values'; exports.DATA_ATTR_COMMERCE_PRODUCT_CURRENT_SKU_VALUES = DATA_ATTR_COMMERCE_PRODUCT_CURRENT_SKU_VALUES; var DATA_ATTR_COMMERCE_OPTION_SET_ID = 'data-commerce-option-set-id'; exports.DATA_ATTR_COMMERCE_OPTION_SET_ID = DATA_ATTR_COMMERCE_OPTION_SET_ID; var DATA_ATTR_COMMERCE_PRODUCT_ID = 'data-commerce-product-id'; // @TODO - update the usage of these constants in PreviewUtils // our ideal solution would be doing this on a component level // RE: https://github.com/webflow/webflow/pull/15806#discussion_r169906866 exports.DATA_ATTR_COMMERCE_PRODUCT_ID = DATA_ATTR_COMMERCE_PRODUCT_ID; var DATA_ATTR_NODE_TYPE = 'data-node-type'; exports.DATA_ATTR_NODE_TYPE = DATA_ATTR_NODE_TYPE; var DATA_ATTR_LOADING_TEXT = 'data-loading-text'; exports.DATA_ATTR_LOADING_TEXT = DATA_ATTR_LOADING_TEXT; var DATA_ATTR_OPEN_PRODUCT = 'data-open-product'; exports.DATA_ATTR_OPEN_PRODUCT = DATA_ATTR_OPEN_PRODUCT; var DATA_ATTR_OPEN_ON_HOVER = 'data-open-on-hover'; exports.DATA_ATTR_OPEN_ON_HOVER = DATA_ATTR_OPEN_ON_HOVER; var DATA_ATTR_COUNT_HIDE_RULE = 'data-count-hide-rule'; exports.DATA_ATTR_COUNT_HIDE_RULE = DATA_ATTR_COUNT_HIDE_RULE; var DATA_ATTR_PRESELECT_DEFAULT_VARIANT = 'data-preselect-default-variant'; exports.DATA_ATTR_PRESELECT_DEFAULT_VARIANT = DATA_ATTR_PRESELECT_DEFAULT_VARIANT; var DATA_ATTR_DEFAULT_TEXT = 'data-default-text'; exports.DATA_ATTR_DEFAULT_TEXT = DATA_ATTR_DEFAULT_TEXT; var DATA_ATTR_SUBSCRIPTION_TEXT = 'data-subscription-text'; exports.DATA_ATTR_SUBSCRIPTION_TEXT = DATA_ATTR_SUBSCRIPTION_TEXT; var NODE_TYPE_COMMERCE_ADD_TO_CART_FORM = 'commerce-add-to-cart-form'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM = NODE_TYPE_COMMERCE_ADD_TO_CART_FORM; var NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR = 'commerce-add-to-cart-error'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR = NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR; var NODE_TYPE_COMMERCE_CART_ERROR = 'commerce-cart-error'; exports.NODE_TYPE_COMMERCE_CART_ERROR = NODE_TYPE_COMMERCE_CART_ERROR; var NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT = 'commerce-add-to-cart-option-select'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT = NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT; var NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST = 'commerce-add-to-cart-option-list'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST = NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST; var NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP = 'commerce-add-to-cart-pill-group'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP = NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP; var NODE_TYPE_COMMERCE_ADD_TO_CART_PILL = 'commerce-add-to-cart-pill'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL = NODE_TYPE_COMMERCE_ADD_TO_CART_PILL; var NODE_TYPE_COMMERCE_CART_WRAPPER = 'commerce-cart-wrapper'; exports.NODE_TYPE_COMMERCE_CART_WRAPPER = NODE_TYPE_COMMERCE_CART_WRAPPER; var NODE_TYPE_COMMERCE_CART_OPEN_LINK = 'commerce-cart-open-link'; exports.NODE_TYPE_COMMERCE_CART_OPEN_LINK = NODE_TYPE_COMMERCE_CART_OPEN_LINK; var NODE_TYPE_COMMERCE_CART_CLOSE_LINK = 'commerce-cart-close-link'; exports.NODE_TYPE_COMMERCE_CART_CLOSE_LINK = NODE_TYPE_COMMERCE_CART_CLOSE_LINK; var NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER = 'commerce-cart-container-wrapper'; exports.NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER = NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER; var NODE_TYPE_COMMERCE_CART_CONTAINER = 'commerce-cart-container'; exports.NODE_TYPE_COMMERCE_CART_CONTAINER = NODE_TYPE_COMMERCE_CART_CONTAINER; var NODE_TYPE_COMMERCE_CART_CHECKOUT_BUTTON = 'cart-checkout-button'; exports.NODE_TYPE_COMMERCE_CART_CHECKOUT_BUTTON = NODE_TYPE_COMMERCE_CART_CHECKOUT_BUTTON; var NODE_TYPE_COMMERCE_CART_FORM = 'commerce-cart-form'; exports.NODE_TYPE_COMMERCE_CART_FORM = NODE_TYPE_COMMERCE_CART_FORM; var NODE_NAME_COMMERCE_ADD_TO_CART_QUANTITY_INPUT = 'commerce-add-to-cart-quantity-input'; exports.NODE_NAME_COMMERCE_ADD_TO_CART_QUANTITY_INPUT = NODE_NAME_COMMERCE_ADD_TO_CART_QUANTITY_INPUT; var NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER = 'commerce-checkout-form-container'; exports.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER = NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER; var NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER = 'commerce-checkout-customer-info-wrapper'; exports.NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER = NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER; var NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER = 'commerce-checkout-shipping-address-wrapper'; exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER = NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER; var NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_ZIP_FIELD = 'commerce-checkout-shipping-zip-field'; exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_ZIP_FIELD = NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_ZIP_FIELD; var NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_ZIP_FIELD = 'commerce-checkout-billing-zip-field'; exports.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_ZIP_FIELD = NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_ZIP_FIELD; var NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER = 'commerce-checkout-billing-address-wrapper'; exports.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER = NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER; var NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER = 'commerce-checkout-shipping-methods-wrapper'; exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER = NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER; var NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_LIST = 'commerce-checkout-shipping-methods-list'; exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_LIST = NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_LIST; var NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_EMPTY_STATE = 'commerce-checkout-shipping-methods-empty-state'; exports.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_EMPTY_STATE = NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_EMPTY_STATE; var NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX = 'commerce-checkout-billing-address-toggle-checkbox'; exports.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX = NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX; var NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON = 'commerce-checkout-place-order-button'; exports.NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON = NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON; var NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE = 'commerce-checkout-error-state'; exports.NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE = NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE; var NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER = 'commerce-order-confirmation-wrapper'; exports.NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER = NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER; var NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_ACTIONS = 'commerce-cart-quick-checkout-actions'; exports.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_ACTIONS = NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_ACTIONS; var NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_BUTTON = 'commerce-cart-quick-checkout-button'; exports.NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_BUTTON = NODE_TYPE_COMMERCE_CART_QUICK_CHECKOUT_BUTTON; var NODE_TYPE_COMMERCE_CART_APPLE_PAY_BUTTON = 'commerce-cart-apple-pay-button'; exports.NODE_TYPE_COMMERCE_CART_APPLE_PAY_BUTTON = NODE_TYPE_COMMERCE_CART_APPLE_PAY_BUTTON; var NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO = 'commerce-checkout-additional-info'; exports.NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO = NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO; var NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER = 'commerce-paypal-checkout-form-container'; exports.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER = NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER; var NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_ERROR_STATE = 'commerce-checkout-error-state'; exports.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_ERROR_STATE = NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_ERROR_STATE; var NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_FORM = 'commerce-checkout-discount-form'; exports.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_FORM = NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_FORM; var NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_INPUT = 'commerce-checkout-discount-input'; exports.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_INPUT = NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_INPUT; var NODE_TYPE_COMMERCE_BUY_NOW_BUTTON = 'commerce-buy-now-button'; exports.NODE_TYPE_COMMERCE_BUY_NOW_BUTTON = NODE_TYPE_COMMERCE_BUY_NOW_BUTTON; var NODE_TYPE_COMMERCE_DOWNLOADS_BUTTON = 'commerce-downloads-button'; exports.NODE_TYPE_COMMERCE_DOWNLOADS_BUTTON = NODE_TYPE_COMMERCE_DOWNLOADS_BUTTON; var NODE_TYPE_COMMERCE_ADD_TO_CART_BUTTON = 'commerce-add-to-cart-button'; exports.NODE_TYPE_COMMERCE_ADD_TO_CART_BUTTON = NODE_TYPE_COMMERCE_ADD_TO_CART_BUTTON; var NODE_TYPE_ADD_TO_CART_ERROR = 'commerce-add-to-cart-error'; exports.NODE_TYPE_ADD_TO_CART_ERROR = NODE_TYPE_ADD_TO_CART_ERROR; var ADD_TO_CART_STATES = { DEFAULT: 'DEFAULT', OUT_OF_STOCK: 'OUT_OF_STOCK', ERROR: 'ERROR' }; exports.ADD_TO_CART_STATES = ADD_TO_CART_STATES; var CART_STATES = { DEFAULT: 'DEFAULT', EMPTY: 'EMPTY', ERROR: 'ERROR' }; exports.CART_STATES = CART_STATES; var CART_STATES_AUTOMATION = { DEFAULT: 'cart-default-button', EMPTY: 'cart-empty-button', ERROR: 'cart-error-button' }; exports.CART_STATES_AUTOMATION = CART_STATES_AUTOMATION; var CHECKOUT_STATES = { DEFAULT: 'DEFAULT', ERROR: 'ERROR' }; exports.CHECKOUT_STATES = CHECKOUT_STATES; var SHIPPING_METHODS_STATES = { DEFAULT: 'DEFAULT', EMPTY: 'EMPTY' }; exports.SHIPPING_METHODS_STATES = SHIPPING_METHODS_STATES; var CART_TYPE_DROPDOWN_ON_OPEN = { CLICK: 'CLICK', HOVER: 'HOVER' }; // Need to be in lower case to coincide with the keys in config.style.conditional // LEFT_DROPDOWN and RIGHT_DROPDOWN are no longer used in the Cart Types Enum // but are needed to keep the old logic in site modules file exports.CART_TYPE_DROPDOWN_ON_OPEN = CART_TYPE_DROPDOWN_ON_OPEN; var CART_TYPES = { MODAL: 'modal', LEFT_SIDEBAR: 'leftSidebar', RIGHT_SIDEBAR: 'rightSidebar', LEFT_DROPDOWN: 'leftDropdown', RIGHT_DROPDOWN: 'rightDropdown', DROPDOWN: 'dropdown' }; exports.CART_TYPES = CART_TYPES; var CART_COUNT_HIDE_RULES = { ALWAYS: 'always', EMPTY: 'empty' }; exports.CART_COUNT_HIDE_RULES = CART_COUNT_HIDE_RULES; var QUICK_CHECKOUT_STATES = { NONE: 'NONE', PAY_NOW: 'PAY_NOW', APPLE_PAY: 'APPLE_PAY' }; exports.QUICK_CHECKOUT_STATES = QUICK_CHECKOUT_STATES; var QUICK_CHECKOUT_AUTOMATION = { PAY_NOW: 'quick-checkout-default-button', APPLE_PAY: 'quick-checkout-apple-pay-button' }; exports.QUICK_CHECKOUT_AUTOMATION = QUICK_CHECKOUT_AUTOMATION; var PREVIEW_ITEMS_DEFAULT = 3; exports.PREVIEW_ITEMS_DEFAULT = PREVIEW_ITEMS_DEFAULT; var PREVIEW_ITEMS_KEY = 'previewItems'; exports.PREVIEW_ITEMS_KEY = PREVIEW_ITEMS_KEY; var PREVIEW_ITEMS_KEYPATH = ['data', 'temp', PREVIEW_ITEMS_KEY]; exports.PREVIEW_ITEMS_KEYPATH = PREVIEW_ITEMS_KEYPATH; var QUANTITY_ENABLED = 'quantityEnabled'; exports.QUANTITY_ENABLED = QUANTITY_ENABLED; var STATE = 'state'; exports.STATE = STATE; var CART_STATE = 'state'; exports.CART_STATE = CART_STATE; var QUICK_CHECKOUT_STATE = 'state'; exports.QUICK_CHECKOUT_STATE = QUICK_CHECKOUT_STATE; var QUICK_CHECKOUT_STATE_KEYPATH = ['data', 'temp', QUICK_CHECKOUT_STATE]; exports.QUICK_CHECKOUT_STATE_KEYPATH = QUICK_CHECKOUT_STATE_KEYPATH; var CHECKOUT_STATE = 'state'; exports.CHECKOUT_STATE = CHECKOUT_STATE; var SHIPPING_METHODS_STATE = 'shippingMethodsState'; exports.SHIPPING_METHODS_STATE = SHIPPING_METHODS_STATE; var OPEN_STATE_KEY = 'isOpen'; exports.OPEN_STATE_KEY = OPEN_STATE_KEY; var OPEN_STATE_KEYPATH = ['data', 'temp', OPEN_STATE_KEY]; exports.OPEN_STATE_KEYPATH = OPEN_STATE_KEYPATH; var OPEN_STATE_DEFAULT = false; exports.OPEN_STATE_DEFAULT = OPEN_STATE_DEFAULT; var BILLING_ADDRESS_TOGGLE_KEY = 'isBillingAddressOpen'; exports.BILLING_ADDRESS_TOGGLE_KEY = BILLING_ADDRESS_TOGGLE_KEY; var BILLING_ADDRESS_TOGGLE_KEYPATH = ['data', 'temp', BILLING_ADDRESS_TOGGLE_KEY]; exports.BILLING_ADDRESS_TOGGLE_KEYPATH = BILLING_ADDRESS_TOGGLE_KEYPATH; var BILLING_ADDRESS_TOGGLE_DEFAULT = true; exports.BILLING_ADDRESS_TOGGLE_DEFAULT = BILLING_ADDRESS_TOGGLE_DEFAULT; var HIDE_CART_WHEN_EMPTY_KEY = 'hideCartWhenEmpty'; exports.HIDE_CART_WHEN_EMPTY_KEY = HIDE_CART_WHEN_EMPTY_KEY; var HIDE_CART_WHEN_EMPTY_KEYPATH = ['data', 'commerce', HIDE_CART_WHEN_EMPTY_KEY]; exports.HIDE_CART_WHEN_EMPTY_KEYPATH = HIDE_CART_WHEN_EMPTY_KEYPATH; var HIDE_CART_WHEN_EMPTY_DEFAULT = false; exports.HIDE_CART_WHEN_EMPTY_DEFAULT = HIDE_CART_WHEN_EMPTY_DEFAULT; var HIDE_CART_COUNT_KEY = 'hideCartCount'; exports.HIDE_CART_COUNT_KEY = HIDE_CART_COUNT_KEY; var HIDE_CART_COUNT_DEFAULT = false; exports.HIDE_CART_COUNT_DEFAULT = HIDE_CART_COUNT_DEFAULT; var LOADING_TEXT = 'loadingText'; exports.LOADING_TEXT = LOADING_TEXT; var LOADING_TEXT_DEFAULT = 'Adding to cart...'; exports.LOADING_TEXT_DEFAULT = LOADING_TEXT_DEFAULT; var CART_CHECKOUT_BUTTON_TEXT_DEFAULT = 'Continue to Checkout'; exports.CART_CHECKOUT_BUTTON_TEXT_DEFAULT = CART_CHECKOUT_BUTTON_TEXT_DEFAULT; var CART_CHECKOUT_LOADING_TEXT_DEFAULT = 'Hang Tight...'; exports.CART_CHECKOUT_LOADING_TEXT_DEFAULT = CART_CHECKOUT_LOADING_TEXT_DEFAULT; var CHECKOUT_PLACE_ORDER_BUTTON_TEXT_DEFAULT = 'Place Order'; exports.CHECKOUT_PLACE_ORDER_BUTTON_TEXT_DEFAULT = CHECKOUT_PLACE_ORDER_BUTTON_TEXT_DEFAULT; var CHECKOUT_PLACE_ORDER_LOADING_TEXT_DEFAULT = 'Placing Order...'; exports.CHECKOUT_PLACE_ORDER_LOADING_TEXT_DEFAULT = CHECKOUT_PLACE_ORDER_LOADING_TEXT_DEFAULT; var CART_TYPE_KEY = 'cartType'; exports.CART_TYPE_KEY = CART_TYPE_KEY; var ALIGN_KEY = 'align'; exports.ALIGN_KEY = ALIGN_KEY; var ALIGN_DEFAULT = 'rightDropdown'; exports.ALIGN_DEFAULT = ALIGN_DEFAULT; var CART_TYPE_DROPDOWN_ON_OPEN_KEY = 'openOn'; exports.CART_TYPE_DROPDOWN_ON_OPEN_KEY = CART_TYPE_DROPDOWN_ON_OPEN_KEY; var CART_PRODUCT_ADDED_KEY = 'openWhenProductAdded'; exports.CART_PRODUCT_ADDED_KEY = CART_PRODUCT_ADDED_KEY; var CART_PRODUCT_ADDED_KEYPATH = ['data', 'commerce', CART_PRODUCT_ADDED_KEY]; exports.CART_PRODUCT_ADDED_KEYPATH = CART_PRODUCT_ADDED_KEYPATH; var CART_PRODUCT_ADDED_DEFAULT = true; exports.CART_PRODUCT_ADDED_DEFAULT = CART_PRODUCT_ADDED_DEFAULT; var COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR = 'data-wf-cart-action'; exports.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR = COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR; var COMMERCE_CART_PUBLISHED_SITE_ACTIONS = { UPDATE_ITEM_QUANTITY: 'update-item-quantity', REMOVE_ITEM: 'remove-item' }; exports.COMMERCE_CART_PUBLISHED_SITE_ACTIONS = COMMERCE_CART_PUBLISHED_SITE_ACTIONS; var COMMERCE_CART_ITEM_ID_ATTR = 'data-wf-item-id'; exports.COMMERCE_CART_ITEM_ID_ATTR = COMMERCE_CART_ITEM_ID_ATTR; var COMMERCE_SKU_COLLECTION_SLUG = 'sku'; exports.COMMERCE_SKU_COLLECTION_SLUG = COMMERCE_SKU_COLLECTION_SLUG; var COMMERCE_SKU_FIELD_SLUG = 'sku'; exports.COMMERCE_SKU_FIELD_SLUG = COMMERCE_SKU_FIELD_SLUG; var COMMERCE_PRODUCT_COLLECTION_SLUG = 'product'; exports.COMMERCE_PRODUCT_COLLECTION_SLUG = COMMERCE_PRODUCT_COLLECTION_SLUG; var COMMERCE_PRODUCT_FIELD_SLUG = 'product'; exports.COMMERCE_PRODUCT_FIELD_SLUG = COMMERCE_PRODUCT_FIELD_SLUG; var COMMERCE_CATEGORY_COLLECTION_SLUG = 'category'; exports.COMMERCE_CATEGORY_COLLECTION_SLUG = COMMERCE_CATEGORY_COLLECTION_SLUG; var COMMERCE_PLUGIN_KEY = 'ecommerce'; exports.COMMERCE_PLUGIN_KEY = COMMERCE_PLUGIN_KEY; var DEFAULT_SKU_SLUG = 'default-sku'; exports.DEFAULT_SKU_SLUG = DEFAULT_SKU_SLUG; var WF_BINDING_DATA_KEY = 'data-wf-bindings'; exports.WF_BINDING_DATA_KEY = WF_BINDING_DATA_KEY; var WF_CONDITION_DATA_KEY = 'data-wf-conditions'; exports.WF_CONDITION_DATA_KEY = WF_CONDITION_DATA_KEY; var WF_COLLECTION_DATA_KEY = 'data-wf-collection'; exports.WF_COLLECTION_DATA_KEY = WF_COLLECTION_DATA_KEY; var WF_TEMPLATE_ID_DATA_KEY = 'data-wf-template-id'; exports.WF_TEMPLATE_ID_DATA_KEY = WF_TEMPLATE_ID_DATA_KEY; var WF_SKU_BINDING_DATA_KEY = 'data-wf-sku-bindings'; exports.WF_SKU_BINDING_DATA_KEY = WF_SKU_BINDING_DATA_KEY; var WF_SKU_CONDITION_DATA_KEY = 'data-wf-sku-conditions'; exports.WF_SKU_CONDITION_DATA_KEY = WF_SKU_CONDITION_DATA_KEY; var WF_TEMPLATE_TYPE = 'text/x-wf-template'; exports.WF_TEMPLATE_TYPE = WF_TEMPLATE_TYPE; var INFO_ERR = 'INFO_ERROR'; var SHIPPING_ERR = 'SHIPPING_ERROR'; var BILLING_ERR = 'BILLING_ERROR'; var PAYMENT_ERR = 'PAYMENT_ERROR'; var PRICING_ERR = 'PRICING_ERROR'; var ORDER_MIN_ERR = 'ORDER_MINIMUM_ERROR'; var ORDER_EXTRAS_ERR = 'ORDER_EXTRAS_ERROR'; var PRODUCT_ERR = 'PRODUCT_ERROR'; var INVALID_DISCOUNT_ERR = 'INVALID_DISCOUNT_ERROR'; var EXPIRED_DISCOUNT_ERR = 'EXPIRED_DISCOUNT_ERROR'; var USAGE_REACHED_DISCOUNT_ERR = 'USAGE_REACHED_DISCOUNT_ERROR'; var REQUIREMENTS_NOT_MET_DISCOUNT_ERR = 'REQUIREMENTS_NOT_MET_DISCOUNT_ERROR'; var COMMERCE_ERROR_CATEGORY = { GENERAL: { id: 'GENERAL', label: 'General Errors' }, PRODUCT: { id: 'PRODUCT', label: 'Product Errors' }, BILLING: { id: 'BILLING', label: 'Billing Errors' }, DISCOUNT: { id: 'DISCOUNT', label: 'Discount Errors' }, SUBSCRIPTION: { id: 'SUBSCRIPTION', label: 'Subscription Errors' } }; // The keys for these errors need to be stable since they're used in checkoutUtils.js::updateErrorMessage exports.COMMERCE_ERROR_CATEGORY = COMMERCE_ERROR_CATEGORY; var CHECKOUT_ERRORS = { INFO: { id: INFO_ERR, name: 'General customer info error', category: COMMERCE_ERROR_CATEGORY.GENERAL, copy: 'There was an error processing your customer info. Please try again, or contact us if you continue to have problems.', path: ['data', 'commerce', INFO_ERR] }, SHIPPING: { id: SHIPPING_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Shipping not available', copy: 'Sorry. We can’t ship your order to the address provided.', path: ['data', 'commerce', SHIPPING_ERR] }, EXTRAS: { id: ORDER_EXTRAS_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Merchant setting changed', copy: 'A merchant setting has changed that impacts your cart. Please refresh and try again.', path: ['data', 'commerce', ORDER_EXTRAS_ERR], requiresRefresh: true }, PRICING: { id: PRICING_ERR, category: COMMERCE_ERROR_CATEGORY.PRODUCT, name: 'Product price changed', copy: 'The prices of one or more items in your cart have changed. Please refresh this page and try again.', path: ['data', 'commerce', PRICING_ERR], requiresRefresh: true }, PRODUCT: { id: PRODUCT_ERR, category: COMMERCE_ERROR_CATEGORY.PRODUCT, name: 'Product removed', copy: 'One or more of the products in your cart have been removed. Please refresh the page and try again.', path: ['data', 'commerce', PRODUCT_ERR], requiresRefresh: true }, PAYMENT: { id: PAYMENT_ERR, category: COMMERCE_ERROR_CATEGORY.BILLING, name: 'General payment error', copy: 'There was an error processing your payment. Please try again, or contact us if you continue to have problems.', path: ['data', 'commerce', PAYMENT_ERR] }, BILLING: { id: BILLING_ERR, category: COMMERCE_ERROR_CATEGORY.BILLING, name: 'Card declined', copy: 'Your payment could not be completed with the payment information provided. Please make sure that your card and billing address information is correct, or try a different payment card, to complete this order. Contact us if you continue to have problems.', path: ['data', 'commerce', BILLING_ERR] }, MINIMUM: { id: ORDER_MIN_ERR, category: COMMERCE_ERROR_CATEGORY.BILLING, name: 'Order minimum not met', copy: 'The order minimum was not met. Add more items to your cart to continue.', path: ['data', 'commerce', ORDER_MIN_ERR], note: { copy: "You can customize this message with the exact minimum based on your Stripe account's settlement currency.", cta: { copy: 'Go to Stripe docs', link: 'https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts' } } }, INVALID_DISCOUNT: { id: INVALID_DISCOUNT_ERR, category: COMMERCE_ERROR_CATEGORY.DISCOUNT, name: 'Invalid discount error', copy: 'This discount is invalid.', path: ['data', 'commerce', INVALID_DISCOUNT_ERR] }, EXPIRED_DISCOUNT: { id: EXPIRED_DISCOUNT_ERR, category: COMMERCE_ERROR_CATEGORY.DISCOUNT, name: 'Discount expired', copy: 'This discount is no longer available.', path: ['data', 'commerce', EXPIRED_DISCOUNT_ERR] }, USAGE_REACHED_DISCOUNT: { id: USAGE_REACHED_DISCOUNT_ERR, category: COMMERCE_ERROR_CATEGORY.DISCOUNT, name: 'Discount usage limit reached', copy: 'This discount is no longer available.', path: ['data', 'commerce', USAGE_REACHED_DISCOUNT_ERR] }, REQUIREMENTS_NOT_MET_DISCOUNT: { id: REQUIREMENTS_NOT_MET_DISCOUNT_ERR, category: COMMERCE_ERROR_CATEGORY.DISCOUNT, name: 'Discount requirements not met', copy: 'Your order does not meet the requirements for this discount.', path: ['data', 'commerce', REQUIREMENTS_NOT_MET_DISCOUNT_ERR] } }; exports.CHECKOUT_ERRORS = CHECKOUT_ERRORS; var QUANTITY_ERR = 'QUANTITY_ERROR'; var CHECKOUT_ERR = 'CHECKOUT_ERROR'; var GENERAL_ERR = 'GENERAL_ERROR'; var CART_ORDER_MIN_ERR = 'CART_ORDER_MIN_ERROR'; var SUBSCRIPTION_ERR = 'SUBSCRIPTION_ERR'; var CART_ERRORS = { QUANTITY: { id: QUANTITY_ERR, name: 'Quantity not available', category: COMMERCE_ERROR_CATEGORY.GENERAL, copy: 'Product is not available in this quantity.', path: ['data', 'commerce', QUANTITY_ERR] }, GENERAL: { id: GENERAL_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'General error', copy: 'Something went wrong when adding this item to the cart.', path: ['data', 'commerce', GENERAL_ERR] }, CHECKOUT: { id: CHECKOUT_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Checkout disabled', copy: 'Checkout is disabled on this site.', path: ['data', 'commerce', CHECKOUT_ERR] }, CART_ORDER_MIN: { id: CART_ORDER_MIN_ERR, category: COMMERCE_ERROR_CATEGORY.BILLING, name: 'Order minimum not met', copy: 'The order minimum was not met. Add more items to your cart to continue.', path: ['data', 'commerce', CART_ORDER_MIN_ERR] }, SUBSCRIPTION_ERROR: { id: SUBSCRIPTION_ERR, category: COMMERCE_ERROR_CATEGORY.SUBSCRIPTION, name: 'Subscription not verified', copy: 'Before you purchase, please use your email invite to verify your address so we can send order updates.', path: ['data', 'commerce', SUBSCRIPTION_ERR] } }; exports.CART_ERRORS = CART_ERRORS; var ADD_TO_CART_QUANTITY_ERR = 'ADD_TO_CART_QUANTITY_ERROR'; var ADD_TO_CART_GENERAL_ERR = 'ADD_TO_CART_GENERAL_ERROR'; var ADD_TO_CART_MIXED_ERR = 'ADD_TO_CART_MIXED_ERROR'; var ADD_TO_CART_ERRORS = { QUANTITY: { id: ADD_TO_CART_QUANTITY_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Quantity not available', copy: 'Product is not available in this quantity.', path: ['data', 'commerce', ADD_TO_CART_QUANTITY_ERR] }, GENERAL: { id: ADD_TO_CART_GENERAL_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Add to Cart error', copy: 'Something went wrong when adding this item to the cart.', path: ['data', 'commerce', ADD_TO_CART_GENERAL_ERR] }, MIXED_CART: { id: ADD_TO_CART_MIXED_ERR, category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Add to mixed Cart error', copy: 'You can’t purchase another product with a subscription.', beta: 'userSystems' }, BUY_NOW: { id: 'BUY_NOW_ERROR', category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Buy now error', copy: 'Something went wrong when trying to purchase this item.' }, CHECKOUT_DISABLED: { id: 'CHECKOUT_DISABLED_ERROR', category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Checkout disabled', copy: 'Checkout is disabled on this site.' }, SELECT_ALL_OPTIONS: { id: 'SELECT_ALL_OPTIONS', category: COMMERCE_ERROR_CATEGORY.GENERAL, name: 'Option selection required', copy: 'Please select an option in each set.', path: ['data', 'commerce', 'SELECT_ALL_OPTIONS'] } }; exports.ADD_TO_CART_ERRORS = ADD_TO_CART_ERRORS; var DATA_ATTR_ANIMATION_EASING = 'data-wf-cart-easing'; exports.DATA_ATTR_ANIMATION_EASING = DATA_ATTR_ANIMATION_EASING; var ANIMATION_EASING_DEFAULT = 'ease-out-quad'; exports.ANIMATION_EASING_DEFAULT = ANIMATION_EASING_DEFAULT; var ANIMATION_EASING_KEY = 'easingType'; exports.ANIMATION_EASING_KEY = ANIMATION_EASING_KEY; var ANIMATION_EASING_KEYPATH = ['data', 'commerce', ANIMATION_EASING_KEY]; exports.ANIMATION_EASING_KEYPATH = ANIMATION_EASING_KEYPATH; var DATA_ATTR_ANIMATION_DURATION = 'data-wf-cart-duration'; exports.DATA_ATTR_ANIMATION_DURATION = DATA_ATTR_ANIMATION_DURATION; var ANIMATION_DURATION_DEFAULT = 300; exports.ANIMATION_DURATION_DEFAULT = ANIMATION_DURATION_DEFAULT; var ANIMATION_DURATION_KEY = 'duration'; exports.ANIMATION_DURATION_KEY = ANIMATION_DURATION_KEY; var ANIMATION_DURATION_KEYPATH = ['data', 'commerce', ANIMATION_DURATION_KEY]; exports.ANIMATION_DURATION_KEYPATH = ANIMATION_DURATION_KEYPATH; var DATA_ATTR_PUBLISHABLE_KEY = 'data-publishable-key'; // this is all the styles that are immediately editable from the styles panel // this doesn't include stuff like grid specific sections, as we lock out `display` // and, assuming we don't have default display as grid, those sections wouldn't // be accessible in the first place. when we inevitably have a default grid style, // we can update this list exports.DATA_ATTR_PUBLISHABLE_KEY = DATA_ATTR_PUBLISHABLE_KEY; var EDITABLE_STYLE_NAMES = ['backgroundColor', 'backgroundSize', 'backgroundPosition', 'backgroundImage', 'backgroundRepeat', 'border', 'borderRadius', 'boxShadow', 'clear', 'color', 'cursor', 'direction', 'display', 'filter', 'float', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'height', 'lineHeight', 'letterSpacing', 'listStyleType', 'marginBottom', 'marginLeft', 'marginRight', 'marginTop', 'maxHeight', 'minHeight', 'maxWidth', 'minWidth', 'mixBlendMode', 'opacity', 'overflow', 'outlineColor', 'outlineOffset', 'outlineStyle', 'outlineWidth', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop', 'position', 'textAlign', 'textColumns', 'textDecoration', 'textIndent', 'textTransform', 'textShadow', 'transform', 'transition', 'whiteSpace', 'width']; exports.EDITABLE_STYLE_NAMES = EDITABLE_STYLE_NAMES; var symbolMap = { aed: 'د.Ø¥', afn: 'Ø‹', all: 'L', amd: 'Ö', ang: 'Æ’', aoa: 'Kz', ars: '$', aud: '$', awg: 'Æ’', azn: '₼', bam: 'KM', bbd: '$', bdt: 'à§³', bgn: 'лв', bhd: '.د.ب', bif: 'FBu', bmd: '$', bnd: '$', bob: '$b', brl: 'R$', bsd: '$', btc: '฿', btn: 'Nu.', bwp: 'P', byr: 'Br', byn: 'Br', bzd: 'BZ$', cad: '$', cdf: 'FC', chf: 'CHF', clp: '$', cny: 'Â¥', cop: '$', crc: 'â‚¡', cuc: '$', cup: '₱', cve: '$', czk: 'KÄ', djf: 'Fdj', dkk: 'kr', dop: 'RD$', dzd: 'دج', eek: 'kr', egp: '£', ern: 'Nfk', etb: 'Br', eth: 'Ξ', eur: '€', fjd: '$', fkp: '£', gbp: '£', gel: '₾', ggp: '£', ghc: '₵', ghs: 'GH₵', gip: '£', gmd: 'D', gnf: 'FG', gtq: 'Q', gyd: '$', hkd: '$', hnl: 'L', hrk: 'kn', htg: 'G', huf: 'Ft', idr: 'Rp', ils: '₪', imp: '£', inr: '₹', iqd: 'ع.د', irr: 'ï·¼', isk: 'kr', jep: '£', jmd: 'J$', jod: 'JD', jpy: 'Â¥', kes: 'KSh', kgs: 'лв', khr: '៛', kmf: 'CF', kpw: 'â‚©', krw: 'â‚©', kwd: 'KD', kyd: '$', kzt: 'лв', lak: 'â‚', lbp: '£', lkr: '₨', lrd: '$', lsl: 'M', ltc: 'Å', ltl: 'Lt', lvl: 'Ls', lyd: 'LD', mad: 'MAD', mdl: 'lei', mga: 'Ar', mkd: 'ден', mmk: 'K', mnt: 'â‚®', mop: 'MOP$', mro: 'UM', mru: 'UM', mur: '₨', mvr: 'Rf', mwk: 'MK', mxn: '$', myr: 'RM', mzn: 'MT', nad: '$', ngn: '₦', nio: 'C$', nok: 'kr', npr: '₨', nzd: '$', omr: 'ï·¼', pab: 'B/.', pen: 'S/.', pgk: 'K', php: '₱', pkr: '₨', pln: 'zÅ‚', pyg: 'Gs', qar: 'ï·¼', rmb: 'ï¿¥', ron: 'lei', rsd: 'Дин.', rub: '₽', rwf: 'Râ‚£', sar: 'ï·¼', sbd: '$', scr: '₨', sdg: 'ج.س.', sek: 'kr', sgd: '$', shp: '£', sll: 'Le', sos: 'S', srd: '$', ssp: '£', std: 'Db', stn: 'Db', svc: '$', syp: '£', szl: 'E', thb: '฿', tjs: 'SM', tmt: 'T', tnd: 'د.ت', top: 'T$', trl: '₤', "try": '₺', ttd: 'TT$', tvd: '$', twd: 'NT$', tzs: 'TSh', uah: 'â‚´', ugx: 'USh', usd: '$', uyu: '$U', uzs: 'лв', vef: 'Bs', vnd: 'â‚«', vuv: 'VT', wst: 'WS$', xaf: 'FCFA', xbt: 'Ƀ', xcd: '$', xof: 'CFA', xpf: 'â‚£', yer: 'ï·¼', zar: 'R', zwd: 'Z$' }; exports.symbolMap = symbolMap; var CHECKOUT_BINDING_ROOT_QUERY_PATH = ['database', 'commerceOrder']; exports.CHECKOUT_BINDING_ROOT_QUERY_PATH = CHECKOUT_BINDING_ROOT_QUERY_PATH; var ORDER_TYPE = { REQUIRE_SHIPPING: 'shipping', NO_SHIPPING: 'noShipping' }; // All of the below constants are pulled in to published site code // checkoutEvents exports.ORDER_TYPE = ORDER_TYPE; var RENDER_TREE_EVENT = 'wf-render-tree'; exports.RENDER_TREE_EVENT = RENDER_TREE_EVENT; var NEEDS_REFRESH = 'data-wf-needs-refresh'; exports.NEEDS_REFRESH = NEEDS_REFRESH; var REQUIRES_SHIPPING = 'data-wf-order-requires-shipping'; exports.REQUIRES_SHIPPING = REQUIRES_SHIPPING; var STRIPE_ELEMENT_INSTANCE = 'data-wf-stripe-element-instance'; exports.STRIPE_ELEMENT_INSTANCE = STRIPE_ELEMENT_INSTANCE; var STRIPE_ELEMENT_TYPE = 'data-wf-stripe-element-type'; exports.STRIPE_ELEMENT_TYPE = STRIPE_ELEMENT_TYPE; var STRIPE_ELEMENT_STYLE = 'data-wf-stripe-style'; // addToCartEvents exports.STRIPE_ELEMENT_STYLE = STRIPE_ELEMENT_STYLE; var ADD_TO_CART_LOADING = 'data-wf-atc-loading'; exports.ADD_TO_CART_LOADING = ADD_TO_CART_LOADING; var CHANGE_CART_EVENT = 'wf-change-cart-state'; exports.CHANGE_CART_EVENT = CHANGE_CART_EVENT; var ADD_TO_CART_ERROR_MESSAGE = '.w-add-to-cart-error-msg'; exports.ADD_TO_CART_ERROR_MESSAGE = ADD_TO_CART_ERROR_MESSAGE; var getATCErrorMessageForType = function getATCErrorMessageForType(errorType) { return "data-w-add-to-cart-".concat(errorType, "-error"); }; exports.getATCErrorMessageForType = getATCErrorMessageForType; var CHECKOUT_DISABLED_ERROR_MESSAGE = 'data-w-add-to-cart-checkout-disabled-error'; // checkoutUtils exports.CHECKOUT_DISABLED_ERROR_MESSAGE = CHECKOUT_DISABLED_ERROR_MESSAGE; var CHECKOUT_QUERY = 'data-wf-checkout-query'; exports.CHECKOUT_QUERY = CHECKOUT_QUERY; var getCheckoutErrorMessageForType = function getCheckoutErrorMessageForType(errorType) { return "data-w-".concat(errorType, "-error"); }; exports.getCheckoutErrorMessageForType = getCheckoutErrorMessageForType; var REQUIRES_ACTION = 'requires_action'; // cartEvents exports.REQUIRES_ACTION = REQUIRES_ACTION; var CART_GENERAL_ERROR_MESSAGE = 'data-w-cart-general-error'; exports.CART_GENERAL_ERROR_MESSAGE = CART_GENERAL_ERROR_MESSAGE; var CART_CHECKOUT_ERROR_MESSAGE = 'data-w-cart-checkout-error'; exports.CART_CHECKOUT_ERROR_MESSAGE = CART_CHECKOUT_ERROR_MESSAGE; var CART_CHECKOUT_ERROR_MESSAGE_SELECTOR = '.w-checkout-error-msg'; exports.CART_CHECKOUT_ERROR_MESSAGE_SELECTOR = CART_CHECKOUT_ERROR_MESSAGE_SELECTOR; var CART_ERROR_MESSAGE = 'cart-error-msg'; exports.CART_ERROR_MESSAGE = CART_ERROR_MESSAGE; var CART_ERROR_MESSAGE_SELECTOR = ".w-".concat(CART_ERROR_MESSAGE); exports.CART_ERROR_MESSAGE_SELECTOR = CART_ERROR_MESSAGE_SELECTOR; var CART_OPEN = 'data-cart-open'; exports.CART_OPEN = CART_OPEN; var CART_TYPE = 'data-wf-cart-type'; exports.CART_TYPE = CART_TYPE; var CART_QUERY = 'data-wf-cart-query'; exports.CART_QUERY = CART_QUERY; var PAYPAL_ELEMENT_INSTANCE = 'data-wf-paypal-element'; exports.PAYPAL_ELEMENT_INSTANCE = PAYPAL_ELEMENT_INSTANCE; var PAYPAL_BUTTON_ELEMENT_INSTANCE = 'data-wf-paypal-button'; exports.PAYPAL_BUTTON_ELEMENT_INSTANCE = PAYPAL_BUTTON_ELEMENT_INSTANCE; var getCartErrorMessageForType = function getCartErrorMessageForType(errorType) { return "data-w-cart-".concat(errorType, "-error"); }; // orderConfirmationEvents exports.getCartErrorMessageForType = getCartErrorMessageForType; var ORDER_QUERY = 'data-wf-order-query'; // stripeStore exports.ORDER_QUERY = ORDER_QUERY; var STRIPE_ECOMMERCE_KEY = 'data-wf-ecomm-key'; exports.STRIPE_ECOMMERCE_KEY = STRIPE_ECOMMERCE_KEY; var STRIPE_ECOMMERCE_ACCOUNT_ID = 'data-wf-ecomm-acct-id'; exports.STRIPE_ECOMMERCE_ACCOUNT_ID = STRIPE_ECOMMERCE_ACCOUNT_ID; var EASINGS = { ease: 'Ease', 'ease-in': 'Ease In', 'ease-out': 'Ease Out', 'ease-in-out': 'Ease In Out', linear: 'Linear', 'ease-in-quad': 'Ease In Quad', 'ease-in-cubic': 'Ease In Cubic', 'ease-in-quart': 'Ease In Quart', 'ease-in-quint': 'Ease In Quint', 'ease-in-sine': 'Ease In Sine', 'ease-in-expo': 'Ease In Expo', 'ease-in-circ': 'Ease In Circ', 'ease-in-back': 'Ease In Back', 'ease-out-quad': 'Ease Out Quad', 'ease-out-cubic': 'Ease Out Cubic', 'ease-out-quart': 'Ease Out Quart', 'ease-out-quint': 'Ease Out Quint', 'ease-out-sine': 'Ease Out Sine', 'ease-out-expo': 'Ease Out Expo', 'ease-out-circ': 'Ease Out Circ', 'ease-out-back': 'Ease Out Back', 'ease-in-out-quad': 'Ease In Out Quad', 'ease-in-out-cubic': 'Ease In Out Cubic', 'ease-in-out-quart': 'Ease In Out Quart', 'ease-in-out-quint': 'Ease In Out Quint', 'ease-in-out-sine': 'Ease In Out Sine', 'ease-in-out-expo': 'Ease In Out Expo', 'ease-in-out-circ': 'Ease In Out Circ', 'ease-in-out-back': 'Ease In Out Back' }; exports.EASINGS = EASINGS; var EASE_DEFAULT = 'ease-out-quad'; exports.EASE_DEFAULT = EASE_DEFAULT; var SECTION_NAMES = { ECOMMERCE: 'Ecommerce', CHECKOUT_PAGE: 'Checkout Page', ORDER_CONFIRMATION_PAGE: 'Order Confirmation Page', PAYPAL_CHECKOUT_PAGE: 'Checkout (PayPal) Page' }; exports.SECTION_NAMES = SECTION_NAMES; var COMMERCE_DEFAULT_COPY = { INFO_ERROR: CHECKOUT_ERRORS.INFO.copy, SHIPPING_ERROR: CHECKOUT_ERRORS.SHIPPING.copy, ORDER_EXTRAS_ERROR: CHECKOUT_ERRORS.EXTRAS.copy, PRICING_ERROR: CHECKOUT_ERRORS.PRICING.copy, PRODUCT_ERROR: CHECKOUT_ERRORS.PRODUCT.copy, PAYMENT_ERROR: CHECKOUT_ERRORS.PAYMENT.copy, BILLING_ERROR: CHECKOUT_ERRORS.BILLING.copy, ORDER_MINIMUM_ERROR: CHECKOUT_ERRORS.MINIMUM.copy, INVALID_DISCOUNT_ERROR: CHECKOUT_ERRORS.INVALID_DISCOUNT.copy, EXPIRED_DISCOUNT_ERROR: CHECKOUT_ERRORS.EXPIRED_DISCOUNT.copy, USAGE_REACHED_DISCOUNT_ERROR: CHECKOUT_ERRORS.USAGE_REACHED_DISCOUNT.copy, REQUIREMENTS_NOT_MET_DISCOUNT_ERROR: CHECKOUT_ERRORS.REQUIREMENTS_NOT_MET_DISCOUNT.copy, COMMERCE_ADD_TO_CART_BUTTON_DEFAULT: 'Add to Cart', COMMERCE_ADD_TO_CART_BUTTON_WAITING: 'Adding to cart...', COMMERCE_BUY_NOW_BUTTON_DEFAULT: 'Buy now', SUBSCRIPTION_BUTTON_DEFAULT: 'Subscribe now', QUANTITY_ERROR: 'Product is not available in this quantity.', GENERAL_ERROR: 'Something went wrong when adding this item to the cart.', CHECKOUT_ERROR: 'Checkout is disabled on this site.', CART_ORDER_MIN_ERROR: 'The order minimum was not met. Add more items to your cart to continue.', SUBSCRIPTION_ERR: 'Before you purchase, please use your email invite to verify your address so we can send order updates.', ADD_TO_CART_QUANTITY_ERROR: 'Product is not available in this quantity.', ADD_TO_CART_GENERAL_ERROR: 'Something went wrong when adding this item to the cart.', ADD_TO_CART_MIXED_ERROR: 'You can’t purchase another product with a subscription.', BUY_NOW_ERROR: 'Something went wrong when trying to purchase this item.', CHECKOUT_DISABLED_ERROR: 'Checkout is disabled on this site.', SELECT_ALL_OPTIONS: 'Please select an option in each set.' }; exports.COMMERCE_DEFAULT_COPY = COMMERCE_DEFAULT_COPY; /***/ }), /* 723 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY = void 0; // Ecommerce data source definition uses this as the externalKey of the Products // binding context type, while CommerceAddToCartWrapper uses this in its // BindingContext Atom constraint. var PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY = 'commerce-products-type'; exports.PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY = PRODUCTS_BINDING_CONTEXT_EXTERNAL_KEY; /***/ }), /* 724 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.paypalCurrencyList = void 0; // Note: These currencies are extracted by getting PayPal compatible currencies from: // // curl https://developer.paypal.com/docs/api/reference/currency-codes // // And then populating in the names from ISO 4217: var paypalCurrencyList = [ /* * ---------------------------------------------------------------------------- * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * * This const is duplicated to @packages/systems/core/constants/SharedConfig.js * to avoid bundling this entire SharedConfig file in the webflow.js published * site bundle. Once we have support for bundling for the Dashboard (this * config is injected in to window.SharedConfig for angular), we should * be able to delete the const in SharedConfig and use the commerce/consts * package whenever `paypalCurrencyList` const is needed. * * In the meantime, if you make changes to this const, please make sure to * update in the other location as well. * * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * ---------------------------------------------------------------------------- */ { code: 'AUD', digits: 2, minCharge: 1, name: 'Australian Dollar' }, { code: 'BRL', digits: 2, minCharge: 1, name: 'Brazilian Real' }, { code: 'CAD', digits: 2, minCharge: 1, name: 'Canadian Dollar' }, { code: 'CNY', digits: 2, minCharge: 1, name: 'Chinese Renmenbi' }, { code: 'CZK', digits: 2, minCharge: 1, name: 'Czech Koruna' }, { code: 'DKK', digits: 2, minCharge: 1, name: 'Danish Krone' }, { code: 'EUR', digits: 2, minCharge: 1, name: 'Euro' }, { code: 'HKD', digits: 2, minCharge: 1, name: 'Hong Kong Dollar' }, // HUF is currently disabled, due to issues with PayPal's 0-decimal implementation // See: https://github.com/webflow/webflow/issues/32865 // {code: 'HUF', digits: 0, minCharge: 1, name: 'Hungarian Forint'}, { code: 'INR', digits: 2, minCharge: 1, name: 'Indian Rupee' }, { code: 'ILS', digits: 2, minCharge: 1, name: 'Israeli New Sheqel' }, { code: 'JPY', digits: 0, minCharge: 1, name: 'Japanese Yen' }, { code: 'MYR', digits: 2, minCharge: 1, name: 'Malaysian Ringgit' }, { code: 'MXN', digits: 2, minCharge: 1, name: 'Mexican Peso' }, { code: 'TWD', digits: 0, minCharge: 1, name: 'New Taiwan Dollar' }, { code: 'NZD', digits: 2, minCharge: 1, name: 'New Zealand Dollar' }, { code: 'NOK', digits: 2, minCharge: 1, name: 'Norwegian Krone' }, { code: 'PHP', digits: 2, minCharge: 1, name: 'Philippine Peso' }, { code: 'PLN', digits: 2, minCharge: 1, name: 'Polish ZÅ‚oty' }, { code: 'GBP', digits: 2, minCharge: 1, name: 'British Pound' }, { code: 'RUB', digits: 2, minCharge: 1, name: 'Russian Ruble' }, { code: 'SGD', digits: 2, minCharge: 1, name: 'Singapore Dollar' }, { code: 'SEK', digits: 2, minCharge: 1, name: 'Swedish Krona' }, { code: 'CHF', digits: 2, minCharge: 1, name: 'Swiss Franc' }, { code: 'THB', digits: 2, minCharge: 1, name: 'Thai Baht' }, { code: 'USD', digits: 2, minCharge: 1, name: 'United States Dollar' }]; exports.paypalCurrencyList = paypalCurrencyList; /***/ }), /* 725 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.stripeCurrencyList = void 0; // Note: These currencies are extracted by getting Stripe compatible currencies with: // // curl https://api.stripe.com/v1/country_specs\?limit\=100 -u $STRIPE_TEST_KEY: -G \ // | jq '.data|.[]|.supported_payment_currencies|.[]' \ // | sort \ // | uniq // // And then populating in the names from ISO 4217: // // Digit counts are also added. Stripe is treated as the source-of-truth for that number, even though their // numbers are often at odds with ISO 4217. Notes: // // - CVE had a subunit (centavo), that has been discontinued. The ISO reflects this, but stripe sticks // with 2 digits, since the currency is still commonly formatted as "1$00". ¯\_(ツ)_/¯ // - ISK had a subunit (eyrir) that was obsoleted in 2003, but Stripe sticks with 2 digits instead of // the ISO's 0. // - MGA is strange, since its smallest denomination is a 1/5th piece (the Iraimbilanja), but is // represented as a decimal, so the currency goes "1.3, 1.4, 2.0, ...". Stripe dodges this strangeness // by ignoring that minimum unit, and so do we, since it has so little value. // - UGX had a subunit (cent) that was discontinued in 2013. Stripe still counts it, tho, even though // that cent is work 1/350000th of a penny. var stripeCurrencyList = [ /* * ---------------------------------------------------------------------------- * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * * This const is duplicated to @packages/systems/core/constants/SharedConfig.js * to avoid bundling this entire SharedConfig file in the webflow.js published * site bundle. Once we have support for bundling for the Dashboard (this * config is injected in to window.SharedConfig for angular), we should * be able to delete the const in SharedConfig and use the commerce/consts * package whenever `stripeCurrencyList` const is needed. * * In the meantime, if you make changes to this const, please make sure to * update in the other location as well. * * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE * ---------------------------------------------------------------------------- */ { code: 'AED', digits: 2, minCharge: 0, name: 'United Arab Emirates Dirham' }, { code: 'AFN', digits: 2, minCharge: 0, name: 'Afghanistan Afghani' }, { code: 'ALL', digits: 2, minCharge: 0, name: 'Albanian Lek' }, { code: 'AMD', digits: 2, minCharge: 0, name: 'Armenia Dram' }, { code: 'ANG', digits: 2, minCharge: 0, name: 'Netherlands Antillean Gulden' }, { code: 'AOA', digits: 2, minCharge: 0, name: 'Angola Kwanza' }, { code: 'ARS', digits: 2, minCharge: 0, name: 'Argentine Peso' }, { code: 'AUD', digits: 2, minCharge: 50, name: 'Australian Dollar' }, { code: 'AWG', digits: 2, minCharge: 0, name: 'Aruban Florin' }, { code: 'AZN', digits: 2, minCharge: 0, name: 'Azerbaijan Manat' }, { code: 'BAM', digits: 2, minCharge: 0, name: 'Bosnia and Herzegovina Convertible Marka' }, { code: 'BBD', digits: 2, minCharge: 0, name: 'Barbadian Dollar' }, { code: 'BDT', digits: 2, minCharge: 0, name: 'Bangladeshi Taka' }, { code: 'BGN', digits: 2, minCharge: 0, name: 'Bulgaria Lev' }, { code: 'BIF', digits: 0, minCharge: 0, name: 'Burundian Franc' }, { code: 'BMD', digits: 2, minCharge: 0, name: 'Bermudian Dollar' }, { code: 'BND', digits: 2, minCharge: 0, name: 'Brunei Dollar' }, { code: 'BOB', digits: 2, minCharge: 0, name: 'Bolivian Boliviano' }, { code: 'BRL', digits: 2, minCharge: 50, name: 'Brazilian Real' }, { code: 'BSD', digits: 2, minCharge: 0, name: 'Bahamian Dollar' }, { code: 'BWP', digits: 2, minCharge: 0, name: 'Botswana Pula' }, { code: 'BZD', digits: 2, minCharge: 0, name: 'Belize Dollar' }, { code: 'CAD', digits: 2, minCharge: 50, name: 'Canadian Dollar' }, { code: 'CDF', digits: 2, minCharge: 0, name: 'Congo/Kinshasa Franc' }, { code: 'CHF', digits: 2, minCharge: 50, name: 'Swiss Franc' }, { code: 'CLP', digits: 0, minCharge: 0, name: 'Chilean Peso' }, { code: 'CNY', digits: 2, minCharge: 0, name: 'Chinese Renminbi Yuan' }, { code: 'COP', digits: 2, minCharge: 0, name: 'Colombian Peso' }, { code: 'CRC', digits: 2, minCharge: 0, name: 'Costa Rican Colón' }, { code: 'CVE', digits: 2, minCharge: 0, name: 'Cape Verdean Escudo' }, // See above. { code: 'CZK', digits: 2, minCharge: 0, name: 'Czech Koruna' }, { code: 'DJF', digits: 0, minCharge: 0, name: 'Djiboutian Franc' }, { code: 'DKK', digits: 2, minCharge: 250, name: 'Danish Krone' }, { code: 'DOP', digits: 2, minCharge: 0, name: 'Dominican Peso' }, { code: 'DZD', digits: 2, minCharge: 0, name: 'Algerian Dinar' }, { code: 'EGP', digits: 2, minCharge: 0, name: 'Egyptian Pound' }, { code: 'ETB', digits: 2, minCharge: 0, name: 'Ethiopian Birr' }, { code: 'EUR', digits: 2, minCharge: 50, name: 'Euro' }, { code: 'FJD', digits: 2, minCharge: 0, name: 'Fijian Dollar' }, { code: 'FKP', digits: 2, minCharge: 0, name: 'Falkland Islands Pound' }, { code: 'GBP', digits: 2, minCharge: 30, name: 'British Pound' }, { code: 'GEL', digits: 2, minCharge: 0, name: 'Georgia Lari' }, { code: 'GIP', digits: 2, minCharge: 0, name: 'Gibraltar Pound' }, { code: 'GMD', digits: 2, minCharge: 0, name: 'Gambian Dalasi' }, { code: 'GNF', digits: 0, minCharge: 0, name: 'Guinean Franc' }, { code: 'GTQ', digits: 2, minCharge: 0, name: 'Guatemalan Quetzal' }, { code: 'GYD', digits: 2, minCharge: 0, name: 'Guyanese Dollar' }, { code: 'HKD', digits: 2, minCharge: 400, name: 'Hong Kong Dollar' }, { code: 'HNL', digits: 2, minCharge: 0, name: 'Honduran Lempira' }, { code: 'HRK', digits: 2, minCharge: 0, name: 'Croatian Kuna' }, { code: 'HTG', digits: 2, minCharge: 0, name: 'Haitian Gourde' }, { code: 'HUF', digits: 2, minCharge: 0, name: 'Hungarian Forint' }, { code: 'IDR', digits: 2, minCharge: 0, name: 'Indonesian Rupiah' }, { code: 'ILS', digits: 2, minCharge: 0, name: 'Israeli New Sheqel' }, { code: 'INR', digits: 2, minCharge: 50, name: 'Indian Rupee' }, { code: 'ISK', digits: 2, minCharge: 0, name: 'Icelandic Króna' }, // See above. { code: 'JMD', digits: 2, minCharge: 0, name: 'Jamaican Dollar' }, { code: 'JPY', digits: 0, minCharge: 50, name: 'Japanese Yen' }, { code: 'KES', digits: 2, minCharge: 0, name: 'Kenyan Shilling' }, { code: 'KGS', digits: 2, minCharge: 0, name: 'Kyrgyzstan Som' }, { code: 'KHR', digits: 2, minCharge: 0, name: 'Cambodian Riel' }, { code: 'KMF', digits: 0, minCharge: 0, name: 'Comorian Franc' }, { code: 'KRW', digits: 0, minCharge: 0, name: 'South Korean Won' }, { code: 'KYD', digits: 2, minCharge: 0, name: 'Cayman Islands Dollar' }, { code: 'KZT', digits: 2, minCharge: 0, name: 'Kazakhstani Tenge' }, { code: 'LAK', digits: 2, minCharge: 0, name: 'Lao Kip' }, { code: 'LBP', digits: 2, minCharge: 0, name: 'Lebanese Pound' }, { code: 'LKR', digits: 2, minCharge: 0, name: 'Sri Lankan Rupee' }, { code: 'LRD', digits: 2, minCharge: 0, name: 'Liberian Dollar' }, { code: 'LSL', digits: 2, minCharge: 0, name: 'Lesotho Loti' }, { code: 'MAD', digits: 2, minCharge: 0, name: 'Moroccan Dirham' }, { code: 'MDL', digits: 2, minCharge: 0, name: 'Moldovan Leu' }, { code: 'MGA', digits: 0, minCharge: 0, name: 'Madagascar Ariary' }, // See above. { code: 'MKD', digits: 2, minCharge: 0, name: 'Macedonia Denar' }, { code: 'MMK', digits: 2, minCharge: 0, name: 'Myanmar (Burma) Kyat' }, { code: 'MNT', digits: 2, minCharge: 0, name: 'Mongolian Tögrög' }, { code: 'MOP', digits: 2, minCharge: 0, name: 'Macanese Pataca' }, { code: 'MRO', digits: 2, minCharge: 0, name: 'Mauritanian Ouguiya' }, { code: 'MUR', digits: 2, minCharge: 0, name: 'Mauritian Rupee' }, { code: 'MVR', digits: 2, minCharge: 0, name: 'Maldivian Rufiyaa' }, { code: 'MWK', digits: 2, minCharge: 0, name: 'Malawian Kwacha' }, { code: 'MXN', digits: 2, minCharge: 1000, name: 'Mexican Peso' }, { code: 'MYR', digits: 2, minCharge: 200, name: 'Malaysian Ringgit' }, { code: 'MZN', digits: 2, minCharge: 0, name: 'Mozambique Metical' }, { code: 'NAD', digits: 2, minCharge: 0, name: 'Namibian Dollar' }, { code: 'NGN', digits: 2, minCharge: 0, name: 'Nigerian Naira' }, { code: 'NIO', digits: 2, minCharge: 0, name: 'Nicaraguan Córdoba' }, { code: 'NOK', digits: 2, minCharge: 300, name: 'Norwegian Krone' }, { code: 'NPR', digits: 2, minCharge: 0, name: 'Nepalese Rupee' }, { code: 'NZD', digits: 2, minCharge: 50, name: 'New Zealand Dollar' }, { code: 'PAB', digits: 2, minCharge: 0, name: 'Panamanian Balboa' }, { code: 'PEN', digits: 2, minCharge: 0, name: 'Peruvian Nuevo Sol' }, { code: 'PGK', digits: 2, minCharge: 0, name: 'Papua New Guinean Kina' }, { code: 'PHP', digits: 2, minCharge: 0, name: 'Philippine Peso' }, { code: 'PKR', digits: 2, minCharge: 0, name: 'Pakistani Rupee' }, { code: 'PLN', digits: 2, minCharge: 200, name: 'Polish ZÅ‚oty' }, { code: 'PYG', digits: 0, minCharge: 0, name: 'Paraguayan GuaranÃ' }, { code: 'QAR', digits: 2, minCharge: 0, name: 'Qatari Riyal' }, { code: 'RON', digits: 2, minCharge: 0, name: 'Romania Leu' }, { code: 'RSD', digits: 2, minCharge: 0, name: 'Serbia Dinar' }, { code: 'RUB', digits: 2, minCharge: 0, name: 'Russian Ruble' }, { code: 'RWF', digits: 0, minCharge: 0, name: 'Rwanda Franc' }, { code: 'SAR', digits: 2, minCharge: 0, name: 'Saudi Riyal' }, { code: 'SBD', digits: 2, minCharge: 0, name: 'Solomon Islands Dollar' }, { code: 'SCR', digits: 2, minCharge: 0, name: 'Seychellois Rupee' }, { code: 'SEK', digits: 2, minCharge: 300, name: 'Swedish Krona' }, { code: 'SGD', digits: 2, minCharge: 50, name: 'Singapore Dollar' }, { code: 'SHP', digits: 2, minCharge: 0, name: 'Saint Helenian Pound' }, { code: 'SLL', digits: 2, minCharge: 0, name: 'Sierra Leonean Leone' }, { code: 'SOS', digits: 2, minCharge: 0, name: 'Somali Shilling' }, { code: 'SRD', digits: 2, minCharge: 0, name: 'Suriname Dollar' }, { code: 'STD', digits: 2, minCharge: 0, name: 'São Tomé and PrÃncipe Dobra' }, { code: 'SZL', digits: 2, minCharge: 0, name: 'Swazi Lilangeni' }, { code: 'THB', digits: 2, minCharge: 0, name: 'Thai Baht' }, { code: 'TJS', digits: 2, minCharge: 0, name: 'Tajikistan Somoni' }, { code: 'TOP', digits: 2, minCharge: 0, name: 'Tongan PaÊ»anga' }, { code: 'TRY', digits: 2, minCharge: 0, name: 'Turkey Lira' }, { code: 'TTD', digits: 2, minCharge: 0, name: 'Trinidad and Tobago Dollar' }, { code: 'TWD', digits: 2, minCharge: 0, name: 'New Taiwan Dollar' }, { code: 'TZS', digits: 2, minCharge: 0, name: 'Tanzanian Shilling' }, { code: 'UAH', digits: 2, minCharge: 0, name: 'Ukrainian Hryvnia' }, { code: 'UGX', digits: 0, minCharge: 0, name: 'Ugandan Shilling' }, // See above. { code: 'USD', digits: 2, minCharge: 50, name: 'United States Dollar' }, { code: 'UYU', digits: 2, minCharge: 0, name: 'Uruguayan Peso' }, { code: 'UZS', digits: 2, minCharge: 0, name: 'Uzbekistani Som' }, { code: 'VND', digits: 0, minCharge: 0, name: 'Vietnamese Äồng' }, { code: 'VUV', digits: 0, minCharge: 0, name: 'Vanuatu Vatu' }, { code: 'WST', digits: 2, minCharge: 0, name: 'Samoan Tala' }, { code: 'XAF', digits: 0, minCharge: 0, name: 'Central African Cfa Franc' }, { code: 'XCD', digits: 2, minCharge: 0, name: 'East Caribbean Dollar' }, { code: 'XOF', digits: 0, minCharge: 0, name: 'West African Cfa Franc' }, { code: 'XPF', digits: 0, minCharge: 0, name: 'Cfp Franc' }, { code: 'YER', digits: 2, minCharge: 0, name: 'Yemeni Rial' }, { code: 'ZAR', digits: 2, minCharge: 0, name: 'South African Rand' }, { code: 'ZMW', digits: 2, minCharge: 0, name: 'Zambia Kwacha' }]; exports.stripeCurrencyList = stripeCurrencyList; /***/ }), /* 726 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchAllVariantsAndMemberships($productId: BasicId!) {\n database {\n id\n ", "\n commerceMemberships(productIds: [$productId]) {\n productId\n orderId\n active\n }\n }\n }\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n query FetchAllVariants($productId: BasicId!) {\n database {\n id\n ", "\n }\n }\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation AddToCart($skuId: String!, $count: Int!, $buyNow: Boolean) {\n ecommerceAddToCart(sku: $skuId, count: $count, buyNow: $buyNow) {\n ok\n itemId\n itemCount\n itemPrice {\n unit\n decimalValue\n }\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.register = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var _constants = __webpack_require__(19); var _constants2 = __webpack_require__(36); var _constants3 = __webpack_require__(111); var _constants4 = __webpack_require__(742); var _utils = __webpack_require__(743); var _get = _interopRequireDefault(__webpack_require__(60)); var _Commerce = __webpack_require__(355); var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _commerceUtils = __webpack_require__(37); var _RenderingUtils = __webpack_require__(150); var _CurrencyUtils = __webpack_require__(366); var _debug = _interopRequireDefault(__webpack_require__(80)); var _forEach = _interopRequireDefault(__webpack_require__(179)); var _find = _interopRequireDefault(__webpack_require__(164)); var _rendering = __webpack_require__(151); var _addToCartStore = __webpack_require__(807); var _PillGroup = __webpack_require__(808); var _siteBundles = __webpack_require__(809); /* globals document, window, Element, HTMLElement, CustomEvent, HTMLFormElement, HTMLInputElement, HTMLSelectElement, HTMLAnchorElement*/ // $FlowFixMe ApolloClient is an untyped any var _ref7 = (0, _addToCartStore.createNewStore)(), fetchFromStore = _ref7.fetchFromStore, updateStore = _ref7.updateStore, addStoreWatcher = _ref7.addStoreWatcher; var getInstanceId = function getInstanceId(form) { var instanceId = form.getAttribute(_constants.DATA_ATTR_COMMERCE_PRODUCT_ID); if (instanceId) { return instanceId; } else { throw new Error('Incorrect form instance provided, has no instance ID'); } }; function trackAddToCartUsage(skuId, count, itemPrice) { var decimalValue = itemPrice.decimalValue, unit = itemPrice.unit; if (typeof fbq === 'function') { fbq('track', 'AddToCart', { value: count * decimalValue, currency: unit, content_ids: [skuId], content_type: 'product', contents: [{ id: skuId, quantity: count, item_price: decimalValue }] }); } if (typeof gtag === 'function') { gtag('event', 'add_to_cart', { items: [{ id: skuId, quantity: count, price: decimalValue }] }); } } var addToCartMutation = _graphqlTag["default"](_templateObject()); var collectionsQuery = "\n collections {\n c_sku_ {\n items(filter: {f_product_: {eq: $productId}}) {\n id\n f_price_ {\n value\n unit\n }\n f_weight_\n f_width_\n f_length_\n f_height_\n f_sku_\n f_main_image_4dr {\n url\n }\n f_more_images_4dr {\n url\n alt\n file {\n origFileName\n }\n }\n f_sku_values_3dr {\n value {\n id\n }\n property {\n id\n }\n }\n inventory {\n type\n quantity\n }\n f_compare_at_price_7dr10dr {\n unit\n value\n }\n f_ec_sku_billing_method_2dr6dr14dr\n }\n }\n c_product_ {\n items(filter: {id: {eq: $productId}}) {\n f_default_sku_7dr {\n id\n }\n f_ec_product_type_2dr10dr {\n name\n }\n }\n }\n }"; var getAllVariants = _graphqlTag["default"](_templateObject2(), collectionsQuery); var getAllVariantsAndMemberships = _graphqlTag["default"](_templateObject3(), collectionsQuery); var findCollectionItemWrapper = function findCollectionItemWrapper(node) { var dynamoItemSelector = ".".concat(_constants4.CLASS_NAME_DYNAMIC_LIST_ITEM, ":not(.").concat(_constants4.CLASS_NAME_DYNAMIC_LIST_REPEATER_ITEM, ")"); // eslint-disable-next-line no-undef return $(node).closest(dynamoItemSelector)[0] || document.body; }; var addToCartFormEventTargetMatcher = function addToCartFormEventTargetMatcher(event) { if (event != null && event.target instanceof HTMLElement && event.target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM) { return event.target; } return false; }; var getErrorType = function getErrorType(error) { var defaultErrorType = 'general'; if (error && error.graphQLErrors && error.graphQLErrors.length > 0) { switch (error.graphQLErrors[0].code) { case 'OutOfInventory': return 'quantity'; case 'MixedCartError': return 'mixed-cart'; default: return defaultErrorType; } } return defaultErrorType; }; var handleAtcSubmit = function handleAtcSubmit(event, apolloClient) { event.preventDefault(); var eventTarget = event.currentTarget; if (!(eventTarget instanceof HTMLFormElement && eventTarget.parentNode instanceof Element) || eventTarget.hasAttribute(_constants.ADD_TO_CART_LOADING)) { return; } var parentNode = eventTarget.parentNode; var inputButton = eventTarget.querySelector('input[type="submit"]'); if (!(0, _commerceUtils.isProtocolHttps)()) { window.alert('This site is currently unsecured so you cannot add products to your cart.'); return; } if (!(inputButton instanceof HTMLInputElement)) { return; } var errorElement = parentNode.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR, "\"]")); if (errorElement instanceof Element) { errorElement.style.display = 'none'; } eventTarget.setAttribute(_constants.ADD_TO_CART_LOADING, ''); var previousButtonValue = inputButton.value; // We moved the data here to the actual button node but will fallback to old value on the wrapper if not set var loadingTextFromButton = inputButton.getAttribute(_constants.DATA_ATTR_LOADING_TEXT); inputButton.value = loadingTextFromButton ? loadingTextFromButton : eventTarget.getAttribute(_constants.DATA_ATTR_LOADING_TEXT) || ''; inputButton.setAttribute('aria-busy', 'true'); var skuId = fetchFromStore(getInstanceId(eventTarget), 'selectedSku') || ''; var formData = (0, _commerceUtils.formToObject)(eventTarget); var formCount = formData[_constants.NODE_NAME_COMMERCE_ADD_TO_CART_QUANTITY_INPUT]; var count = formCount ? parseInt(formCount, 10) : 1; // if no SKU id, then all options need to be selected // this is only shown for pills, as dropdowns will be caught by reportValidity above if (!skuId && errorElement instanceof Element) { eventTarget.removeAttribute(_constants.ADD_TO_CART_LOADING); inputButton.value = previousButtonValue; inputButton.setAttribute('aria-busy', 'false'); var errorMsg = errorElement.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_ADD_TO_CART_ERROR, "\"]")); if (!errorMsg) { return; } var errorText = errorMsg.getAttribute((0, _constants.getATCErrorMessageForType)('select-all-options')) || 'Please select an option in each set.'; errorMsg.textContent = errorText; errorElement.style.removeProperty('display'); return; } // Redirect to sign up if the purchase requires a user session and there is none var requiresUserSession = fetchFromStore(getInstanceId(eventTarget), 'requiresUserSession'); var hasUserSession = document.cookie.split(';').some(function (cookie) { return cookie.indexOf(_constants2.LOGGEDIN_COOKIE_NAME) > -1; }); if (requiresUserSession && !hasUserSession) { (0, _siteBundles.redirectWithUsrdir)("/".concat(_constants2.USYS_PAGE_SETTINGS.signup.slug)); return; } apolloClient.mutate({ mutation: addToCartMutation, variables: { skuId: skuId, count: count, buyNow: false } }).then(function (_ref8) { var data = _ref8.data; (0, _commerceUtils.addLoadingCallback)(function () { eventTarget.removeAttribute(_constants.ADD_TO_CART_LOADING); inputButton.value = previousButtonValue; inputButton.setAttribute('aria-busy', 'false'); var cartElements = document.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, "\"][").concat(_constants.DATA_ATTR_OPEN_PRODUCT, "]")); cartElements.forEach(function (cart) { var evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true, detail: { open: true } }); cart.dispatchEvent(evt); }); }); (0, _commerceUtils.triggerRender)(null); var itemPrice = data.ecommerceAddToCart.itemPrice || {}; trackAddToCartUsage(skuId, count, itemPrice); })["catch"](function (error) { eventTarget.removeAttribute(_constants.ADD_TO_CART_LOADING); inputButton.value = previousButtonValue; inputButton.setAttribute('aria-busy', 'false'); if (errorElement) { errorElement.style.removeProperty('display'); var _errorMsg = errorElement.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_ADD_TO_CART_ERROR, "\"]")); if (!_errorMsg) { return; } var errorMessage = (0, _constants.getATCErrorMessageForType)(getErrorType(error)); var _errorText = _errorMsg.getAttribute(errorMessage) || ''; _errorMsg.textContent = _errorText; } _debug["default"].error(error); (0, _commerceUtils.triggerRender)(null); }); }; var addToCartOptionSelectEventTargetMatcher = function addToCartOptionSelectEventTargetMatcher(event) { if (event != null && event.target instanceof HTMLElement && event.target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT) { return event.target; } return false; }; var queryAllWithoutOtherItemWrapperContents = function queryAllWithoutOtherItemWrapperContents(collectionItemWrapper, selector) { return Array.from(collectionItemWrapper.querySelectorAll(selector)).filter(function (node) { return findCollectionItemWrapper(node) === collectionItemWrapper; }); }; var queryAllReferenceRepeaters = function queryAllReferenceRepeaters(collectionItemWrapper) { return Array.from(collectionItemWrapper.querySelectorAll(".".concat(_constants4.CLASS_NAME_DYNAMIC_LIST_REPEATER_REF))); }; var removeClass = function removeClass(element, className) { element && // eslint-disable-next-line no-undef element.classList instanceof DOMTokenList && element.classList.remove(className); if (element.classList.length === 0) { element.removeAttribute('class'); } }; var showElement = function showElement(element) { return removeClass(element, 'w-dyn-hide'); }; var hideElement = function hideElement(element) { return element && // eslint-disable-next-line no-undef element.classList instanceof DOMTokenList && element.classList.add('w-dyn-hide'); }; var updateEmptyStateVisibility = function updateEmptyStateVisibility(node, fn1, fn2) { var emptyStateNodes = Array.from(node.querySelectorAll('.w-dyn-empty')); var emptyStateMoreImageFieldNodes = emptyStateNodes.filter(function (n) { var itemsList = n.parentElement.querySelector('.w-dyn-items'); return itemsList.dataset && itemsList.dataset.wfCollection && itemsList.dataset.wfCollection === 'f_more_images_4dr'; }); return emptyStateMoreImageFieldNodes && emptyStateMoreImageFieldNodes.map(function (n) { fn1(n); var itemsList = n.parentElement.querySelector('.w-dyn-items'); if (itemsList && itemsList.dataset && itemsList.dataset.wfCollection && itemsList.dataset.wfCollection === 'f_more_images_4dr' && // eslint-disable-next-line no-undef itemsList.classList instanceof DOMTokenList && itemsList.parentElement.classList.contains(_constants4.CLASS_NAME_DYNAMIC_LIST_REPEATER_REF)) { return fn2(itemsList); } }); }; var showEmptyStateAndHideItemsList = function showEmptyStateAndHideItemsList(node) { updateEmptyStateVisibility(node, showElement, hideElement); }; var hideEmptyStateAndShowItemsList = function hideEmptyStateAndShowItemsList(node) { updateEmptyStateVisibility(node, hideElement, showElement); }; var updateDropdownsOnPage = function updateDropdownsOnPage(instanceId) { return function (newSkuValues) { var dropdownsForProduct = Array.from(document.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST, "\"][").concat(_constants.DATA_ATTR_COMMERCE_PRODUCT_ID, "=\"").concat(instanceId, "\"] [").concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT, "\"]"))); var _loop = function _loop() { var optionSetId = _Object$keys[_i]; var optionSetValue = newSkuValues[optionSetId]; var matchingDropdownsForOptionSet = dropdownsForProduct.filter(function (d) { return d.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID) === optionSetId; }); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = matchingDropdownsForOptionSet[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var dropdown = _step.value; dropdown.value = String(optionSetValue); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator["return"] != null) { _iterator["return"](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } }; for (var _i = 0, _Object$keys = Object.keys(newSkuValues); _i < _Object$keys.length; _i++) { _loop(); } }; }; var disableOptionsOnChange = function disableOptionsOnChange(_ref9) { var apolloClient = _ref9.apolloClient, productId = _ref9.productId, optionSets = _ref9.optionSets, optionSetId = _ref9.optionSetId; apolloClient.query({ query: getAllVariants, variables: { productId: productId } }).then(function (_ref10) { var data = _ref10.data; var _ref, _data$database, _data$database$collec, _data$database$collec2; // That's a lot of question marks! What do they mean? // The `?.` is optional chaining, which lets you safely access deeply nested properties, // with it bailing out if the property doesn't exist: https://github.com/TC39/proposal-optional-chaining // The `??` is nullish coalescing, which is similar to `||` when wanting to ensure something is defined, // but only tripping if the value it's checking `null` or `undefined`, to prevent odd `false` and `false`-ish tripping false positives // https://github.com/tc39/proposal-nullish-coalescing var items = (_ref = data === null || data === void 0 ? void 0 : (_data$database = data.database) === null || _data$database === void 0 ? void 0 : (_data$database$collec = _data$database.collections) === null || _data$database$collec === void 0 ? void 0 : (_data$database$collec2 = _data$database$collec.c_sku_) === null || _data$database$collec2 === void 0 ? void 0 : _data$database$collec2.items) !== null && _ref !== void 0 ? _ref : []; // Get all the data we're going to use, we need to know which selectors were previously selected, which are currently // selected vs. which are not, and the most recently updated one var optionSetData = optionSets.reduce(function (parsedSelectorOptionSets, selectorOptionSet) { if (selectorOptionSet.value) { parsedSelectorOptionSets.selectedOptionSets.push(selectorOptionSet); if (selectorOptionSet.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID) === optionSetId) { parsedSelectorOptionSets.recentlySelectedOptionSet = selectorOptionSet; } else { parsedSelectorOptionSets.previouslySelectedOptionSets.push(selectorOptionSet); } } else { parsedSelectorOptionSets.unselectedOptionSets.push(selectorOptionSet); } return parsedSelectorOptionSets; }, { selectedOptionSets: [], recentlySelectedOptionSet: undefined, previouslySelectedOptionSets: [], unselectedOptionSets: [] }); var selectedOptionSets = optionSetData.selectedOptionSets, unselectedOptionSets = optionSetData.unselectedOptionSets; var recentlySelectedOptionSet = optionSetData.recentlySelectedOptionSet, previouslySelectedOptionSets = optionSetData.previouslySelectedOptionSets; // Deselect previously selected option sets if they are uncompatible with the current selection. if (recentlySelectedOptionSet && selectedOptionSets.length > 1) { var recentlySelectedOptionSetValue = recentlySelectedOptionSet.value; (0, _forEach["default"])(previouslySelectedOptionSets, function (previouslySelectedOptionSet) { var optionSetValueCombinationWithMostRecent = [recentlySelectedOptionSetValue, previouslySelectedOptionSet.value]; var someAvailableItem = items.some(function (item) { if (item.inventory.type === _constants.INVENTORY_TYPE_FINITE && item.inventory.quantity <= 0) { return false; } var itemMappedBySkuValues = item.f_sku_values_3dr.map(function (skuValues) { return skuValues.value.id; }); return optionSetValueCombinationWithMostRecent.every(function (value) { return itemMappedBySkuValues.includes(value); }); }); if (!someAvailableItem) { previouslySelectedOptionSet.selectedIndex = 0; selectedOptionSets = selectedOptionSets.filter(function (selectedOptionSet) { return selectedOptionSet.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID) !== previouslySelectedOptionSet.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID); }); unselectedOptionSets = unselectedOptionSets.concat(previouslySelectedOptionSet); } }); } // For the (remaining after above deselection) selected ones we want to disable any options that simply have no possible stock (0, _forEach["default"])(selectedOptionSets, function (optionSet) { var id = optionSet.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID); (0, _forEach["default"])(optionSet.options, function (option) { if (!option.value) { option.enabled = true; } else { disableVariantsWithNoStock(items, id, option); } }); }); // For the remaining unselected ones we want to disable any options that aren't possible given current selections (0, _forEach["default"])(unselectedOptionSets, function (optionSet) { var id = optionSet.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID); disableVariantsWithNoStockForRemainingSelections(items, selectedOptionSets, optionSet, id); }); }); }; var handleAtcOptionSelectChange = function handleAtcOptionSelectChange(event, apolloClient) { var eventTarget = event.currentTarget; if (!(eventTarget instanceof HTMLSelectElement)) { return; } var $ = window.jQuery; var optionSetId = eventTarget.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID); var optionSetValue = eventTarget.value; var optionListElement = $(eventTarget).closest("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST, "\"]"))[0]; var addToCartForm = $(eventTarget).closest("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM, "\"]"))[0]; if (!(optionListElement instanceof Element) || !optionSetId || !(addToCartForm instanceof HTMLFormElement)) { return; } var instanceId = getInstanceId(addToCartForm); var currentSkuValues = fetchFromStore(instanceId, 'skuValues'); var newSkuValues = (0, _extends2["default"])({}, currentSkuValues, (0, _defineProperty2["default"])({}, optionSetId, optionSetValue)); updateStore(instanceId, { skuValues: newSkuValues }); var productId = optionListElement && optionListElement.getAttribute(_constants.DATA_ATTR_COMMERCE_PRODUCT_ID); var allVariantSelectorsInCartForm = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_SELECT, addToCartForm); if (productId && allVariantSelectorsInCartForm.length > 0) { disableOptionsOnChange({ apolloClient: apolloClient, productId: productId, optionSets: allVariantSelectorsInCartForm, optionSetId: optionSetId }); } }; var updateSkuBindings = function updateSkuBindings(binding, node, newSkuItem) { if (['f_weight_', 'f_width_', 'f_length_', 'f_height_', 'f_sku_'].some(function (slug) { return binding.from === slug; })) { node[binding.to === 'innerHTML' ? 'innerText' : binding.to] = newSkuItem[binding.from] || ''; updateTextNodeVisibility(node); } if (binding.from === 'f_price_' && newSkuItem.f_price_) { node[binding.to === 'innerHTML' ? 'innerText' : binding.to] = (0, _CurrencyUtils.renderPriceFromSettings)(newSkuItem.f_price_, window.__WEBFLOW_CURRENCY_SETTINGS); updateTextNodeVisibility(node); } if (binding.from === 'f_compare_at_price_7dr10dr') { if (newSkuItem.f_compare_at_price_7dr10dr) { // if compare-at is available, apply the binding node[binding.to === 'innerHTML' ? 'innerText' : binding.to] = (0, _CurrencyUtils.renderPriceFromSettings)(newSkuItem.f_compare_at_price_7dr10dr, window.__WEBFLOW_CURRENCY_SETTINGS); } else { // otherwise, we need to specifically clear it; it could have been set // by a previously-selected product option node[binding.to === 'innerHTML' ? 'innerText' : binding.to] = ''; } updateTextNodeVisibility(node); } if (binding.from === 'f_main_image_4dr' || binding.from === 'f_main_image_4dr.url') { var mainImage = (0, _get["default"])(newSkuItem, binding.from.replace(/\.url$/, '')); if (binding.to === 'style.background-image') { node.style.backgroundImage = mainImage && mainImage.url ? "url(\"".concat(mainImage.url, "\")") : 'none'; } else if (binding.to === 'media') { if (node.classList.contains('w-lightbox')) { updateLightboxJson(node, mainImage); } } else if (binding.to === 'src') { if (mainImage && mainImage.url) { node.src = mainImage.url; (0, _RenderingUtils.removeWDynBindEmptyClass)(node); // Temporary solution for responsive images for product variants if (node.hasAttribute('srcset')) { node.removeAttribute('srcset'); } } else { node.removeAttribute('src'); node.classList.add(_constants3.CLASS_NAME_W_DYN_BIND_EMPTY); } } } if (binding.from.startsWith('f_more_images_4dr.')) { var image = (0, _get["default"])(newSkuItem, binding.from.replace(/\.url$/, '')); if (binding.to === 'style.background-image') { node.style.backgroundImage = image ? "url(\"".concat(image.url, "\")") : 'none'; } else if (binding.to === 'media') { if (node.classList.contains('w-lightbox')) { updateLightboxJson(node, image); } } else if (binding.to === 'src') { if (image && image.url) { node.src = image.url; node.alt = image.alt || ''; (0, _RenderingUtils.removeWDynBindEmptyClass)(node); // Temporary solution for responsive images for product variants if (node.hasAttribute('srcset')) { node.removeAttribute('srcset'); node.removeAttribute('sizes'); } } else { node.removeAttribute('src'); node.removeAttribute('srcset'); node.removeAttribute('sizes'); node.removeAttribute('alt'); node.classList.add(_constants3.CLASS_NAME_W_DYN_BIND_EMPTY); } } } if (binding.from === 'ecSkuInventoryQuantity') { var inventoryQuantity = (0, _get["default"])(newSkuItem, 'inventory.type') === 'infinite' ? null : (0, _get["default"])(newSkuItem, 'inventory.quantity'); node[binding.to === 'innerHTML' ? 'innerText' : binding.to] = inventoryQuantity; updateTextNodeVisibility(node); } }; var updatePageWithNewSkuValuesData = function updatePageWithNewSkuValuesData(instanceId, apolloClient) { return function (newSkuValues) { var $ = window.jQuery; apolloClient.query({ query: getAllVariants, variables: { productId: instanceId } }).then(function (_ref12) { var data = _ref12.data; var _ref2, _data$database2, _data$database2$colle, _data$database2$colle2, _ref3, _data$database3, _data$database3$colle, _data$database3$colle2; var items = (_ref2 = data === null || data === void 0 ? void 0 : (_data$database2 = data.database) === null || _data$database2 === void 0 ? void 0 : (_data$database2$colle = _data$database2.collections) === null || _data$database2$colle === void 0 ? void 0 : (_data$database2$colle2 = _data$database2$colle.c_sku_) === null || _data$database2$colle2 === void 0 ? void 0 : _data$database2$colle2.items) !== null && _ref2 !== void 0 ? _ref2 : []; var products = (_ref3 = data === null || data === void 0 ? void 0 : (_data$database3 = data.database) === null || _data$database3 === void 0 ? void 0 : (_data$database3$colle = _data$database3.collections) === null || _data$database3$colle === void 0 ? void 0 : (_data$database3$colle2 = _data$database3$colle.c_product_) === null || _data$database3$colle2 === void 0 ? void 0 : _data$database3$colle2.items) !== null && _ref3 !== void 0 ? _ref3 : []; var productType = products[0] ? products[0].f_ec_product_type_2dr10dr.name : 'Advanced'; var newSkuItem = (0, _find["default"])(items, function (item) { if (item.f_sku_values_3dr && Array.isArray(item.f_sku_values_3dr)) { var skuValues = (0, _Commerce.simplifySkuValues)(item.f_sku_values_3dr); return Object.keys(newSkuValues).every(function (key) { return newSkuValues[key] === skuValues[key]; }); } }); if (newSkuItem && newSkuItem.id) { updateStore(instanceId, { selectedSku: newSkuItem.id }); if (newSkuItem['f_ec_sku_billing_method_2dr6dr14dr'] === 'subscription' || productType === 'Membership') { updateStore(instanceId, { requiresUserSession: true }); } var formsForProduct = document.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM, "\"][").concat(_constants.DATA_ATTR_COMMERCE_PRODUCT_ID, "=\"").concat(instanceId, "\"]")); Array.from(formsForProduct).forEach(function (addToCartForm) { var collectionItemWrapper = findCollectionItemWrapper(addToCartForm); var referenceRepeaters = queryAllReferenceRepeaters(collectionItemWrapper); // Update the state of the buy now button text to handle subscription var buyNowButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_BUY_NOW_BUTTON, addToCartForm); if (buyNowButton) { if (newSkuItem['f_ec_sku_billing_method_2dr6dr14dr'] === 'subscription') { var addToCartButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_BUTTON, addToCartForm); var buyNowSubscriptionText = buyNowButton.getAttribute(_constants.DATA_ATTR_SUBSCRIPTION_TEXT) || 'Subscribe now'; hideElement(addToCartButton); buyNowButton.innerText = buyNowSubscriptionText; } else { var buyNowDefaultText = buyNowButton.getAttribute(_constants.DATA_ATTR_DEFAULT_TEXT) || 'Buy now'; buyNowButton.innerText = buyNowDefaultText; } } var moreImagesFieldLength = newSkuItem.f_more_images_4dr && newSkuItem.f_more_images_4dr.length || 0; if (referenceRepeaters.length > 0) { referenceRepeaters.forEach(function (referenceRepeater) { (0, _rendering.renderTree)(referenceRepeater, { data: newSkuItem }); if (moreImagesFieldLength > 0) { hideEmptyStateAndShowItemsList(referenceRepeater); } else { showEmptyStateAndHideItemsList(referenceRepeater); } }); } var skuBoundNodes = queryAllWithoutOtherItemWrapperContents(collectionItemWrapper, "[".concat(_constants.WF_SKU_BINDING_DATA_KEY, "]")); (0, _forEach["default"])(skuBoundNodes, function (node) { var skuBindingsData = node.getAttribute(_constants.WF_SKU_BINDING_DATA_KEY); if (skuBindingsData) { var skuBindings = (0, _commerceUtils.safeParseJson)(skuBindingsData); if (Array.isArray(skuBindings)) { skuBindings.forEach(function (binding) { return updateSkuBindings(binding, node, newSkuItem); }); } } }); var skuConditionBoundNodes = queryAllWithoutOtherItemWrapperContents(collectionItemWrapper, "[".concat(_constants.WF_SKU_CONDITION_DATA_KEY, "]")); (0, _forEach["default"])(skuConditionBoundNodes, function (node) { var conditionData = (0, _commerceUtils.safeParseJson)(node.getAttribute(_constants.WF_SKU_CONDITION_DATA_KEY)); if (conditionData) { (0, _rendering.applySkuBoundConditionalVisibility)({ conditionData: conditionData, newSkuItem: newSkuItem, node: node }); } }); var errorElement = $(collectionItemWrapper).siblings("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR, "\"]"))[0]; if (errorElement instanceof Element) { errorElement.style.display = 'none'; } }); // In case there are lightboxes bound, we need to initialize the events again after each script // was updated with the right data in updateSkuBindings if (window.Webflow.require('lightbox')) { window.Webflow.require('lightbox').ready(); } } else { // if we can't find a valid SKU, we've deselected one of the variant selectors // as such, we need to clear the selected SKU in the store updateStore(instanceId, { selectedSku: '' }); } }); }; }; var updateSkuValuesOnPillSelect = function updateSkuValuesOnPillSelect(instanceId, apolloClient) { return function (_ref13) { var optionId = _ref13.optionId, optionSetId = _ref13.optionSetId, groups = _ref13.groups; var currentSkuValues = fetchFromStore(instanceId, 'skuValues'); var newSkuValues = (0, _extends2["default"])({}, currentSkuValues, (0, _defineProperty2["default"])({}, optionSetId, optionId)); updateStore(instanceId, { skuValues: newSkuValues }); disableOptionsOnChange({ apolloClient: apolloClient, productId: instanceId, optionSets: Object.values(groups), optionSetId: optionSetId }); }; }; var handleAtcPageLoad = function handleAtcPageLoad(event, apolloClient, stripeStore) { if (!(event instanceof CustomEvent && event.type === _constants.RENDER_TREE_EVENT)) { return; } var addToCartForms = document.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM, "\"]")); // allow pills to work only in preview if (window.Webflow.env('preview')) { if (event.detail.isInitial) { (0, _forEach["default"])(addToCartForms, function (addToCartForm) { // set up pill groups var groups = new _PillGroup.PillGroups(addToCartForm, function (_ref15) { var optionId = _ref15.optionId, optionSetId = _ref15.optionSetId; groups.setSelectedPillsForSkuValues((0, _defineProperty2["default"])({}, optionSetId, optionId)); }); groups.init(); }); } return; } // otherwise, return for designer if (window.Webflow.env('design')) { return; } (0, _forEach["default"])(addToCartForms, function (addToCartForm) { var addToCartButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_BUTTON, addToCartForm); // If this form has an add to cart button, set the `aria-haspopup` to `dialog` or `false` // depending on at least one Cart element having the setting for "Open when product is added" if (addToCartButton) { var cartElementsThatOpenOnAdd = document.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, "\"][").concat(_constants.DATA_ATTR_OPEN_PRODUCT, "]")); addToCartButton.setAttribute('aria-haspopup', cartElementsThatOpenOnAdd.length > 0 ? 'dialog' : 'false'); } var buyNowButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_BUY_NOW_BUTTON, addToCartForm); // Hide the Buy now button if Stripe is not connected if (stripeStore && !stripeStore.isInitialized()) { if (buyNowButton) { hideElement(buyNowButton); } } var instanceId = getInstanceId(addToCartForm); if (event.detail.isInitial) { // only set the selected SKU from the DOM on the initial render event, as after that we want to // rely on the store as the source of truth. without this, the selected SKU could get reset on any render updateStore(instanceId, { selectedSku: addToCartForm instanceof Element ? addToCartForm.getAttribute(_constants.DATA_ATTR_COMMERCE_SKU_ID) : '' }); // add watcher for sku values change to update the page as needed addStoreWatcher(instanceId, 'skuValues', updatePageWithNewSkuValuesData(instanceId, apolloClient)); // add watcher for dropdowns to update on sku change addStoreWatcher(instanceId, 'skuValues', updateDropdownsOnPage(instanceId)); // set up pill groups if (_PillGroup.PillGroups.hasPillGroups(addToCartForm)) { var pillGroup = new _PillGroup.PillGroups(addToCartForm, updateSkuValuesOnPillSelect(instanceId, apolloClient)); addStoreWatcher(instanceId, 'skuValues', function (newSkuValues) { pillGroup.setSelectedPillsForSkuValues(newSkuValues); }); pillGroup.init(); } } var currentSkuId = fetchFromStore(instanceId, 'selectedSku'); if (!currentSkuId) { return; } var productId = addToCartForm && addToCartForm.getAttribute(_constants.DATA_ATTR_COMMERCE_PRODUCT_ID); if (productId) { apolloClient.query({ query: getAllVariantsAndMemberships, variables: { productId: productId } }).then(function (_ref16) { var data = _ref16.data; var _ref4, _data$database4, _data$database4$colle, _data$database4$colle2, _ref5, _data$database5, _data$database5$colle, _data$database5$colle2, _ref6, _data$database6, _memberships$; var items = (_ref4 = data === null || data === void 0 ? void 0 : (_data$database4 = data.database) === null || _data$database4 === void 0 ? void 0 : (_data$database4$colle = _data$database4.collections) === null || _data$database4$colle === void 0 ? void 0 : (_data$database4$colle2 = _data$database4$colle.c_sku_) === null || _data$database4$colle2 === void 0 ? void 0 : _data$database4$colle2.items) !== null && _ref4 !== void 0 ? _ref4 : []; var products = (_ref5 = data === null || data === void 0 ? void 0 : (_data$database5 = data.database) === null || _data$database5 === void 0 ? void 0 : (_data$database5$colle = _data$database5.collections) === null || _data$database5$colle === void 0 ? void 0 : (_data$database5$colle2 = _data$database5$colle.c_product_) === null || _data$database5$colle2 === void 0 ? void 0 : _data$database5$colle2.items) !== null && _ref5 !== void 0 ? _ref5 : []; var productType = products[0] ? products[0].f_ec_product_type_2dr10dr.name : 'Advanced'; // build the possible sku values for the given product // since all items have the same sku values, we just use the first // then we iterate over the skus, and create an object of [propertyId: string]: '' // to represent that by default, no property has been selected yet if (event.detail.isInitial && items[0].f_sku_values_3dr && items[0].f_sku_values_3dr.length > 0) { var skuValuesMap = items[0].f_sku_values_3dr.reduce(function (map, sku) { map[sku.property.id] = ''; return map; }, {}); updateStore(instanceId, { skuValues: skuValuesMap }); } var memberships = (_ref6 = data === null || data === void 0 ? void 0 : (_data$database6 = data.database) === null || _data$database6 === void 0 ? void 0 : _data$database6.commerceMemberships) !== null && _ref6 !== void 0 ? _ref6 : []; var hasActiveMemebership = Boolean((_memberships$ = memberships[0]) === null || _memberships$ === void 0 ? void 0 : _memberships$.active); if (hasActiveMemebership) { if (buyNowButton) { buyNowButton.removeAttribute('href'); // without href <a> doesn't have an implicit role, so adding it back here for accesibility buyNowButton.setAttribute('role', 'link'); buyNowButton.setAttribute('aria-disabled', 'true'); buyNowButton.classList.add('w--ecommerce-buy-now-disabled'); } if (addToCartButton) { addToCartButton.setAttribute('disabled', 'true'); addToCartButton.classList.add('w--ecommerce-add-to-cart-disabled'); } } var currentSku = items.find(function (item) { return item.id === currentSkuId; }); if (currentSku) { if (currentSku['f_ec_sku_billing_method_2dr6dr14dr'] === 'subscription' || productType === 'Membership') { updateStore(instanceId, { requiresUserSession: true }); } // Set buy now text to subscription state if subscription if (currentSku['f_ec_sku_billing_method_2dr6dr14dr'] === 'subscription') { hideElement(addToCartButton); if (buyNowButton) { var buyNowSubscriptionText = buyNowButton.getAttribute(_constants.DATA_ATTR_SUBSCRIPTION_TEXT) || 'Subscribe now'; buyNowButton.innerText = buyNowSubscriptionText; } } else if (buyNowButton) { var buyNowDefaultText = buyNowButton.getAttribute(_constants.DATA_ATTR_DEFAULT_TEXT) || 'Buy now'; buyNowButton.innerText = buyNowDefaultText; } var addToCartWrapper = addToCartForm.parentElement; var optionListElement = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_OPTION_LIST, addToCartWrapper); var outOfStockState = addToCartWrapper && addToCartWrapper.getElementsByClassName('w-commerce-commerceaddtocartoutofstock')[0]; // Check if exist a variant with stock var hasVariantsWithStock = items.some(function (variant) { return variant.inventory.type === _constants.INVENTORY_TYPE_FINITE && variant.inventory.quantity > 0 || variant.inventory.type === _constants.INVENTORY_TYPE_INFINITE; }); if (!hasVariantsWithStock && outOfStockState) { outOfStockState.style.display = ''; addToCartForm.style.display = 'none'; } // Update select options based on stock var optionSetsToUpdate = items[0].f_sku_values_3dr.map(function (skuValue) { return skuValue.property.id; }); optionSetsToUpdate.forEach(function (optionToUpdateSetId) { // Get the select we will update var optionSet = addToCartForm.querySelector("[".concat(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID, "=\"").concat(optionToUpdateSetId, "\"]")); if (!(optionSet instanceof HTMLElement)) { return; } var optionSetId = optionSet.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID); if (optionSet.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP) { // if we're using a pill group, we need to get the PillGroup class for the given element // so that we have access to the getters we defined to give us compatibility with the `select` API optionSet = optionSet._wfPillGroup; } (0, _forEach["default"])(optionSet.options, function (option) { // Get the variant that has the current option combined with other selected options that in this case, since it's in the on load // it will be the default variant if (!option.value) { // The default options should be always enabled option.enabled = true; } else { disableVariantsWithNoStock(items, optionSetId, option); } }); // Make sure that if this is render occurs with option sets already selected that we disable based on available options var selectedOptionSets = optionSetsToUpdate.filter(function (optionSetToUpdate) { return optionSetToUpdate.value; }); disableVariantsWithNoStockForRemainingSelections(items, selectedOptionSets, optionSet, optionSetId); // Preselect the default variant if setting has been enabled and initial render if (event.detail.isInitial && optionListElement && optionListElement.getAttribute(_constants.DATA_ATTR_PRESELECT_DEFAULT_VARIANT) === 'true') { var defaultSkuId = (0, _get["default"])(data, ['database', 'collections', 'c_product_', 'items', 0, 'f_default_sku_7dr', 'id']); var defaultSku = items.find(function (item) { return item.id === defaultSkuId; }); // Ensure the default variant is in stock before preselecting if (defaultSku && !(defaultSku.inventory.type === _constants.INVENTORY_TYPE_FINITE && defaultSku.inventory.quantity <= 0)) { var defaultSkuIndex = Array.from(optionSet.options).findIndex(function (option) { return defaultSku.f_sku_values_3dr.some(function (value) { return value.value.id === option.value; }); }); if (defaultSkuIndex > -1) { optionSet.selectedIndex = defaultSkuIndex; updateStore(instanceId, { selectedSku: defaultSku.id, // update the sku values map to set each property id to the value id // for the current variant skuValues: (0, _Commerce.simplifySkuValues)(defaultSku.f_sku_values_3dr) }); } } } }); } }); } }); }; var disableVariantsWithNoStockForRemainingSelections = function disableVariantsWithNoStockForRemainingSelections(items, selectedOptionSets, optionSet, id) { // Get all the possible variants given our current selections var possibleVariantSelections = items.filter(function (item) { var itemMappedBySkuValues = item.f_sku_values_3dr.map(function (skuValues) { return skuValues.value.id; }); var currentlySelectedSkuValues = selectedOptionSets.map(function (selectedOptionSet) { return selectedOptionSet.value; }); return currentlySelectedSkuValues.every(function (selectedValue) { return itemMappedBySkuValues.includes(selectedValue); }); }); // Reset them if there is only 1 left i.e. user has selected all 3 options if (possibleVariantSelections.length === 1) { possibleVariantSelections = items; } (0, _forEach["default"])(optionSet.options, function (option) { // Get the variant that has the current option combined with other selected options that in this case, since it's in the on load // it will be the default variant if (!option.value) { // The default options should be always enabled option.enabled = true; } else { var variantsFiltered = possibleVariantSelections.filter(function (variant) { var sku = variant.f_sku_values_3dr.find(function (value) { return value.property.id === id; }); return sku.value.id === option.value; }); var hasVariantsWithStock = variantsFiltered.some(function (variant) { return variant.inventory.type === _constants.INVENTORY_TYPE_FINITE && variant.inventory.quantity > 0 || variant.inventory.type === _constants.INVENTORY_TYPE_INFINITE; }); if (!hasVariantsWithStock) { option.disabled = true; } else { option.disabled = false; } } }); }; var disableVariantsWithNoStock = function disableVariantsWithNoStock(items, optionSetId, option) { if (!option.value) { return; } var variantsFiltered = items.filter(function (variant) { var sku = variant.f_sku_values_3dr.find(function (value) { return value.property.id === optionSetId; }); return sku.value.id === option.value; }); var hasVariantsWithStock = variantsFiltered.some(function (variant) { return variant.inventory.type === _constants.INVENTORY_TYPE_FINITE && variant.inventory.quantity > 0 || variant.inventory.type === _constants.INVENTORY_TYPE_INFINITE; }); if (!hasVariantsWithStock) { option.disabled = true; } else { option.disabled = false; } }; var updateTextNodeVisibility = function updateTextNodeVisibility(node) { if (node.innerText) { (0, _RenderingUtils.removeWDynBindEmptyClass)(node); } if (!node.innerText && !node.classList.contains(_constants3.CLASS_NAME_W_DYN_BIND_EMPTY)) { node.classList.add(_constants3.CLASS_NAME_W_DYN_BIND_EMPTY); } }; var updateLightboxJson = function updateLightboxJson(node, binding) { var lightboxScript = node.querySelector('script.w-json'); if (lightboxScript) { var nodeJsonData = JSON.parse(lightboxScript.innerHTML); // if the JSON created from bound media is `null`, // we replace `script` tag contents with placeholder data // that retains the `group` property lightboxScript.innerHTML = JSON.stringify((0, _utils.createJsonFromBoundMedia)(binding, nodeJsonData) || { items: [], group: nodeJsonData && nodeJsonData.group }); } }; var isBuyNowButtonEvent = function isBuyNowButtonEvent(_ref17) { var target = _ref17.target; return target instanceof Element && target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_BUY_NOW_BUTTON; }; var handleBuyNow = function handleBuyNow(event, apolloClient) { event.preventDefault(); // Don't try and do anything in preview mode if (window.Webflow.env('preview')) { return; } var buyNowButton = event.target; var addToCartForm = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_FORM, buyNowButton); if (!(buyNowButton instanceof HTMLAnchorElement) || !(addToCartForm instanceof HTMLFormElement)) { return; } if (buyNowButton.classList.contains('w--ecommerce-buy-now-disabled')) { return; } var addToCartWrapper = addToCartForm.parentElement; if (!(addToCartWrapper instanceof Element)) { return; } var addToCartErrorElement = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_ERROR, addToCartWrapper); if (!(addToCartErrorElement instanceof Element)) { return; } addToCartErrorElement.style.display = 'none'; if (!(0, _commerceUtils.isProtocolHttps)()) { window.alert('This site is currently unsecured so you cannot purchase this item.'); return; } // Confirm atc selection is valid if (!addToCartForm.reportValidity()) { return; } // Redirect to sign up if the purchase requires a user session and there is none var requiresUserSession = fetchFromStore(getInstanceId(addToCartForm), 'requiresUserSession'); var hasUserSession = document.cookie.split(';').some(function (cookie) { return cookie.indexOf(_constants2.LOGGEDIN_COOKIE_NAME) > -1; }); if (requiresUserSession && !hasUserSession) { (0, _siteBundles.redirectWithUsrdir)("/".concat(_constants2.USYS_PAGE_SETTINGS.signup.slug)); return; } var publishableKey = buyNowButton.getAttribute(_constants.DATA_ATTR_PUBLISHABLE_KEY); // If no publishable key checkout is not enabled if (!publishableKey) { var errorMsg = addToCartErrorElement.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_ADD_TO_CART_ERROR, "\"]")); if (!errorMsg) { return; } var errorText = errorMsg.getAttribute(_constants.CHECKOUT_DISABLED_ERROR_MESSAGE) || 'Checkout is disabled.'; errorMsg.textContent = errorText; addToCartErrorElement.style.removeProperty('display'); return; } var skuId = fetchFromStore(getInstanceId(addToCartForm), 'selectedSku') || ''; var formData = (0, _commerceUtils.formToObject)(addToCartForm); var formCount = formData[_constants.NODE_NAME_COMMERCE_ADD_TO_CART_QUANTITY_INPUT]; var count = formCount ? parseInt(formCount, 10) : 1; // if no SKU id, then all options need to be selected // this is only shown for pills, as dropdowns will be caught by reportValidity above if (!skuId) { var _errorMsg2 = addToCartErrorElement.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_ADD_TO_CART_ERROR, "\"]")); if (!_errorMsg2) { return; } var _errorText2 = _errorMsg2.getAttribute((0, _constants.getATCErrorMessageForType)('select-all-options')) || 'Please select an option in each set.'; _errorMsg2.textContent = _errorText2; addToCartErrorElement.style.removeProperty('display'); return; } apolloClient.mutate({ mutation: addToCartMutation, variables: { skuId: skuId, count: count, buyNow: true } }).then(function (_ref18) { var data = _ref18.data; var itemPrice = data.ecommerceAddToCart.itemPrice || {}; trackAddToCartUsage(skuId, count, itemPrice); window.location = buyNowButton.href; })["catch"](function (error) { if (addToCartErrorElement) { addToCartErrorElement.style.removeProperty('display'); var _errorMsg3 = addToCartErrorElement.querySelector("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_ADD_TO_CART_ERROR, "\"]")); if (!_errorMsg3) { return; } var errorType = error.graphQLErrors && error.graphQLErrors.length > 0 && error.graphQLErrors[0].code === 'OutOfInventory' ? 'quantity' : 'buy-now'; var _errorText3 = _errorMsg3.getAttribute((0, _constants.getATCErrorMessageForType)(errorType)) || ''; _errorMsg3.textContent = _errorText3; } _debug["default"].error(error); (0, _commerceUtils.triggerRender)(null); }); }; var register = function register(handlerProxy) { handlerProxy.on('submit', addToCartFormEventTargetMatcher, handleAtcSubmit); handlerProxy.on('change', addToCartOptionSelectEventTargetMatcher, handleAtcOptionSelectChange); handlerProxy.on('click', isBuyNowButtonEvent, handleBuyNow); handlerProxy.on(_constants.RENDER_TREE_EVENT, Boolean, handleAtcPageLoad); }; exports.register = register; var _default = { register: register }; exports["default"] = _default; /***/ }), /* 727 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parse = parse; exports.parseValue = parseValue; exports.parseType = parseType; exports.parseConstValue = parseConstValue; exports.parseTypeReference = parseTypeReference; exports.parseNamedType = parseNamedType; var _source = __webpack_require__(728); var _error = __webpack_require__(351); var _lexer = __webpack_require__(732); var _kinds = __webpack_require__(734); var _directiveLocation = __webpack_require__(735); /** * Given a GraphQL source, parses it into a Document. * Throws GraphQLError if a syntax error is encountered. */ /** * Configuration options to control parser behavior */ function parse(source, options) { var sourceObj = typeof source === 'string' ? new _source.Source(source) : source; if (!(sourceObj instanceof _source.Source)) { throw new TypeError('Must provide Source. Received: ' + String(sourceObj)); } var lexer = (0, _lexer.createLexer)(sourceObj, options || {}); return parseDocument(lexer); } /** * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for * that value. * Throws GraphQLError if a syntax error is encountered. * * This is useful within tools that operate upon GraphQL Values directly and * in isolation of complete GraphQL documents. * * Consider providing the results to the utility function: valueFromAST(). */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function parseValue(source, options) { var sourceObj = typeof source === 'string' ? new _source.Source(source) : source; var lexer = (0, _lexer.createLexer)(sourceObj, options || {}); expect(lexer, _lexer.TokenKind.SOF); var value = parseValueLiteral(lexer, false); expect(lexer, _lexer.TokenKind.EOF); return value; } /** * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for * that type. * Throws GraphQLError if a syntax error is encountered. * * This is useful within tools that operate upon GraphQL Types directly and * in isolation of complete GraphQL documents. * * Consider providing the results to the utility function: typeFromAST(). */ function parseType(source, options) { var sourceObj = typeof source === 'string' ? new _source.Source(source) : source; var lexer = (0, _lexer.createLexer)(sourceObj, options || {}); expect(lexer, _lexer.TokenKind.SOF); var type = parseTypeReference(lexer); expect(lexer, _lexer.TokenKind.EOF); return type; } /** * Converts a name lex token into a name parse node. */ function parseName(lexer) { var token = expect(lexer, _lexer.TokenKind.NAME); return { kind: _kinds.Kind.NAME, value: token.value, loc: loc(lexer, token) }; } // Implements the parsing rules in the Document section. /** * Document : Definition+ */ function parseDocument(lexer) { var start = lexer.token; expect(lexer, _lexer.TokenKind.SOF); var definitions = []; do { definitions.push(parseDefinition(lexer)); } while (!skip(lexer, _lexer.TokenKind.EOF)); return { kind: _kinds.Kind.DOCUMENT, definitions: definitions, loc: loc(lexer, start) }; } /** * Definition : * - ExecutableDefinition * - TypeSystemDefinition */ function parseDefinition(lexer) { if (peek(lexer, _lexer.TokenKind.NAME)) { switch (lexer.token.value) { case 'query': case 'mutation': case 'subscription': case 'fragment': return parseExecutableDefinition(lexer); case 'schema': case 'scalar': case 'type': case 'interface': case 'union': case 'enum': case 'input': case 'extend': case 'directive': // Note: The schema definition language is an experimental addition. return parseTypeSystemDefinition(lexer); } } else if (peek(lexer, _lexer.TokenKind.BRACE_L)) { return parseExecutableDefinition(lexer); } else if (peekDescription(lexer)) { // Note: The schema definition language is an experimental addition. return parseTypeSystemDefinition(lexer); } throw unexpected(lexer); } /** * ExecutableDefinition : * - OperationDefinition * - FragmentDefinition */ function parseExecutableDefinition(lexer) { if (peek(lexer, _lexer.TokenKind.NAME)) { switch (lexer.token.value) { case 'query': case 'mutation': case 'subscription': return parseOperationDefinition(lexer); case 'fragment': return parseFragmentDefinition(lexer); } } else if (peek(lexer, _lexer.TokenKind.BRACE_L)) { return parseOperationDefinition(lexer); } throw unexpected(lexer); } // Implements the parsing rules in the Operations section. /** * OperationDefinition : * - SelectionSet * - OperationType Name? VariableDefinitions? Directives? SelectionSet */ function parseOperationDefinition(lexer) { var start = lexer.token; if (peek(lexer, _lexer.TokenKind.BRACE_L)) { return { kind: _kinds.Kind.OPERATION_DEFINITION, operation: 'query', name: undefined, variableDefinitions: [], directives: [], selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } var operation = parseOperationType(lexer); var name = void 0; if (peek(lexer, _lexer.TokenKind.NAME)) { name = parseName(lexer); } return { kind: _kinds.Kind.OPERATION_DEFINITION, operation: operation, name: name, variableDefinitions: parseVariableDefinitions(lexer), directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } /** * OperationType : one of query mutation subscription */ function parseOperationType(lexer) { var operationToken = expect(lexer, _lexer.TokenKind.NAME); switch (operationToken.value) { case 'query': return 'query'; case 'mutation': return 'mutation'; case 'subscription': return 'subscription'; } throw unexpected(lexer, operationToken); } /** * VariableDefinitions : ( VariableDefinition+ ) */ function parseVariableDefinitions(lexer) { return peek(lexer, _lexer.TokenKind.PAREN_L) ? many(lexer, _lexer.TokenKind.PAREN_L, parseVariableDefinition, _lexer.TokenKind.PAREN_R) : []; } /** * VariableDefinition : Variable : Type DefaultValue? */ function parseVariableDefinition(lexer) { var start = lexer.token; return { kind: _kinds.Kind.VARIABLE_DEFINITION, variable: parseVariable(lexer), type: (expect(lexer, _lexer.TokenKind.COLON), parseTypeReference(lexer)), defaultValue: skip(lexer, _lexer.TokenKind.EQUALS) ? parseValueLiteral(lexer, true) : undefined, loc: loc(lexer, start) }; } /** * Variable : $ Name */ function parseVariable(lexer) { var start = lexer.token; expect(lexer, _lexer.TokenKind.DOLLAR); return { kind: _kinds.Kind.VARIABLE, name: parseName(lexer), loc: loc(lexer, start) }; } /** * SelectionSet : { Selection+ } */ function parseSelectionSet(lexer) { var start = lexer.token; return { kind: _kinds.Kind.SELECTION_SET, selections: many(lexer, _lexer.TokenKind.BRACE_L, parseSelection, _lexer.TokenKind.BRACE_R), loc: loc(lexer, start) }; } /** * Selection : * - Field * - FragmentSpread * - InlineFragment */ function parseSelection(lexer) { return peek(lexer, _lexer.TokenKind.SPREAD) ? parseFragment(lexer) : parseField(lexer); } /** * Field : Alias? Name Arguments? Directives? SelectionSet? * * Alias : Name : */ function parseField(lexer) { var start = lexer.token; var nameOrAlias = parseName(lexer); var alias = void 0; var name = void 0; if (skip(lexer, _lexer.TokenKind.COLON)) { alias = nameOrAlias; name = parseName(lexer); } else { name = nameOrAlias; } return { kind: _kinds.Kind.FIELD, alias: alias, name: name, arguments: parseArguments(lexer, false), directives: parseDirectives(lexer, false), selectionSet: peek(lexer, _lexer.TokenKind.BRACE_L) ? parseSelectionSet(lexer) : undefined, loc: loc(lexer, start) }; } /** * Arguments[Const] : ( Argument[?Const]+ ) */ function parseArguments(lexer, isConst) { var item = isConst ? parseConstArgument : parseArgument; return peek(lexer, _lexer.TokenKind.PAREN_L) ? many(lexer, _lexer.TokenKind.PAREN_L, item, _lexer.TokenKind.PAREN_R) : []; } /** * Argument[Const] : Name : Value[?Const] */ function parseArgument(lexer) { var start = lexer.token; return { kind: _kinds.Kind.ARGUMENT, name: parseName(lexer), value: (expect(lexer, _lexer.TokenKind.COLON), parseValueLiteral(lexer, false)), loc: loc(lexer, start) }; } function parseConstArgument(lexer) { var start = lexer.token; return { kind: _kinds.Kind.ARGUMENT, name: parseName(lexer), value: (expect(lexer, _lexer.TokenKind.COLON), parseConstValue(lexer)), loc: loc(lexer, start) }; } // Implements the parsing rules in the Fragments section. /** * Corresponds to both FragmentSpread and InlineFragment in the spec. * * FragmentSpread : ... FragmentName Directives? * * InlineFragment : ... TypeCondition? Directives? SelectionSet */ function parseFragment(lexer) { var start = lexer.token; expect(lexer, _lexer.TokenKind.SPREAD); if (peek(lexer, _lexer.TokenKind.NAME) && lexer.token.value !== 'on') { return { kind: _kinds.Kind.FRAGMENT_SPREAD, name: parseFragmentName(lexer), directives: parseDirectives(lexer, false), loc: loc(lexer, start) }; } var typeCondition = void 0; if (lexer.token.value === 'on') { lexer.advance(); typeCondition = parseNamedType(lexer); } return { kind: _kinds.Kind.INLINE_FRAGMENT, typeCondition: typeCondition, directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } /** * FragmentDefinition : * - fragment FragmentName on TypeCondition Directives? SelectionSet * * TypeCondition : NamedType */ function parseFragmentDefinition(lexer) { var start = lexer.token; expectKeyword(lexer, 'fragment'); // Experimental support for defining variables within fragments changes // the grammar of FragmentDefinition: // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet if (lexer.options.experimentalFragmentVariables) { return { kind: _kinds.Kind.FRAGMENT_DEFINITION, name: parseFragmentName(lexer), variableDefinitions: parseVariableDefinitions(lexer), typeCondition: (expectKeyword(lexer, 'on'), parseNamedType(lexer)), directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } return { kind: _kinds.Kind.FRAGMENT_DEFINITION, name: parseFragmentName(lexer), typeCondition: (expectKeyword(lexer, 'on'), parseNamedType(lexer)), directives: parseDirectives(lexer, false), selectionSet: parseSelectionSet(lexer), loc: loc(lexer, start) }; } /** * FragmentName : Name but not `on` */ function parseFragmentName(lexer) { if (lexer.token.value === 'on') { throw unexpected(lexer); } return parseName(lexer); } // Implements the parsing rules in the Values section. /** * Value[Const] : * - [~Const] Variable * - IntValue * - FloatValue * - StringValue * - BooleanValue * - NullValue * - EnumValue * - ListValue[?Const] * - ObjectValue[?Const] * * BooleanValue : one of `true` `false` * * NullValue : `null` * * EnumValue : Name but not `true`, `false` or `null` */ function parseValueLiteral(lexer, isConst) { var token = lexer.token; switch (token.kind) { case _lexer.TokenKind.BRACKET_L: return parseList(lexer, isConst); case _lexer.TokenKind.BRACE_L: return parseObject(lexer, isConst); case _lexer.TokenKind.INT: lexer.advance(); return { kind: _kinds.Kind.INT, value: token.value, loc: loc(lexer, token) }; case _lexer.TokenKind.FLOAT: lexer.advance(); return { kind: _kinds.Kind.FLOAT, value: token.value, loc: loc(lexer, token) }; case _lexer.TokenKind.STRING: case _lexer.TokenKind.BLOCK_STRING: return parseStringLiteral(lexer); case _lexer.TokenKind.NAME: if (token.value === 'true' || token.value === 'false') { lexer.advance(); return { kind: _kinds.Kind.BOOLEAN, value: token.value === 'true', loc: loc(lexer, token) }; } else if (token.value === 'null') { lexer.advance(); return { kind: _kinds.Kind.NULL, loc: loc(lexer, token) }; } lexer.advance(); return { kind: _kinds.Kind.ENUM, value: token.value, loc: loc(lexer, token) }; case _lexer.TokenKind.DOLLAR: if (!isConst) { return parseVariable(lexer); } break; } throw unexpected(lexer); } function parseStringLiteral(lexer) { var token = lexer.token; lexer.advance(); return { kind: _kinds.Kind.STRING, value: token.value, block: token.kind === _lexer.TokenKind.BLOCK_STRING, loc: loc(lexer, token) }; } function parseConstValue(lexer) { return parseValueLiteral(lexer, true); } function parseValueValue(lexer) { return parseValueLiteral(lexer, false); } /** * ListValue[Const] : * - [ ] * - [ Value[?Const]+ ] */ function parseList(lexer, isConst) { var start = lexer.token; var item = isConst ? parseConstValue : parseValueValue; return { kind: _kinds.Kind.LIST, values: any(lexer, _lexer.TokenKind.BRACKET_L, item, _lexer.TokenKind.BRACKET_R), loc: loc(lexer, start) }; } /** * ObjectValue[Const] : * - { } * - { ObjectField[?Const]+ } */ function parseObject(lexer, isConst) { var start = lexer.token; expect(lexer, _lexer.TokenKind.BRACE_L); var fields = []; while (!skip(lexer, _lexer.TokenKind.BRACE_R)) { fields.push(parseObjectField(lexer, isConst)); } return { kind: _kinds.Kind.OBJECT, fields: fields, loc: loc(lexer, start) }; } /** * ObjectField[Const] : Name : Value[?Const] */ function parseObjectField(lexer, isConst) { var start = lexer.token; return { kind: _kinds.Kind.OBJECT_FIELD, name: parseName(lexer), value: (expect(lexer, _lexer.TokenKind.COLON), parseValueLiteral(lexer, isConst)), loc: loc(lexer, start) }; } // Implements the parsing rules in the Directives section. /** * Directives[Const] : Directive[?Const]+ */ function parseDirectives(lexer, isConst) { var directives = []; while (peek(lexer, _lexer.TokenKind.AT)) { directives.push(parseDirective(lexer, isConst)); } return directives; } /** * Directive[Const] : @ Name Arguments[?Const]? */ function parseDirective(lexer, isConst) { var start = lexer.token; expect(lexer, _lexer.TokenKind.AT); return { kind: _kinds.Kind.DIRECTIVE, name: parseName(lexer), arguments: parseArguments(lexer, isConst), loc: loc(lexer, start) }; } // Implements the parsing rules in the Types section. /** * Type : * - NamedType * - ListType * - NonNullType */ function parseTypeReference(lexer) { var start = lexer.token; var type = void 0; if (skip(lexer, _lexer.TokenKind.BRACKET_L)) { type = parseTypeReference(lexer); expect(lexer, _lexer.TokenKind.BRACKET_R); type = { kind: _kinds.Kind.LIST_TYPE, type: type, loc: loc(lexer, start) }; } else { type = parseNamedType(lexer); } if (skip(lexer, _lexer.TokenKind.BANG)) { return { kind: _kinds.Kind.NON_NULL_TYPE, type: type, loc: loc(lexer, start) }; } return type; } /** * NamedType : Name */ function parseNamedType(lexer) { var start = lexer.token; return { kind: _kinds.Kind.NAMED_TYPE, name: parseName(lexer), loc: loc(lexer, start) }; } // Implements the parsing rules in the Type Definition section. /** * TypeSystemDefinition : * - SchemaDefinition * - TypeDefinition * - TypeExtension * - DirectiveDefinition * * TypeDefinition : * - ScalarTypeDefinition * - ObjectTypeDefinition * - InterfaceTypeDefinition * - UnionTypeDefinition * - EnumTypeDefinition * - InputObjectTypeDefinition */ function parseTypeSystemDefinition(lexer) { // Many definitions begin with a description and require a lookahead. var keywordToken = peekDescription(lexer) ? lexer.lookahead() : lexer.token; if (keywordToken.kind === _lexer.TokenKind.NAME) { switch (keywordToken.value) { case 'schema': return parseSchemaDefinition(lexer); case 'scalar': return parseScalarTypeDefinition(lexer); case 'type': return parseObjectTypeDefinition(lexer); case 'interface': return parseInterfaceTypeDefinition(lexer); case 'union': return parseUnionTypeDefinition(lexer); case 'enum': return parseEnumTypeDefinition(lexer); case 'input': return parseInputObjectTypeDefinition(lexer); case 'extend': return parseTypeExtension(lexer); case 'directive': return parseDirectiveDefinition(lexer); } } throw unexpected(lexer, keywordToken); } function peekDescription(lexer) { return peek(lexer, _lexer.TokenKind.STRING) || peek(lexer, _lexer.TokenKind.BLOCK_STRING); } /** * Description : StringValue */ function parseDescription(lexer) { if (peekDescription(lexer)) { return parseStringLiteral(lexer); } } /** * SchemaDefinition : schema Directives[Const]? { OperationTypeDefinition+ } */ function parseSchemaDefinition(lexer) { var start = lexer.token; expectKeyword(lexer, 'schema'); var directives = parseDirectives(lexer, true); var operationTypes = many(lexer, _lexer.TokenKind.BRACE_L, parseOperationTypeDefinition, _lexer.TokenKind.BRACE_R); return { kind: _kinds.Kind.SCHEMA_DEFINITION, directives: directives, operationTypes: operationTypes, loc: loc(lexer, start) }; } /** * OperationTypeDefinition : OperationType : NamedType */ function parseOperationTypeDefinition(lexer) { var start = lexer.token; var operation = parseOperationType(lexer); expect(lexer, _lexer.TokenKind.COLON); var type = parseNamedType(lexer); return { kind: _kinds.Kind.OPERATION_TYPE_DEFINITION, operation: operation, type: type, loc: loc(lexer, start) }; } /** * ScalarTypeDefinition : Description? scalar Name Directives[Const]? */ function parseScalarTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'scalar'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); return { kind: _kinds.Kind.SCALAR_TYPE_DEFINITION, description: description, name: name, directives: directives, loc: loc(lexer, start) }; } /** * ObjectTypeDefinition : * Description? * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition? */ function parseObjectTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'type'); var name = parseName(lexer); var interfaces = parseImplementsInterfaces(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); return { kind: _kinds.Kind.OBJECT_TYPE_DEFINITION, description: description, name: name, interfaces: interfaces, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * ImplementsInterfaces : * - implements `&`? NamedType * - ImplementsInterfaces & NamedType */ function parseImplementsInterfaces(lexer) { var types = []; if (lexer.token.value === 'implements') { lexer.advance(); // Optional leading ampersand skip(lexer, _lexer.TokenKind.AMP); do { types.push(parseNamedType(lexer)); } while (skip(lexer, _lexer.TokenKind.AMP) || // Legacy support for the SDL? lexer.options.allowLegacySDLImplementsInterfaces && peek(lexer, _lexer.TokenKind.NAME)); } return types; } /** * FieldsDefinition : { FieldDefinition+ } */ function parseFieldsDefinition(lexer) { // Legacy support for the SDL? if (lexer.options.allowLegacySDLEmptyFields && peek(lexer, _lexer.TokenKind.BRACE_L) && lexer.lookahead().kind === _lexer.TokenKind.BRACE_R) { lexer.advance(); lexer.advance(); return []; } return peek(lexer, _lexer.TokenKind.BRACE_L) ? many(lexer, _lexer.TokenKind.BRACE_L, parseFieldDefinition, _lexer.TokenKind.BRACE_R) : []; } /** * FieldDefinition : * - Description? Name ArgumentsDefinition? : Type Directives[Const]? */ function parseFieldDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); var name = parseName(lexer); var args = parseArgumentDefs(lexer); expect(lexer, _lexer.TokenKind.COLON); var type = parseTypeReference(lexer); var directives = parseDirectives(lexer, true); return { kind: _kinds.Kind.FIELD_DEFINITION, description: description, name: name, arguments: args, type: type, directives: directives, loc: loc(lexer, start) }; } /** * ArgumentsDefinition : ( InputValueDefinition+ ) */ function parseArgumentDefs(lexer) { if (!peek(lexer, _lexer.TokenKind.PAREN_L)) { return []; } return many(lexer, _lexer.TokenKind.PAREN_L, parseInputValueDef, _lexer.TokenKind.PAREN_R); } /** * InputValueDefinition : * - Description? Name : Type DefaultValue? Directives[Const]? */ function parseInputValueDef(lexer) { var start = lexer.token; var description = parseDescription(lexer); var name = parseName(lexer); expect(lexer, _lexer.TokenKind.COLON); var type = parseTypeReference(lexer); var defaultValue = void 0; if (skip(lexer, _lexer.TokenKind.EQUALS)) { defaultValue = parseConstValue(lexer); } var directives = parseDirectives(lexer, true); return { kind: _kinds.Kind.INPUT_VALUE_DEFINITION, description: description, name: name, type: type, defaultValue: defaultValue, directives: directives, loc: loc(lexer, start) }; } /** * InterfaceTypeDefinition : * - Description? interface Name Directives[Const]? FieldsDefinition? */ function parseInterfaceTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'interface'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); return { kind: _kinds.Kind.INTERFACE_TYPE_DEFINITION, description: description, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * UnionTypeDefinition : * - Description? union Name Directives[Const]? UnionMemberTypes? */ function parseUnionTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'union'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var types = parseUnionMemberTypes(lexer); return { kind: _kinds.Kind.UNION_TYPE_DEFINITION, description: description, name: name, directives: directives, types: types, loc: loc(lexer, start) }; } /** * UnionMemberTypes : * - = `|`? NamedType * - UnionMemberTypes | NamedType */ function parseUnionMemberTypes(lexer) { var types = []; if (skip(lexer, _lexer.TokenKind.EQUALS)) { // Optional leading pipe skip(lexer, _lexer.TokenKind.PIPE); do { types.push(parseNamedType(lexer)); } while (skip(lexer, _lexer.TokenKind.PIPE)); } return types; } /** * EnumTypeDefinition : * - Description? enum Name Directives[Const]? EnumValuesDefinition? */ function parseEnumTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'enum'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var values = parseEnumValuesDefinition(lexer); return { kind: _kinds.Kind.ENUM_TYPE_DEFINITION, description: description, name: name, directives: directives, values: values, loc: loc(lexer, start) }; } /** * EnumValuesDefinition : { EnumValueDefinition+ } */ function parseEnumValuesDefinition(lexer) { return peek(lexer, _lexer.TokenKind.BRACE_L) ? many(lexer, _lexer.TokenKind.BRACE_L, parseEnumValueDefinition, _lexer.TokenKind.BRACE_R) : []; } /** * EnumValueDefinition : Description? EnumValue Directives[Const]? * * EnumValue : Name */ function parseEnumValueDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); var name = parseName(lexer); var directives = parseDirectives(lexer, true); return { kind: _kinds.Kind.ENUM_VALUE_DEFINITION, description: description, name: name, directives: directives, loc: loc(lexer, start) }; } /** * InputObjectTypeDefinition : * - Description? input Name Directives[Const]? InputFieldsDefinition? */ function parseInputObjectTypeDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'input'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseInputFieldsDefinition(lexer); return { kind: _kinds.Kind.INPUT_OBJECT_TYPE_DEFINITION, description: description, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * InputFieldsDefinition : { InputValueDefinition+ } */ function parseInputFieldsDefinition(lexer) { return peek(lexer, _lexer.TokenKind.BRACE_L) ? many(lexer, _lexer.TokenKind.BRACE_L, parseInputValueDef, _lexer.TokenKind.BRACE_R) : []; } /** * TypeExtension : * - ScalarTypeExtension * - ObjectTypeExtension * - InterfaceTypeExtension * - UnionTypeExtension * - EnumTypeExtension * - InputObjectTypeDefinition */ function parseTypeExtension(lexer) { var keywordToken = lexer.lookahead(); if (keywordToken.kind === _lexer.TokenKind.NAME) { switch (keywordToken.value) { case 'scalar': return parseScalarTypeExtension(lexer); case 'type': return parseObjectTypeExtension(lexer); case 'interface': return parseInterfaceTypeExtension(lexer); case 'union': return parseUnionTypeExtension(lexer); case 'enum': return parseEnumTypeExtension(lexer); case 'input': return parseInputObjectTypeExtension(lexer); } } throw unexpected(lexer, keywordToken); } /** * ScalarTypeExtension : * - extend scalar Name Directives[Const] */ function parseScalarTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'scalar'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); if (directives.length === 0) { throw unexpected(lexer); } return { kind: _kinds.Kind.SCALAR_TYPE_EXTENSION, name: name, directives: directives, loc: loc(lexer, start) }; } /** * ObjectTypeExtension : * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition * - extend type Name ImplementsInterfaces? Directives[Const] * - extend type Name ImplementsInterfaces */ function parseObjectTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'type'); var name = parseName(lexer); var interfaces = parseImplementsInterfaces(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); if (interfaces.length === 0 && directives.length === 0 && fields.length === 0) { throw unexpected(lexer); } return { kind: _kinds.Kind.OBJECT_TYPE_EXTENSION, name: name, interfaces: interfaces, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * InterfaceTypeExtension : * - extend interface Name Directives[Const]? FieldsDefinition * - extend interface Name Directives[Const] */ function parseInterfaceTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'interface'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseFieldsDefinition(lexer); if (directives.length === 0 && fields.length === 0) { throw unexpected(lexer); } return { kind: _kinds.Kind.INTERFACE_TYPE_EXTENSION, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * UnionTypeExtension : * - extend union Name Directives[Const]? UnionMemberTypes * - extend union Name Directives[Const] */ function parseUnionTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'union'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var types = parseUnionMemberTypes(lexer); if (directives.length === 0 && types.length === 0) { throw unexpected(lexer); } return { kind: _kinds.Kind.UNION_TYPE_EXTENSION, name: name, directives: directives, types: types, loc: loc(lexer, start) }; } /** * EnumTypeExtension : * - extend enum Name Directives[Const]? EnumValuesDefinition * - extend enum Name Directives[Const] */ function parseEnumTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'enum'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var values = parseEnumValuesDefinition(lexer); if (directives.length === 0 && values.length === 0) { throw unexpected(lexer); } return { kind: _kinds.Kind.ENUM_TYPE_EXTENSION, name: name, directives: directives, values: values, loc: loc(lexer, start) }; } /** * InputObjectTypeExtension : * - extend input Name Directives[Const]? InputFieldsDefinition * - extend input Name Directives[Const] */ function parseInputObjectTypeExtension(lexer) { var start = lexer.token; expectKeyword(lexer, 'extend'); expectKeyword(lexer, 'input'); var name = parseName(lexer); var directives = parseDirectives(lexer, true); var fields = parseInputFieldsDefinition(lexer); if (directives.length === 0 && fields.length === 0) { throw unexpected(lexer); } return { kind: _kinds.Kind.INPUT_OBJECT_TYPE_EXTENSION, name: name, directives: directives, fields: fields, loc: loc(lexer, start) }; } /** * DirectiveDefinition : * - Description? directive @ Name ArgumentsDefinition? on DirectiveLocations */ function parseDirectiveDefinition(lexer) { var start = lexer.token; var description = parseDescription(lexer); expectKeyword(lexer, 'directive'); expect(lexer, _lexer.TokenKind.AT); var name = parseName(lexer); var args = parseArgumentDefs(lexer); expectKeyword(lexer, 'on'); var locations = parseDirectiveLocations(lexer); return { kind: _kinds.Kind.DIRECTIVE_DEFINITION, description: description, name: name, arguments: args, locations: locations, loc: loc(lexer, start) }; } /** * DirectiveLocations : * - `|`? DirectiveLocation * - DirectiveLocations | DirectiveLocation */ function parseDirectiveLocations(lexer) { // Optional leading pipe skip(lexer, _lexer.TokenKind.PIPE); var locations = []; do { locations.push(parseDirectiveLocation(lexer)); } while (skip(lexer, _lexer.TokenKind.PIPE)); return locations; } /* * DirectiveLocation : * - ExecutableDirectiveLocation * - TypeSystemDirectiveLocation * * ExecutableDirectiveLocation : one of * `QUERY` * `MUTATION` * `SUBSCRIPTION` * `FIELD` * `FRAGMENT_DEFINITION` * `FRAGMENT_SPREAD` * `INLINE_FRAGMENT` * * TypeSystemDirectiveLocation : one of * `SCHEMA` * `SCALAR` * `OBJECT` * `FIELD_DEFINITION` * `ARGUMENT_DEFINITION` * `INTERFACE` * `UNION` * `ENUM` * `ENUM_VALUE` * `INPUT_OBJECT` * `INPUT_FIELD_DEFINITION` */ function parseDirectiveLocation(lexer) { var start = lexer.token; var name = parseName(lexer); if (_directiveLocation.DirectiveLocation.hasOwnProperty(name.value)) { return name; } throw unexpected(lexer, start); } // Core parsing utility functions /** * Returns a location object, used to identify the place in * the source that created a given parsed object. */ function loc(lexer, startToken) { if (!lexer.options.noLocation) { return new Loc(startToken, lexer.lastToken, lexer.source); } } function Loc(startToken, endToken, source) { this.start = startToken.start; this.end = endToken.end; this.startToken = startToken; this.endToken = endToken; this.source = source; } // Print a simplified form when appearing in JSON/util.inspect. Loc.prototype.toJSON = Loc.prototype.inspect = function toJSON() { return { start: this.start, end: this.end }; }; /** * Determines if the next token is of a given kind */ function peek(lexer, kind) { return lexer.token.kind === kind; } /** * If the next token is of the given kind, return true after advancing * the lexer. Otherwise, do not change the parser state and return false. */ function skip(lexer, kind) { var match = lexer.token.kind === kind; if (match) { lexer.advance(); } return match; } /** * If the next token is of the given kind, return that token after advancing * the lexer. Otherwise, do not change the parser state and throw an error. */ function expect(lexer, kind) { var token = lexer.token; if (token.kind === kind) { lexer.advance(); return token; } throw (0, _error.syntaxError)(lexer.source, token.start, 'Expected ' + kind + ', found ' + (0, _lexer.getTokenDesc)(token)); } /** * If the next token is a keyword with the given value, return that token after * advancing the lexer. Otherwise, do not change the parser state and return * false. */ function expectKeyword(lexer, value) { var token = lexer.token; if (token.kind === _lexer.TokenKind.NAME && token.value === value) { lexer.advance(); return token; } throw (0, _error.syntaxError)(lexer.source, token.start, 'Expected "' + value + '", found ' + (0, _lexer.getTokenDesc)(token)); } /** * Helper function for creating an error when an unexpected lexed token * is encountered. */ function unexpected(lexer, atToken) { var token = atToken || lexer.token; return (0, _error.syntaxError)(lexer.source, token.start, 'Unexpected ' + (0, _lexer.getTokenDesc)(token)); } /** * Returns a possibly empty list of parse nodes, determined by * the parseFn. This list begins with a lex token of openKind * and ends with a lex token of closeKind. Advances the parser * to the next lex token after the closing token. */ function any(lexer, openKind, parseFn, closeKind) { expect(lexer, openKind); var nodes = []; while (!skip(lexer, closeKind)) { nodes.push(parseFn(lexer)); } return nodes; } /** * Returns a non-empty list of parse nodes, determined by * the parseFn. This list begins with a lex token of openKind * and ends with a lex token of closeKind. Advances the parser * to the next lex token after the closing token. */ function many(lexer, openKind, parseFn, closeKind) { expect(lexer, openKind); var nodes = [parseFn(lexer)]; while (!skip(lexer, closeKind)) { nodes.push(parseFn(lexer)); } return nodes; } /***/ }), /* 728 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Source = undefined; var _invariant = __webpack_require__(350); var _invariant2 = _interopRequireDefault(_invariant); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * A representation of source input to GraphQL. * `name` and `locationOffset` are optional. They are useful for clients who * store GraphQL documents in source files; for example, if the GraphQL input * starts at line 40 in a file named Foo.graphql, it might be useful for name to * be "Foo.graphql" and location to be `{ line: 40, column: 0 }`. * line and column in locationOffset are 1-indexed */ var Source = exports.Source = function Source(body, name, locationOffset) { _classCallCheck(this, Source); this.body = body; this.name = name || 'GraphQL request'; this.locationOffset = locationOffset || { line: 1, column: 1 }; !(this.locationOffset.line > 0) ? (0, _invariant2.default)(0, 'line in locationOffset is 1-indexed and must be positive') : void 0; !(this.locationOffset.column > 0) ? (0, _invariant2.default)(0, 'column in locationOffset is 1-indexed and must be positive') : void 0; }; /***/ }), /* 729 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.syntaxError = syntaxError; var _GraphQLError = __webpack_require__(223); /** * Produces a GraphQLError representing a syntax error, containing useful * descriptive information about the syntax error's position in the source. */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function syntaxError(source, position, description) { return new _GraphQLError.GraphQLError('Syntax Error: ' + description, undefined, source, [position]); } /***/ }), /* 730 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.locatedError = locatedError; var _GraphQLError = __webpack_require__(223); /** * Given an arbitrary Error, presumably thrown while attempting to execute a * GraphQL operation, produce a new GraphQLError aware of the location in the * document responsible for the original Error. */ function locatedError(originalError, nodes, path) { // Note: this uses a brand-check to support GraphQL errors originating from // other contexts. // $FlowFixMe(>=0.68.0) if (originalError && Array.isArray(originalError.path)) { return originalError; } return new _GraphQLError.GraphQLError(originalError && originalError.message, originalError && originalError.nodes || nodes, originalError && originalError.source, originalError && originalError.positions, path, originalError); } /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /***/ }), /* 731 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ exports.formatError = formatError; var _invariant = __webpack_require__(350); var _invariant2 = _interopRequireDefault(_invariant); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Given a GraphQLError, format it according to the rules described by the * Response Format, Errors section of the GraphQL Specification. */ function formatError(error) { !error ? (0, _invariant2.default)(0, 'Received null or undefined error.') : void 0; return _extends({}, error.extensions, { message: error.message || 'An unknown error occurred.', locations: error.locations, path: error.path }); } /***/ }), /* 732 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenKind = undefined; exports.createLexer = createLexer; exports.getTokenDesc = getTokenDesc; var _error = __webpack_require__(351); var _blockStringValue = __webpack_require__(733); var _blockStringValue2 = _interopRequireDefault(_blockStringValue); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * Given a Source object, this returns a Lexer for that source. * A Lexer is a stateful stream generator in that every time * it is advanced, it returns the next token in the Source. Assuming the * source lexes, the final Token emitted by the lexer will be of kind * EOF, after which the lexer will repeatedly return the same EOF token * whenever called. */ /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ function createLexer(source, options) { var startOfFileToken = new Tok(TokenKind.SOF, 0, 0, 0, 0, null); var lexer = { source: source, options: options, lastToken: startOfFileToken, token: startOfFileToken, line: 1, lineStart: 0, advance: advanceLexer, lookahead: lookahead }; return lexer; } function advanceLexer() { this.lastToken = this.token; var token = this.token = this.lookahead(); return token; } function lookahead() { var token = this.token; if (token.kind !== TokenKind.EOF) { do { // Note: next is only mutable during parsing, so we cast to allow this. token = token.next || (token.next = readToken(this, token)); } while (token.kind === TokenKind.COMMENT); } return token; } /** * The return type of createLexer. */ /** * An exported enum describing the different kinds of tokens that the * lexer emits. */ var TokenKind = exports.TokenKind = Object.freeze({ SOF: '<SOF>', EOF: '<EOF>', BANG: '!', DOLLAR: '$', AMP: '&', PAREN_L: '(', PAREN_R: ')', SPREAD: '...', COLON: ':', EQUALS: '=', AT: '@', BRACKET_L: '[', BRACKET_R: ']', BRACE_L: '{', PIPE: '|', BRACE_R: '}', NAME: 'Name', INT: 'Int', FLOAT: 'Float', STRING: 'String', BLOCK_STRING: 'BlockString', COMMENT: 'Comment' }); /** * The enum type representing the token kinds values. */ /** * A helper function to describe a token as a string for debugging */ function getTokenDesc(token) { var value = token.value; return value ? token.kind + ' "' + value + '"' : token.kind; } var charCodeAt = String.prototype.charCodeAt; var slice = String.prototype.slice; /** * Helper function for constructing the Token object. */ function Tok(kind, start, end, line, column, prev, value) { this.kind = kind; this.start = start; this.end = end; this.line = line; this.column = column; this.value = value; this.prev = prev; this.next = null; } // Print a simplified form when appearing in JSON/util.inspect. Tok.prototype.toJSON = Tok.prototype.inspect = function toJSON() { return { kind: this.kind, value: this.value, line: this.line, column: this.column }; }; function printCharCode(code) { return ( // NaN/undefined represents access beyond the end of the file. isNaN(code) ? TokenKind.EOF : // Trust JSON for ASCII. code < 0x007f ? JSON.stringify(String.fromCharCode(code)) : // Otherwise print the escaped form. '"\\u' + ('00' + code.toString(16).toUpperCase()).slice(-4) + '"' ); } /** * Gets the next token from the source starting at the given position. * * This skips over whitespace and comments until it finds the next lexable * token, then lexes punctuators immediately or calls the appropriate helper * function for more complicated tokens. */ function readToken(lexer, prev) { var source = lexer.source; var body = source.body; var bodyLength = body.length; var pos = positionAfterWhitespace(body, prev.end, lexer); var line = lexer.line; var col = 1 + pos - lexer.lineStart; if (pos >= bodyLength) { return new Tok(TokenKind.EOF, bodyLength, bodyLength, line, col, prev); } var code = charCodeAt.call(body, pos); // SourceCharacter if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) { throw (0, _error.syntaxError)(source, pos, 'Cannot contain the invalid character ' + printCharCode(code) + '.'); } switch (code) { // ! case 33: return new Tok(TokenKind.BANG, pos, pos + 1, line, col, prev); // # case 35: return readComment(source, pos, line, col, prev); // $ case 36: return new Tok(TokenKind.DOLLAR, pos, pos + 1, line, col, prev); // & case 38: return new Tok(TokenKind.AMP, pos, pos + 1, line, col, prev); // ( case 40: return new Tok(TokenKind.PAREN_L, pos, pos + 1, line, col, prev); // ) case 41: return new Tok(TokenKind.PAREN_R, pos, pos + 1, line, col, prev); // . case 46: if (charCodeAt.call(body, pos + 1) === 46 && charCodeAt.call(body, pos + 2) === 46) { return new Tok(TokenKind.SPREAD, pos, pos + 3, line, col, prev); } break; // : case 58: return new Tok(TokenKind.COLON, pos, pos + 1, line, col, prev); // = case 61: return new Tok(TokenKind.EQUALS, pos, pos + 1, line, col, prev); // @ case 64: return new Tok(TokenKind.AT, pos, pos + 1, line, col, prev); // [ case 91: return new Tok(TokenKind.BRACKET_L, pos, pos + 1, line, col, prev); // ] case 93: return new Tok(TokenKind.BRACKET_R, pos, pos + 1, line, col, prev); // { case 123: return new Tok(TokenKind.BRACE_L, pos, pos + 1, line, col, prev); // | case 124: return new Tok(TokenKind.PIPE, pos, pos + 1, line, col, prev); // } case 125: return new Tok(TokenKind.BRACE_R, pos, pos + 1, line, col, prev); // A-Z _ a-z case 65: case 66: case 67: case 68: case 69: case 70: case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: case 80: case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: case 90: case 95: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: case 110: case 111: case 112: case 113: case 114: case 115: case 116: case 117: case 118: case 119: case 120: case 121: case 122: return readName(source, pos, line, col, prev); // - 0-9 case 45: case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: return readNumber(source, pos, code, line, col, prev); // " case 34: if (charCodeAt.call(body, pos + 1) === 34 && charCodeAt.call(body, pos + 2) === 34) { return readBlockString(source, pos, line, col, prev); } return readString(source, pos, line, col, prev); } throw (0, _error.syntaxError)(source, pos, unexpectedCharacterMessage(code)); } /** * Report a message that an unexpected character was encountered. */ function unexpectedCharacterMessage(code) { if (code === 39) { // ' return "Unexpected single quote character ('), did you mean to use " + 'a double quote (")?'; } return 'Cannot parse the unexpected character ' + printCharCode(code) + '.'; } /** * Reads from body starting at startPosition until it finds a non-whitespace * or commented character, then returns the position of that character for * lexing. */ function positionAfterWhitespace(body, startPosition, lexer) { var bodyLength = body.length; var position = startPosition; while (position < bodyLength) { var code = charCodeAt.call(body, position); // tab | space | comma | BOM if (code === 9 || code === 32 || code === 44 || code === 0xfeff) { ++position; } else if (code === 10) { // new line ++position; ++lexer.line; lexer.lineStart = position; } else if (code === 13) { // carriage return if (charCodeAt.call(body, position + 1) === 10) { position += 2; } else { ++position; } ++lexer.line; lexer.lineStart = position; } else { break; } } return position; } /** * Reads a comment token from the source file. * * #[\u0009\u0020-\uFFFF]* */ function readComment(source, start, line, col, prev) { var body = source.body; var code = void 0; var position = start; do { code = charCodeAt.call(body, ++position); } while (code !== null && ( // SourceCharacter but not LineTerminator code > 0x001f || code === 0x0009)); return new Tok(TokenKind.COMMENT, start, position, line, col, prev, slice.call(body, start + 1, position)); } /** * Reads a number token from the source file, either a float * or an int depending on whether a decimal point appears. * * Int: -?(0|[1-9][0-9]*) * Float: -?(0|[1-9][0-9]*)(\.[0-9]+)?((E|e)(+|-)?[0-9]+)? */ function readNumber(source, start, firstCode, line, col, prev) { var body = source.body; var code = firstCode; var position = start; var isFloat = false; if (code === 45) { // - code = charCodeAt.call(body, ++position); } if (code === 48) { // 0 code = charCodeAt.call(body, ++position); if (code >= 48 && code <= 57) { throw (0, _error.syntaxError)(source, position, 'Invalid number, unexpected digit after 0: ' + printCharCode(code) + '.'); } } else { position = readDigits(source, position, code); code = charCodeAt.call(body, position); } if (code === 46) { // . isFloat = true; code = charCodeAt.call(body, ++position); position = readDigits(source, position, code); code = charCodeAt.call(body, position); } if (code === 69 || code === 101) { // E e isFloat = true; code = charCodeAt.call(body, ++position); if (code === 43 || code === 45) { // + - code = charCodeAt.call(body, ++position); } position = readDigits(source, position, code); } return new Tok(isFloat ? TokenKind.FLOAT : TokenKind.INT, start, position, line, col, prev, slice.call(body, start, position)); } /** * Returns the new position in the source after reading digits. */ function readDigits(source, start, firstCode) { var body = source.body; var position = start; var code = firstCode; if (code >= 48 && code <= 57) { // 0 - 9 do { code = charCodeAt.call(body, ++position); } while (code >= 48 && code <= 57); // 0 - 9 return position; } throw (0, _error.syntaxError)(source, position, 'Invalid number, expected digit but got: ' + printCharCode(code) + '.'); } /** * Reads a string token from the source file. * * "([^"\\\u000A\u000D]|(\\(u[0-9a-fA-F]{4}|["\\/bfnrt])))*" */ function readString(source, start, line, col, prev) { var body = source.body; var position = start + 1; var chunkStart = position; var code = 0; var value = ''; while (position < body.length && (code = charCodeAt.call(body, position)) !== null && // not LineTerminator code !== 0x000a && code !== 0x000d) { // Closing Quote (") if (code === 34) { value += slice.call(body, chunkStart, position); return new Tok(TokenKind.STRING, start, position + 1, line, col, prev, value); } // SourceCharacter if (code < 0x0020 && code !== 0x0009) { throw (0, _error.syntaxError)(source, position, 'Invalid character within String: ' + printCharCode(code) + '.'); } ++position; if (code === 92) { // \ value += slice.call(body, chunkStart, position - 1); code = charCodeAt.call(body, position); switch (code) { case 34: value += '"'; break; case 47: value += '/'; break; case 92: value += '\\'; break; case 98: value += '\b'; break; case 102: value += '\f'; break; case 110: value += '\n'; break; case 114: value += '\r'; break; case 116: value += '\t'; break; case 117: // u var charCode = uniCharCode(charCodeAt.call(body, position + 1), charCodeAt.call(body, position + 2), charCodeAt.call(body, position + 3), charCodeAt.call(body, position + 4)); if (charCode < 0) { throw (0, _error.syntaxError)(source, position, 'Invalid character escape sequence: ' + ('\\u' + body.slice(position + 1, position + 5) + '.')); } value += String.fromCharCode(charCode); position += 4; break; default: throw (0, _error.syntaxError)(source, position, 'Invalid character escape sequence: \\' + String.fromCharCode(code) + '.'); } ++position; chunkStart = position; } } throw (0, _error.syntaxError)(source, position, 'Unterminated string.'); } /** * Reads a block string token from the source file. * * """("?"?(\\"""|\\(?!=""")|[^"\\]))*""" */ function readBlockString(source, start, line, col, prev) { var body = source.body; var position = start + 3; var chunkStart = position; var code = 0; var rawValue = ''; while (position < body.length && (code = charCodeAt.call(body, position)) !== null) { // Closing Triple-Quote (""") if (code === 34 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34) { rawValue += slice.call(body, chunkStart, position); return new Tok(TokenKind.BLOCK_STRING, start, position + 3, line, col, prev, (0, _blockStringValue2.default)(rawValue)); } // SourceCharacter if (code < 0x0020 && code !== 0x0009 && code !== 0x000a && code !== 0x000d) { throw (0, _error.syntaxError)(source, position, 'Invalid character within String: ' + printCharCode(code) + '.'); } // Escape Triple-Quote (\""") if (code === 92 && charCodeAt.call(body, position + 1) === 34 && charCodeAt.call(body, position + 2) === 34 && charCodeAt.call(body, position + 3) === 34) { rawValue += slice.call(body, chunkStart, position) + '"""'; position += 4; chunkStart = position; } else { ++position; } } throw (0, _error.syntaxError)(source, position, 'Unterminated string.'); } /** * Converts four hexidecimal chars to the integer that the * string represents. For example, uniCharCode('0','0','0','f') * will return 15, and uniCharCode('0','0','f','f') returns 255. * * Returns a negative number on error, if a char was invalid. * * This is implemented by noting that char2hex() returns -1 on error, * which means the result of ORing the char2hex() will also be negative. */ function uniCharCode(a, b, c, d) { return char2hex(a) << 12 | char2hex(b) << 8 | char2hex(c) << 4 | char2hex(d); } /** * Converts a hex character to its integer value. * '0' becomes 0, '9' becomes 9 * 'A' becomes 10, 'F' becomes 15 * 'a' becomes 10, 'f' becomes 15 * * Returns -1 on error. */ function char2hex(a) { return a >= 48 && a <= 57 ? a - 48 // 0-9 : a >= 65 && a <= 70 ? a - 55 // A-F : a >= 97 && a <= 102 ? a - 87 // a-f : -1; } /** * Reads an alphanumeric + underscore name from the source. * * [_A-Za-z][_0-9A-Za-z]* */ function readName(source, start, line, col, prev) { var body = source.body; var bodyLength = body.length; var position = start + 1; var code = 0; while (position !== bodyLength && (code = charCodeAt.call(body, position)) !== null && (code === 95 || // _ code >= 48 && code <= 57 || // 0-9 code >= 65 && code <= 90 || // A-Z code >= 97 && code <= 122) // a-z ) { ++position; } return new Tok(TokenKind.NAME, start, position, line, col, prev, slice.call(body, start, position)); } /***/ }), /* 733 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = blockStringValue; /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * Produces the value of a block string from its parsed raw value, similar to * Coffeescript's block string, Python's docstring trim or Ruby's strip_heredoc. * * This implements the GraphQL spec's BlockStringValue() static algorithm. */ function blockStringValue(rawString) { // Expand a block string's raw value into independent lines. var lines = rawString.split(/\r\n|[\n\r]/g); // Remove common indentation from all lines but first. var commonIndent = null; for (var i = 1; i < lines.length; i++) { var line = lines[i]; var indent = leadingWhitespace(line); if (indent < line.length && (commonIndent === null || indent < commonIndent)) { commonIndent = indent; if (commonIndent === 0) { break; } } } if (commonIndent) { for (var _i = 1; _i < lines.length; _i++) { lines[_i] = lines[_i].slice(commonIndent); } } // Remove leading and trailing blank lines. while (lines.length > 0 && isBlank(lines[0])) { lines.shift(); } while (lines.length > 0 && isBlank(lines[lines.length - 1])) { lines.pop(); } // Return a string of the lines joined with U+000A. return lines.join('\n'); } function leadingWhitespace(str) { var i = 0; while (i < str.length && (str[i] === ' ' || str[i] === '\t')) { i++; } return i; } function isBlank(str) { return leadingWhitespace(str) === str.length; } /***/ }), /* 734 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * The set of allowed kind values for AST nodes. */ var Kind = exports.Kind = Object.freeze({ // Name NAME: 'Name', // Document DOCUMENT: 'Document', OPERATION_DEFINITION: 'OperationDefinition', VARIABLE_DEFINITION: 'VariableDefinition', VARIABLE: 'Variable', SELECTION_SET: 'SelectionSet', FIELD: 'Field', ARGUMENT: 'Argument', // Fragments FRAGMENT_SPREAD: 'FragmentSpread', INLINE_FRAGMENT: 'InlineFragment', FRAGMENT_DEFINITION: 'FragmentDefinition', // Values INT: 'IntValue', FLOAT: 'FloatValue', STRING: 'StringValue', BOOLEAN: 'BooleanValue', NULL: 'NullValue', ENUM: 'EnumValue', LIST: 'ListValue', OBJECT: 'ObjectValue', OBJECT_FIELD: 'ObjectField', // Directives DIRECTIVE: 'Directive', // Types NAMED_TYPE: 'NamedType', LIST_TYPE: 'ListType', NON_NULL_TYPE: 'NonNullType', // Type System Definitions SCHEMA_DEFINITION: 'SchemaDefinition', OPERATION_TYPE_DEFINITION: 'OperationTypeDefinition', // Type Definitions SCALAR_TYPE_DEFINITION: 'ScalarTypeDefinition', OBJECT_TYPE_DEFINITION: 'ObjectTypeDefinition', FIELD_DEFINITION: 'FieldDefinition', INPUT_VALUE_DEFINITION: 'InputValueDefinition', INTERFACE_TYPE_DEFINITION: 'InterfaceTypeDefinition', UNION_TYPE_DEFINITION: 'UnionTypeDefinition', ENUM_TYPE_DEFINITION: 'EnumTypeDefinition', ENUM_VALUE_DEFINITION: 'EnumValueDefinition', INPUT_OBJECT_TYPE_DEFINITION: 'InputObjectTypeDefinition', // Type Extensions SCALAR_TYPE_EXTENSION: 'ScalarTypeExtension', OBJECT_TYPE_EXTENSION: 'ObjectTypeExtension', INTERFACE_TYPE_EXTENSION: 'InterfaceTypeExtension', UNION_TYPE_EXTENSION: 'UnionTypeExtension', ENUM_TYPE_EXTENSION: 'EnumTypeExtension', INPUT_OBJECT_TYPE_EXTENSION: 'InputObjectTypeExtension', // Directive Definitions DIRECTIVE_DEFINITION: 'DirectiveDefinition' }); /** * The enum type representing the possible kind values of AST nodes. */ /***/ }), /* 735 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Copyright (c) 2015-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * strict */ /** * The set of allowed directive location values. */ var DirectiveLocation = exports.DirectiveLocation = Object.freeze({ // Request Definitions QUERY: 'QUERY', MUTATION: 'MUTATION', SUBSCRIPTION: 'SUBSCRIPTION', FIELD: 'FIELD', FRAGMENT_DEFINITION: 'FRAGMENT_DEFINITION', FRAGMENT_SPREAD: 'FRAGMENT_SPREAD', INLINE_FRAGMENT: 'INLINE_FRAGMENT', // Type System Definitions SCHEMA: 'SCHEMA', SCALAR: 'SCALAR', OBJECT: 'OBJECT', FIELD_DEFINITION: 'FIELD_DEFINITION', ARGUMENT_DEFINITION: 'ARGUMENT_DEFINITION', INTERFACE: 'INTERFACE', UNION: 'UNION', ENUM: 'ENUM', ENUM_VALUE: 'ENUM_VALUE', INPUT_OBJECT: 'INPUT_OBJECT', INPUT_FIELD_DEFINITION: 'INPUT_FIELD_DEFINITION' }); /** * The enum type representing the directive location values. */ /***/ }), /* 736 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(44)); Object.defineProperty(exports, "__esModule", { value: true }); exports.getConst = exports.of = exports.Const = exports.ConstType = void 0; var create = Object.create; var VALUE = '@webflow/Const/value'; var ConstType = function ConstType() { (0, _classCallCheck2["default"])(this, ConstType); }; exports.ConstType = ConstType; var prototype = { // map(f) { // eslint-disable-line no-unused-vars map: function map() { return this; } }; var Const = function Const(value) { var object = create(prototype); object[VALUE] = value; return object; }; exports.Const = Const; var of = Const; exports.of = of; var getConst = function getConst(con // $FlowFixMe ) { return con[VALUE]; }; exports.getConst = getConst; /***/ }), /* 737 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(44)); Object.defineProperty(exports, "__esModule", { value: true }); exports.runIdentity = exports.of = exports.Identity = exports.IdentityType = void 0; var create = Object.create; var VALUE = '@webflow/Identity/value'; var IdentityType = function IdentityType() { (0, _classCallCheck2["default"])(this, IdentityType); }; exports.IdentityType = IdentityType; var prototype = { map: function map(f) { return Identity(f(this[VALUE])); } }; var Identity = function Identity(value) { var object = create(prototype); object[VALUE] = value; return object; }; exports.Identity = Identity; var of = Identity; exports.of = of; var runIdentity = function runIdentity(object // $FlowFixMe ) { return object[VALUE]; }; exports.runIdentity = runIdentity; /***/ }), /* 738 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(44)); Object.defineProperty(exports, "__esModule", { value: true }); exports.of = exports.fromNullable = exports.maybe = exports.Some = exports.None = exports.Option = void 0; var create = Object.create; var returnThis = function returnThis() { return this; }; var VALUE = '@webflow/Option'; // # Option // // Option is a data type for representing values that might be missing. It is // also known as `Maybe` or `Optional` in other languages and libraries. // // ```js // import {None, Some} from '@webflow/fp-option' // // const first = array => array.length ? Some(array[0]) : None; // ``` // // Notice in the usage example above how in the case of a missing value the // function returns `None` otherwise the value is wrapped in `Some`. // // Consuming a value of this type involves somehow “enhancing†a regular // function to work on values of type `Option`. This is done by applying // the familiar `map` function to our original function: // // ```js // import {map} from '@webflow/fp' // // const originalDouble = a => a + a // const double = map(originalDouble) // ``` // // This `double` function can now safely be applied to a `Option` value: // // ```js // const option1 = double(first([6, 2])) // => Some(12) // const option2 = double(first([])) // => None // ``` // // Notice how our `double` function works just fine, even if the value is // missing, by passing the None along. In cases where we only care about // transforming the value inside `Option` this is all we need to do. // When we need to take the value out of the `Option` box we can make use // of the `maybe` function: // // ```js // const maybeZero = maybe(0) // const defaultToZero = maybeZero(number => number) // // const number1 = defaultToZero(option1) // => 12 // const number2 = defaultToZero(option2) // => 0 // ``` // // The `maybe` curried function takes three arguments, a fallback value that // is returned in the case of `None`, a function that gets applied to the value // in case the option is `Some` and thirdly the option. The fallback value and // the return value of the function passed as the second argument must be of // the same type. var Option = function Option() { (0, _classCallCheck2["default"])(this, Option); }; exports.Option = Option; var None = create({ map: returnThis, chain: returnThis, alt: function alt(alternativeOption) { return alternativeOption; }, ap: returnThis, concat: function concat(other) { return other; }, /** * Returns a default fallback value if the `Option` is a `None`. */ foldOption: function foldOption(fallback) { return fallback; } }); exports.None = None; var Some = function Some(value) { var object = create(SomePrototype); object[VALUE] = value; return object; }; exports.Some = Some; var SomePrototype = { /** * Transform the value inside of a `Option` by applying a unary function to it. */ map: function map(f) { return Some(f(this[VALUE])); }, /** * Sequence computations by applying a function to the value * contained in the `Option`. The function must return an `Option`. */ chain: function chain(f) { return f(this[VALUE]); }, /** * Provide an alternative option that will be returned if this option is None. */ alt: returnThis, /** * Allows you to apply the Option's value with another Option's value, * returning another Option. */ ap: function ap(m) { return m.map(this[VALUE]); }, concat: function concat(other) { var _this = this; return other.foldOption(this, function (otherValue) { return Some(_this[VALUE].concat(otherValue)); }); }, /** * Applies a function to the value contained in an `Option` * if the `Option` is a `Some`. */ foldOption: function foldOption(fallback, mapValue) { return mapValue(this[VALUE]); } }; var maybe = function maybe(fallback) { return function (mapValue) { return function (option // $FlowIgnore private foldOption ) { return option.foldOption(fallback, mapValue); }; }; }; exports.maybe = maybe; var fromNullable = function fromNullable(value) { return value == null ? None : Some(value); }; exports.fromNullable = fromNullable; var of = Some; exports.of = of; /***/ }), /* 739 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _classCallCheck2 = _interopRequireDefault(__webpack_require__(44)); Object.defineProperty(exports, "__esModule", { value: true }); exports.of = exports.either = exports.Ok = exports.Err = exports.Result = void 0; var create = Object.create; var returnThis = function returnThis() { return this; }; var VALUE = '@webflow/Result/value'; var ERROR = '@webflow/Result/error'; // # Result // // Result is a data type for representing results from computations that may // fail by giving the user a controllable way to propagate errors. `Result` is // also known as `Either` in other languages and libraries. // // ```js // import {Err, Ok} from '@packages/utilities/fp/result' // // const safeDivide = (a, b) => b === 0 // ? Err('Cannot divide by 0.') // : Ok(a / b) // ``` // // Notice in the usage example above how in the case of a failure the error // message is wrapped in `Err` while otherwise the result is returned wrapped // in `Ok`. `Err` and `Ok` are the constructors for the `Result` type. // // Consuming a value of this type involves somehow “enhancing†a regular // function to work on values of type `Result`. This is done by applying // the familiar `map` function to our original function: // // ```js // import {map} from '@packages/utilities/fp/utils' // // const originalDouble = a => a + a // const double = map(originalDouble) // ``` // // This `double` function can now safely be applied to a `Result` value: // // ```js // const result1 = double(safeDivide(6, 2)) // => Ok(3) // const result2 = double(safeDivide(6, 0)) // => Err('Cannot divide by 0.') // ``` // // Notice how our `double` function works just fine, even if the result of the // division is an error, by passing that error along. In cases where we only // care about the successful result this is all we need to do. When we need to // take the value out of the `Result` box we can make use of `either`: // // ```js // const number1 = either(error => 0)(val => val)(result1) // => 3 // const number2 = either(error => 0)(val => val)(result2) // => 0 // ``` // // The `either` function takes three arguments, a function for handling the Err // case, a function for handling the Ok case and the result. Both handlers // should return values of the same type. var Result = function Result() { (0, _classCallCheck2["default"])(this, Result); }; exports.Result = Result; var Err = function Err(error) { var object = create(ErrPrototype); object[ERROR] = error; return object; }; exports.Err = Err; var Ok = function Ok(value) { var object = create(OkPrototype); object[VALUE] = value; return object; }; exports.Ok = Ok; var ErrPrototype = {}; var OkPrototype = {}; /** * Transform the value inside of a `Result` by applying a unary function to it. */ ErrPrototype.map = returnThis; OkPrototype.map = function (f) { return Ok(f(this[VALUE])); }; /** * Sequence computations that may fail by applying a function to the value * contained in the `Result`, where the function also returns a `Result`. */ ErrPrototype.chain = returnThis; OkPrototype.chain = function (f) { return f(this[VALUE]); }; /** * Allows you to apply the Result's value with another Result's value, * returning another Result. */ ErrPrototype.ap = returnThis; OkPrototype.ap = function (m) { return m.map(this[VALUE]); }; /** * Apply the first or second function to the value contained in a `Result` * depending on if the `Result` is an `Err` or `Ok` respectively. */ ErrPrototype.foldResult = function (errorHandler) { return errorHandler(this[ERROR]); }; OkPrototype.foldResult = function (errorHandler, valueHandler) { return valueHandler(this[VALUE]); }; var either = function either(mapErr) { return function (mapVal) { return function (result) { return (// $FlowIgnore private foldResult result.foldResult(mapErr, mapVal) ); }; }; }; exports.either = either; var of = Ok; exports.of = of; /***/ }), /* 740 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.USYS_ACCESS_TYPES = void 0; // Server email configuration // Template fields configuration var USYS_ACCESS_TYPES = { LOGGED_IN: 'LOGGED_IN', ADMIN_ALWAYS_VISIBLE: 'ADMIN_ALWAYS_VISIBLE' }; exports.USYS_ACCESS_TYPES = USYS_ACCESS_TYPES; /***/ }), /* 741 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); var _logInErrorStates, _signUpErrorStates, _updatePasswordErrorS2; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateAccountErrorStates = exports.UPDATE_ACCOUNT_ERROR_CODES = exports.resetPasswordErrorStates = exports.updatePasswordErrorStates = exports.signUpErrorStates = exports.SIGNUP_ERROR_CATEGORY = exports.logInErrorStates = exports.__DEPRECATED__logInErrorStates = exports.FORM_GENERIC_ERROR_PATH = exports.FORM_TYPE_ERROR_PATH = exports.FORM_TOO_SMALL_ERROR_PATH = exports.FORM_TOO_LARGE_ERROR_PATH = exports.USER_FILE_UPLOAD_ERRORS = exports.RESET_PASSWORD_UI_ERROR_CODES = exports.UPDATE_PASSWORD_UI_ERROR_CODES = exports.ERROR_ATTRIBUTE_PREFIX = exports.SIGNUP_UI_ERROR_CODES = exports.LOGIN_UI_ERROR_CODES = exports.SERVER_DATA_VALIDATION_ERRORS = exports.ErrorStateToCopy = exports.ERROR_STATE = exports.ERROR_MSG_CLASS = void 0; var ERROR_MSG_CLASS = 'user-form-error-msg'; exports.ERROR_MSG_CLASS = ERROR_MSG_CLASS; var ERROR_STATE = { SIGNUP: 'signup-error-state', LOGIN: 'login-error-state', UPDATE_PASSWORD: 'update-password-error-state', RESET_PASSWORD: 'reset-password-error-state', ACCOUNT_UPDATE: 'account-update-error-state' }; exports.ERROR_STATE = ERROR_STATE; var ErrorStateToCopy = function ErrorStateToCopy(errorStateType, id) { if (errorStateType === 'signup-error-state') { var _ref, _signUpErrorStates$id; // $FlowIgnore return (_ref = (_signUpErrorStates$id = signUpErrorStates[id]) === null || _signUpErrorStates$id === void 0 ? void 0 : _signUpErrorStates$id.copy) !== null && _ref !== void 0 ? _ref : null; } if (errorStateType === 'login-error-state') { var _ref2, _logInErrorStates$id; // $FlowIgnore return (_ref2 = (_logInErrorStates$id = logInErrorStates[id]) === null || _logInErrorStates$id === void 0 ? void 0 : _logInErrorStates$id.copy) !== null && _ref2 !== void 0 ? _ref2 : null; } if (errorStateType === 'update-password-error-state') { var _ref3, _updatePasswordErrorS; // $FlowIgnore return (_ref3 = (_updatePasswordErrorS = updatePasswordErrorStates[id]) === null || _updatePasswordErrorS === void 0 ? void 0 : _updatePasswordErrorS.copy) !== null && _ref3 !== void 0 ? _ref3 : null; } if (errorStateType === 'reset-password-error-state') { var _ref4, _resetPasswordErrorSt; // $FlowIgnore return (_ref4 = (_resetPasswordErrorSt = resetPasswordErrorStates[id]) === null || _resetPasswordErrorSt === void 0 ? void 0 : _resetPasswordErrorSt.copy) !== null && _ref4 !== void 0 ? _ref4 : null; } if (errorStateType === 'account-update-error-state') { var _ref5, _updateAccountErrorSt; // $FlowIgnore return (_ref5 = (_updateAccountErrorSt = updateAccountErrorStates[id]) === null || _updateAccountErrorSt === void 0 ? void 0 : _updateAccountErrorSt.copy) !== null && _ref5 !== void 0 ? _ref5 : null; } console.error("copy for ".concat(errorStateType, " not found")); return null; }; // error codes returned after field validation. warning: shipped js will use this so add but never remove from it. exports.ErrorStateToCopy = ErrorStateToCopy; var SERVER_DATA_VALIDATION_ERRORS = { MinSizeError: 'MinSizeError', MaxSizeError: 'MaxSizeError,', ExtensionsError: 'ExtensionsError', DefaultError: 'DefaultError' // add more here }; exports.SERVER_DATA_VALIDATION_ERRORS = SERVER_DATA_VALIDATION_ERRORS; var LOGIN_UI_ERROR_CODES = { GENERAL_ERROR: 'GENERAL_ERROR', INVALID_EMAIL_OR_PASSWORD: 'INVALID_EMAIL_OR_PASSWORD' }; exports.LOGIN_UI_ERROR_CODES = LOGIN_UI_ERROR_CODES; var SIGNUP_UI_ERROR_CODES = { GENERAL_ERROR: 'GENERAL_ERROR', NOT_ALLOWED: 'NOT_ALLOWED', NOT_VERIFIED: 'NOT_VERIFIED', EMAIL_ALREADY_EXIST: 'EMAIL_ALREADY_EXIST', USE_INVITE_EMAIL: 'USE_INVITE_EMAIL', INVALID_EMAIL: 'INVALID_EMAIL', INVALID_PASSWORD: 'INVALID_PASSWORD', EXPIRED_TOKEN: 'EXPIRED_TOKEN' }; exports.SIGNUP_UI_ERROR_CODES = SIGNUP_UI_ERROR_CODES; var ERROR_ATTRIBUTE_PREFIX = { SIGNUP: 'wf-signup-form', LOGIN: 'wf-login-form', RESET_PASSWORD: 'wf-reset-pw-form', UPDATE_PASSWORD: 'wf-update-pw-form', ACCOUNT_UPDATE: 'wf-account-update-form' }; exports.ERROR_ATTRIBUTE_PREFIX = ERROR_ATTRIBUTE_PREFIX; var UPDATE_PASSWORD_UI_ERROR_CODES = { GENERAL_ERROR: 'GENERAL_ERROR', WEAK_PASSWORD: 'WEAK_PASSWORD' }; exports.UPDATE_PASSWORD_UI_ERROR_CODES = UPDATE_PASSWORD_UI_ERROR_CODES; var RESET_PASSWORD_UI_ERROR_CODES = { GENERAL_ERROR: 'GENERAL_ERROR' }; exports.RESET_PASSWORD_UI_ERROR_CODES = RESET_PASSWORD_UI_ERROR_CODES; var TOO_LARGE_ERR = 'TOO_LARGE_ERROR'; var TOO_SMALL_ERR = 'TOO_SMALL_ERROR'; var TYPE_ERR = 'TYPE_ERROR'; var GENERIC_ERR = 'GENERIC_ERROR'; var USER_FILE_UPLOAD_ERRORS = { GENERIC: { id: GENERIC_ERR, msg: 'Upload failed. Something went wrong. Please retry.', path: ['data', 'form', GENERIC_ERR] }, TOO_LARGE: { id: TOO_LARGE_ERR, msg: 'Upload failed. File too large.', path: ['data', 'form', TOO_LARGE_ERR] }, TOO_SMALL: { id: TOO_SMALL_ERR, msg: 'Upload failed. File too small.', path: ['data', 'form', TOO_SMALL_ERR] }, TYPE: { id: TYPE_ERR, msg: 'Upload failed. Invalid file type.', path: ['data', 'form', TYPE_ERR] } }; exports.USER_FILE_UPLOAD_ERRORS = USER_FILE_UPLOAD_ERRORS; var FORM_PATH = [{ "in": 'Record', at: 'form' }]; var FORM_TOO_LARGE_ERROR_PATH = [].concat(FORM_PATH, [{ "in": 'Record', at: TOO_LARGE_ERR }]); exports.FORM_TOO_LARGE_ERROR_PATH = FORM_TOO_LARGE_ERROR_PATH; var FORM_TOO_SMALL_ERROR_PATH = [].concat(FORM_PATH, [{ "in": 'Record', at: TOO_SMALL_ERR }]); exports.FORM_TOO_SMALL_ERROR_PATH = FORM_TOO_SMALL_ERROR_PATH; var FORM_TYPE_ERROR_PATH = [].concat(FORM_PATH, [{ "in": 'Record', at: TYPE_ERR }]); exports.FORM_TYPE_ERROR_PATH = FORM_TYPE_ERROR_PATH; var FORM_GENERIC_ERROR_PATH = [].concat(FORM_PATH, [{ "in": 'Record', at: GENERIC_ERR }]); exports.FORM_GENERIC_ERROR_PATH = FORM_GENERIC_ERROR_PATH; // this exists to support sites using the UserLoginErrorMsg atom var __DEPRECATED__logInErrorStates = (0, _defineProperty2["default"])({}, LOGIN_UI_ERROR_CODES.GENERAL_ERROR, { id: LOGIN_UI_ERROR_CODES.GENERAL_ERROR, name: 'General error', copy: "We're having trouble logging you in. Please try again, or contact us if you continue to have problems.", path: ['data', 'users', LOGIN_UI_ERROR_CODES.GENERAL_ERROR] }); exports.__DEPRECATED__logInErrorStates = __DEPRECATED__logInErrorStates; var logInErrorStates = (_logInErrorStates = {}, (0, _defineProperty2["default"])(_logInErrorStates, LOGIN_UI_ERROR_CODES.GENERAL_ERROR, { id: LOGIN_UI_ERROR_CODES.GENERAL_ERROR, name: 'General error', copy: "We're having trouble logging you in. Please try again, or contact us if you continue to have problems.", path: ['data', 'users', LOGIN_UI_ERROR_CODES.GENERAL_ERROR] }), (0, _defineProperty2["default"])(_logInErrorStates, LOGIN_UI_ERROR_CODES.INVALID_EMAIL_OR_PASSWORD, { id: LOGIN_UI_ERROR_CODES.INVALID_EMAIL_OR_PASSWORD, name: 'Wrong email or password', copy: 'Invalid email or password. Please try again.', path: ['data', 'users', LOGIN_UI_ERROR_CODES.INVALID_EMAIL_OR_PASSWORD] }), _logInErrorStates); exports.logInErrorStates = logInErrorStates; var SIGNUP_ERROR_CATEGORY = { GENERAL: { id: 'GENERAL', label: 'General Errors' }, EMAIL: { id: 'EMAIL', label: 'Email Errors' }, PASSWORD: { id: 'PASSWORD', label: 'Password Errors' }, INVITE: { id: 'INVITE', label: 'Invitation Errors' }, VERFIICATION: { id: 'VERIFCATION', label: 'Verification Errors' } }; exports.SIGNUP_ERROR_CATEGORY = SIGNUP_ERROR_CATEGORY; var signUpErrorStates = (_signUpErrorStates = {}, (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.GENERAL_ERROR, { id: SIGNUP_UI_ERROR_CODES.GENERAL_ERROR, category: SIGNUP_ERROR_CATEGORY.GENERAL, name: 'General error', copy: 'There was an error signing you up. Please try again, or contact us if you continue to have problems.', path: ['data', 'users', SIGNUP_UI_ERROR_CODES.GENERAL_ERROR] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.NOT_ALLOWED, { id: SIGNUP_UI_ERROR_CODES.NOT_ALLOWED, category: SIGNUP_ERROR_CATEGORY.EMAIL, name: 'Email not allowed', copy: "You're not allowed to access this site, please contact the admin for support.", path: ['data', 'users', SIGNUP_UI_ERROR_CODES.NOT_ALLOWED] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.INVALID_EMAIL, { id: SIGNUP_UI_ERROR_CODES.INVALID_EMAIL, category: SIGNUP_ERROR_CATEGORY.EMAIL, name: 'Invalid email', copy: 'Make sure your email exists and is properly formatted (e.g., user@domain.com).', path: ['data', 'users', SIGNUP_UI_ERROR_CODES.INVALID_EMAIL] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.EMAIL_ALREADY_EXIST, { id: SIGNUP_UI_ERROR_CODES.EMAIL_ALREADY_EXIST, category: SIGNUP_ERROR_CATEGORY.EMAIL, name: 'Email already exists', copy: 'An account with this email address already exists. Log in or reset your password.', path: ['data', 'users', SIGNUP_UI_ERROR_CODES.EMAIL_ALREADY_EXIST] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.USE_INVITE_EMAIL, { id: SIGNUP_UI_ERROR_CODES.USE_INVITE_EMAIL, category: SIGNUP_ERROR_CATEGORY.INVITE, name: 'Must use invite email', copy: 'Use the same email address your invitation was sent to.', path: ['data', 'users', SIGNUP_UI_ERROR_CODES.USE_INVITE_EMAIL] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.INVALID_PASSWORD, { id: SIGNUP_UI_ERROR_CODES.INVALID_PASSWORD, category: SIGNUP_ERROR_CATEGORY.PASSWORD, name: 'Invalid password', copy: 'Your password must be at least 8 characters.', path: ['data', 'users', SIGNUP_UI_ERROR_CODES.INVALID_PASSWORD] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.NOT_VERIFIED, { id: SIGNUP_UI_ERROR_CODES.NOT_VERIFIED, category: SIGNUP_ERROR_CATEGORY.VERFIICATION, name: 'Verification failed', copy: "We couldn't verify your account. Please try again, or contact us if you continue to have problems.", path: ['data', 'users', SIGNUP_UI_ERROR_CODES.NOT_VERIFIED] }), (0, _defineProperty2["default"])(_signUpErrorStates, SIGNUP_UI_ERROR_CODES.EXPIRED_TOKEN, { id: SIGNUP_UI_ERROR_CODES.EXPIRED_TOKEN, category: SIGNUP_ERROR_CATEGORY.VERFIICATION, name: 'Verification expired', copy: 'This verification link has expired. A new verification link has been sent to your email. Please try again, or contact us if you continue to have problems.', path: ['data', 'users', SIGNUP_UI_ERROR_CODES.EXPIRED_TOKEN] }), _signUpErrorStates); exports.signUpErrorStates = signUpErrorStates; var updatePasswordErrorStates = (_updatePasswordErrorS2 = {}, (0, _defineProperty2["default"])(_updatePasswordErrorS2, UPDATE_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR, { id: UPDATE_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR, name: 'General error', copy: 'There was an error updating your password. Please try again, or contact us if you continue to have problems.', path: ['data', 'users', UPDATE_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR] }), (0, _defineProperty2["default"])(_updatePasswordErrorS2, UPDATE_PASSWORD_UI_ERROR_CODES.WEAK_PASSWORD, { id: UPDATE_PASSWORD_UI_ERROR_CODES.WEAK_PASSWORD, name: 'Weak password', copy: 'Your password must be at least 8 characters.', path: ['data', 'users', UPDATE_PASSWORD_UI_ERROR_CODES.WEAK_PASSWORD] }), _updatePasswordErrorS2); exports.updatePasswordErrorStates = updatePasswordErrorStates; var resetPasswordErrorStates = (0, _defineProperty2["default"])({}, RESET_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR, { id: RESET_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR, name: 'General error', copy: 'There was an error resetting your password. Please try again, or contact us if you continue to have problems.', path: ['data', 'users', RESET_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR] }); exports.resetPasswordErrorStates = resetPasswordErrorStates; var UPDATE_ACCOUNT_ERROR_CODES = { GENERAL_ERROR: 'GENERAL_ERROR' }; exports.UPDATE_ACCOUNT_ERROR_CODES = UPDATE_ACCOUNT_ERROR_CODES; var updateAccountErrorStates = (0, _defineProperty2["default"])({}, UPDATE_ACCOUNT_ERROR_CODES.GENERAL_ERROR, { id: UPDATE_ACCOUNT_ERROR_CODES.GENERAL_ERROR, name: 'General error', copy: 'There was an error updating your account. Please try again, or contact us if you continue to have problems.', path: ['data', 'users', UPDATE_ACCOUNT_ERROR_CODES.GENERAL_ERROR] }); exports.updateAccountErrorStates = updateAccountErrorStates; /***/ }), /* 742 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getColumnNumberClassName = exports.CLASS_NAME_DYNAMIC_LIST_COLUMN = exports.CLASS_NAME_DYNAMIC_LIST_ROW = exports.CLASS_NAME_DYNAMIC_LIST_REPEATER_ITEM = exports.CLASS_NAME_DYNAMIC_LIST_ITEM = exports.CLASS_NAME_DYNAMIC_LIST_REPEATER_REF = exports.CLASS_NAME_DYNAMIC_LIST = exports.CLASS_NAME_DYNAMIC_WRAPPER = void 0; var CLASS_NAME_DYNAMIC_WRAPPER = 'w-dyn-list'; exports.CLASS_NAME_DYNAMIC_WRAPPER = CLASS_NAME_DYNAMIC_WRAPPER; var CLASS_NAME_DYNAMIC_LIST = 'w-dyn-items'; exports.CLASS_NAME_DYNAMIC_LIST = CLASS_NAME_DYNAMIC_LIST; var CLASS_NAME_DYNAMIC_LIST_REPEATER_REF = 'w-dyn-items-repeater-ref'; exports.CLASS_NAME_DYNAMIC_LIST_REPEATER_REF = CLASS_NAME_DYNAMIC_LIST_REPEATER_REF; var CLASS_NAME_DYNAMIC_LIST_ITEM = 'w-dyn-item'; exports.CLASS_NAME_DYNAMIC_LIST_ITEM = CLASS_NAME_DYNAMIC_LIST_ITEM; var CLASS_NAME_DYNAMIC_LIST_REPEATER_ITEM = 'w-dyn-repeater-item'; exports.CLASS_NAME_DYNAMIC_LIST_REPEATER_ITEM = CLASS_NAME_DYNAMIC_LIST_REPEATER_ITEM; var CLASS_NAME_DYNAMIC_LIST_ROW = 'w-row'; exports.CLASS_NAME_DYNAMIC_LIST_ROW = CLASS_NAME_DYNAMIC_LIST_ROW; var CLASS_NAME_DYNAMIC_LIST_COLUMN = 'w-col'; exports.CLASS_NAME_DYNAMIC_LIST_COLUMN = CLASS_NAME_DYNAMIC_LIST_COLUMN; var getColumnNumberClassName = function getColumnNumberClassName(cols) { return "w-col-".concat(cols); }; exports.getColumnNumberClassName = getColumnNumberClassName; /***/ }), /* 743 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createJsonFromBoundMedia = void 0; /* * WARNING * * This file is included in the `webflow.js` bundle, so * please refrain from adding dependencies that might * have an outsized impact on bundle size. * * Thank you! */ var createJsonItemFromBoundMedia = function createJsonItemFromBoundMedia(binding) { if (binding) { if (binding.metadata) { var _binding$metadata = binding.metadata, html = _binding$metadata.html, height = _binding$metadata.height, width = _binding$metadata.width, thumbnailUrl = _binding$metadata.thumbnail_url; return { url: binding.url, html: html, height: height, width: width, thumbnailUrl: thumbnailUrl, type: 'video' }; } else { return { url: binding.url, type: 'image' }; } } return null; }; var createJsonFromBoundMedia = function createJsonFromBoundMedia(binding, nodeJsonData) { var jsonItem = createJsonItemFromBoundMedia(binding); return jsonItem !== null ? { items: [jsonItem], group: nodeJsonData ? nodeJsonData.group : undefined } : null; }; exports.createJsonFromBoundMedia = createJsonFromBoundMedia; /***/ }), /* 744 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.walkDOM = walkDOM; exports.applyConditionToNode = exports.removeWDynBindEmptyClass = void 0; var _constants = __webpack_require__(111); var _ConditionUtils = __webpack_require__(745); var removeClass = function removeClass(node, className) { if (node.classList.contains(className)) { node.classList.remove(className); if (node.classList.length === 0) { node.removeAttribute('class'); } } }; var removeWDynBindEmptyClass = function removeWDynBindEmptyClass(node) { return removeClass(node, _constants.CLASS_NAME_W_DYN_BIND_EMPTY); }; exports.removeWDynBindEmptyClass = removeWDynBindEmptyClass; var addConditionalVisibilityClass = function addConditionalVisibilityClass(node) { node.classList.add(_constants.CONDITION_INVISIBLE_CLASS); }; var removeConditionalVisibilityClass = function removeConditionalVisibilityClass(node) { return removeClass(node, _constants.CONDITION_INVISIBLE_CLASS); }; var applyConditionToNode = function applyConditionToNode(node, item, conditionData) { var graphQLSlugs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; if (!conditionData) { return; } var condition = conditionData.condition, timezone = conditionData.timezone; if (item) { var isVisible = (0, _ConditionUtils.testCondition)({ item: item, contextItem: null, timezone: timezone, condition: condition, graphQLSlugs: graphQLSlugs }); if (isVisible) { removeConditionalVisibilityClass(node); } else { addConditionalVisibilityClass(node); } } }; /** * Breadth-first traversal of DOM nodes * @param {Element} el - Root element to start with * @param {(node: Element) => void} fn - Function to run for every node encountered */ exports.applyConditionToNode = applyConditionToNode; function walkDOM(el, fn) { fn(el); if (!el || !el.children) { return el; } var children = Array.from(el.children); if (!children.length) { return el; } children.forEach(function (child) { return walkDOM(child, fn); }); return el; } /***/ }), /* 745 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _ConditionUtils = __webpack_require__(746); Object.keys(_ConditionUtils).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _ConditionUtils[key]; } }); }); /***/ }), /* 746 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _slicedToArray2 = _interopRequireDefault2(__webpack_require__(81)); var _typeof2 = _interopRequireDefault2(__webpack_require__(30)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.testCondition = void 0; var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(276)); var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _DynamoConditionUtils = __webpack_require__(748); var _momentTimezone = _interopRequireDefault(__webpack_require__(224)); var _SlugUtils = __webpack_require__(757); var _memo = __webpack_require__(764); var _ParamFieldPathUtils = __webpack_require__(364); var _constants = __webpack_require__(111); var _FilterUtils = __webpack_require__(365); // Avoid adding unnecessary code or imports to this file, // because it will directly affect the webflow.js bundle size. // inlined from `@packages/systems/core/utils/RecordUtils` to keep bundle size minimal var getId = function getId(record) { return record._id || record.id || (record.get ? record.get('_id', record.get('id')) : null); }; var isDateStringWithoutTime = function isDateStringWithoutTime(dateString) { return /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test(dateString); }; var toGraphQLSlug = function toGraphQLSlug(originalSlug) { var slug = handleId(originalSlug); return slug === 'id' || (0, _SlugUtils.isDynamoGraphQLFieldSlug)(slug) || // Don't want to namespace field slug when retrieving product inventory data slug === 'ecSkuInventoryQuantity' ? slug : (0, _SlugUtils.fieldSlug)(slug); }; var handleId = function handleId(slug) { return slug === '_id' ? 'id' : slug; }; var isObj = function isObj(x) { return x !== null && (0, _typeof2["default"])(x) === 'object' && !Array.isArray(x); }; // A simple, non-comprehensive way of detecting Maps and Lists var isMap = function isMap(x) { return x && Boolean(x['@@__IMMUTABLE_MAP__@@']); }; var isList = function isList(x) { return x && Boolean(x['@@__IMMUTABLE_LIST__@@']); }; var isRecord = function isRecord(x) { return x && Boolean(x['@@__IMMUTABLE_RECORD__@@']); }; var memoizedToJS = (0, _memo.weakMemo)(function (imm) { return imm.toJS(); }); // This is purposefully an `any`. It avoids about 9 Flow errors below // that derive from 1) the impossibility of inferring that many different // data types and 2) the challenge of enumerating all the possible ones. // `mixed` is not very well suited for this, because it still requires enumeration // for types before operating on those values. var convertImmutableDataStructure = function convertImmutableDataStructure(value) { if (isMap(value) || isList(value) || isRecord(value)) { return memoizedToJS(value); } return value; }; var getFieldsFromConditions = function getFieldsFromConditions(conditions) { return isMap(conditions) ? conditions.get('fields') : conditions.fields; }; var testCondition = function testCondition(_ref) { var item = _ref.item, contextItem = _ref.contextItem, timezone = _ref.timezone, condition = _ref.condition, graphQLSlugs = _ref.graphQLSlugs; var cleanSlug = graphQLSlugs ? toGraphQLSlug : handleId; var plainCondition = convertImmutableDataStructure(condition); var plainItem = withCleanedSlugs(convertImmutableDataStructure(item), cleanSlug); var conditionData = reifyConditions(plainCondition, contextItem, cleanSlug); var conditionFields = (0, _FilterUtils.normalizeConditionFields)(conditionData.fields); var itemData = conditionFields.reduce(function (acc, field) { var fieldPath = field.fieldPath, type = field.type; var itemFieldValue = (0, _DynamoConditionUtils.getItemFieldValue)(plainItem, fieldPath); if (itemFieldValue == null) { return acc; } acc[fieldPath] = castFieldValue(itemFieldValue, type, timezone); return acc; }, {}); return (0, _DynamoConditionUtils.test)(itemData, conditionData, timezone); }; exports.testCondition = testCondition; var fieldConditionsUpdater = function fieldConditionsUpdater(contextItem, cleanSlug) { return function (fields) { var plainFields = convertImmutableDataStructure(fields); // Handles the new data shape of `data.dyn.query.fields` if (Array.isArray(fields)) { return plainFields.map(reifyQueryField(contextItem, cleanSlug)); } return Object.entries(plainFields).reduce(function (acc, plainField) { var _reifyCondition = reifyCondition(contextItem, cleanSlug)(plainField), _reifyCondition2 = (0, _slicedToArray2["default"])(_reifyCondition, 2), path = _reifyCondition2[0], item = _reifyCondition2[1]; acc[path] = item; return acc; }, {}); }; }; var withCleanedSlugs = function withCleanedSlugs(obj, cleanSlug) { return Object.keys(obj).reduce(function (objWithCleanSlugs, slug) { objWithCleanSlugs[cleanSlug(slug)] = obj[slug]; return objWithCleanSlugs; }, {}); }; var reifyConditions = function reifyConditions(conditions, contextItem, cleanSlug) { return (0, _extends2["default"])({}, conditions, { fields: fieldConditionsUpdater(contextItem, cleanSlug)(getFieldsFromConditions(conditions)) }); }; var createNewFieldPath = function createNewFieldPath(fieldPath, cleanSlug) { var itemRefFieldSlug = (0, _ParamFieldPathUtils.getItemRefSlug)(fieldPath); var valueFieldSlug = (0, _ParamFieldPathUtils.getValueFieldSlug)(fieldPath); return itemRefFieldSlug ? (0, _ParamFieldPathUtils.createFieldPath)(cleanSlug(itemRefFieldSlug), cleanSlug(valueFieldSlug)) : (0, _ParamFieldPathUtils.createFieldPath)(cleanSlug(valueFieldSlug)); }; var reifyCondition = function reifyCondition(contextItem, cleanSlug) { return function (fieldEntry) { var _fieldEntry = (0, _slicedToArray2["default"])(fieldEntry, 2), fieldPath = _fieldEntry[0], operation = _fieldEntry[1]; var newFieldPath = createNewFieldPath(fieldPath, cleanSlug); var pageItemDataReducer = replacePageItemData(contextItem, cleanSlug); return [newFieldPath, Object.entries(operation).reduce(function (acc, entry) { var _entry = (0, _slicedToArray2["default"])(entry, 2), key = _entry[0], value = _entry[1]; return pageItemDataReducer(acc, value, key); }, {})]; }; }; var reifyQueryField = function reifyQueryField(contextItem, cleanSlug) { return function (field) { var fieldPath = field.fieldPath, value = field.value; var newFieldPath = createNewFieldPath(fieldPath, cleanSlug); return (0, _extends2["default"])({}, field, { fieldPath: newFieldPath, value: replaceValueBasedOnPageItemData(contextItem, cleanSlug, value) }); }; }; var replacePageItemData = function replacePageItemData(contextItem, cleanSlug) { return function (acc, value, key) { acc[key] = replaceValueBasedOnPageItemData(contextItem, cleanSlug, value); return acc; }; }; var replaceValueBasedOnPageItemData = function replaceValueBasedOnPageItemData(contextItem, cleanSlug, value) { var plainPageItem = convertImmutableDataStructure(contextItem); var pageItemId = plainPageItem ? getId(plainPageItem) : null; if (typeof value === 'string') { if (value === 'DYN_CONTEXT') { if (pageItemId) { return pageItemId; } } if (/^DYN_CONTEXT/.test(value)) { var dynContextFieldSlug = value.replace(/^DYN_CONTEXT\./, ''); var dynContextFieldValue = plainPageItem && plainPageItem[cleanSlug(dynContextFieldSlug)]; var conditionValue = Array.isArray(dynContextFieldValue) ? dynContextFieldValue.map(dynContextFieldValueId) : dynContextFieldValueId(dynContextFieldValue); if (plainPageItem) { return conditionValue || _constants.NON_EXISTING_ITEM_ID; } } } return value; }; var dynContextFieldValueId = function dynContextFieldValueId(dynContextFieldValue) { return isObj(dynContextFieldValue) ? getId(dynContextFieldValue) : dynContextFieldValue; }; var castFieldValue = function castFieldValue(fieldValue, fieldType, timezone) { switch (fieldType) { case 'Date': { // GraphQL api returns date-times as ISO strings and simple dates as YYYY-MM-DD format // $FlowIgnore, we know that fieldValue is a string if the itemType is date var dateStringWithoutTime = isDateStringWithoutTime(fieldValue); return dateStringWithoutTime ? _momentTimezone["default"].tz(fieldValue, timezone).toDate() : _momentTimezone["default"].utc(fieldValue).toDate(); } case 'Option': case 'ItemRef': { return isObj(fieldValue) ? getId(fieldValue) : fieldValue; } case 'ItemRefSet': { return Array.isArray(fieldValue) && fieldValue.length ? Object.values(fieldValue).map(function (ref) { if (typeof ref === 'string') { return { _id: ref }; } var restOfRef = (0, _objectWithoutPropertiesLoose2["default"])(ref, ["id"]); // eslint-disable-line no-unused-vars return (0, _extends2["default"])({}, restOfRef, { _id: getId(ref) }); }) : null; } default: { return fieldValue; } } }; /***/ }), /* 747 */ /***/ (function(module, exports) { function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } module.exports = _iterableToArrayLimit; /***/ }), /* 748 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _slicedToArray2 = _interopRequireDefault2(__webpack_require__(81)); var _typeof2 = _interopRequireDefault2(__webpack_require__(30)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.test = test; exports.castItemValue = castItemValue; exports.castConditionValue = castConditionValue; exports.parseDate = parseDate; exports.getItemFieldValue = getItemFieldValue; exports.EXAMPLE_IMG_URL = void 0; var _momentTimezone = _interopRequireDefault(__webpack_require__(224)); var _ParamFieldPathUtils = __webpack_require__(364); var _FilterUtils = __webpack_require__(365); /** * Contains static utilities to deal with Dynamo conditional visibility for DOM nodes. */ var EXAMPLE_IMG_URL = 'https://d3e54v103j8qbb.cloudfront.net/img/image-placeholder.svg'; exports.EXAMPLE_IMG_URL = EXAMPLE_IMG_URL; var OPERATOR_FNS = { eq: function eq(a, b) { return a == b; // eslint-disable-line eqeqeq }, ne: function ne(a, b) { return a != b; // eslint-disable-line eqeqeq }, gt: function gt(a, b) { return a > b; }, lt: function lt(a, b) { return a < b; }, gte: function gte(a, b) { return a >= b; }, lte: function lte(a, b) { return a <= b; }, exists: function exists(a, b) { function getATruthiness() { if (a != null) { if (Array.isArray(a)) { return a.length > 0; } else if ((0, _typeof2["default"])(a) === 'object') { return a.url !== EXAMPLE_IMG_URL; } else if (typeof a === 'number') { return !Number.isNaN(a); } else { return true; } } else { return false; } } function getBTruthiness() { return b === 'yes'; } var aIsTruthy = getATruthiness(); var bIsTruthy = getBTruthiness(); return aIsTruthy === bIsTruthy; }, idin: function idin(a, b) { return containsResolver(a, b); }, idnin: function idnin(a, b) { return !containsResolver(a, b); }, type: false // ensure the `type` property will never resolve to a function }; var containsResolver = function containsResolver(a, b) { if (Array.isArray(a) && typeof b === 'string') { // A contains B return a.includes(b); } if (Array.isArray(a) && Array.isArray(b)) { // A contains any of B return b.some(function (id) { return a.includes(id); }); } if (typeof a === 'string' && Array.isArray(b)) { // A equals any of B return b.includes(a); } return false; }; function test(itemData, conditionData, timezone) { var conditionFields = (0, _FilterUtils.normalizeConditionFields)(conditionData.fields); // We use for..of to exit as early as possible var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = conditionFields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var conditionField = _step.value; var result = testSingleCondition({ conditionField: conditionField, itemData: itemData, timezone: timezone }); // if a condition does not pass, we return false as quickly as possible if (!result) { return false; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator["return"] != null) { _iterator["return"](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return true; } function testSingleCondition(_ref) { var conditionField = _ref.conditionField, itemData = _ref.itemData, timezone = _ref.timezone; var fieldPath = conditionField.fieldPath, operatorName = conditionField.operatorName, value = conditionField.value, type = conditionField.type; var opFn = OPERATOR_FNS[operatorName]; if (!opFn) { console.warn("Ignoring unsupported condition operator: ".concat(operatorName)); // The condition "passes" because there is no operation to test return true; } /* The renderer send out item data in different forms. Here, we first try to retrive the item field value in the current format, if that fails, we fall back to the legacy format. The main difference is in how item references are treated in itemData Current: { 'author:name': 'Author Name' } Legacy: { author: { name: 'Author Name } } */ var itemFieldValue = itemData.hasOwnProperty(fieldPath) ? itemData[fieldPath] : getItemFieldValue(itemData, fieldPath); // if field type is available in the condition, we use it to determine the item field type // otherwise we use the field value to determine item field type var itemFieldType = type ? convertFieldTypeToLegacyItemType(type) : _getLegacyItemType(fieldPath, itemFieldValue); var resolvedFieldValue = castItemFieldValue(itemFieldValue, itemFieldType); var resolvedConditionValue = castConditionValue(value, operatorName, itemFieldType, timezone); return opFn(resolvedFieldValue, resolvedConditionValue); } function castItemValue(_ref2) { var operator = _ref2.operator, value = _ref2.value, type = _ref2.type, timezone = _ref2.timezone; if (value !== undefined) { switch (type) { case 'Bool': return function () { if (typeof value === 'boolean') { return value; } else if (typeof value === 'string') { // Yes. Some sites have "True" return value.toLowerCase() === 'true'; } else { return Boolean(value); } }(); case 'Number': return parseFloat(value); case 'Date': return parseDate({ operator: operator, value: value, timezone: timezone }); default: return value; } } else { return value; } } function castConditionValue(value, op, type, timezone) { if (op === 'exists') { return value; } else { return castItemValue({ operator: op, timezone: timezone, type: type, value: value }); } } // TODO: swap with imported constant once OperatorTypes is lifted to dynamo package // tech debt tracked in: https://github.com/webflow/webflow/issues/29496 var OPERATOR_LTE_NAME = 'lte'; // RegEx Patterns required for `parseDate` /////////////////////////////////////////////// var NOW_REGEX = /^now$/i; // The END_OF_TODAY_REGEX pattern collects up to two groups of matches // Group 1: if the string begins with "end of " // Group 2: if the string contains "today" var END_OF_TODAY_REGEX = /^(end of )?(today)$/i; // The DEPRECATED_END_OF_TOMORROW_YESTERDAY_REGEX pattern is to handle parsing older date filters // that depended up on an "excluding today" boolean. It collects two groups // Group 1: if the string begins with "end of " // Group 2: if the string contains "tomorrow" or "yesterday" var DEPRECATED_END_OF_TOMORROW_YESTERDAY_REGEX = /^(end of )?(tomorrow|yesterday)$/i; // The DEPRECATED_RELATIVE_TIME_COMPLEX_REGEX pattern is designed to handle parsing older complex date filters // It captures 4 groups // Group 1: A string combining time lengths and time intervals // Example: 2 days 17 hours 4 minutes // Group 2: A string containing either "ago" or "from now" // Group 3: A string containing "starting" with either "now" or "end of" // Group 4: A string of either "today", "yesterday" or "tomorrow" var DEPRECATED_RELATIVE_TIME_COMPLEX_REGEX = /^((?:\d+ (?:year|quarter|month|week|day|hour|minute|second)s? )+)(ago|from now)(?: (?:starting (?:now|(?:(end of )?(today|yesterday|tomorrow)))))?$/i; // The RELATIVE_TIME_COMPLEX_REGEX pattern collects two groups of matches // Group 1: A string combining time lengths and time intervals. // Example: 2 days 17 hours 4 minutes // Group 2: a string of either 'future' or 'past' var RELATIVE_TIME_COMPLEX_REGEX = /^((?:\d+ (?:year|quarter|month|week|day|hour|minute|second)s? )+)in the (future|past)$/i; // The FULL_TIME_LENGTH_INTERVAL_STRING_REGEX pattern collects all the matches found in // Group 1 of RELATIVE_TIME_COMPLEX_REGEX and returns them as an array // Example: '2 days 17 hours 4 minutes' returns a matches array // of ['2 days', '17 hours', '4 minutes'] var FULL_TIME_LENGTH_INTERVAL_STRING_REGEX = /\d+ (?:year|quarter|month|week|day|hour|minute|second)s?/gi; var isDeprecatedDatePattern = function isDeprecatedDatePattern(str) { return DEPRECATED_END_OF_TOMORROW_YESTERDAY_REGEX.test(str) || DEPRECATED_RELATIVE_TIME_COMPLEX_REGEX.test(str); }; function handleDeprecatedParseDate(_ref3) { var value = _ref3.value, timezone = _ref3.timezone, momentNowUtc = _ref3.momentNowUtc; function getToday() { return momentNowUtc.tz(timezone).startOf('day'); } function getEndOfToday() { return momentNowUtc.tz(timezone).endOf('day'); } function getNow() { return momentNowUtc.tz(timezone); } var simpleResults = value.match(DEPRECATED_END_OF_TOMORROW_YESTERDAY_REGEX); if (simpleResults) { // handle deprecated end of tomorrow/yesterday scenarios var _simpleResults = (0, _slicedToArray2["default"])(simpleResults, 3), endOf = _simpleResults[1], relativeDate = _simpleResults[2]; var getStart = endOf ? getEndOfToday : getToday; if (relativeDate === 'tomorrow') { return getStart().add(1, 'day').toDate(); } if (relativeDate === 'yesterday') { return getStart().subtract(1, 'day').toDate(); } } var complexResults = value.match(DEPRECATED_RELATIVE_TIME_COMPLEX_REGEX); if (complexResults) { // handle deprecated complex results var _complexResults = (0, _slicedToArray2["default"])(complexResults, 5), values = _complexResults[1], mode = _complexResults[2], _endOf = _complexResults[3], _relativeDate = _complexResults[4]; var _getStart = _endOf ? getEndOfToday : getToday; var time; switch (_relativeDate) { case 'today': time = _getStart(); break; case 'tomorrow': time = _getStart().add(1, 'day'); break; case 'yesterday': time = _getStart().subtract(1, 'day'); break; default: time = getNow(); break; } var timeLengthIntervalItems = values.match(FULL_TIME_LENGTH_INTERVAL_STRING_REGEX); if (!timeLengthIntervalItems) { return null; } var method = mode === 'from now' ? 'add' : 'subtract'; // Loop through each length-interval item, ex '14 days', and mutate `time` with each one timeLengthIntervalItems.forEach(function (item) { var _item$split = item.split(' '), _item$split2 = (0, _slicedToArray2["default"])(_item$split, 2), length = _item$split2[0], interval = _item$split2[1]; time[method](parseInt(length, 10), interval); }); return time.toDate(); } } function parseDate(_ref4) { var operator = _ref4.operator, value = _ref4.value, timezone = _ref4.timezone, nowUtcString = _ref4.nowUtcString; timezone = timezone || 'UTC'; var momentNowUtc = nowUtcString ? _momentTimezone["default"].utc(nowUtcString) : _momentTimezone["default"].utc(); function getToday() { return momentNowUtc.tz(timezone).startOf('day'); } function getEndOfToday() { return momentNowUtc.tz(timezone).endOf('day'); } function getNow() { return momentNowUtc.tz(timezone); } var stringValue = String(value).toLowerCase(); if (NOW_REGEX.test(stringValue)) { return getNow().toDate(); } // Capture and handle deprecated date patterns, this code will/should eventually be removed if (isDeprecatedDatePattern(stringValue)) { return handleDeprecatedParseDate({ value: stringValue, timezone: timezone, momentNowUtc: momentNowUtc }); } var simpleResults = stringValue.match(END_OF_TODAY_REGEX); if (simpleResults) { var _simpleResults2 = (0, _slicedToArray2["default"])(simpleResults, 2), endOf = _simpleResults2[1]; return endOf ? getEndOfToday().toDate() : getToday().toDate(); } var complexResults = stringValue.match(RELATIVE_TIME_COMPLEX_REGEX); if (complexResults) { var _complexResults2 = (0, _slicedToArray2["default"])(complexResults, 3), fullTimeLengthIntervalString = _complexResults2[1], tense = _complexResults2[2]; var timeLengthIntervalItems = fullTimeLengthIntervalString.match(FULL_TIME_LENGTH_INTERVAL_STRING_REGEX); if (!timeLengthIntervalItems) { return null; } // We want LTE operators to include everything up to the end of the day var getStart = operator && operator === OPERATOR_LTE_NAME ? getEndOfToday : getToday; var TENSE_METHODS_MAP = { future: 'add', past: 'subtract' }; var tenseMethod = TENSE_METHODS_MAP[tense]; // This loops through each item and accumulatively adds or subtracts // the length and intervals from today's date var reducedDateTime = timeLengthIntervalItems.reduce(function (accumulatedMoment, item) { // `item` is a string in the shape of "2 days" or "14 years" var _item$split3 = item.split(' '), _item$split4 = (0, _slicedToArray2["default"])(_item$split3, 2), length = _item$split4[0], interval = _item$split4[1]; return accumulatedMoment[tenseMethod](parseInt(length, 10), interval); }, getStart()); return reducedDateTime.toDate(); } // Else, fall back on standard ISO 8601 parsing: var isoMoment = _momentTimezone["default"].utc(value, _momentTimezone["default"].ISO_8601).tz(timezone); if (!isoMoment || !isoMoment.isValid()) { return null; } // Ok! return isoMoment.toDate(); } function castItemFieldValue(fieldValue, fieldType) { switch (fieldType) { case 'CommercePrice': { // typeof null equals 'object' so we need to guard against that return fieldValue !== null && (0, _typeof2["default"])(fieldValue) === 'object' && typeof fieldValue.value === 'number' ? fieldValue.value / 100 : NaN; } case 'ItemRef': { return fieldValue !== null && (0, _typeof2["default"])(fieldValue) === 'object' ? fieldValue._id : fieldValue; } case 'ItemRefSet': { return Array.isArray(fieldValue) ? fieldValue.map(function (itemRef) { return itemRef._id; }) : []; } case 'Option': { return fieldValue !== null && (0, _typeof2["default"])(fieldValue) === 'object' ? fieldValue.id : fieldValue; } case 'Number': { return fieldValue === null ? NaN : fieldValue; } default: { return fieldValue; } } } function getItemFieldValue(itemData, fieldPath) { var itemRefSlug = (0, _ParamFieldPathUtils.getItemRefSlug)(fieldPath); var valueFieldSlug = (0, _ParamFieldPathUtils.getValueFieldSlug)(fieldPath); return (0, _ParamFieldPathUtils.isFieldOfItemRef)(fieldPath) ? itemData[itemRefSlug] && itemData[itemRefSlug][valueFieldSlug] : itemData[valueFieldSlug]; } /* * Converts CMS Field Type into legacy item types used in this file * * This function maps Field types to the appropriate legacy field type. * * The legacy field types are `Bool`, `CommercePrice`, `Date`, `Id`, * `ImageRef`, `ItemRef`, `ItemRefSet`, `Number`, `Option` and `String`. * * Of these, only `Bool`, `CommercePrice`, `Date`, `ItemRef`, * `ItemRefSet`, `Number` and `Option` are consequential, * because condition and item field values are cast based on them * in `castConditionValue` and `castItemValue`. */ function convertFieldTypeToLegacyItemType(fieldType) { switch (fieldType) { case 'Bool': case 'CommercePrice': case 'Date': case 'ImageRef': case 'ItemRef': case 'ItemRefSet': case 'Number': case 'Option': case 'Set': { return fieldType; } case 'FileRef': case 'Video': { return 'ImageRef'; } case 'Email': case 'Phone': case 'PlainText': case 'RichText': case 'Link': { return 'String'; } default: { return 'String'; } } } /* * LEGACY function that derives the field type from field name and value. * * This way of deriving field type is only used with the Legacy Renderer, * where the field type is not added to the associated condition data. */ function _getLegacyItemType(name, value) { if (name === '_id') { return 'Id'; } else { switch ((0, _typeof2["default"])(value)) { case 'number': return 'Number'; case 'boolean': return 'Bool'; case 'object': return function () { if (value) { if (value instanceof Date) { return 'Date'; } else if ('_id' in value && '_cid' in value) { return 'ItemRef'; } else if (Array.isArray(value)) { // Do not need to worry about `Set` fields here, // because this function is used only for legacy conditions. return 'ItemRefSet'; } else if ('url' in value) { // technically this could be a video as well; we use 'ImageRef' as a stand-in for 'Asset'-type return 'ImageRef'; } else if ('value' in value && 'unit' in value) { return 'CommercePrice'; } else { return 'Option'; } } else { return 'Option'; } }(); default: return 'String'; } } } /***/ }), /* 749 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//! moment-timezone.js //! version : 0.5.31 //! Copyright (c) JS Foundation and other contributors //! license : MIT //! github.com/moment/moment-timezone (function (root, factory) { "use strict"; /*global define*/ if ( true && module.exports) { module.exports = factory(__webpack_require__(50)); // Node } else if (true) { !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(50)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); // AMD } else {} }(this, function (moment) { "use strict"; // Resolves es6 module loading issue if (moment.version === undefined && moment.default) { moment = moment.default; } // Do not load moment-timezone a second time. // if (moment.tz !== undefined) { // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion); // return moment; // } var VERSION = "0.5.31", zones = {}, links = {}, countries = {}, names = {}, guesses = {}, cachedGuess; if (!moment || typeof moment.version !== 'string') { logError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/'); } var momentVersion = moment.version.split('.'), major = +momentVersion[0], minor = +momentVersion[1]; // Moment.js version check if (major < 2 || (major === 2 && minor < 6)) { logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com'); } /************************************ Unpacking ************************************/ function charCodeToInt(charCode) { if (charCode > 96) { return charCode - 87; } else if (charCode > 64) { return charCode - 29; } return charCode - 48; } function unpackBase60(string) { var i = 0, parts = string.split('.'), whole = parts[0], fractional = parts[1] || '', multiplier = 1, num, out = 0, sign = 1; // handle negative numbers if (string.charCodeAt(0) === 45) { i = 1; sign = -1; } // handle digits before the decimal for (i; i < whole.length; i++) { num = charCodeToInt(whole.charCodeAt(i)); out = 60 * out + num; } // handle digits after the decimal for (i = 0; i < fractional.length; i++) { multiplier = multiplier / 60; num = charCodeToInt(fractional.charCodeAt(i)); out += num * multiplier; } return out * sign; } function arrayToInt (array) { for (var i = 0; i < array.length; i++) { array[i] = unpackBase60(array[i]); } } function intToUntil (array, length) { for (var i = 0; i < length; i++) { array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds } array[length - 1] = Infinity; } function mapIndices (source, indices) { var out = [], i; for (i = 0; i < indices.length; i++) { out[i] = source[indices[i]]; } return out; } function unpack (string) { var data = string.split('|'), offsets = data[2].split(' '), indices = data[3].split(''), untils = data[4].split(' '); arrayToInt(offsets); arrayToInt(indices); arrayToInt(untils); intToUntil(untils, indices.length); return { name : data[0], abbrs : mapIndices(data[1].split(' '), indices), offsets : mapIndices(offsets, indices), untils : untils, population : data[5] | 0 }; } /************************************ Zone object ************************************/ function Zone (packedString) { if (packedString) { this._set(unpack(packedString)); } } Zone.prototype = { _set : function (unpacked) { this.name = unpacked.name; this.abbrs = unpacked.abbrs; this.untils = unpacked.untils; this.offsets = unpacked.offsets; this.population = unpacked.population; }, _index : function (timestamp) { var target = +timestamp, untils = this.untils, i; for (i = 0; i < untils.length; i++) { if (target < untils[i]) { return i; } } }, countries : function () { var zone_name = this.name; return Object.keys(countries).filter(function (country_code) { return countries[country_code].zones.indexOf(zone_name) !== -1; }); }, parse : function (timestamp) { var target = +timestamp, offsets = this.offsets, untils = this.untils, max = untils.length - 1, offset, offsetNext, offsetPrev, i; for (i = 0; i < max; i++) { offset = offsets[i]; offsetNext = offsets[i + 1]; offsetPrev = offsets[i ? i - 1 : i]; if (offset < offsetNext && tz.moveAmbiguousForward) { offset = offsetNext; } else if (offset > offsetPrev && tz.moveInvalidForward) { offset = offsetPrev; } if (target < untils[i] - (offset * 60000)) { return offsets[i]; } } return offsets[max]; }, abbr : function (mom) { return this.abbrs[this._index(mom)]; }, offset : function (mom) { logError("zone.offset has been deprecated in favor of zone.utcOffset"); return this.offsets[this._index(mom)]; }, utcOffset : function (mom) { return this.offsets[this._index(mom)]; } }; /************************************ Country object ************************************/ function Country (country_name, zone_names) { this.name = country_name; this.zones = zone_names; } /************************************ Current Timezone ************************************/ function OffsetAt(at) { var timeString = at.toTimeString(); var abbr = timeString.match(/\([a-z ]+\)/i); if (abbr && abbr[0]) { // 17:56:31 GMT-0600 (CST) // 17:56:31 GMT-0600 (Central Standard Time) abbr = abbr[0].match(/[A-Z]/g); abbr = abbr ? abbr.join('') : undefined; } else { // 17:56:31 CST // 17:56:31 GMT+0800 (å°åŒ—標準時間) abbr = timeString.match(/[A-Z]{3,5}/g); abbr = abbr ? abbr[0] : undefined; } if (abbr === 'GMT') { abbr = undefined; } this.at = +at; this.abbr = abbr; this.offset = at.getTimezoneOffset(); } function ZoneScore(zone) { this.zone = zone; this.offsetScore = 0; this.abbrScore = 0; } ZoneScore.prototype.scoreOffsetAt = function (offsetAt) { this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset); if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) { this.abbrScore++; } }; function findChange(low, high) { var mid, diff; while ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) { mid = new OffsetAt(new Date(low.at + diff)); if (mid.offset === low.offset) { low = mid; } else { high = mid; } } return low; } function userOffsets() { var startYear = new Date().getFullYear() - 2, last = new OffsetAt(new Date(startYear, 0, 1)), offsets = [last], change, next, i; for (i = 1; i < 48; i++) { next = new OffsetAt(new Date(startYear, i, 1)); if (next.offset !== last.offset) { change = findChange(last, next); offsets.push(change); offsets.push(new OffsetAt(new Date(change.at + 6e4))); } last = next; } for (i = 0; i < 4; i++) { offsets.push(new OffsetAt(new Date(startYear + i, 0, 1))); offsets.push(new OffsetAt(new Date(startYear + i, 6, 1))); } return offsets; } function sortZoneScores (a, b) { if (a.offsetScore !== b.offsetScore) { return a.offsetScore - b.offsetScore; } if (a.abbrScore !== b.abbrScore) { return a.abbrScore - b.abbrScore; } if (a.zone.population !== b.zone.population) { return b.zone.population - a.zone.population; } return b.zone.name.localeCompare(a.zone.name); } function addToGuesses (name, offsets) { var i, offset; arrayToInt(offsets); for (i = 0; i < offsets.length; i++) { offset = offsets[i]; guesses[offset] = guesses[offset] || {}; guesses[offset][name] = true; } } function guessesForUserOffsets (offsets) { var offsetsLength = offsets.length, filteredGuesses = {}, out = [], i, j, guessesOffset; for (i = 0; i < offsetsLength; i++) { guessesOffset = guesses[offsets[i].offset] || {}; for (j in guessesOffset) { if (guessesOffset.hasOwnProperty(j)) { filteredGuesses[j] = true; } } } for (i in filteredGuesses) { if (filteredGuesses.hasOwnProperty(i)) { out.push(names[i]); } } return out; } function rebuildGuess () { // use Intl API when available and returning valid time zone try { var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone; if (intlName && intlName.length > 3) { var name = names[normalizeName(intlName)]; if (name) { return name; } logError("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded."); } } catch (e) { // Intl unavailable, fall back to manual guessing. } var offsets = userOffsets(), offsetsLength = offsets.length, guesses = guessesForUserOffsets(offsets), zoneScores = [], zoneScore, i, j; for (i = 0; i < guesses.length; i++) { zoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength); for (j = 0; j < offsetsLength; j++) { zoneScore.scoreOffsetAt(offsets[j]); } zoneScores.push(zoneScore); } zoneScores.sort(sortZoneScores); return zoneScores.length > 0 ? zoneScores[0].zone.name : undefined; } function guess (ignoreCache) { if (!cachedGuess || ignoreCache) { cachedGuess = rebuildGuess(); } return cachedGuess; } /************************************ Global Methods ************************************/ function normalizeName (name) { return (name || '').toLowerCase().replace(/\//g, '_'); } function addZone (packed) { var i, name, split, normalized; if (typeof packed === "string") { packed = [packed]; } for (i = 0; i < packed.length; i++) { split = packed[i].split('|'); name = split[0]; normalized = normalizeName(name); zones[normalized] = packed[i]; names[normalized] = name; addToGuesses(normalized, split[2].split(' ')); } } function getZone (name, caller) { name = normalizeName(name); var zone = zones[name]; var link; if (zone instanceof Zone) { return zone; } if (typeof zone === 'string') { zone = new Zone(zone); zones[name] = zone; return zone; } // Pass getZone to prevent recursion more than 1 level deep if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) { zone = zones[name] = new Zone(); zone._set(link); zone.name = names[name]; return zone; } return null; } function getNames () { var i, out = []; for (i in names) { if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) { out.push(names[i]); } } return out.sort(); } function getCountryNames () { return Object.keys(countries); } function addLink (aliases) { var i, alias, normal0, normal1; if (typeof aliases === "string") { aliases = [aliases]; } for (i = 0; i < aliases.length; i++) { alias = aliases[i].split('|'); normal0 = normalizeName(alias[0]); normal1 = normalizeName(alias[1]); links[normal0] = normal1; names[normal0] = alias[0]; links[normal1] = normal0; names[normal1] = alias[1]; } } function addCountries (data) { var i, country_code, country_zones, split; if (!data || !data.length) return; for (i = 0; i < data.length; i++) { split = data[i].split('|'); country_code = split[0].toUpperCase(); country_zones = split[1].split(' '); countries[country_code] = new Country( country_code, country_zones ); } } function getCountry (name) { name = name.toUpperCase(); return countries[name] || null; } function zonesForCountry(country, with_offset) { country = getCountry(country); if (!country) return null; var zones = country.zones.sort(); if (with_offset) { return zones.map(function (zone_name) { var zone = getZone(zone_name); return { name: zone_name, offset: zone.utcOffset(new Date()) }; }); } return zones; } function loadData (data) { addZone(data.zones); addLink(data.links); addCountries(data.countries); tz.dataVersion = data.version; } function zoneExists (name) { if (!zoneExists.didShowError) { zoneExists.didShowError = true; logError("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')"); } return !!getZone(name); } function needsOffset (m) { var isUnixTimestamp = (m._f === 'X' || m._f === 'x'); return !!(m._a && (m._tzm === undefined) && !isUnixTimestamp); } function logError (message) { if (typeof console !== 'undefined' && typeof console.error === 'function') { console.error(message); } } /************************************ moment.tz namespace ************************************/ function tz (input) { var args = Array.prototype.slice.call(arguments, 0, -1), name = arguments[arguments.length - 1], zone = getZone(name), out = moment.utc.apply(null, args); if (zone && !moment.isMoment(input) && needsOffset(out)) { out.add(zone.parse(out), 'minutes'); } out.tz(name); return out; } tz.version = VERSION; tz.dataVersion = ''; tz._zones = zones; tz._links = links; tz._names = names; tz._countries = countries; tz.add = addZone; tz.link = addLink; tz.load = loadData; tz.zone = getZone; tz.zoneExists = zoneExists; // deprecated in 0.1.0 tz.guess = guess; tz.names = getNames; tz.Zone = Zone; tz.unpack = unpack; tz.unpackBase60 = unpackBase60; tz.needsOffset = needsOffset; tz.moveInvalidForward = true; tz.moveAmbiguousForward = false; tz.countries = getCountryNames; tz.zonesForCountry = zonesForCountry; /************************************ Interface with Moment.js ************************************/ var fn = moment.fn; moment.tz = tz; moment.defaultZone = null; moment.updateOffset = function (mom, keepTime) { var zone = moment.defaultZone, offset; if (mom._z === undefined) { if (zone && needsOffset(mom) && !mom._isUTC) { mom._d = moment.utc(mom._a)._d; mom.utc().add(zone.parse(mom), 'minutes'); } mom._z = zone; } if (mom._z) { offset = mom._z.utcOffset(mom); if (Math.abs(offset) < 16) { offset = offset / 60; } if (mom.utcOffset !== undefined) { var z = mom._z; mom.utcOffset(-offset, keepTime); mom._z = z; } else { mom.zone(offset, keepTime); } } }; fn.tz = function (name, keepTime) { if (name) { if (typeof name !== 'string') { throw new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']'); } this._z = getZone(name); if (this._z) { moment.updateOffset(this, keepTime); } else { logError("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/."); } return this; } if (this._z) { return this._z.name; } }; function abbrWrap (old) { return function () { if (this._z) { return this._z.abbr(this); } return old.call(this); }; } function resetZoneWrap (old) { return function () { this._z = null; return old.apply(this, arguments); }; } function resetZoneWrap2 (old) { return function () { if (arguments.length > 0) this._z = null; return old.apply(this, arguments); }; } fn.zoneName = abbrWrap(fn.zoneName); fn.zoneAbbr = abbrWrap(fn.zoneAbbr); fn.utc = resetZoneWrap(fn.utc); fn.local = resetZoneWrap(fn.local); fn.utcOffset = resetZoneWrap2(fn.utcOffset); moment.tz.setDefault = function(name) { if (major < 2 || (major === 2 && minor < 9)) { logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.'); } moment.defaultZone = name ? getZone(name) : null; return moment; }; // Cloning a moment should include the _z property. var momentProperties = moment.momentProperties; if (Object.prototype.toString.call(momentProperties) === '[object Array]') { // moment 2.8.1+ momentProperties.push('_z'); momentProperties.push('_a'); } else if (momentProperties) { // moment 2.7.0 momentProperties._z = null; } // INJECT DATA return moment; })); /***/ }), /* 750 */ /***/ (function(module, exports, __webpack_require__) { var map = { "./en-au": 358, "./en-au.js": 358, "./en-ca": 359, "./en-ca.js": 359, "./en-gb": 360, "./en-gb.js": 360, "./en-ie": 361, "./en-ie.js": 361, "./en-il": 362, "./en-il.js": 362, "./en-nz": 363, "./en-nz.js": 363 }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if(!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function webpackContextKeys() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = 750; /***/ }), /* 751 */ /***/ (function(module) { module.exports = JSON.parse("{\"version\":\"2020a\",\"zones\":[\"Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5\",\"Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5\",\"Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5\",\"Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5\",\"Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6\",\"Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4\",\"Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5\",\"Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6\",\"Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5\",\"Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3\",\"Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4\",\"Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5\",\"Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0|\",\"Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5\",\"Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5\",\"Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5\",\"Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|\",\"Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5\",\"Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5\",\"Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\",\"America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\",\"America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\"America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3\",\"America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4\",\"America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\",\"America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|\",\"America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\",\"America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|\",\"America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|\",\"America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|\",\"America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|\",\"America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|\",\"America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4\",\"America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5\",\"America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2\",\"America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3\",\"America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5\",\"America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4\",\"America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5\",\"America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3\",\"America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2\",\"America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2\",\"America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5\",\"America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4\",\"America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2\",\"America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4\",\"America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4\",\"America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5\",\"America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3\",\"America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5\",\"America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\"America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4\",\"America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5\",\"America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2\",\"America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4\",\"America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8\",\"America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3\",\"America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|13e2\",\"America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\"America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5\",\"America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5\",\"America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3\",\"America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5\",\"America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5\",\"America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2\",\"America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5\",\"America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3\",\"America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2\",\"America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\",\"America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5\",\"America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5\",\"America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4\",\"America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\"America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\"America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4\",\"America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2\",\"America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2\",\"America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4\",\"America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3\",\"America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5\",\"America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6\",\"America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\"America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4\",\"America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5\",\"America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5\",\"America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4\",\"America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4\",\"America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4\",\"America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2\",\"America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5\",\"America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6\",\"America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\"America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3\",\"America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5\",\"America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5\",\"America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5\",\"America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4\",\"America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\"America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2\",\"America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2\",\"America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2\",\"America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\"America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\"America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4\",\"America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5\",\"America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4\",\"America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4\",\"America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5\",\"America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|\",\"America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842\",\"America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2\",\"America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5\",\"America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4\",\"America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229\",\"America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4\",\"America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5\",\"America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5\",\"America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6\",\"America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452\",\"America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2\",\"America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3\",\"America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5\",\"America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656\",\"America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\"America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\",\"America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|23e3\",\"America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4\",\"America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642\",\"America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\",\"Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10\",\"Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70\",\"Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80\",\"Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1\",\"Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60\",\"Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5\",\"Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40\",\"Antarctica/Rothera|-00 -03|0 30|01|gOo0|130\",\"Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20\",\"Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40\",\"Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25\",\"Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4\",\"Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5\",\"Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5\",\"Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5\",\"Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3\",\"Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4\",\"Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4\",\"Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4\",\"Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5\",\"Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4\",\"Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5\",\"Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6\",\"Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|\",\"Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5\",\"Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4\",\"Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4\",\"Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6\",\"Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4\",\"Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3\",\"Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6\",\"Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5\",\"Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6\",\"Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5\",\"Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4\",\"Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5\",\"Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4\",\"Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|0101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|18e5\",\"Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|25e4\",\"Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5\",\"Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5\",\"Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3\",\"Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6\",\"Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6\",\"Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4\",\"Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4\",\"Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5\",\"Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4\",\"Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6\",\"Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5\",\"Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5\",\"Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2\",\"Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\",\"Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5\",\"Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4\",\"Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4\",\"Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3\",\"Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5\",\"Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6\",\"Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4\",\"Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4\",\"Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5\",\"Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5\",\"Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4\",\"Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4\",\"Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5\",\"Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\",\"Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4\",\"Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5\",\"Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4\",\"Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4\",\"Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6\",\"Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2\",\"Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5\",\"Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5\",\"Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5\",\"Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\",\"Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3\",\"Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6\",\"Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5\",\"Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5\",\"Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2\",\"Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\",\"Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4\",\"Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5\",\"Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5\",\"Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4\",\"Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3\",\"Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4\",\"Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3\",\"Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4\",\"Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4\",\"Atlantic/South_Georgia|-02|20|0||30\",\"Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2\",\"Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5\",\"Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5\",\"Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5\",\"Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3\",\"Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746\",\"Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4\",\"Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368\",\"Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4\",\"Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347\",\"Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10\",\"Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5\",\"Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5\",\"CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2\",\"CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"EST|EST|50|0||\",\"EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Etc/GMT-0|GMT|0|0||\",\"Etc/GMT-1|+01|-10|0||\",\"Pacific/Port_Moresby|+10|-a0|0||25e4\",\"Etc/GMT-11|+11|-b0|0||\",\"Pacific/Tarawa|+12|-c0|0||29e3\",\"Etc/GMT-13|+13|-d0|0||\",\"Etc/GMT-14|+14|-e0|0||\",\"Etc/GMT-2|+02|-20|0||\",\"Etc/GMT-3|+03|-30|0||\",\"Etc/GMT-4|+04|-40|0||\",\"Etc/GMT-5|+05|-50|0||\",\"Etc/GMT-6|+06|-60|0||\",\"Indian/Christmas|+07|-70|0||21e2\",\"Etc/GMT-8|+08|-80|0||\",\"Pacific/Palau|+09|-90|0||21e3\",\"Etc/GMT+1|-01|10|0||\",\"Etc/GMT+10|-10|a0|0||\",\"Etc/GMT+11|-11|b0|0||\",\"Etc/GMT+12|-12|c0|0||\",\"Etc/GMT+3|-03|30|0||\",\"Etc/GMT+4|-04|40|0||\",\"Etc/GMT+5|-05|50|0||\",\"Etc/GMT+6|-06|60|0||\",\"Etc/GMT+7|-07|70|0||\",\"Etc/GMT+8|-08|80|0||\",\"Etc/GMT+9|-09|90|0||\",\"Etc/UTC|UTC|0|0||\",\"Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5\",\"Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3\",\"Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5\",\"Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5\",\"Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6\",\"Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5\",\"Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5\",\"Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5\",\"Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5\",\"Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4\",\"Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4\",\"Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3\",\"Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4\",\"Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5\",\"Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4\",\"Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\",\"Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5\",\"Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5\",\"Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3\",\"Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6\",\"Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6\",\"Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4\",\"Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5\",\"Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5\",\"Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|\",\"Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4\",\"Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\",\"Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5\",\"Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4\",\"Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\",\"Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5\",\"Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4\",\"Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5\",\"Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\",\"Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0|10e5\",\"Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\",\"Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4\",\"HST|HST|a0|0||\",\"Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2\",\"Indian/Cocos|+0630|-6u|0||596\",\"Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130\",\"Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3\",\"Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4\",\"Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4\",\"Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4\",\"Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3\",\"MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\",\"MST|MST|70|0||\",\"MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600\",\"Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3\",\"Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4\",\"Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3\",\"Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3\",\"Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1\",\"Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483\",\"Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4\",\"Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3\",\"Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125\",\"Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4\",\"Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4\",\"Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4\",\"Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2\",\"Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2\",\"Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3\",\"Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2\",\"Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2\",\"Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3\",\"Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2\",\"Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4\",\"Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3\",\"Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56\",\"Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3\",\"Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3\",\"Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4\",\"Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3\",\"PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\",\"WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\"],\"links\":[\"Africa/Abidjan|Africa/Bamako\",\"Africa/Abidjan|Africa/Banjul\",\"Africa/Abidjan|Africa/Conakry\",\"Africa/Abidjan|Africa/Dakar\",\"Africa/Abidjan|Africa/Freetown\",\"Africa/Abidjan|Africa/Lome\",\"Africa/Abidjan|Africa/Nouakchott\",\"Africa/Abidjan|Africa/Ouagadougou\",\"Africa/Abidjan|Africa/Timbuktu\",\"Africa/Abidjan|Atlantic/St_Helena\",\"Africa/Cairo|Egypt\",\"Africa/Johannesburg|Africa/Maseru\",\"Africa/Johannesburg|Africa/Mbabane\",\"Africa/Lagos|Africa/Bangui\",\"Africa/Lagos|Africa/Brazzaville\",\"Africa/Lagos|Africa/Douala\",\"Africa/Lagos|Africa/Kinshasa\",\"Africa/Lagos|Africa/Libreville\",\"Africa/Lagos|Africa/Luanda\",\"Africa/Lagos|Africa/Malabo\",\"Africa/Lagos|Africa/Niamey\",\"Africa/Lagos|Africa/Porto-Novo\",\"Africa/Maputo|Africa/Blantyre\",\"Africa/Maputo|Africa/Bujumbura\",\"Africa/Maputo|Africa/Gaborone\",\"Africa/Maputo|Africa/Harare\",\"Africa/Maputo|Africa/Kigali\",\"Africa/Maputo|Africa/Lubumbashi\",\"Africa/Maputo|Africa/Lusaka\",\"Africa/Nairobi|Africa/Addis_Ababa\",\"Africa/Nairobi|Africa/Asmara\",\"Africa/Nairobi|Africa/Asmera\",\"Africa/Nairobi|Africa/Dar_es_Salaam\",\"Africa/Nairobi|Africa/Djibouti\",\"Africa/Nairobi|Africa/Kampala\",\"Africa/Nairobi|Africa/Mogadishu\",\"Africa/Nairobi|Indian/Antananarivo\",\"Africa/Nairobi|Indian/Comoro\",\"Africa/Nairobi|Indian/Mayotte\",\"Africa/Tripoli|Libya\",\"America/Adak|America/Atka\",\"America/Adak|US/Aleutian\",\"America/Anchorage|US/Alaska\",\"America/Argentina/Buenos_Aires|America/Buenos_Aires\",\"America/Argentina/Catamarca|America/Argentina/ComodRivadavia\",\"America/Argentina/Catamarca|America/Catamarca\",\"America/Argentina/Cordoba|America/Cordoba\",\"America/Argentina/Cordoba|America/Rosario\",\"America/Argentina/Jujuy|America/Jujuy\",\"America/Argentina/Mendoza|America/Mendoza\",\"America/Atikokan|America/Coral_Harbour\",\"America/Chicago|US/Central\",\"America/Curacao|America/Aruba\",\"America/Curacao|America/Kralendijk\",\"America/Curacao|America/Lower_Princes\",\"America/Denver|America/Shiprock\",\"America/Denver|Navajo\",\"America/Denver|US/Mountain\",\"America/Detroit|US/Michigan\",\"America/Edmonton|Canada/Mountain\",\"America/Fort_Wayne|America/Indiana/Indianapolis\",\"America/Fort_Wayne|America/Indianapolis\",\"America/Fort_Wayne|US/East-Indiana\",\"America/Godthab|America/Nuuk\",\"America/Halifax|Canada/Atlantic\",\"America/Havana|Cuba\",\"America/Indiana/Knox|America/Knox_IN\",\"America/Indiana/Knox|US/Indiana-Starke\",\"America/Jamaica|Jamaica\",\"America/Kentucky/Louisville|America/Louisville\",\"America/Los_Angeles|US/Pacific\",\"America/Los_Angeles|US/Pacific-New\",\"America/Manaus|Brazil/West\",\"America/Mazatlan|Mexico/BajaSur\",\"America/Mexico_City|Mexico/General\",\"America/New_York|US/Eastern\",\"America/Noronha|Brazil/DeNoronha\",\"America/Panama|America/Cayman\",\"America/Phoenix|US/Arizona\",\"America/Port_of_Spain|America/Anguilla\",\"America/Port_of_Spain|America/Antigua\",\"America/Port_of_Spain|America/Dominica\",\"America/Port_of_Spain|America/Grenada\",\"America/Port_of_Spain|America/Guadeloupe\",\"America/Port_of_Spain|America/Marigot\",\"America/Port_of_Spain|America/Montserrat\",\"America/Port_of_Spain|America/St_Barthelemy\",\"America/Port_of_Spain|America/St_Kitts\",\"America/Port_of_Spain|America/St_Lucia\",\"America/Port_of_Spain|America/St_Thomas\",\"America/Port_of_Spain|America/St_Vincent\",\"America/Port_of_Spain|America/Tortola\",\"America/Port_of_Spain|America/Virgin\",\"America/Regina|Canada/Saskatchewan\",\"America/Rio_Branco|America/Porto_Acre\",\"America/Rio_Branco|Brazil/Acre\",\"America/Santiago|Chile/Continental\",\"America/Sao_Paulo|Brazil/East\",\"America/St_Johns|Canada/Newfoundland\",\"America/Tijuana|America/Ensenada\",\"America/Tijuana|America/Santa_Isabel\",\"America/Tijuana|Mexico/BajaNorte\",\"America/Toronto|America/Montreal\",\"America/Toronto|Canada/Eastern\",\"America/Vancouver|Canada/Pacific\",\"America/Whitehorse|Canada/Yukon\",\"America/Winnipeg|Canada/Central\",\"Asia/Ashgabat|Asia/Ashkhabad\",\"Asia/Bangkok|Asia/Phnom_Penh\",\"Asia/Bangkok|Asia/Vientiane\",\"Asia/Dhaka|Asia/Dacca\",\"Asia/Dubai|Asia/Muscat\",\"Asia/Ho_Chi_Minh|Asia/Saigon\",\"Asia/Hong_Kong|Hongkong\",\"Asia/Jerusalem|Asia/Tel_Aviv\",\"Asia/Jerusalem|Israel\",\"Asia/Kathmandu|Asia/Katmandu\",\"Asia/Kolkata|Asia/Calcutta\",\"Asia/Kuala_Lumpur|Asia/Singapore\",\"Asia/Kuala_Lumpur|Singapore\",\"Asia/Macau|Asia/Macao\",\"Asia/Makassar|Asia/Ujung_Pandang\",\"Asia/Nicosia|Europe/Nicosia\",\"Asia/Qatar|Asia/Bahrain\",\"Asia/Rangoon|Asia/Yangon\",\"Asia/Riyadh|Asia/Aden\",\"Asia/Riyadh|Asia/Kuwait\",\"Asia/Seoul|ROK\",\"Asia/Shanghai|Asia/Chongqing\",\"Asia/Shanghai|Asia/Chungking\",\"Asia/Shanghai|Asia/Harbin\",\"Asia/Shanghai|PRC\",\"Asia/Taipei|ROC\",\"Asia/Tehran|Iran\",\"Asia/Thimphu|Asia/Thimbu\",\"Asia/Tokyo|Japan\",\"Asia/Ulaanbaatar|Asia/Ulan_Bator\",\"Asia/Urumqi|Asia/Kashgar\",\"Atlantic/Faroe|Atlantic/Faeroe\",\"Atlantic/Reykjavik|Iceland\",\"Atlantic/South_Georgia|Etc/GMT+2\",\"Australia/Adelaide|Australia/South\",\"Australia/Brisbane|Australia/Queensland\",\"Australia/Broken_Hill|Australia/Yancowinna\",\"Australia/Darwin|Australia/North\",\"Australia/Hobart|Australia/Tasmania\",\"Australia/Lord_Howe|Australia/LHI\",\"Australia/Melbourne|Australia/Victoria\",\"Australia/Perth|Australia/West\",\"Australia/Sydney|Australia/ACT\",\"Australia/Sydney|Australia/Canberra\",\"Australia/Sydney|Australia/NSW\",\"Etc/GMT-0|Etc/GMT\",\"Etc/GMT-0|Etc/GMT+0\",\"Etc/GMT-0|Etc/GMT0\",\"Etc/GMT-0|Etc/Greenwich\",\"Etc/GMT-0|GMT\",\"Etc/GMT-0|GMT+0\",\"Etc/GMT-0|GMT-0\",\"Etc/GMT-0|GMT0\",\"Etc/GMT-0|Greenwich\",\"Etc/UTC|Etc/UCT\",\"Etc/UTC|Etc/Universal\",\"Etc/UTC|Etc/Zulu\",\"Etc/UTC|UCT\",\"Etc/UTC|UTC\",\"Etc/UTC|Universal\",\"Etc/UTC|Zulu\",\"Europe/Belgrade|Europe/Ljubljana\",\"Europe/Belgrade|Europe/Podgorica\",\"Europe/Belgrade|Europe/Sarajevo\",\"Europe/Belgrade|Europe/Skopje\",\"Europe/Belgrade|Europe/Zagreb\",\"Europe/Chisinau|Europe/Tiraspol\",\"Europe/Dublin|Eire\",\"Europe/Helsinki|Europe/Mariehamn\",\"Europe/Istanbul|Asia/Istanbul\",\"Europe/Istanbul|Turkey\",\"Europe/Lisbon|Portugal\",\"Europe/London|Europe/Belfast\",\"Europe/London|Europe/Guernsey\",\"Europe/London|Europe/Isle_of_Man\",\"Europe/London|Europe/Jersey\",\"Europe/London|GB\",\"Europe/London|GB-Eire\",\"Europe/Moscow|W-SU\",\"Europe/Oslo|Arctic/Longyearbyen\",\"Europe/Oslo|Atlantic/Jan_Mayen\",\"Europe/Prague|Europe/Bratislava\",\"Europe/Rome|Europe/San_Marino\",\"Europe/Rome|Europe/Vatican\",\"Europe/Warsaw|Poland\",\"Europe/Zurich|Europe/Busingen\",\"Europe/Zurich|Europe/Vaduz\",\"Indian/Christmas|Etc/GMT-7\",\"Pacific/Auckland|Antarctica/McMurdo\",\"Pacific/Auckland|Antarctica/South_Pole\",\"Pacific/Auckland|NZ\",\"Pacific/Chatham|NZ-CHAT\",\"Pacific/Chuuk|Pacific/Truk\",\"Pacific/Chuuk|Pacific/Yap\",\"Pacific/Easter|Chile/EasterIsland\",\"Pacific/Guam|Pacific/Saipan\",\"Pacific/Honolulu|Pacific/Johnston\",\"Pacific/Honolulu|US/Hawaii\",\"Pacific/Kwajalein|Kwajalein\",\"Pacific/Pago_Pago|Pacific/Midway\",\"Pacific/Pago_Pago|Pacific/Samoa\",\"Pacific/Pago_Pago|US/Samoa\",\"Pacific/Palau|Etc/GMT-9\",\"Pacific/Pohnpei|Pacific/Ponape\",\"Pacific/Port_Moresby|Etc/GMT-10\",\"Pacific/Tarawa|Etc/GMT-12\",\"Pacific/Tarawa|Pacific/Funafuti\",\"Pacific/Tarawa|Pacific/Wake\",\"Pacific/Tarawa|Pacific/Wallis\"],\"countries\":[\"AD|Europe/Andorra\",\"AE|Asia/Dubai\",\"AF|Asia/Kabul\",\"AG|America/Port_of_Spain America/Antigua\",\"AI|America/Port_of_Spain America/Anguilla\",\"AL|Europe/Tirane\",\"AM|Asia/Yerevan\",\"AO|Africa/Lagos Africa/Luanda\",\"AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo\",\"AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia\",\"AS|Pacific/Pago_Pago\",\"AT|Europe/Vienna\",\"AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla\",\"AW|America/Curacao America/Aruba\",\"AX|Europe/Helsinki Europe/Mariehamn\",\"AZ|Asia/Baku\",\"BA|Europe/Belgrade Europe/Sarajevo\",\"BB|America/Barbados\",\"BD|Asia/Dhaka\",\"BE|Europe/Brussels\",\"BF|Africa/Abidjan Africa/Ouagadougou\",\"BG|Europe/Sofia\",\"BH|Asia/Qatar Asia/Bahrain\",\"BI|Africa/Maputo Africa/Bujumbura\",\"BJ|Africa/Lagos Africa/Porto-Novo\",\"BL|America/Port_of_Spain America/St_Barthelemy\",\"BM|Atlantic/Bermuda\",\"BN|Asia/Brunei\",\"BO|America/La_Paz\",\"BQ|America/Curacao America/Kralendijk\",\"BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco\",\"BS|America/Nassau\",\"BT|Asia/Thimphu\",\"BW|Africa/Maputo Africa/Gaborone\",\"BY|Europe/Minsk\",\"BZ|America/Belize\",\"CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson\",\"CC|Indian/Cocos\",\"CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi\",\"CF|Africa/Lagos Africa/Bangui\",\"CG|Africa/Lagos Africa/Brazzaville\",\"CH|Europe/Zurich\",\"CI|Africa/Abidjan\",\"CK|Pacific/Rarotonga\",\"CL|America/Santiago America/Punta_Arenas Pacific/Easter\",\"CM|Africa/Lagos Africa/Douala\",\"CN|Asia/Shanghai Asia/Urumqi\",\"CO|America/Bogota\",\"CR|America/Costa_Rica\",\"CU|America/Havana\",\"CV|Atlantic/Cape_Verde\",\"CW|America/Curacao\",\"CX|Indian/Christmas\",\"CY|Asia/Nicosia Asia/Famagusta\",\"CZ|Europe/Prague\",\"DE|Europe/Zurich Europe/Berlin Europe/Busingen\",\"DJ|Africa/Nairobi Africa/Djibouti\",\"DK|Europe/Copenhagen\",\"DM|America/Port_of_Spain America/Dominica\",\"DO|America/Santo_Domingo\",\"DZ|Africa/Algiers\",\"EC|America/Guayaquil Pacific/Galapagos\",\"EE|Europe/Tallinn\",\"EG|Africa/Cairo\",\"EH|Africa/El_Aaiun\",\"ER|Africa/Nairobi Africa/Asmara\",\"ES|Europe/Madrid Africa/Ceuta Atlantic/Canary\",\"ET|Africa/Nairobi Africa/Addis_Ababa\",\"FI|Europe/Helsinki\",\"FJ|Pacific/Fiji\",\"FK|Atlantic/Stanley\",\"FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae\",\"FO|Atlantic/Faroe\",\"FR|Europe/Paris\",\"GA|Africa/Lagos Africa/Libreville\",\"GB|Europe/London\",\"GD|America/Port_of_Spain America/Grenada\",\"GE|Asia/Tbilisi\",\"GF|America/Cayenne\",\"GG|Europe/London Europe/Guernsey\",\"GH|Africa/Accra\",\"GI|Europe/Gibraltar\",\"GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule\",\"GM|Africa/Abidjan Africa/Banjul\",\"GN|Africa/Abidjan Africa/Conakry\",\"GP|America/Port_of_Spain America/Guadeloupe\",\"GQ|Africa/Lagos Africa/Malabo\",\"GR|Europe/Athens\",\"GS|Atlantic/South_Georgia\",\"GT|America/Guatemala\",\"GU|Pacific/Guam\",\"GW|Africa/Bissau\",\"GY|America/Guyana\",\"HK|Asia/Hong_Kong\",\"HN|America/Tegucigalpa\",\"HR|Europe/Belgrade Europe/Zagreb\",\"HT|America/Port-au-Prince\",\"HU|Europe/Budapest\",\"ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura\",\"IE|Europe/Dublin\",\"IL|Asia/Jerusalem\",\"IM|Europe/London Europe/Isle_of_Man\",\"IN|Asia/Kolkata\",\"IO|Indian/Chagos\",\"IQ|Asia/Baghdad\",\"IR|Asia/Tehran\",\"IS|Atlantic/Reykjavik\",\"IT|Europe/Rome\",\"JE|Europe/London Europe/Jersey\",\"JM|America/Jamaica\",\"JO|Asia/Amman\",\"JP|Asia/Tokyo\",\"KE|Africa/Nairobi\",\"KG|Asia/Bishkek\",\"KH|Asia/Bangkok Asia/Phnom_Penh\",\"KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati\",\"KM|Africa/Nairobi Indian/Comoro\",\"KN|America/Port_of_Spain America/St_Kitts\",\"KP|Asia/Pyongyang\",\"KR|Asia/Seoul\",\"KW|Asia/Riyadh Asia/Kuwait\",\"KY|America/Panama America/Cayman\",\"KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral\",\"LA|Asia/Bangkok Asia/Vientiane\",\"LB|Asia/Beirut\",\"LC|America/Port_of_Spain America/St_Lucia\",\"LI|Europe/Zurich Europe/Vaduz\",\"LK|Asia/Colombo\",\"LR|Africa/Monrovia\",\"LS|Africa/Johannesburg Africa/Maseru\",\"LT|Europe/Vilnius\",\"LU|Europe/Luxembourg\",\"LV|Europe/Riga\",\"LY|Africa/Tripoli\",\"MA|Africa/Casablanca\",\"MC|Europe/Monaco\",\"MD|Europe/Chisinau\",\"ME|Europe/Belgrade Europe/Podgorica\",\"MF|America/Port_of_Spain America/Marigot\",\"MG|Africa/Nairobi Indian/Antananarivo\",\"MH|Pacific/Majuro Pacific/Kwajalein\",\"MK|Europe/Belgrade Europe/Skopje\",\"ML|Africa/Abidjan Africa/Bamako\",\"MM|Asia/Yangon\",\"MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan\",\"MO|Asia/Macau\",\"MP|Pacific/Guam Pacific/Saipan\",\"MQ|America/Martinique\",\"MR|Africa/Abidjan Africa/Nouakchott\",\"MS|America/Port_of_Spain America/Montserrat\",\"MT|Europe/Malta\",\"MU|Indian/Mauritius\",\"MV|Indian/Maldives\",\"MW|Africa/Maputo Africa/Blantyre\",\"MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas\",\"MY|Asia/Kuala_Lumpur Asia/Kuching\",\"MZ|Africa/Maputo\",\"NA|Africa/Windhoek\",\"NC|Pacific/Noumea\",\"NE|Africa/Lagos Africa/Niamey\",\"NF|Pacific/Norfolk\",\"NG|Africa/Lagos\",\"NI|America/Managua\",\"NL|Europe/Amsterdam\",\"NO|Europe/Oslo\",\"NP|Asia/Kathmandu\",\"NR|Pacific/Nauru\",\"NU|Pacific/Niue\",\"NZ|Pacific/Auckland Pacific/Chatham\",\"OM|Asia/Dubai Asia/Muscat\",\"PA|America/Panama\",\"PE|America/Lima\",\"PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier\",\"PG|Pacific/Port_Moresby Pacific/Bougainville\",\"PH|Asia/Manila\",\"PK|Asia/Karachi\",\"PL|Europe/Warsaw\",\"PM|America/Miquelon\",\"PN|Pacific/Pitcairn\",\"PR|America/Puerto_Rico\",\"PS|Asia/Gaza Asia/Hebron\",\"PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores\",\"PW|Pacific/Palau\",\"PY|America/Asuncion\",\"QA|Asia/Qatar\",\"RE|Indian/Reunion\",\"RO|Europe/Bucharest\",\"RS|Europe/Belgrade\",\"RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr\",\"RW|Africa/Maputo Africa/Kigali\",\"SA|Asia/Riyadh\",\"SB|Pacific/Guadalcanal\",\"SC|Indian/Mahe\",\"SD|Africa/Khartoum\",\"SE|Europe/Stockholm\",\"SG|Asia/Singapore\",\"SH|Africa/Abidjan Atlantic/St_Helena\",\"SI|Europe/Belgrade Europe/Ljubljana\",\"SJ|Europe/Oslo Arctic/Longyearbyen\",\"SK|Europe/Prague Europe/Bratislava\",\"SL|Africa/Abidjan Africa/Freetown\",\"SM|Europe/Rome Europe/San_Marino\",\"SN|Africa/Abidjan Africa/Dakar\",\"SO|Africa/Nairobi Africa/Mogadishu\",\"SR|America/Paramaribo\",\"SS|Africa/Juba\",\"ST|Africa/Sao_Tome\",\"SV|America/El_Salvador\",\"SX|America/Curacao America/Lower_Princes\",\"SY|Asia/Damascus\",\"SZ|Africa/Johannesburg Africa/Mbabane\",\"TC|America/Grand_Turk\",\"TD|Africa/Ndjamena\",\"TF|Indian/Reunion Indian/Kerguelen\",\"TG|Africa/Abidjan Africa/Lome\",\"TH|Asia/Bangkok\",\"TJ|Asia/Dushanbe\",\"TK|Pacific/Fakaofo\",\"TL|Asia/Dili\",\"TM|Asia/Ashgabat\",\"TN|Africa/Tunis\",\"TO|Pacific/Tongatapu\",\"TR|Europe/Istanbul\",\"TT|America/Port_of_Spain\",\"TV|Pacific/Funafuti\",\"TW|Asia/Taipei\",\"TZ|Africa/Nairobi Africa/Dar_es_Salaam\",\"UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye\",\"UG|Africa/Nairobi Africa/Kampala\",\"UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway\",\"US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu\",\"UY|America/Montevideo\",\"UZ|Asia/Samarkand Asia/Tashkent\",\"VA|Europe/Rome Europe/Vatican\",\"VC|America/Port_of_Spain America/St_Vincent\",\"VE|America/Caracas\",\"VG|America/Port_of_Spain America/Tortola\",\"VI|America/Port_of_Spain America/St_Thomas\",\"VN|Asia/Bangkok Asia/Ho_Chi_Minh\",\"VU|Pacific/Efate\",\"WF|Pacific/Wallis\",\"WS|Pacific/Apia\",\"YE|Asia/Riyadh Asia/Aden\",\"YT|Africa/Nairobi Indian/Mayotte\",\"ZA|Africa/Johannesburg\",\"ZM|Africa/Maputo Africa/Lusaka\",\"ZW|Africa/Maputo Africa/Harare\"]}"); /***/ }), /* 752 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.isFauxDynContextField = exports.fieldPathsEqual = exports.isEmptyFieldPath = exports.createFieldPath = exports.getItemRefSlug = exports.getValueFieldSlug = exports.isFieldOfItemRef = void 0; var _first = _interopRequireDefault(__webpack_require__(753)); var _last = _interopRequireDefault(__webpack_require__(755)); /** * These utils are for handling field paths in node params (DynList filters and CondVis). * For basic fields the fieldPath is currently just the field slug. For fields of an * item-reference the fieldPaths are for example `author:post` (separated with SEPARATOR). * * Encapsulating the internals of fieldPath inside these utils it is easier to refactor the * structure of a fieldPath if needed. */ var SEPARATOR = ':'; var EMPTY_STRING = ''; var isFieldOfItemRef = function isFieldOfItemRef(fieldPath) { return fieldPath.indexOf(SEPARATOR) !== -1; }; exports.isFieldOfItemRef = isFieldOfItemRef; var getValueFieldSlug = function getValueFieldSlug(fieldPath) { return (0, _last["default"])(fieldPath.split(SEPARATOR)); }; exports.getValueFieldSlug = getValueFieldSlug; var getItemRefSlug = function getItemRefSlug(fieldPath) { return isFieldOfItemRef(fieldPath) ? (0, _first["default"])(fieldPath.split(SEPARATOR)) : null; }; exports.getItemRefSlug = getItemRefSlug; var createFieldPath = function createFieldPath() { for (var _len = arguments.length, fieldSlugs = new Array(_len), _key = 0; _key < _len; _key++) { fieldSlugs[_key] = arguments[_key]; } return fieldSlugs.join(SEPARATOR); }; exports.createFieldPath = createFieldPath; var isEmptyFieldPath = function isEmptyFieldPath(a) { return a === EMPTY_STRING; }; exports.isEmptyFieldPath = isEmptyFieldPath; var fieldPathsEqual = function fieldPathsEqual(a, b) { return a === b; }; exports.fieldPathsEqual = fieldPathsEqual; var isFauxDynContextField = function isFauxDynContextField(fieldPath) { return !isFieldOfItemRef(fieldPath) && getValueFieldSlug(fieldPath) === '_id'; }; exports.isFauxDynContextField = isFauxDynContextField; /***/ }), /* 753 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(754); /***/ }), /* 754 */ /***/ (function(module, exports) { /** * Gets the first element of `array`. * * @static * @memberOf _ * @since 0.1.0 * @alias first * @category Array * @param {Array} array The array to query. * @returns {*} Returns the first element of `array`. * @example * * _.head([1, 2, 3]); * // => 1 * * _.head([]); * // => undefined */ function head(array) { return (array && array.length) ? array[0] : undefined; } module.exports = head; /***/ }), /* 755 */ /***/ (function(module, exports) { /** * Gets the last element of `array`. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to query. * @returns {*} Returns the last element of `array`. * @example * * _.last([1, 2, 3]); * // => 3 */ function last(array) { var length = array == null ? 0 : array.length; return length ? array[length - 1] : undefined; } module.exports = last; /***/ }), /* 756 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(81)); Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeConditionFields = exports.convertConditionFieldsFromObjectToArray = void 0; var _utils = __webpack_require__(354); var convertConditionFieldsFromObjectToArray = function convertConditionFieldsFromObjectToArray(fields) { var mapper = function mapper(fieldPath) { var type = fields[fieldPath].type; return Object.entries(fields[fieldPath]).reduce(function (conditionFields, _ref) { var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), operatorName = _ref2[0], value = _ref2[1]; if (operatorName === 'type') { return conditionFields; } conditionFields.push({ fieldPath: fieldPath, operatorName: operatorName, value: value, type: type }); return conditionFields; }, []); }; return (0, _utils.flatMap)(mapper)(Object.keys(fields)); }; exports.convertConditionFieldsFromObjectToArray = convertConditionFieldsFromObjectToArray; var normalizeConditionFields = function normalizeConditionFields() { var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; if (Array.isArray(fields)) { return fields; } return convertConditionFieldsFromObjectToArray(fields); }; exports.normalizeConditionFields = normalizeConditionFields; /***/ }), /* 757 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _SlugUtils = __webpack_require__(758); Object.keys(_SlugUtils).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _SlugUtils[key]; } }); }); /***/ }), /* 758 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "restoreSlug", { enumerable: true, get: function get() { return _SchemaEncoder.restoreSlug; } }); exports.collectionSlug = exports.isDynamoGraphQLFieldSlug = exports.fieldSlug = void 0; var _SchemaEncoder = __webpack_require__(759); var fieldSlug = function fieldSlug(slug) { return (0, _SchemaEncoder.fieldSlug)({ slug: slug }); }; exports.fieldSlug = fieldSlug; var DYNAMO_GQL_FIELD_SLUG = 'f_'; var isDynamoGraphQLFieldSlug = function isDynamoGraphQLFieldSlug(str) { return str.startsWith(DYNAMO_GQL_FIELD_SLUG); }; exports.isDynamoGraphQLFieldSlug = isDynamoGraphQLFieldSlug; var collectionSlug = function collectionSlug(slug) { return (0, _SchemaEncoder.collSlug)({ slug: slug }); }; exports.collectionSlug = collectionSlug; /***/ }), /* 759 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _SchemaEncoder = __webpack_require__(760); Object.keys(_SchemaEncoder).forEach(function (key) { if (key === "default" || key === "__esModule") return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _SchemaEncoder[key]; } }); }); /***/ }), /* 760 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports._crapCode = _crapCode; exports.restoreSlug = exports._test = exports.fieldSlug = exports.collSlug = void 0; var _invert = _interopRequireDefault(__webpack_require__(761)); /** * This file exists because GraphQL only allows /^[a-z_][a-z_0-9]$/i identifiers, but we allow things to be slugs, * like: "foo-bar". Since we allow characters that are not allowed by GraphQL, we need to convert these slugs into an * accepted format. * * Unfortunately, simple conversions (like what the prototype did: slug.replace(/\W/g, '_')) don't work, because this * would encode the slugs "foo-bar" and "foo_bar" to the same value. Both are valid slugs according to our system, and * can totally co-exist in a collection schema. So if a site existed that accidentally did something like that, schema * generation would fail for that user, which is a big "No bueno". */ // Consonants are used instead of the traditional hex characters, since there's // a lower likelihood of it accidentally spelling something... var hex_lookup = { '0': 'b', '1': 'c', '2': 'd', '3': 'f', '4': 'g', '5': 'h', '6': 'j', '7': 'k', '8': 'l', '9': 'm', a: 'n', b: 'p', c: 'q', d: 'r', e: 's', f: 't' }; var reverse_hex_lookup = (0, _invert["default"])(hex_lookup); // Crap code encodes any string to a /[_a-z0-9]*/i version, in a way that is // still kinda readable, and doesn't have any collisions. Allows numeric first // chars, since the c_/f_ prefix protects us from that case... function _crapCode(str) { str = String(str); // Right is all rejected chars, in a {idx}{letterhex} format. Letter hex is just hex, // but all values are shifted into consonants to avoid ambiguities with idx / the hex // data. Left is the original string, with all rejected characters replaced with '_'. // This stragegy should have a good 1:1 mapping from source to encoded values. It // will produce keys that can be used as identifiers in GraphQL. And it also leaves // many of the readable characters in the source string alone, so that the slug is // still kinda readable: var right = []; // Left is all acceptable chars, for "readability". var left = str.replace(/[^a-z0-9]/gi, function (substr, idx) { // Get hex of invalid character: var hex = substr.charCodeAt(0).toString(16); // Map to letters, so there's no ambiguity between indexes and char data. var letters = hex.replace(/./g, function (ch) { return hex_lookup[ch]; }); // Push this {idx}{kinda-hex} combo for later concat: right.push(String(idx) + letters); // ... and replace the invalid char with '_': return '_'; }); return left + '_' + right.join(''); } var collSlug = function collSlug(coll) { return 'c_' + _crapCode(coll.slug); }; exports.collSlug = collSlug; var fieldSlug = function fieldSlug(field) { return 'f_' + _crapCode(field.slug); }; exports.fieldSlug = fieldSlug; var _test = { _crapCode: _crapCode }; // takes a slug that has been run through prefixing and _crapCode, // reverses crapification and prefixing, and reconstructs the original slug exports._test = _test; var restoreSlug = function restoreSlug(slugWithPrefixAndCrapCode) { var results = slugWithPrefixAndCrapCode.match(/^[fc]_([_A-Za-z0-9]+)_([0-9bcdfghjklmnpqrst]*)$/); if (!results || results.length < 3) { // slug is not a valid Dynamo collection or field GraphQL slug, // so it does not need to be restored return slugWithPrefixAndCrapCode; } var left = results[1]; var right = results[2]; if (!right) { return left; } // we use a while loop and mutable variables, // because node 10 does not support `matchAll` var decrapified = left.split(''); var re = /(\d+)([bcdfghjklmnpqrst]+)/g; var matches = re.exec(right); while (matches !== null && matches.length > 2) { var idx = Number(matches[1]); var letters = matches[2]; var hex = letters.replace(/./g, function (ch) { return reverse_hex_lookup[ch]; }); var _char = String.fromCharCode(parseInt(hex, 16)); decrapified[idx] = _char; matches = re.exec(right); } return decrapified.join(''); }; exports.restoreSlug = restoreSlug; /***/ }), /* 761 */ /***/ (function(module, exports, __webpack_require__) { var constant = __webpack_require__(284), createInverter = __webpack_require__(762), identity = __webpack_require__(96); /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** * Creates an object composed of the inverted keys and values of `object`. * If `object` contains duplicate values, subsequent values overwrite * property assignments of previous values. * * @static * @memberOf _ * @since 0.7.0 * @category Object * @param {Object} object The object to invert. * @returns {Object} Returns the new inverted object. * @example * * var object = { 'a': 1, 'b': 2, 'c': 1 }; * * _.invert(object); * // => { '1': 'c', '2': 'b' } */ var invert = createInverter(function(result, value, key) { if (value != null && typeof value.toString != 'function') { value = nativeObjectToString.call(value); } result[value] = key; }, constant(identity)); module.exports = invert; /***/ }), /* 762 */ /***/ (function(module, exports, __webpack_require__) { var baseInverter = __webpack_require__(763); /** * Creates a function like `_.invertBy`. * * @private * @param {Function} setter The function to set accumulator values. * @param {Function} toIteratee The function to resolve iteratees. * @returns {Function} Returns the new inverter function. */ function createInverter(setter, toIteratee) { return function(object, iteratee) { return baseInverter(object, setter, toIteratee(iteratee), {}); }; } module.exports = createInverter; /***/ }), /* 763 */ /***/ (function(module, exports, __webpack_require__) { var baseForOwn = __webpack_require__(131); /** * The base implementation of `_.invert` and `_.invertBy` which inverts * `object` with values transformed by `iteratee` and set by `setter`. * * @private * @param {Object} object The object to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform values. * @param {Object} accumulator The initial inverted object. * @returns {Function} Returns `accumulator`. */ function baseInverter(object, setter, iteratee, accumulator) { baseForOwn(object, function(value, key, object) { setter(accumulator, iteratee(value), key, object); }); return accumulator; } module.exports = baseInverter; /***/ }), /* 764 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _typeof2 = _interopRequireDefault2(__webpack_require__(30)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.getHash = getHash; exports.once = exports.singleMemo = exports.cacheMemo = exports.createMemoizeFactoryWithDepth = exports.weakMemo = exports.memoize = exports.isEqual = void 0; var _reselect = __webpack_require__(765); var _lruCache = _interopRequireDefault(__webpack_require__(766)); var _isArray = _interopRequireDefault(__webpack_require__(10)); var _isBoolean = _interopRequireDefault(__webpack_require__(769)); var _isDate = _interopRequireDefault(__webpack_require__(770)); var _isFunction = _interopRequireDefault(__webpack_require__(72)); var _isObject = _interopRequireDefault(__webpack_require__(18)); var _toPairs = _interopRequireDefault(__webpack_require__(772)); // import lodash functions individually to minimize bundle size var True = { '@webflow/Boolean': true }; var False = { '@webflow/Boolean': false }; /* * Inlined Immutable v3.8.1 `is` to reduce webflow.js bundle size * Source: https://github.com/immutable-js/immutable-js/blob/v3.8.1/src/is.js */ var is = function is(valueA, valueB) { // eslint-disable-next-line no-self-compare if (valueA === valueB || valueA !== valueA && valueB !== valueB) { return true; } if (!valueA || !valueB) { return false; } if (typeof valueA.valueOf === 'function' && typeof valueB.valueOf === 'function') { valueA = valueA.valueOf(); valueB = valueB.valueOf(); // eslint-disable-next-line no-self-compare if (valueA === valueB || valueA !== valueA && valueB !== valueB) { return true; } if (!valueA || !valueB) { return false; } } if (typeof valueA.equals === 'function' && typeof valueB.equals === 'function' && valueA.equals(valueB)) { return true; } return false; }; /** * Returns a unique and deterministic hash from a given parameter. * The value must be JSON serializable or have a `hashCode` method. * @param {Any} value The value to generate the hash from. * @return {String} The generated hash. */ function getHash(value) { var hash = ''; var element = null; // Check for a `hashCode` property, as Immutable objects have a ready made hash if (value && (0, _isFunction["default"])(value.hashCode)) { hash += value.hashCode(); } else if ((0, _isArray["default"])(value)) { hash += '['; for (var i = 0; i < value.length; i++) { element = value[i]; hash += ':' + getHash(element); } hash += ']'; } else if ((0, _isObject["default"])(value) && !(0, _isDate["default"])(value)) { var keyValues = (0, _toPairs["default"])(value).map(function (keyValue) { // Recursively go through all values. return keyValue[0] + '=' + getHash(keyValue[1]); }); keyValues.sort(function (keyValue1, keyValue2) { return keyValue1[0].localeCompare(keyValue2[0]); }); hash += keyValues.join('::'); } else { hash += JSON.stringify(value); } return hash; } var isEqual = function isEqual(a, b) { if (is(a, b)) { return true; } if ((0, _typeof2["default"])(a) !== 'object' || a === null || (0, _typeof2["default"])(b) !== 'object' || b === null) { return false; } for (var k in a) { if (!is(a[k], b[k])) { return false; } } return Object.keys(a).length === Object.keys(b).length; }; // eslint-disable-next-line flowtype/no-weak-types exports.isEqual = isEqual; var memoize = function memoize(fn) { return (0, _reselect.defaultMemoize)(fn, isEqual); }; /* * WARNING: `weakMemo` does not throw errors or handle invalid keys gracefully * on purpose. This is a case where we want the app to crash if an invalid key * is used. The purpose of allowing the app to crash in this situation is to * collect data so a root cause might be discovered and addressed. */ // eslint-disable-next-line flowtype/no-weak-types exports.memoize = memoize; var weakMemo = function weakMemo(fn) { if (false) {} var map = new WeakMap(); // $FlowFixMe var memFn = function memFn(arg) { if (!(0, _isObject["default"])(arg) && !(0, _isBoolean["default"])(arg)) { throw new TypeError("weakMemo: Expected an object or boolean as an argument to ".concat(memFn.displayName, " but got ").concat(String(arg))); } var key = typeof arg === 'boolean' ? arg && True || False : arg; // Flow doesn't seem to like True/False since they don't always // fit the expected type of `arg` if (!map.has(key)) { map.set(key, fn(arg)); } var result = map.get(key); return result; }; if (false) {} return memFn; }; /** * Creates a memoize factory with a cache size of the given depth * @param {number} depth The function to memoize. * @return {Function} The resulting memoize function. */ exports.weakMemo = weakMemo; var createMemoizeFactoryWithDepth = function createMemoizeFactoryWithDepth(depth) { /** * Returns a memoized version of the function passed as parameter, with a fixed cache size. * The arguments that can be passed to `fn` need to be JSON serializable or have a `hashCode` method. * @param {Function} fn The size of the cache. * @return {Function} The memoized function. */ // eslint-disable-next-line flowtype/no-weak-types var memoizeFn = function memoizeFn(fn) { var cache = new _lruCache["default"]({ max: depth }); // $FlowIgnore return function () { var hash = getHash(arguments); if (!cache.has(hash)) { cache.set(hash, fn.apply(this, arguments)); } return cache.get(hash); }; }; return memoizeFn; }; /** * Creates a memoize factory with a cache size of the given depth. * Only functions that accept a single argument are valid. * * âš ï¸IMPORTANTâš ï¸ Object and Function arguments are compared *by reference*. * * If you need to compare Objects/Functions by value you need to use * `createMemoizeFactoryWithDepth`. * * @param {number} depth The size of the cache. * @return {Function} The resulting memoize function. */ exports.createMemoizeFactoryWithDepth = createMemoizeFactoryWithDepth; var cacheMemo = function cacheMemo(depth) { /** * Returns a memoized version of a "trivially hashable" function passed as parameter, with a fixed cache size. * * A "trivially hashable" function takes a single string as an argument and therefore does not need to be hashed. * * This is a pretty significant optimization if your function needs to be called very frequently. * * @param {Function} fn The function to memoize. * @return {Function} The memoized function. */ // eslint-disable-next-line flowtype/no-weak-types var memoizeFn = function memoizeFn(fn) { var cache = new _lruCache["default"]({ max: depth }); // $FlowIgnore return function (arg) { if (!cache.has(arg)) { cache.set(arg, fn(arg)); } return cache.get(arg); }; }; return memoizeFn; }; /** * A simple memoization function for usage with primitives or single argument * arguments of identity equality. */ exports.cacheMemo = cacheMemo; var defaultLastArg = Symbol(); // eslint-disable-next-line flowtype/no-weak-types var singleMemo = function singleMemo(fn) { var lastArg = defaultLastArg; var lastResult; // $FlowIgnore return function (arg) { if (arg !== lastArg) { lastResult = fn(arg); lastArg = arg; } return lastResult; }; }; /** * A memoization function that only calls the provided nullary function * the first time. Subsequent calls return the first result. */ exports.singleMemo = singleMemo; var once = function once(fn) { var result; return function () { if (fn) { result = fn(); // $FlowIgnore we are using undefined so `fn` can be freed from memory fn = undefined; } return result; }; }; exports.once = once; /***/ }), /* 765 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, '__esModule', { value: true }); exports.defaultMemoize = defaultMemoize; exports.createSelectorCreator = createSelectorCreator; exports.createSelector = createSelector; exports.createStructuredSelector = createStructuredSelector; function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } function defaultEqualityCheck(a, b) { return a === b; } function defaultMemoize(func) { var equalityCheck = arguments.length <= 1 || arguments[1] === undefined ? defaultEqualityCheck : arguments[1]; var lastArgs = null; var lastResult = null; return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } if (lastArgs !== null && args.every(function (value, index) { return equalityCheck(value, lastArgs[index]); })) { return lastResult; } lastArgs = args; lastResult = func.apply(undefined, args); return lastResult; }; } function getDependencies(funcs) { var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs; if (!dependencies.every(function (dep) { return typeof dep === 'function'; })) { var dependencyTypes = dependencies.map(function (dep) { return typeof dep; }).join(', '); throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']')); } return dependencies; } function createSelectorCreator(memoize) { for (var _len2 = arguments.length, memoizeOptions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { memoizeOptions[_key2 - 1] = arguments[_key2]; } return function () { for (var _len3 = arguments.length, funcs = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { funcs[_key3] = arguments[_key3]; } var recomputations = 0; var resultFunc = funcs.pop(); var dependencies = getDependencies(funcs); var memoizedResultFunc = memoize.apply(undefined, [function () { recomputations++; return resultFunc.apply(undefined, arguments); }].concat(memoizeOptions)); var selector = function selector(state, props) { for (var _len4 = arguments.length, args = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) { args[_key4 - 2] = arguments[_key4]; } var params = dependencies.map(function (dependency) { return dependency.apply(undefined, [state, props].concat(args)); }); return memoizedResultFunc.apply(undefined, _toConsumableArray(params)); }; selector.recomputations = function () { return recomputations; }; return selector; }; } function createSelector() { return createSelectorCreator(defaultMemoize).apply(undefined, arguments); } function createStructuredSelector(selectors) { var selectorCreator = arguments.length <= 1 || arguments[1] === undefined ? createSelector : arguments[1]; if (typeof selectors !== 'object') { throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors)); } var objectKeys = Object.keys(selectors); return selectorCreator(objectKeys.map(function (key) { return selectors[key]; }), function () { for (var _len5 = arguments.length, values = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { values[_key5] = arguments[_key5]; } return values.reduce(function (composition, value, index) { composition[objectKeys[index]] = value; return composition; }, {}); }); } /***/ }), /* 766 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // A linked list to keep track of recently-used-ness const Yallist = __webpack_require__(767) const MAX = Symbol('max') const LENGTH = Symbol('length') const LENGTH_CALCULATOR = Symbol('lengthCalculator') const ALLOW_STALE = Symbol('allowStale') const MAX_AGE = Symbol('maxAge') const DISPOSE = Symbol('dispose') const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') const LRU_LIST = Symbol('lruList') const CACHE = Symbol('cache') const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') const naiveLength = () => 1 // lruList is a yallist where the head is the youngest // item, and the tail is the oldest. the list contains the Hit // objects as the entries. // Each Hit object has a reference to its Yallist.Node. This // never changes. // // cache is a Map (or PseudoMap) that matches the keys to // the Yallist.Node object. class LRUCache { constructor (options) { if (typeof options === 'number') options = { max: options } if (!options) options = {} if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number') // Kind of weird to have a default max of Infinity, but oh well. const max = this[MAX] = options.max || Infinity const lc = options.length || naiveLength this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc this[ALLOW_STALE] = options.stale || false if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number') this[MAX_AGE] = options.maxAge || 0 this[DISPOSE] = options.dispose this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false this.reset() } // resize the cache when the max changes. set max (mL) { if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number') this[MAX] = mL || Infinity trim(this) } get max () { return this[MAX] } set allowStale (allowStale) { this[ALLOW_STALE] = !!allowStale } get allowStale () { return this[ALLOW_STALE] } set maxAge (mA) { if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number') this[MAX_AGE] = mA trim(this) } get maxAge () { return this[MAX_AGE] } // resize the cache when the lengthCalculator changes. set lengthCalculator (lC) { if (typeof lC !== 'function') lC = naiveLength if (lC !== this[LENGTH_CALCULATOR]) { this[LENGTH_CALCULATOR] = lC this[LENGTH] = 0 this[LRU_LIST].forEach(hit => { hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) this[LENGTH] += hit.length }) } trim(this) } get lengthCalculator () { return this[LENGTH_CALCULATOR] } get length () { return this[LENGTH] } get itemCount () { return this[LRU_LIST].length } rforEach (fn, thisp) { thisp = thisp || this for (let walker = this[LRU_LIST].tail; walker !== null;) { const prev = walker.prev forEachStep(this, fn, walker, thisp) walker = prev } } forEach (fn, thisp) { thisp = thisp || this for (let walker = this[LRU_LIST].head; walker !== null;) { const next = walker.next forEachStep(this, fn, walker, thisp) walker = next } } keys () { return this[LRU_LIST].toArray().map(k => k.key) } values () { return this[LRU_LIST].toArray().map(k => k.value) } reset () { if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) } this[CACHE] = new Map() // hash of items by key this[LRU_LIST] = new Yallist() // list of items in order of use recency this[LENGTH] = 0 // length of items in the list } dump () { return this[LRU_LIST].map(hit => isStale(this, hit) ? false : { k: hit.key, v: hit.value, e: hit.now + (hit.maxAge || 0) }).toArray().filter(h => h) } dumpLru () { return this[LRU_LIST] } set (key, value, maxAge) { maxAge = maxAge || this[MAX_AGE] if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number') const now = maxAge ? Date.now() : 0 const len = this[LENGTH_CALCULATOR](value, key) if (this[CACHE].has(key)) { if (len > this[MAX]) { del(this, this[CACHE].get(key)) return false } const node = this[CACHE].get(key) const item = node.value // dispose of the old one before overwriting // split out into 2 ifs for better coverage tracking if (this[DISPOSE]) { if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value) } item.now = now item.maxAge = maxAge item.value = value this[LENGTH] += len - item.length item.length = len this.get(key) trim(this) return true } const hit = new Entry(key, value, len, now, maxAge) // oversized objects fall out of cache automatically. if (hit.length > this[MAX]) { if (this[DISPOSE]) this[DISPOSE](key, value) return false } this[LENGTH] += hit.length this[LRU_LIST].unshift(hit) this[CACHE].set(key, this[LRU_LIST].head) trim(this) return true } has (key) { if (!this[CACHE].has(key)) return false const hit = this[CACHE].get(key).value return !isStale(this, hit) } get (key) { return get(this, key, true) } peek (key) { return get(this, key, false) } pop () { const node = this[LRU_LIST].tail if (!node) return null del(this, node) return node.value } del (key) { del(this, this[CACHE].get(key)) } load (arr) { // reset the cache this.reset() const now = Date.now() // A previous serialized cache has the most recent items first for (let l = arr.length - 1; l >= 0; l--) { const hit = arr[l] const expiresAt = hit.e || 0 if (expiresAt === 0) // the item was created without expiration in a non aged cache this.set(hit.k, hit.v) else { const maxAge = expiresAt - now // dont add already expired items if (maxAge > 0) { this.set(hit.k, hit.v, maxAge) } } } } prune () { this[CACHE].forEach((value, key) => get(this, key, false)) } } const get = (self, key, doUse) => { const node = self[CACHE].get(key) if (node) { const hit = node.value if (isStale(self, hit)) { del(self, node) if (!self[ALLOW_STALE]) return undefined } else { if (doUse) { if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now() self[LRU_LIST].unshiftNode(node) } } return hit.value } } const isStale = (self, hit) => { if (!hit || (!hit.maxAge && !self[MAX_AGE])) return false const diff = Date.now() - hit.now return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && (diff > self[MAX_AGE]) } const trim = self => { if (self[LENGTH] > self[MAX]) { for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { // We know that we're about to delete this one, and also // what the next least recently used key will be, so just // go ahead and set it now. const prev = walker.prev del(self, walker) walker = prev } } } const del = (self, node) => { if (node) { const hit = node.value if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value) self[LENGTH] -= hit.length self[CACHE].delete(hit.key) self[LRU_LIST].removeNode(node) } } class Entry { constructor (key, value, length, now, maxAge) { this.key = key this.value = value this.length = length this.now = now this.maxAge = maxAge || 0 } } const forEachStep = (self, fn, node, thisp) => { let hit = node.value if (isStale(self, hit)) { del(self, node) if (!self[ALLOW_STALE]) hit = undefined } if (hit) fn.call(thisp, hit.value, hit.key, self) } module.exports = LRUCache /***/ }), /* 767 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = Yallist Yallist.Node = Node Yallist.create = Yallist function Yallist (list) { var self = this if (!(self instanceof Yallist)) { self = new Yallist() } self.tail = null self.head = null self.length = 0 if (list && typeof list.forEach === 'function') { list.forEach(function (item) { self.push(item) }) } else if (arguments.length > 0) { for (var i = 0, l = arguments.length; i < l; i++) { self.push(arguments[i]) } } return self } Yallist.prototype.removeNode = function (node) { if (node.list !== this) { throw new Error('removing node which does not belong to this list') } var next = node.next var prev = node.prev if (next) { next.prev = prev } if (prev) { prev.next = next } if (node === this.head) { this.head = next } if (node === this.tail) { this.tail = prev } node.list.length-- node.next = null node.prev = null node.list = null return next } Yallist.prototype.unshiftNode = function (node) { if (node === this.head) { return } if (node.list) { node.list.removeNode(node) } var head = this.head node.list = this node.next = head if (head) { head.prev = node } this.head = node if (!this.tail) { this.tail = node } this.length++ } Yallist.prototype.pushNode = function (node) { if (node === this.tail) { return } if (node.list) { node.list.removeNode(node) } var tail = this.tail node.list = this node.prev = tail if (tail) { tail.next = node } this.tail = node if (!this.head) { this.head = node } this.length++ } Yallist.prototype.push = function () { for (var i = 0, l = arguments.length; i < l; i++) { push(this, arguments[i]) } return this.length } Yallist.prototype.unshift = function () { for (var i = 0, l = arguments.length; i < l; i++) { unshift(this, arguments[i]) } return this.length } Yallist.prototype.pop = function () { if (!this.tail) { return undefined } var res = this.tail.value this.tail = this.tail.prev if (this.tail) { this.tail.next = null } else { this.head = null } this.length-- return res } Yallist.prototype.shift = function () { if (!this.head) { return undefined } var res = this.head.value this.head = this.head.next if (this.head) { this.head.prev = null } else { this.tail = null } this.length-- return res } Yallist.prototype.forEach = function (fn, thisp) { thisp = thisp || this for (var walker = this.head, i = 0; walker !== null; i++) { fn.call(thisp, walker.value, i, this) walker = walker.next } } Yallist.prototype.forEachReverse = function (fn, thisp) { thisp = thisp || this for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { fn.call(thisp, walker.value, i, this) walker = walker.prev } } Yallist.prototype.get = function (n) { for (var i = 0, walker = this.head; walker !== null && i < n; i++) { // abort out of the list early if we hit a cycle walker = walker.next } if (i === n && walker !== null) { return walker.value } } Yallist.prototype.getReverse = function (n) { for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { // abort out of the list early if we hit a cycle walker = walker.prev } if (i === n && walker !== null) { return walker.value } } Yallist.prototype.map = function (fn, thisp) { thisp = thisp || this var res = new Yallist() for (var walker = this.head; walker !== null;) { res.push(fn.call(thisp, walker.value, this)) walker = walker.next } return res } Yallist.prototype.mapReverse = function (fn, thisp) { thisp = thisp || this var res = new Yallist() for (var walker = this.tail; walker !== null;) { res.push(fn.call(thisp, walker.value, this)) walker = walker.prev } return res } Yallist.prototype.reduce = function (fn, initial) { var acc var walker = this.head if (arguments.length > 1) { acc = initial } else if (this.head) { walker = this.head.next acc = this.head.value } else { throw new TypeError('Reduce of empty list with no initial value') } for (var i = 0; walker !== null; i++) { acc = fn(acc, walker.value, i) walker = walker.next } return acc } Yallist.prototype.reduceReverse = function (fn, initial) { var acc var walker = this.tail if (arguments.length > 1) { acc = initial } else if (this.tail) { walker = this.tail.prev acc = this.tail.value } else { throw new TypeError('Reduce of empty list with no initial value') } for (var i = this.length - 1; walker !== null; i--) { acc = fn(acc, walker.value, i) walker = walker.prev } return acc } Yallist.prototype.toArray = function () { var arr = new Array(this.length) for (var i = 0, walker = this.head; walker !== null; i++) { arr[i] = walker.value walker = walker.next } return arr } Yallist.prototype.toArrayReverse = function () { var arr = new Array(this.length) for (var i = 0, walker = this.tail; walker !== null; i++) { arr[i] = walker.value walker = walker.prev } return arr } Yallist.prototype.slice = function (from, to) { to = to || this.length if (to < 0) { to += this.length } from = from || 0 if (from < 0) { from += this.length } var ret = new Yallist() if (to < from || to < 0) { return ret } if (from < 0) { from = 0 } if (to > this.length) { to = this.length } for (var i = 0, walker = this.head; walker !== null && i < from; i++) { walker = walker.next } for (; walker !== null && i < to; i++, walker = walker.next) { ret.push(walker.value) } return ret } Yallist.prototype.sliceReverse = function (from, to) { to = to || this.length if (to < 0) { to += this.length } from = from || 0 if (from < 0) { from += this.length } var ret = new Yallist() if (to < from || to < 0) { return ret } if (from < 0) { from = 0 } if (to > this.length) { to = this.length } for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { walker = walker.prev } for (; walker !== null && i > from; i--, walker = walker.prev) { ret.push(walker.value) } return ret } Yallist.prototype.splice = function (start, deleteCount, ...nodes) { if (start > this.length) { start = this.length - 1 } if (start < 0) { start = this.length + start; } for (var i = 0, walker = this.head; walker !== null && i < start; i++) { walker = walker.next } var ret = [] for (var i = 0; walker && i < deleteCount; i++) { ret.push(walker.value) walker = this.removeNode(walker) } if (walker === null) { walker = this.tail } if (walker !== this.head && walker !== this.tail) { walker = walker.prev } for (var i = 0; i < nodes.length; i++) { walker = insert(this, walker, nodes[i]) } return ret; } Yallist.prototype.reverse = function () { var head = this.head var tail = this.tail for (var walker = head; walker !== null; walker = walker.prev) { var p = walker.prev walker.prev = walker.next walker.next = p } this.head = tail this.tail = head return this } function insert (self, node, value) { var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self) if (inserted.next === null) { self.tail = inserted } if (inserted.prev === null) { self.head = inserted } self.length++ return inserted } function push (self, item) { self.tail = new Node(item, self.tail, null, self) if (!self.head) { self.head = self.tail } self.length++ } function unshift (self, item) { self.head = new Node(item, null, self.head, self) if (!self.tail) { self.tail = self.head } self.length++ } function Node (value, prev, next, list) { if (!(this instanceof Node)) { return new Node(value, prev, next, list) } this.list = list this.value = value if (prev) { prev.next = this this.prev = prev } else { this.prev = null } if (next) { next.prev = this this.next = next } else { this.next = null } } try { // add if support for Symbol.iterator is present __webpack_require__(768)(Yallist) } catch (er) {} /***/ }), /* 768 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function (Yallist) { Yallist.prototype[Symbol.iterator] = function* () { for (let walker = this.head; walker; walker = walker.next) { yield walker.value } } } /***/ }), /* 769 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var boolTag = '[object Boolean]'; /** * Checks if `value` is classified as a boolean primitive or object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. * @example * * _.isBoolean(false); * // => true * * _.isBoolean(null); * // => false */ function isBoolean(value) { return value === true || value === false || (isObjectLike(value) && baseGetTag(value) == boolTag); } module.exports = isBoolean; /***/ }), /* 770 */ /***/ (function(module, exports, __webpack_require__) { var baseIsDate = __webpack_require__(771), baseUnary = __webpack_require__(126), nodeUtil = __webpack_require__(127); /* Node.js helper references. */ var nodeIsDate = nodeUtil && nodeUtil.isDate; /** * Checks if `value` is classified as a `Date` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a date object, else `false`. * @example * * _.isDate(new Date); * // => true * * _.isDate('Mon April 23 2012'); * // => false */ var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; module.exports = isDate; /***/ }), /* 771 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var dateTag = '[object Date]'; /** * The base implementation of `_.isDate` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a date object, else `false`. */ function baseIsDate(value) { return isObjectLike(value) && baseGetTag(value) == dateTag; } module.exports = baseIsDate; /***/ }), /* 772 */ /***/ (function(module, exports, __webpack_require__) { var createToPairs = __webpack_require__(773), keys = __webpack_require__(58); /** * Creates an array of own enumerable string keyed-value pairs for `object` * which can be consumed by `_.fromPairs`. If `object` is a map or set, its * entries are returned. * * @static * @memberOf _ * @since 4.0.0 * @alias entries * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the key-value pairs. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.toPairs(new Foo); * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) */ var toPairs = createToPairs(keys); module.exports = toPairs; /***/ }), /* 773 */ /***/ (function(module, exports, __webpack_require__) { var baseToPairs = __webpack_require__(774), getTag = __webpack_require__(59), mapToArray = __webpack_require__(255), setToPairs = __webpack_require__(775); /** `Object#toString` result references. */ var mapTag = '[object Map]', setTag = '[object Set]'; /** * Creates a `_.toPairs` or `_.toPairsIn` function. * * @private * @param {Function} keysFunc The function to get the keys of a given object. * @returns {Function} Returns the new pairs function. */ function createToPairs(keysFunc) { return function(object) { var tag = getTag(object); if (tag == mapTag) { return mapToArray(object); } if (tag == setTag) { return setToPairs(object); } return baseToPairs(object, keysFunc(object)); }; } module.exports = createToPairs; /***/ }), /* 774 */ /***/ (function(module, exports, __webpack_require__) { var arrayMap = __webpack_require__(173); /** * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array * of key-value pairs for `object` corresponding to the property names of `props`. * * @private * @param {Object} object The object to query. * @param {Array} props The property names to get values for. * @returns {Object} Returns the key-value pairs. */ function baseToPairs(object, props) { return arrayMap(props, function(key) { return [key, object[key]]; }); } module.exports = baseToPairs; /***/ }), /* 775 */ /***/ (function(module, exports) { /** * Converts `set` to its value-value pairs. * * @private * @param {Object} set The set to convert. * @returns {Array} Returns the value-value pairs. */ function setToPairs(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = [value, value]; }); return result; } module.exports = setToPairs; /***/ }), /* 776 */ /***/ (function(module, exports, __webpack_require__) { var baseAssignValue = __webpack_require__(97), createAggregator = __webpack_require__(777); /** * Creates an object composed of keys generated from the results of running * each element of `collection` thru `iteratee`. The corresponding value of * each key is the last element responsible for generating the key. The * iteratee is invoked with one argument: (value). * * @static * @memberOf _ * @since 4.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The iteratee to transform keys. * @returns {Object} Returns the composed aggregate object. * @example * * var array = [ * { 'dir': 'left', 'code': 97 }, * { 'dir': 'right', 'code': 100 } * ]; * * _.keyBy(array, function(o) { * return String.fromCharCode(o.code); * }); * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } * * _.keyBy(array, 'dir'); * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } */ var keyBy = createAggregator(function(result, value, key) { baseAssignValue(result, key, value); }); module.exports = keyBy; /***/ }), /* 777 */ /***/ (function(module, exports, __webpack_require__) { var arrayAggregator = __webpack_require__(778), baseAggregator = __webpack_require__(779), baseIteratee = __webpack_require__(40), isArray = __webpack_require__(10); /** * Creates a function like `_.groupBy`. * * @private * @param {Function} setter The function to set accumulator values. * @param {Function} [initializer] The accumulator object initializer. * @returns {Function} Returns the new aggregator function. */ function createAggregator(setter, initializer) { return function(collection, iteratee) { var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; return func(collection, setter, baseIteratee(iteratee, 2), accumulator); }; } module.exports = createAggregator; /***/ }), /* 778 */ /***/ (function(module, exports) { /** * A specialized version of `baseAggregator` for arrays. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform keys. * @param {Object} accumulator The initial aggregated object. * @returns {Function} Returns `accumulator`. */ function arrayAggregator(array, setter, iteratee, accumulator) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { var value = array[index]; setter(accumulator, value, iteratee(value), array); } return accumulator; } module.exports = arrayAggregator; /***/ }), /* 779 */ /***/ (function(module, exports, __webpack_require__) { var baseEach = __webpack_require__(176); /** * Aggregates elements of `collection` on `accumulator` with keys transformed * by `iteratee` and values set by `setter`. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform keys. * @param {Object} accumulator The initial aggregated object. * @returns {Function} Returns `accumulator`. */ function baseAggregator(collection, setter, iteratee, accumulator) { baseEach(collection, function(value, key, collection) { setter(accumulator, value, iteratee(value), collection); }); return accumulator; } module.exports = baseAggregator; /***/ }), /* 780 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(33), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var numberTag = '[object Number]'; /** * Checks if `value` is classified as a `Number` primitive or object. * * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are * classified as numbers, use the `_.isFinite` method. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a number, else `false`. * @example * * _.isNumber(3); * // => true * * _.isNumber(Number.MIN_VALUE); * // => true * * _.isNumber(Infinity); * // => true * * _.isNumber('3'); * // => false */ function isNumber(value) { return typeof value == 'number' || (isObjectLike(value) && baseGetTag(value) == numberTag); } module.exports = isNumber; /***/ }), /* 781 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.formatPriceFromSettings = formatPriceFromSettings; exports.getCurrencySettingsFromCommerceSettings = getCurrencySettingsFromCommerceSettings; exports.renderAmountFromSettings = renderAmountFromSettings; exports.renderPriceFromSettings = renderPriceFromSettings; var _get = _interopRequireDefault(__webpack_require__(60)); var _isInteger = _interopRequireDefault(__webpack_require__(782)); var _accounting = __webpack_require__(783); var _simpleReplaceTokens = __webpack_require__(784); var _CurrencyUtils = __webpack_require__(367); /** * Will convert a Price ({ value, unit }) into a FormattedPrice ({ value, unit, string }) with the string * formatted based on currency settings. * * @param {Price} price A basic price object. * @return {FormattedPrice} That same price object, extended with a string version. */ function formatPriceFromSettings(price, currencySettings) { price = (0, _CurrencyUtils.validatePrice)(price) ? price : (0, _CurrencyUtils._invalid)(); var string = renderPriceFromSettings(price, currencySettings); return { unit: price.unit, value: price.value, string: string }; } function getCurrencySettingsFromCommerceSettings(commerceSettings) { var getTheStuff = typeof commerceSettings.getIn === 'function' ? // $FlowFixMe getIn is being manually checked for function (keyPath, defaultValue) { return commerceSettings.getIn(keyPath, defaultValue); } : function (keyPath, defaultValue) { return (0, _get["default"])(commerceSettings, keyPath, defaultValue); }; return { hideDecimalForWholeNumbers: getTheStuff(['defaultCurrencyFormat', 'hideDecimalForWholeNumbers'], false), fractionDigits: getTheStuff(['defaultCurrencyFormat', 'fractionDigits'], 2), template: getTheStuff(['defaultCurrencyFormat', 'template'], ''), decimal: getTheStuff(['defaultCurrencyFormat', 'decimal'], '.'), group: getTheStuff(['defaultCurrencyFormat', 'group'], ','), symbol: getTheStuff(['defaultCurrencyFormat', 'symbol'], '$'), currencyCode: getTheStuff(['defaultCurrency'], 'USD') }; } var _nonBreakingSpace = String.fromCharCode(160); var _replaceAllSpaceWithNBSP = function _replaceAllSpaceWithNBSP(str) { return str.replace(/\s/g, _nonBreakingSpace); }; function renderAmountFromSettings(amount) { var amountSettings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (typeof amount === 'undefined') { return ''; } if (typeof amount === 'string') { if (amount === '∞') { return amount; } // This should most likely never happen, but it's a flow guard for the rest of the function throw new Error("amount has type string: got ".concat(amount, ", expected \u221E")); } // Price.value is always whole number. For example, USD is represented in cents // this is because fractionDigits = 2. To convert to a jsNumber we need to move // the decimal to the left fractionDigits number of times. (we can do this // with division) var jsValue = amount / parseFloat("1".concat('0'.repeat(amountSettings.fractionDigits || 0))); var precision = (0, _isInteger["default"])(jsValue) && amountSettings.hideDecimalForWholeNumbers ? 0 : amountSettings.fractionDigits; return (0, _accounting.formatMoney)(jsValue, { symbol: '', decimal: amountSettings.decimal, precision: precision, thousand: amountSettings.group }); } /** * Will convert a Price object (ie: object with value and unit) into a formatted * string based on the currencySettings passed in */ function renderPriceFromSettings(price) { var currencySettings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var renderOpts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var template = currencySettings.template, currencyCode = currencySettings.currencyCode; // fall back to old renderPrice if some currency settings don't exist // snapshots > ecommerce > ecommerceIsOn for Cypress tests currently doesn't have currency settings // we also want to fallback to the old renderPrice in the event that a price's unit // does not match the currencyCode for the currency settings if (!template || price.unit !== currencyCode) { return (0, _CurrencyUtils.renderPrice)(price); } return (price.value < 0 ? '−' : '') + // negative sign to appear before currency symbol e.g., -$ 5.00 USD (0, _simpleReplaceTokens.simpleReplaceTokens)((renderOpts.breakingWhitespace ? currencySettings.template : _replaceAllSpaceWithNBSP(currencySettings.template)) || '', { amount: renderAmountFromSettings(Math.abs(price.value), currencySettings), symbol: currencySettings.symbol, currencyCode: currencySettings.currencyCode }); } /***/ }), /* 782 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(174); /** * Checks if `value` is an integer. * * **Note:** This method is based on * [`Number.isInteger`](https://mdn.io/Number/isInteger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an integer, else `false`. * @example * * _.isInteger(3); * // => true * * _.isInteger(Number.MIN_VALUE); * // => false * * _.isInteger(Infinity); * // => false * * _.isInteger('3'); * // => false */ function isInteger(value) { return typeof value == 'number' && value == toInteger(value); } module.exports = isInteger; /***/ }), /* 783 */ /***/ (function(module, exports, __webpack_require__) { /*! * accounting.js v0.4.1 * Copyright 2014 Open Exchange Rates * * Freely distributable under the MIT license. * Portions of accounting.js are inspired or borrowed from underscore.js * * Full details and documentation: * http://openexchangerates.github.io/accounting.js/ */ (function(root, undefined) { /* --- Setup --- */ // Create the local library object, to be exported or referenced globally later var lib = {}; // Current version lib.version = '0.4.1'; /* --- Exposed settings --- */ // The library's settings configuration object. Contains default parameters for // currency and number formatting lib.settings = { currency: { symbol : "$", // default currency symbol is '$' format : "%s%v", // controls output: %s = symbol, %v = value (can be object, see docs) decimal : ".", // decimal point separator thousand : ",", // thousands separator precision : 2, // decimal places grouping : 3 // digit grouping (not implemented yet) }, number: { precision : 0, // default precision on numbers is 0 grouping : 3, // digit grouping (not implemented yet) thousand : ",", decimal : "." } }; /* --- Internal Helper Methods --- */ // Store reference to possibly-available ECMAScript 5 methods for later var nativeMap = Array.prototype.map, nativeIsArray = Array.isArray, toString = Object.prototype.toString; /** * Tests whether supplied parameter is a string * from underscore.js */ function isString(obj) { return !!(obj === '' || (obj && obj.charCodeAt && obj.substr)); } /** * Tests whether supplied parameter is a string * from underscore.js, delegates to ECMA5's native Array.isArray */ function isArray(obj) { return nativeIsArray ? nativeIsArray(obj) : toString.call(obj) === '[object Array]'; } /** * Tests whether supplied parameter is a true object */ function isObject(obj) { return obj && toString.call(obj) === '[object Object]'; } /** * Extends an object with a defaults object, similar to underscore's _.defaults * * Used for abstracting parameter handling from API methods */ function defaults(object, defs) { var key; object = object || {}; defs = defs || {}; // Iterate over object non-prototype properties: for (key in defs) { if (defs.hasOwnProperty(key)) { // Replace values with defaults only if undefined (allow empty/zero values): if (object[key] == null) object[key] = defs[key]; } } return object; } /** * Implementation of `Array.map()` for iteration loops * * Returns a new Array as a result of calling `iterator` on each array value. * Defers to native Array.map if available */ function map(obj, iterator, context) { var results = [], i, j; if (!obj) return results; // Use native .map method if it exists: if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); // Fallback for native .map: for (i = 0, j = obj.length; i < j; i++ ) { results[i] = iterator.call(context, obj[i], i, obj); } return results; } /** * Check and normalise the value of precision (must be positive integer) */ function checkPrecision(val, base) { val = Math.round(Math.abs(val)); return isNaN(val)? base : val; } /** * Parses a format string or object and returns format obj for use in rendering * * `format` is either a string with the default (positive) format, or object * containing `pos` (required), `neg` and `zero` values (or a function returning * either a string or object) * * Either string or format.pos must contain "%v" (value) to be valid */ function checkCurrencyFormat(format) { var defaults = lib.settings.currency.format; // Allow function as format parameter (should return string or object): if ( typeof format === "function" ) format = format(); // Format can be a string, in which case `value` ("%v") must be present: if ( isString( format ) && format.match("%v") ) { // Create and return positive, negative and zero formats: return { pos : format, neg : format.replace("-", "").replace("%v", "-%v"), zero : format }; // If no format, or object is missing valid positive value, use defaults: } else if ( !format || !format.pos || !format.pos.match("%v") ) { // If defaults is a string, casts it to an object for faster checking next time: return ( !isString( defaults ) ) ? defaults : lib.settings.currency.format = { pos : defaults, neg : defaults.replace("%v", "-%v"), zero : defaults }; } // Otherwise, assume format was fine: return format; } /* --- API Methods --- */ /** * Takes a string/array of strings, removes all formatting/cruft and returns the raw float value * Alias: `accounting.parse(string)` * * Decimal must be included in the regular expression to match floats (defaults to * accounting.settings.number.decimal), so if the number uses a non-standard decimal * separator, provide it as the second argument. * * Also matches bracketed negatives (eg. "$ (1.99)" => -1.99) * * Doesn't throw any errors (`NaN`s become 0) but this may change in future */ var unformat = lib.unformat = lib.parse = function(value, decimal) { // Recursively unformat arrays: if (isArray(value)) { return map(value, function(val) { return unformat(val, decimal); }); } // Fails silently (need decent errors): value = value || 0; // Return the value as-is if it's already a number: if (typeof value === "number") return value; // Default decimal point comes from settings, but could be set to eg. "," in opts: decimal = decimal || lib.settings.number.decimal; // Build regex to strip out everything except digits, decimal point and minus sign: var regex = new RegExp("[^0-9-" + decimal + "]", ["g"]), unformatted = parseFloat( ("" + value) .replace(/\((.*)\)/, "-$1") // replace bracketed values with negatives .replace(regex, '') // strip out any cruft .replace(decimal, '.') // make sure decimal point is standard ); // This will fail silently which may cause trouble, let's wait and see: return !isNaN(unformatted) ? unformatted : 0; }; /** * Implementation of toFixed() that treats floats more like decimals * * Fixes binary rounding issues (eg. (0.615).toFixed(2) === "0.61") that present * problems for accounting- and finance-related software. */ var toFixed = lib.toFixed = function(value, precision) { precision = checkPrecision(precision, lib.settings.number.precision); var power = Math.pow(10, precision); // Multiply up by precision, round accurately, then divide and use native toFixed(): return (Math.round(lib.unformat(value) * power) / power).toFixed(precision); }; /** * Format a number, with comma-separated thousands and custom precision/decimal places * Alias: `accounting.format()` * * Localise by overriding the precision and thousand / decimal separators * 2nd parameter `precision` can be an object matching `settings.number` */ var formatNumber = lib.formatNumber = lib.format = function(number, precision, thousand, decimal) { // Resursively format arrays: if (isArray(number)) { return map(number, function(val) { return formatNumber(val, precision, thousand, decimal); }); } // Clean up number: number = unformat(number); // Build options object from second param (if object) or all params, extending defaults: var opts = defaults( (isObject(precision) ? precision : { precision : precision, thousand : thousand, decimal : decimal }), lib.settings.number ), // Clean up precision usePrecision = checkPrecision(opts.precision), // Do some calc: negative = number < 0 ? "-" : "", base = parseInt(toFixed(Math.abs(number || 0), usePrecision), 10) + "", mod = base.length > 3 ? base.length % 3 : 0; // Format the number: return negative + (mod ? base.substr(0, mod) + opts.thousand : "") + base.substr(mod).replace(/(\d{3})(?=\d)/g, "$1" + opts.thousand) + (usePrecision ? opts.decimal + toFixed(Math.abs(number), usePrecision).split('.')[1] : ""); }; /** * Format a number into currency * * Usage: accounting.formatMoney(number, symbol, precision, thousandsSep, decimalSep, format) * defaults: (0, "$", 2, ",", ".", "%s%v") * * Localise by overriding the symbol, precision, thousand / decimal separators and format * Second param can be an object matching `settings.currency` which is the easiest way. * * To do: tidy up the parameters */ var formatMoney = lib.formatMoney = function(number, symbol, precision, thousand, decimal, format) { // Resursively format arrays: if (isArray(number)) { return map(number, function(val){ return formatMoney(val, symbol, precision, thousand, decimal, format); }); } // Clean up number: number = unformat(number); // Build options object from second param (if object) or all params, extending defaults: var opts = defaults( (isObject(symbol) ? symbol : { symbol : symbol, precision : precision, thousand : thousand, decimal : decimal, format : format }), lib.settings.currency ), // Check format (returns object with pos, neg and zero): formats = checkCurrencyFormat(opts.format), // Choose which format to use for this value: useFormat = number > 0 ? formats.pos : number < 0 ? formats.neg : formats.zero; // Return with currency symbol added: return useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(number), checkPrecision(opts.precision), opts.thousand, opts.decimal)); }; /** * Format a list of numbers into an accounting column, padding with whitespace * to line up currency symbols, thousand separators and decimals places * * List should be an array of numbers * Second parameter can be an object containing keys that match the params * * Returns array of accouting-formatted number strings of same length * * NB: `white-space:pre` CSS rule is required on the list container to prevent * browsers from collapsing the whitespace in the output strings. */ lib.formatColumn = function(list, symbol, precision, thousand, decimal, format) { if (!list) return []; // Build options object from second param (if object) or all params, extending defaults: var opts = defaults( (isObject(symbol) ? symbol : { symbol : symbol, precision : precision, thousand : thousand, decimal : decimal, format : format }), lib.settings.currency ), // Check format (returns object with pos, neg and zero), only need pos for now: formats = checkCurrencyFormat(opts.format), // Whether to pad at start of string or after currency symbol: padAfterSymbol = formats.pos.indexOf("%s") < formats.pos.indexOf("%v") ? true : false, // Store value for the length of the longest string in the column: maxLength = 0, // Format the list according to options, store the length of the longest string: formatted = map(list, function(val, i) { if (isArray(val)) { // Recursively format columns if list is a multi-dimensional array: return lib.formatColumn(val, opts); } else { // Clean up the value val = unformat(val); // Choose which format to use for this value (pos, neg or zero): var useFormat = val > 0 ? formats.pos : val < 0 ? formats.neg : formats.zero, // Format this value, push into formatted list and save the length: fVal = useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(val), checkPrecision(opts.precision), opts.thousand, opts.decimal)); if (fVal.length > maxLength) maxLength = fVal.length; return fVal; } }); // Pad each number in the list and send back the column of numbers: return map(formatted, function(val, i) { // Only if this is a string (not a nested array, which would have already been padded): if (isString(val) && val.length < maxLength) { // Depending on symbol position, pad after symbol or at index 0: return padAfterSymbol ? val.replace(opts.symbol, opts.symbol+(new Array(maxLength - val.length + 1).join(" "))) : (new Array(maxLength - val.length + 1).join(" ")) + val; } return val; }); }; /* --- Module Definition --- */ // Export accounting for CommonJS. If being loaded as an AMD module, define it as such. // Otherwise, just add `accounting` to the global object if (true) { if ( true && module.exports) { exports = module.exports = lib; } exports.accounting = lib; } else {} // Root will be `window` in browser or `global` on the server: }(this)); /***/ }), /* 784 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.simpleReplaceTokens = simpleReplaceTokens; var _isFunction = _interopRequireDefault(__webpack_require__(72)); var _get = _interopRequireDefault(__webpack_require__(60)); var _shared = __webpack_require__(785); // simpleReplaceTokens is in it's own file to fix a circular dependency /** * Replaces tokens in text with relating field values. This is a simple version * of replaceTokens. It is a clean find/replace and doesn't include any other * logic. * @param {String} replaceable The string with WF tokens * @param {Object} item The item to be used to replace the tokens with * @return {String} The string with the WF tokens replaced */ function simpleReplaceTokens(replaceable, item) { return replaceable.replace((0, _shared.getWfTokenPattern)(), function (match) { var token = (0, _shared.parseTokenJson)(match) || {}; var path = token.path.split('.'); // $FlowIgnore manually checking if getIn is a function return (0, _isFunction["default"])(item.getIn) ? item.getIn(path, '') : (0, _get["default"])(item, path, ''); }); } /***/ }), /* 785 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.parseTokenJson = parseTokenJson; exports.extractToken = extractToken; exports.stripLegacyShorthandSuffix = stripLegacyShorthandSuffix; exports.getExternalTokenPattern = exports.getCatchAllTokenPattern = exports.getWfTokenPattern = void 0; var _unescape = _interopRequireDefault(__webpack_require__(786)); var getWfTokenPattern = function getWfTokenPattern() { return /{{\s*wf\s*({.*?})\s*}}/g; }; exports.getWfTokenPattern = getWfTokenPattern; var getCatchAllTokenPattern = function getCatchAllTokenPattern() { return /{{\s*(.*?)\s*}}/g; }; exports.getCatchAllTokenPattern = getCatchAllTokenPattern; var getExternalTokenPattern = function getExternalTokenPattern() { return /{\\{(\s*.*?\s*)}}/g; }; /** * Takes a token string and parses it to a token object * @param {String} string A token string, e.g. '{{ wf {"path":"name"\} }}' * @return {Object} A parsed token object or null if string is not a valid token string */ exports.getExternalTokenPattern = getExternalTokenPattern; function parseTokenJson(string) { if (string.match(getWfTokenPattern())) { var token; try { token = JSON.parse((0, _unescape["default"])(extractToken(string).replace(/\\}/g, '}'))); } catch (err) { return null; } if (!token || !token.path || !token.type) { // If path doesn't exist, this JSON string is not a token return null; } else { return token; } } else { return null; } } function extractToken(string) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, shortHand = _ref.shortHand; return shortHand ? string.replace(getCatchAllTokenPattern(), function (match, subMatch) { return stripLegacyShorthandSuffix(subMatch); }) : string.replace(getWfTokenPattern(), '$1'); } /** * Takes a legacy shorthand token path and strips * suffices that we used to have in ImageRef and Option tokens * * This is needed for the legacy bindings: * Option: {{ option:name }} and {{ author:option.name }} * ImageRef: {{ image.url }} and {{ author:image.url }} */ function stripLegacyShorthandSuffix(tokenPath) { return tokenPath.split(':').map(function (part) { return part.split('.')[0]; }).join(':'); } /***/ }), /* 786 */ /***/ (function(module, exports, __webpack_require__) { var toString = __webpack_require__(61), unescapeHtmlChar = __webpack_require__(787); /** Used to match HTML entities and HTML characters. */ var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, reHasEscapedHtml = RegExp(reEscapedHtml.source); /** * The inverse of `_.escape`; this method converts the HTML entities * `&`, `<`, `>`, `"`, and `'` in `string` to * their corresponding characters. * * **Note:** No other HTML entities are unescaped. To unescape additional * HTML entities use a third-party library like [_he_](https://mths.be/he). * * @static * @memberOf _ * @since 0.6.0 * @category String * @param {string} [string=''] The string to unescape. * @returns {string} Returns the unescaped string. * @example * * _.unescape('fred, barney, & pebbles'); * // => 'fred, barney, & pebbles' */ function unescape(string) { string = toString(string); return (string && reHasEscapedHtml.test(string)) ? string.replace(reEscapedHtml, unescapeHtmlChar) : string; } module.exports = unescape; /***/ }), /* 787 */ /***/ (function(module, exports, __webpack_require__) { var basePropertyOf = __webpack_require__(222); /** Used to map HTML entities to characters. */ var htmlUnescapes = { '&': '&', '<': '<', '>': '>', '"': '"', ''': "'" }; /** * Used by `_.unescape` to convert HTML entities to characters. * * @private * @param {string} chr The matched character to unescape. * @returns {string} Returns the unescaped character. */ var unescapeHtmlChar = basePropertyOf(htmlUnescapes); module.exports = unescapeHtmlChar; /***/ }), /* 788 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); var _toArray2 = _interopRequireDefault2(__webpack_require__(789)); var _slicedToArray2 = _interopRequireDefault2(__webpack_require__(81)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.transformers = void 0; var _escape = _interopRequireDefault(__webpack_require__(225)); var _momentTimezone = _interopRequireDefault(__webpack_require__(224)); var _CurrencyUtils = __webpack_require__(366); var _DynamoFormattingUtils = __webpack_require__(369); // GraphQL api returns date-times as ISO strings and simple dates as YYYY-MM-DD format var isSimpleDateFormat = function isSimpleDateFormat(value) { return /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.test(value); }; var date = function date(value, _ref, _ref2) { var _ref3 = (0, _slicedToArray2["default"])(_ref, 1), format = _ref3[0]; var _ref2$timezone = _ref2.timezone, timezone = _ref2$timezone === void 0 ? 'UTC' : _ref2$timezone; if (isSimpleDateFormat(value)) { timezone = 'UTC'; } var momentDate = _momentTimezone["default"].utc(value, _momentTimezone["default"].ISO_8601); if (momentDate.isValid()) { return momentDate.tz(timezone).format(format); } else { return ''; } }; var detailPage = function detailPage(value, _ref4, _ref5) { var _ref6 = (0, _slicedToArray2["default"])(_ref4, 1), collectionIdOrLegacySlug = _ref6[0]; var collectionSlugMap = _ref5.collectionSlugMap; // Falling back to collectionIdOrLegacySlug because in the legacy filters, it's // actually the collection slug. If there's a legacy filter, the collection slug // rename is not enabled yet for the site so the href is still accurate. var collectionSlug = collectionSlugMap[collectionIdOrLegacySlug] || collectionIdOrLegacySlug; return value ? "/".concat(collectionSlug, "/").concat(value) : null; }; var style = function style(value, _ref7) { var _ref8 = (0, _slicedToArray2["default"])(_ref7, 1), styleProp = _ref8[0]; if (styleProp === 'background-image') { return value ? "url(\"".concat(value, "\")") : 'none'; } return value; }; var numberPrecision = function numberPrecision(value, _ref9) { var _ref10 = (0, _slicedToArray2["default"])(_ref9, 1), precision = _ref10[0]; return (0, _DynamoFormattingUtils.formatNumber)(value, precision); }; var rich = function rich(value, params, _ref11) { var pageLinkHrefPrefix = _ref11.pageLinkHrefPrefix, collectionSlugMap = _ref11.collectionSlugMap; if (!value) { return null; } if (typeof value !== 'string') { return value; } return value.replace(/<a\s+[^>]+/g, function (linkString) { var isPageLink = /\sdata-rt-link-type="page"/.test(linkString); var needsPrefix = pageLinkHrefPrefix && isPageLink; var collectionIdMatch = isPageLink && /\sdata-rt-link-collectionid="([a-z0-9]{24})"/.exec(linkString); if (needsPrefix || collectionIdMatch) { return linkString.replace(/(\shref=")([^"]+)/, function (match, begin, href) { var end = collectionIdMatch ? replaceDetailPageHrefCollectionSlug(href, collectionIdMatch[1], collectionSlugMap) : href; // Need to escape the prefix here as dynamic RTE is added with dangerouslySetInnerHTML in RichText atom. var prefix = pageLinkHrefPrefix ? (0, _escape["default"])(pageLinkHrefPrefix) : ''; return "".concat(begin).concat(prefix).concat(end); }); } else { return linkString; } }); }; // Collection slug may have been renamed so we need to make sure detail // page links in CMS RichText fields still point to the correct page. var replaceDetailPageHrefCollectionSlug = function replaceDetailPageHrefCollectionSlug(href, collectionId, collectionSlugMap) { var _href$split = href.split('/'), _href$split2 = (0, _toArray2["default"])(_href$split), emptyString = _href$split2[0], originalCollectionSlug = _href$split2[1], rest = _href$split2.slice(2); var collectionSlug = collectionSlugMap[collectionId] || originalCollectionSlug; return [emptyString, collectionSlug].concat((0, _toConsumableArray2["default"])(rest)).join('/'); }; // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types var get = function get(obj, key) { if (obj != null && typeof obj.get === 'function') { return obj.get(key); } return obj[key]; }; var price = function price(obj, params, context) { if (!obj) return null; return (0, _CurrencyUtils.renderPriceFromSettings)({ unit: get(obj, 'unit'), value: get(obj, 'value') }, context.currencySettings); }; var transformerIndex = { date: date, detailPage: detailPage, style: style, numberPrecision: numberPrecision, rich: rich, price: price }; var transformers = function transformers(value, filter, context) { var key = filter.type, params = filter.params; var fn = transformerIndex[key]; return fn ? fn(value, params, context) : value; }; exports.transformers = transformers; /***/ }), /* 789 */ /***/ (function(module, exports, __webpack_require__) { var arrayWithHoles = __webpack_require__(356); var iterableToArray = __webpack_require__(270); var nonIterableRest = __webpack_require__(357); function _toArray(arr) { return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest(); } module.exports = _toArray; /***/ }), /* 790 */ /***/ (function(module, exports, __webpack_require__) { var basePropertyOf = __webpack_require__(222); /** Used to map characters to HTML entities. */ var htmlEscapes = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; /** * Used by `_.escape` to convert characters to HTML entities. * * @private * @param {string} chr The matched character to escape. * @returns {string} Returns the escaped character. */ var escapeHtmlChar = basePropertyOf(htmlEscapes); module.exports = escapeHtmlChar; /***/ }), /* 791 */ /***/ (function(module, exports, __webpack_require__) { var baseClone = __webpack_require__(792); /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4; /** * This method is like `_.clone` except that it recursively clones `value`. * * @static * @memberOf _ * @since 1.0.0 * @category Lang * @param {*} value The value to recursively clone. * @returns {*} Returns the deep cloned value. * @see _.clone * @example * * var objects = [{ 'a': 1 }, { 'b': 2 }]; * * var deep = _.cloneDeep(objects); * console.log(deep[0] === objects[0]); * // => false */ function cloneDeep(value) { return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); } module.exports = cloneDeep; /***/ }), /* 792 */ /***/ (function(module, exports, __webpack_require__) { var Stack = __webpack_require__(120), arrayEach = __webpack_require__(180), assignValue = __webpack_require__(178), baseAssign = __webpack_require__(793), baseAssignIn = __webpack_require__(794), cloneBuffer = __webpack_require__(344), copyArray = __webpack_require__(185), copySymbols = __webpack_require__(795), copySymbolsIn = __webpack_require__(796), getAllKeys = __webpack_require__(256), getAllKeysIn = __webpack_require__(279), getTag = __webpack_require__(59), initCloneArray = __webpack_require__(797), initCloneByTag = __webpack_require__(798), initCloneObject = __webpack_require__(346), isArray = __webpack_require__(10), isBuffer = __webpack_require__(74), isMap = __webpack_require__(802), isObject = __webpack_require__(18), isSet = __webpack_require__(804), keys = __webpack_require__(58), keysIn = __webpack_require__(98); /** Used to compose bitmasks for cloning. */ var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', mapTag = '[object Map]', numberTag = '[object Number]', objectTag = '[object Object]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]', weakMapTag = '[object WeakMap]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]'; /** Used to identify `toStringTag` values supported by `_.clone`. */ var cloneableTags = {}; cloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; cloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; /** * The base implementation of `_.clone` and `_.cloneDeep` which tracks * traversed objects. * * @private * @param {*} value The value to clone. * @param {boolean} bitmask The bitmask flags. * 1 - Deep clone * 2 - Flatten inherited properties * 4 - Clone symbols * @param {Function} [customizer] The function to customize cloning. * @param {string} [key] The key of `value`. * @param {Object} [object] The parent object of `value`. * @param {Object} [stack] Tracks traversed objects and their clone counterparts. * @returns {*} Returns the cloned value. */ function baseClone(value, bitmask, customizer, key, object, stack) { var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG; if (customizer) { result = object ? customizer(value, key, object, stack) : customizer(value); } if (result !== undefined) { return result; } if (!isObject(value)) { return value; } var isArr = isArray(value); if (isArr) { result = initCloneArray(value); if (!isDeep) { return copyArray(value, result); } } else { var tag = getTag(value), isFunc = tag == funcTag || tag == genTag; if (isBuffer(value)) { return cloneBuffer(value, isDeep); } if (tag == objectTag || tag == argsTag || (isFunc && !object)) { result = (isFlat || isFunc) ? {} : initCloneObject(value); if (!isDeep) { return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); } } else { if (!cloneableTags[tag]) { return object ? value : {}; } result = initCloneByTag(value, tag, isDeep); } } // Check for circular references and return its corresponding clone. stack || (stack = new Stack); var stacked = stack.get(value); if (stacked) { return stacked; } stack.set(value, result); if (isSet(value)) { value.forEach(function(subValue) { result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); }); } else if (isMap(value)) { value.forEach(function(subValue, key) { result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); }); } var keysFunc = isFull ? (isFlat ? getAllKeysIn : getAllKeys) : (isFlat ? keysIn : keys); var props = isArr ? undefined : keysFunc(value); arrayEach(props || value, function(subValue, key) { if (props) { key = subValue; subValue = value[key]; } // Recursively populate clone (susceptible to call stack limits). assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); }); return result; } module.exports = baseClone; /***/ }), /* 793 */ /***/ (function(module, exports, __webpack_require__) { var copyObject = __webpack_require__(110), keys = __webpack_require__(58); /** * The base implementation of `_.assign` without support for multiple sources * or `customizer` functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @returns {Object} Returns `object`. */ function baseAssign(object, source) { return object && copyObject(source, keys(source), object); } module.exports = baseAssign; /***/ }), /* 794 */ /***/ (function(module, exports, __webpack_require__) { var copyObject = __webpack_require__(110), keysIn = __webpack_require__(98); /** * The base implementation of `_.assignIn` without support for multiple sources * or `customizer` functions. * * @private * @param {Object} object The destination object. * @param {Object} source The source object. * @returns {Object} Returns `object`. */ function baseAssignIn(object, source) { return object && copyObject(source, keysIn(source), object); } module.exports = baseAssignIn; /***/ }), /* 795 */ /***/ (function(module, exports, __webpack_require__) { var copyObject = __webpack_require__(110), getSymbols = __webpack_require__(168); /** * Copies own symbols of `source` to `object`. * * @private * @param {Object} source The object to copy symbols from. * @param {Object} [object={}] The object to copy symbols to. * @returns {Object} Returns `object`. */ function copySymbols(source, object) { return copyObject(source, getSymbols(source), object); } module.exports = copySymbols; /***/ }), /* 796 */ /***/ (function(module, exports, __webpack_require__) { var copyObject = __webpack_require__(110), getSymbolsIn = __webpack_require__(280); /** * Copies own and inherited symbols of `source` to `object`. * * @private * @param {Object} source The object to copy symbols from. * @param {Object} [object={}] The object to copy symbols to. * @returns {Object} Returns `object`. */ function copySymbolsIn(source, object) { return copyObject(source, getSymbolsIn(source), object); } module.exports = copySymbolsIn; /***/ }), /* 797 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Initializes an array clone. * * @private * @param {Array} array The array to clone. * @returns {Array} Returns the initialized clone. */ function initCloneArray(array) { var length = array.length, result = new array.constructor(length); // Add properties assigned by `RegExp#exec`. if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { result.index = array.index; result.input = array.input; } return result; } module.exports = initCloneArray; /***/ }), /* 798 */ /***/ (function(module, exports, __webpack_require__) { var cloneArrayBuffer = __webpack_require__(221), cloneDataView = __webpack_require__(799), cloneRegExp = __webpack_require__(800), cloneSymbol = __webpack_require__(801), cloneTypedArray = __webpack_require__(345); /** `Object#toString` result references. */ var boolTag = '[object Boolean]', dateTag = '[object Date]', mapTag = '[object Map]', numberTag = '[object Number]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]'; /** * Initializes an object clone based on its `toStringTag`. * * **Note:** This function only supports cloning values with tags of * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. * * @private * @param {Object} object The object to clone. * @param {string} tag The `toStringTag` of the object to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the initialized clone. */ function initCloneByTag(object, tag, isDeep) { var Ctor = object.constructor; switch (tag) { case arrayBufferTag: return cloneArrayBuffer(object); case boolTag: case dateTag: return new Ctor(+object); case dataViewTag: return cloneDataView(object, isDeep); case float32Tag: case float64Tag: case int8Tag: case int16Tag: case int32Tag: case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: return cloneTypedArray(object, isDeep); case mapTag: return new Ctor; case numberTag: case stringTag: return new Ctor(object); case regexpTag: return cloneRegExp(object); case setTag: return new Ctor; case symbolTag: return cloneSymbol(object); } } module.exports = initCloneByTag; /***/ }), /* 799 */ /***/ (function(module, exports, __webpack_require__) { var cloneArrayBuffer = __webpack_require__(221); /** * Creates a clone of `dataView`. * * @private * @param {Object} dataView The data view to clone. * @param {boolean} [isDeep] Specify a deep clone. * @returns {Object} Returns the cloned data view. */ function cloneDataView(dataView, isDeep) { var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); } module.exports = cloneDataView; /***/ }), /* 800 */ /***/ (function(module, exports) { /** Used to match `RegExp` flags from their coerced string values. */ var reFlags = /\w*$/; /** * Creates a clone of `regexp`. * * @private * @param {Object} regexp The regexp to clone. * @returns {Object} Returns the cloned regexp. */ function cloneRegExp(regexp) { var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); result.lastIndex = regexp.lastIndex; return result; } module.exports = cloneRegExp; /***/ }), /* 801 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(73); /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** * Creates a clone of the `symbol` object. * * @private * @param {Object} symbol The symbol object to clone. * @returns {Object} Returns the cloned symbol object. */ function cloneSymbol(symbol) { return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; } module.exports = cloneSymbol; /***/ }), /* 802 */ /***/ (function(module, exports, __webpack_require__) { var baseIsMap = __webpack_require__(803), baseUnary = __webpack_require__(126), nodeUtil = __webpack_require__(127); /* Node.js helper references. */ var nodeIsMap = nodeUtil && nodeUtil.isMap; /** * Checks if `value` is classified as a `Map` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a map, else `false`. * @example * * _.isMap(new Map); * // => true * * _.isMap(new WeakMap); * // => false */ var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; module.exports = isMap; /***/ }), /* 803 */ /***/ (function(module, exports, __webpack_require__) { var getTag = __webpack_require__(59), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var mapTag = '[object Map]'; /** * The base implementation of `_.isMap` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a map, else `false`. */ function baseIsMap(value) { return isObjectLike(value) && getTag(value) == mapTag; } module.exports = baseIsMap; /***/ }), /* 804 */ /***/ (function(module, exports, __webpack_require__) { var baseIsSet = __webpack_require__(805), baseUnary = __webpack_require__(126), nodeUtil = __webpack_require__(127); /* Node.js helper references. */ var nodeIsSet = nodeUtil && nodeUtil.isSet; /** * Checks if `value` is classified as a `Set` object. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a set, else `false`. * @example * * _.isSet(new Set); * // => true * * _.isSet(new WeakSet); * // => false */ var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; module.exports = isSet; /***/ }), /* 805 */ /***/ (function(module, exports, __webpack_require__) { var getTag = __webpack_require__(59), isObjectLike = __webpack_require__(22); /** `Object#toString` result references. */ var setTag = '[object Set]'; /** * The base implementation of `_.isSet` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a set, else `false`. */ function baseIsSet(value) { return isObjectLike(value) && getTag(value) == setTag; } module.exports = baseIsSet; /***/ }), /* 806 */ /***/ (function(module, exports, __webpack_require__) { var arrayEach = __webpack_require__(180), baseCreate = __webpack_require__(133), baseForOwn = __webpack_require__(131), baseIteratee = __webpack_require__(40), getPrototype = __webpack_require__(132), isArray = __webpack_require__(10), isBuffer = __webpack_require__(74), isFunction = __webpack_require__(72), isObject = __webpack_require__(18), isTypedArray = __webpack_require__(94); /** * An alternative to `_.reduce`; this method transforms `object` to a new * `accumulator` object which is the result of running each of its own * enumerable string keyed properties thru `iteratee`, with each invocation * potentially mutating the `accumulator` object. If `accumulator` is not * provided, a new object with the same `[[Prototype]]` will be used. The * iteratee is invoked with four arguments: (accumulator, value, key, object). * Iteratee functions may exit iteration early by explicitly returning `false`. * * @static * @memberOf _ * @since 1.3.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The custom accumulator value. * @returns {*} Returns the accumulated value. * @example * * _.transform([2, 3, 4], function(result, n) { * result.push(n *= n); * return n % 2 == 0; * }, []); * // => [4, 9] * * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { * (result[value] || (result[value] = [])).push(key); * }, {}); * // => { '1': ['a', 'c'], '2': ['b'] } */ function transform(object, iteratee, accumulator) { var isArr = isArray(object), isArrLike = isArr || isBuffer(object) || isTypedArray(object); iteratee = baseIteratee(iteratee, 4); if (accumulator == null) { var Ctor = object && object.constructor; if (isArrLike) { accumulator = isArr ? new Ctor : []; } else if (isObject(object)) { accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; } else { accumulator = {}; } } (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { return iteratee(accumulator, value, index, object); }); return accumulator; } module.exports = transform; /***/ }), /* 807 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.createNewStore = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var initialState = { selectedSku: '', skuValues: {}, requiresUserSession: false }; var createNewStore = function createNewStore() { var store = {}; var watchers = {}; var fetchFromStore = function fetchFromStore(instanceId, key) { return store[instanceId] ? store[instanceId][key] : undefined; }; var updateStore = function updateStore(instanceId, newValues) { if (!store[instanceId]) { store[instanceId] = (0, _extends2["default"])({}, initialState); } for (var _i = 0, _Object$keys = Object.keys(newValues); _i < _Object$keys.length; _i++) { var key = _Object$keys[_i]; if (!store[instanceId].hasOwnProperty(key)) { continue; } var previousValue = store[instanceId][key]; store[instanceId][key] = newValues[key]; if (watchers[instanceId] && watchers[instanceId][key]) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = watchers[instanceId][key][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var watcher = _step.value; watcher(newValues[key], previousValue); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator["return"] != null) { _iterator["return"](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } } }; var addStoreWatcher = function addStoreWatcher(instanceId, key, cb) { if (!watchers[instanceId]) { watchers[instanceId] = {}; } if (watchers[instanceId][key]) { watchers[instanceId][key].push(cb); } else { watchers[instanceId][key] = [cb]; } }; return { fetchFromStore: fetchFromStore, updateStore: updateStore, addStoreWatcher: addStoreWatcher }; }; exports.createNewStore = createNewStore; /***/ }), /* 808 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _classCallCheck2 = _interopRequireDefault2(__webpack_require__(44)); var _createClass2 = _interopRequireDefault2(__webpack_require__(149)); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.PillGroups = void 0; var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); var _constants = __webpack_require__(19); var KEY_CODES = Object.freeze({ RETURN: 13, SPACE: 32, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40 }); var PillGroups = /*#__PURE__*/ function () { (0, _createClass2["default"])(PillGroups, null, [{ key: "hasPillGroups", value: function hasPillGroups(form) { return form.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP, "\"]")).length > 0; } }]); function PillGroups(form, onSelect) { (0, _classCallCheck2["default"])(this, PillGroups); this.form = form; this.pillGroups = {}; this.onSelect = onSelect; } (0, _createClass2["default"])(PillGroups, [{ key: "init", value: function init() { var groupNodes = this.form.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL_GROUP, "\"]")); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = groupNodes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var group = _step.value; var pillGroup = new PillGroup(group, this.onSelect, this); pillGroup.init(); this.pillGroups[pillGroup.optionSetId] = pillGroup; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator["return"] != null) { _iterator["return"](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, { key: "setSelectedPillsForSkuValues", value: function setSelectedPillsForSkuValues(skuValues) { for (var _i = 0, _Object$keys = Object.keys(skuValues); _i < _Object$keys.length; _i++) { var optionSetId = _Object$keys[_i]; var optionId = skuValues[optionSetId]; var pillGroup = this.pillGroups[optionSetId]; if (pillGroup) { var pill = pillGroup.findPillById(String(optionId)); pillGroup.updatePillsWithNewSelected(pill); } } } }]); return PillGroups; }(); exports.PillGroups = PillGroups; var PillGroup = /*#__PURE__*/ function () { function PillGroup(node, onSelect, groups) { (0, _classCallCheck2["default"])(this, PillGroup); this.node = node; this.optionSetId = String(node.getAttribute(_constants.DATA_ATTR_COMMERCE_OPTION_SET_ID)); this.onSelect = onSelect; this.pills = []; this.groups = groups; } (0, _createClass2["default"])(PillGroup, [{ key: "getAttribute", // hacky fake option set compat // we only want to support the one DOM attribute, which we have on this group, just not // directly exposed, as we don't directly expose the DOM element for the group value: function getAttribute(attr) { if (attr === _constants.DATA_ATTR_COMMERCE_OPTION_SET_ID) { return this.optionSetId; } else { throw new Error("PillGroup: Attempted to fetch unsupported attribute ".concat(attr)); } } }, { key: "init", value: function init() { var _this = this; var pills = this.node.querySelectorAll("[".concat(_constants.DATA_ATTR_NODE_TYPE, "=\"").concat(_constants.NODE_TYPE_COMMERCE_ADD_TO_CART_PILL, "\"]")); this.pills = Array.from(pills).map(function (pillNode) { var pill = new Pill(pillNode, _this); pill.init(); return pill; }); // if this group has any enabled pills, we set the first one's tab index so it can be focused if (this.firstEnabledPill) { this.firstEnabledPill.tabIndex = 0; } // @zach: store reference to this group on the node so we can access it later // we shouldn't be doing this but it's a lot easier than creating some global store // i tried the global store method first but the problem is our instance IDs are just the product IDs // so if you have two ATCs for the same product, they'd overwrite each other, and only one option list would work // so just storing it on the DOM element, and then grabbing it when updating all the option sets is a lot easier :) // $FlowFixMe this.node._wfPillGroup = this; } }, { key: "findPillById", value: function findPillById(optionId) { return this.pills.find(function (pill) { return pill.optionId === optionId; }); } }, { key: "updatePillsWithNewSelected", value: function updatePillsWithNewSelected(selectedPill) { // we unselect all of the pills in the pill group var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = this.pills[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var pill = _step2.value; pill.tabIndex = -1; pill.checked = false; } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { _iterator2["return"](); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } if (selectedPill instanceof Pill) { // if passed a pill, we give it the proper tab index, and set the aria checked selectedPill.tabIndex = 0; selectedPill.checked = true; } else { // if not passed a pill, we're deselecting any option in this group // so we call set the tabIndex to the first enabled pill, // so tab focus goes back to the first pill on the next enter if (this.firstEnabledPill) { this.firstEnabledPill.tabIndex = 0; } } } }, { key: "emitSelected", value: function emitSelected(selectedPill) { this.onSelect({ optionId: selectedPill.optionId, optionSetId: this.optionSetId, groups: Object.values(this.groups.pillGroups) }); } }, { key: "traverseAndEmitSelected", value: function traverseAndEmitSelected(currentPill, direction) { var currentIndex = this.pills.indexOf(currentPill); var found = false; var idx = currentIndex; var nextIndex; while (!found) { if (direction === 'previous') { nextIndex = idx - 1; // if we reached the start of the list, go to the end if (nextIndex < 0) { nextIndex = this.pills.length - 1; } } else if (direction === 'next') { nextIndex = idx + 1; // if we reached the end of the list, go to the start if (nextIndex === this.pills.length) { nextIndex = 0; } } else { throw new Error("Unknown pill traversal direction \"".concat(direction, "\", use \"previous\" or \"next\"")); } // if we're back at the pill we started with, we went through the entire list // and didn't find any other enabled pills, so we keep this one selected if (nextIndex === currentIndex) { break; } var pill = this.pills[nextIndex]; if (!pill.disabled) { // if the next pill is enabled, we emit it as selected, focus it now that we know what pill should be // and finally, break the loop this.emitSelected(pill); pill.focus(); found = true; } else { // otherwise, we increment our loop index, so we can start the loop again // and check the next pill idx = nextIndex; } } } }, { key: "firstEnabledPill", get: function get() { // find returns the first one it finds, and the pills are in order return this.pills.find(function (pill) { return pill.disabled === false; }); } // hacky fake option set compat }, { key: "value", get: function get() { var possiblePill = this.pills.find(function (pill) { return pill.checked === true; }); return possiblePill ? possiblePill.value : ''; } // hacky fake option set compat }, { key: "options", get: function get() { return this.pills; } // hacky fake option set compat }, { key: "selectedIndex", set: function set(index) { var pill = this.pills[index] || null; this.emitSelected(pill); } }]); return PillGroup; }(); var Pill = /*#__PURE__*/ function () { function Pill(node, group) { var _this2 = this; (0, _classCallCheck2["default"])(this, Pill); (0, _defineProperty2["default"])(this, "handleKeyDown", function (ev) { var eventHandled = false; // we don't want to handle events when holding down alt or cmd // as these are navigation shortcuts that we don't want to break if (ev.altKey || ev.metaKey) { return; } switch (ev.keyCode) { // return and space should act like a click on the pill, selecting/deselecting as needed case KEY_CODES.RETURN: case KEY_CODES.SPACE: _this2.handleClick(); eventHandled = true; break; // up and left go to the previous pill in the group case KEY_CODES.UP: case KEY_CODES.LEFT: _this2.group.traverseAndEmitSelected(_this2, 'previous'); eventHandled = true; break; // down and right go to the next pill in the group case KEY_CODES.DOWN: case KEY_CODES.RIGHT: _this2.group.traverseAndEmitSelected(_this2, 'next'); eventHandled = true; break; default: break; } // we only want to stop keyboard events for the keys we're trying to intercept if (eventHandled) { ev.stopPropagation(); ev.preventDefault(); } }); (0, _defineProperty2["default"])(this, "handleClick", function () { if (_this2.disabled || _this2.checked) { return; } _this2.focus(); _this2.group.emitSelected(_this2); }); this.node = node; this.optionId = String(this.node.getAttribute('data-option-id')); this.group = group; } (0, _createClass2["default"])(Pill, [{ key: "init", value: function init() { this.tabIndex = -1; this.checked = false; this.node.addEventListener('keydown', this.handleKeyDown); this.node.addEventListener('click', this.handleClick); } }, { key: "focus", value: function focus() { this.node.focus(); } }, { key: "tabIndex", get: function get() { return this.node.tabIndex; }, set: function set(index) { this.node.tabIndex = index; } }, { key: "value", get: function get() { return this.optionId; } }, { key: "checked", get: function get() { return this.node.getAttribute('aria-checked') === 'true'; }, set: function set(checked) { this.node.setAttribute('aria-checked', String(checked)); if (checked) { this.node.classList.add('w--ecommerce-pill-selected'); } else { this.node.classList.remove('w--ecommerce-pill-selected'); } } }, { key: "disabled", get: function get() { return this.node.getAttribute('aria-disabled') === 'true'; }, set: function set(disabled) { this.node.setAttribute('aria-disabled', String(disabled)); if (disabled) { // if we pragmatically disable a pill, we want to make sure it's not checked // and that it can't be focused by the browser this.node.classList.add('w--ecommerce-pill-disabled'); this.checked = false; this.tabIndex = -1; } else { this.node.classList.remove('w--ecommerce-pill-disabled'); } } }, { key: "enabled", get: function get() { return !this.disabled; }, set: function set(enabled) { this.disabled = !enabled; } }]); return Pill; }(); /***/ }), /* 809 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { usysSiteBundle: true, usysFormBundle: true }; exports.usysFormBundle = exports.usysSiteBundle = void 0; __webpack_require__(370); __webpack_require__(372); __webpack_require__(813); __webpack_require__(294); var _login = __webpack_require__(816); var _signup = __webpack_require__(817); var _logout = __webpack_require__(818); var _resetPassword = __webpack_require__(819); var _updatePassword = __webpack_require__(820); var _account = __webpack_require__(821); var _utils = __webpack_require__(51); Object.keys(_utils).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _utils[key]; } }); }); var _usysForm = __webpack_require__(823); // @wf-will-never-add-flow-to-this-file // IE11 crashes whem URLSearchParams is used // At a minimum, we need `Array.from` support in IE11 var usysSiteBundle = function usysSiteBundle() { function init() { var domParser = (0, _utils.getDomParser)(); (0, _login.handleLogInForms)(); (0, _login.handleLoginRedirects)(); (0, _signup.handleSignUpForms)(); (0, _logout.handleLogInLogOutButton)(); (0, _resetPassword.handleResetPasswordForms)(); (0, _updatePassword.handleUpdatePasswordForms)(); (0, _account.handleUserAccount)(); (0, _account.handleUserSubscriptionLists)(domParser); } var ready = init; var design = init; var preview = init; return { init: init, ready: ready, design: design, preview: preview }; }; exports.usysSiteBundle = usysSiteBundle; var usysFormBundle = function usysFormBundle(env) { function init() { if (env('design')) return; (0, _usysForm.handleFields)(); } return { init: init, ready: init, preview: init }; }; exports.usysFormBundle = usysFormBundle; /***/ }), /* 810 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony import */ var _finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(371); // Store setTimeout reference so promise-polyfill will be unaffected by // other code modifying setTimeout (like sinon.useFakeTimers()) var setTimeoutFunc = setTimeout; function noop() {} // Polyfill for Function.prototype.bind function bind(fn, thisArg) { return function() { fn.apply(thisArg, arguments); }; } function Promise(fn) { if (!(this instanceof Promise)) throw new TypeError('Promises must be constructed via new'); if (typeof fn !== 'function') throw new TypeError('not a function'); this._state = 0; this._handled = false; this._value = undefined; this._deferreds = []; doResolve(fn, this); } function handle(self, deferred) { while (self._state === 3) { self = self._value; } if (self._state === 0) { self._deferreds.push(deferred); return; } self._handled = true; Promise._immediateFn(function() { var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected; if (cb === null) { (self._state === 1 ? resolve : reject)(deferred.promise, self._value); return; } var ret; try { ret = cb(self._value); } catch (e) { reject(deferred.promise, e); return; } resolve(deferred.promise, ret); }); } function resolve(self, newValue) { try { // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.'); if ( newValue && (typeof newValue === 'object' || typeof newValue === 'function') ) { var then = newValue.then; if (newValue instanceof Promise) { self._state = 3; self._value = newValue; finale(self); return; } else if (typeof then === 'function') { doResolve(bind(then, newValue), self); return; } } self._state = 1; self._value = newValue; finale(self); } catch (e) { reject(self, e); } } function reject(self, newValue) { self._state = 2; self._value = newValue; finale(self); } function finale(self) { if (self._state === 2 && self._deferreds.length === 0) { Promise._immediateFn(function() { if (!self._handled) { Promise._unhandledRejectionFn(self._value); } }); } for (var i = 0, len = self._deferreds.length; i < len; i++) { handle(self, self._deferreds[i]); } self._deferreds = null; } function Handler(onFulfilled, onRejected, promise) { this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; this.onRejected = typeof onRejected === 'function' ? onRejected : null; this.promise = promise; } /** * Take a potentially misbehaving resolver function and make sure * onFulfilled and onRejected are only called once. * * Makes no guarantees about asynchrony. */ function doResolve(fn, self) { var done = false; try { fn( function(value) { if (done) return; done = true; resolve(self, value); }, function(reason) { if (done) return; done = true; reject(self, reason); } ); } catch (ex) { if (done) return; done = true; reject(self, ex); } } Promise.prototype['catch'] = function(onRejected) { return this.then(null, onRejected); }; Promise.prototype.then = function(onFulfilled, onRejected) { var prom = new this.constructor(noop); handle(this, new Handler(onFulfilled, onRejected, prom)); return prom; }; Promise.prototype['finally'] = _finally__WEBPACK_IMPORTED_MODULE_0__["default"]; Promise.all = function(arr) { return new Promise(function(resolve, reject) { if (!arr || typeof arr.length === 'undefined') throw new TypeError('Promise.all accepts an array'); var args = Array.prototype.slice.call(arr); if (args.length === 0) return resolve([]); var remaining = args.length; function res(i, val) { try { if (val && (typeof val === 'object' || typeof val === 'function')) { var then = val.then; if (typeof then === 'function') { then.call( val, function(val) { res(i, val); }, reject ); return; } } args[i] = val; if (--remaining === 0) { resolve(args); } } catch (ex) { reject(ex); } } for (var i = 0; i < args.length; i++) { res(i, args[i]); } }); }; Promise.resolve = function(value) { if (value && typeof value === 'object' && value.constructor === Promise) { return value; } return new Promise(function(resolve) { resolve(value); }); }; Promise.reject = function(value) { return new Promise(function(resolve, reject) { reject(value); }); }; Promise.race = function(values) { return new Promise(function(resolve, reject) { for (var i = 0, len = values.length; i < len; i++) { values[i].then(resolve, reject); } }); }; // Use polyfill for setImmediate for performance gains Promise._immediateFn = (typeof setImmediate === 'function' && function(fn) { setImmediate(fn); }) || function(fn) { setTimeoutFunc(fn, 0); }; Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) { if (typeof console !== 'undefined' && console) { console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console } }; /* harmony default export */ __webpack_exports__["default"] = (Promise); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(811).setImmediate)) /***/ }), /* 811 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) || (typeof self !== "undefined" && self) || window; var apply = Function.prototype.apply; // DOM APIs, for completeness exports.setTimeout = function() { return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout); }; exports.setInterval = function() { return new Timeout(apply.call(setInterval, scope, arguments), clearInterval); }; exports.clearTimeout = exports.clearInterval = function(timeout) { if (timeout) { timeout.close(); } }; function Timeout(id, clearFn) { this._id = id; this._clearFn = clearFn; } Timeout.prototype.unref = Timeout.prototype.ref = function() {}; Timeout.prototype.close = function() { this._clearFn.call(scope, this._id); }; // Does not start the time, just sets up the members needed. exports.enroll = function(item, msecs) { clearTimeout(item._idleTimeoutId); item._idleTimeout = msecs; }; exports.unenroll = function(item) { clearTimeout(item._idleTimeoutId); item._idleTimeout = -1; }; exports._unrefActive = exports.active = function(item) { clearTimeout(item._idleTimeoutId); var msecs = item._idleTimeout; if (msecs >= 0) { item._idleTimeoutId = setTimeout(function onTimeout() { if (item._onTimeout) item._onTimeout(); }, msecs); } }; // setimmediate attaches itself to the global object __webpack_require__(812); // On some exotic environments, it's not clear which object `setimmediate` was // able to install onto. Search each possibility in the same order as the // `setimmediate` library. exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) || (typeof global !== "undefined" && global.setImmediate) || (this && this.setImmediate); exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) || (typeof global !== "undefined" && global.clearImmediate) || (this && this.clearImmediate); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52))) /***/ }), /* 812 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) { "use strict"; if (global.setImmediate) { return; } var nextHandle = 1; // Spec says greater than zero var tasksByHandle = {}; var currentlyRunningATask = false; var doc = global.document; var registerImmediate; function setImmediate(callback) { // Callback can either be a function or a string if (typeof callback !== "function") { callback = new Function("" + callback); } // Copy function arguments var args = new Array(arguments.length - 1); for (var i = 0; i < args.length; i++) { args[i] = arguments[i + 1]; } // Store and register the task var task = { callback: callback, args: args }; tasksByHandle[nextHandle] = task; registerImmediate(nextHandle); return nextHandle++; } function clearImmediate(handle) { delete tasksByHandle[handle]; } function run(task) { var callback = task.callback; var args = task.args; switch (args.length) { case 0: callback(); break; case 1: callback(args[0]); break; case 2: callback(args[0], args[1]); break; case 3: callback(args[0], args[1], args[2]); break; default: callback.apply(undefined, args); break; } } function runIfPresent(handle) { // From the spec: "Wait until any invocations of this algorithm started before this one have completed." // So if we're currently running a task, we'll need to delay this invocation. if (currentlyRunningATask) { // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a // "too much recursion" error. setTimeout(runIfPresent, 0, handle); } else { var task = tasksByHandle[handle]; if (task) { currentlyRunningATask = true; try { run(task); } finally { clearImmediate(handle); currentlyRunningATask = false; } } } } function installNextTickImplementation() { registerImmediate = function(handle) { process.nextTick(function () { runIfPresent(handle); }); }; } function canUsePostMessage() { // The test against `importScripts` prevents this implementation from being installed inside a web worker, // where `global.postMessage` means something completely different and can't be used for this purpose. if (global.postMessage && !global.importScripts) { var postMessageIsAsynchronous = true; var oldOnMessage = global.onmessage; global.onmessage = function() { postMessageIsAsynchronous = false; }; global.postMessage("", "*"); global.onmessage = oldOnMessage; return postMessageIsAsynchronous; } } function installPostMessageImplementation() { // Installs an event handler on `global` for the `message` event: see // * https://developer.mozilla.org/en/DOM/window.postMessage // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages var messagePrefix = "setImmediate$" + Math.random() + "$"; var onGlobalMessage = function(event) { if (event.source === global && typeof event.data === "string" && event.data.indexOf(messagePrefix) === 0) { runIfPresent(+event.data.slice(messagePrefix.length)); } }; if (global.addEventListener) { global.addEventListener("message", onGlobalMessage, false); } else { global.attachEvent("onmessage", onGlobalMessage); } registerImmediate = function(handle) { global.postMessage(messagePrefix + handle, "*"); }; } function installMessageChannelImplementation() { var channel = new MessageChannel(); channel.port1.onmessage = function(event) { var handle = event.data; runIfPresent(handle); }; registerImmediate = function(handle) { channel.port2.postMessage(handle); }; } function installReadyStateChangeImplementation() { var html = doc.documentElement; registerImmediate = function(handle) { // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called. var script = doc.createElement("script"); script.onreadystatechange = function () { runIfPresent(handle); script.onreadystatechange = null; html.removeChild(script); script = null; }; html.appendChild(script); }; } function installSetTimeoutImplementation() { registerImmediate = function(handle) { setTimeout(runIfPresent, 0, handle); }; } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live. var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global); attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments. if ({}.toString.call(global.process) === "[object process]") { // For Node.js before 0.9 installNextTickImplementation(); } else if (canUsePostMessage()) { // For non-IE10 modern browsers installPostMessageImplementation(); } else if (global.MessageChannel) { // For web workers, where supported installMessageChannelImplementation(); } else if (doc && "onreadystatechange" in doc.createElement("script")) { // For IE 6–8 installReadyStateChangeImplementation(); } else { // For older browsers installSetTimeoutImplementation(); } attachTo.setImmediate = setImmediate; attachTo.clearImmediate = clearImmediate; }(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self)); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(52), __webpack_require__(78))) /***/ }), /* 813 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(814); var path = __webpack_require__(77); module.exports = path.URLSearchParams; /***/ }), /* 814 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env` __webpack_require__(188); var $ = __webpack_require__(2); var global = __webpack_require__(1); var getBuiltIn = __webpack_require__(24); var call = __webpack_require__(23); var uncurryThis = __webpack_require__(3); var USE_NATIVE_URL = __webpack_require__(815); var redefine = __webpack_require__(27); var redefineAll = __webpack_require__(136); var setToStringTag = __webpack_require__(42); var createIteratorConstructor = __webpack_require__(190); var InternalStateModule = __webpack_require__(38); var anInstance = __webpack_require__(135); var isCallable = __webpack_require__(6); var hasOwn = __webpack_require__(14); var bind = __webpack_require__(29); var classof = __webpack_require__(100); var anObject = __webpack_require__(15); var isObject = __webpack_require__(12); var $toString = __webpack_require__(34); var create = __webpack_require__(39); var createPropertyDescriptor = __webpack_require__(67); var getIterator = __webpack_require__(104); var getIteratorMethod = __webpack_require__(105); var wellKnownSymbol = __webpack_require__(4); var arraySort = __webpack_require__(300); var ITERATOR = wellKnownSymbol('iterator'); var URL_SEARCH_PARAMS = 'URLSearchParams'; var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; var setInternalState = InternalStateModule.set; var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); var n$Fetch = getBuiltIn('fetch'); var N$Request = getBuiltIn('Request'); var Headers = getBuiltIn('Headers'); var RequestPrototype = N$Request && N$Request.prototype; var HeadersPrototype = Headers && Headers.prototype; var RegExp = global.RegExp; var TypeError = global.TypeError; var decodeURIComponent = global.decodeURIComponent; var encodeURIComponent = global.encodeURIComponent; var charAt = uncurryThis(''.charAt); var join = uncurryThis([].join); var push = uncurryThis([].push); var replace = uncurryThis(''.replace); var shift = uncurryThis([].shift); var splice = uncurryThis([].splice); var split = uncurryThis(''.split); var stringSlice = uncurryThis(''.slice); var plus = /\+/g; var sequences = Array(4); var percentSequence = function (bytes) { return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); }; var percentDecode = function (sequence) { try { return decodeURIComponent(sequence); } catch (error) { return sequence; } }; var deserialize = function (it) { var result = replace(it, plus, ' '); var bytes = 4; try { return decodeURIComponent(result); } catch (error) { while (bytes) { result = replace(result, percentSequence(bytes--), percentDecode); } return result; } }; var find = /[!'()~]|%20/g; var replacements = { '!': '%21', "'": '%27', '(': '%28', ')': '%29', '~': '%7E', '%20': '+' }; var replacer = function (match) { return replacements[match]; }; var serialize = function (it) { return replace(encodeURIComponent(it), find, replacer); }; var parseSearchParams = function (result, query) { if (query) { var attributes = split(query, '&'); var index = 0; var attribute, entry; while (index < attributes.length) { attribute = attributes[index++]; if (attribute.length) { entry = split(attribute, '='); push(result, { key: deserialize(shift(entry)), value: deserialize(join(entry, '=')) }); } } } }; var updateSearchParams = function (query) { this.entries.length = 0; parseSearchParams(this.entries, query); }; var validateArgumentsLength = function (passed, required) { if (passed < required) throw TypeError('Not enough arguments'); }; var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { setInternalState(this, { type: URL_SEARCH_PARAMS_ITERATOR, iterator: getIterator(getInternalParamsState(params).entries), kind: kind }); }, 'Iterator', function next() { var state = getInternalIteratorState(this); var kind = state.kind; var step = state.iterator.next(); var entry = step.value; if (!step.done) { step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value]; } return step; }); // `URLSearchParams` constructor // https://url.spec.whatwg.org/#interface-urlsearchparams var URLSearchParamsConstructor = function URLSearchParams(/* init */) { anInstance(this, URLSearchParamsPrototype); var init = arguments.length > 0 ? arguments[0] : undefined; var that = this; var entries = []; var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; setInternalState(that, { type: URL_SEARCH_PARAMS, entries: entries, updateURL: function () { /* empty */ }, updateSearchParams: updateSearchParams }); if (init !== undefined) { if (isObject(init)) { iteratorMethod = getIteratorMethod(init); if (iteratorMethod) { iterator = getIterator(init, iteratorMethod); next = iterator.next; while (!(step = call(next, iterator)).done) { entryIterator = getIterator(anObject(step.value)); entryNext = entryIterator.next; if ( (first = call(entryNext, entryIterator)).done || (second = call(entryNext, entryIterator)).done || !call(entryNext, entryIterator).done ) throw TypeError('Expected sequence with length 2'); push(entries, { key: $toString(first.value), value: $toString(second.value) }); } } else for (key in init) if (hasOwn(init, key)) push(entries, { key: key, value: $toString(init[key]) }); } else { parseSearchParams( entries, typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init) ); } } }; var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; redefineAll(URLSearchParamsPrototype, { // `URLSearchParams.prototype.append` method // https://url.spec.whatwg.org/#dom-urlsearchparams-append append: function append(name, value) { validateArgumentsLength(arguments.length, 2); var state = getInternalParamsState(this); push(state.entries, { key: $toString(name), value: $toString(value) }); state.updateURL(); }, // `URLSearchParams.prototype.delete` method // https://url.spec.whatwg.org/#dom-urlsearchparams-delete 'delete': function (name) { validateArgumentsLength(arguments.length, 1); var state = getInternalParamsState(this); var entries = state.entries; var key = $toString(name); var index = 0; while (index < entries.length) { if (entries[index].key === key) splice(entries, index, 1); else index++; } state.updateURL(); }, // `URLSearchParams.prototype.get` method // https://url.spec.whatwg.org/#dom-urlsearchparams-get get: function get(name) { validateArgumentsLength(arguments.length, 1); var entries = getInternalParamsState(this).entries; var key = $toString(name); var index = 0; for (; index < entries.length; index++) { if (entries[index].key === key) return entries[index].value; } return null; }, // `URLSearchParams.prototype.getAll` method // https://url.spec.whatwg.org/#dom-urlsearchparams-getall getAll: function getAll(name) { validateArgumentsLength(arguments.length, 1); var entries = getInternalParamsState(this).entries; var key = $toString(name); var result = []; var index = 0; for (; index < entries.length; index++) { if (entries[index].key === key) push(result, entries[index].value); } return result; }, // `URLSearchParams.prototype.has` method // https://url.spec.whatwg.org/#dom-urlsearchparams-has has: function has(name) { validateArgumentsLength(arguments.length, 1); var entries = getInternalParamsState(this).entries; var key = $toString(name); var index = 0; while (index < entries.length) { if (entries[index++].key === key) return true; } return false; }, // `URLSearchParams.prototype.set` method // https://url.spec.whatwg.org/#dom-urlsearchparams-set set: function set(name, value) { validateArgumentsLength(arguments.length, 1); var state = getInternalParamsState(this); var entries = state.entries; var found = false; var key = $toString(name); var val = $toString(value); var index = 0; var entry; for (; index < entries.length; index++) { entry = entries[index]; if (entry.key === key) { if (found) splice(entries, index--, 1); else { found = true; entry.value = val; } } } if (!found) push(entries, { key: key, value: val }); state.updateURL(); }, // `URLSearchParams.prototype.sort` method // https://url.spec.whatwg.org/#dom-urlsearchparams-sort sort: function sort() { var state = getInternalParamsState(this); arraySort(state.entries, function (a, b) { return a.key > b.key ? 1 : -1; }); state.updateURL(); }, // `URLSearchParams.prototype.forEach` method forEach: function forEach(callback /* , thisArg */) { var entries = getInternalParamsState(this).entries; var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined); var index = 0; var entry; while (index < entries.length) { entry = entries[index++]; boundFunction(entry.value, entry.key, this); } }, // `URLSearchParams.prototype.keys` method keys: function keys() { return new URLSearchParamsIterator(this, 'keys'); }, // `URLSearchParams.prototype.values` method values: function values() { return new URLSearchParamsIterator(this, 'values'); }, // `URLSearchParams.prototype.entries` method entries: function entries() { return new URLSearchParamsIterator(this, 'entries'); } }, { enumerable: true }); // `URLSearchParams.prototype[@@iterator]` method redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' }); // `URLSearchParams.prototype.toString` method // https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior redefine(URLSearchParamsPrototype, 'toString', function toString() { var entries = getInternalParamsState(this).entries; var result = []; var index = 0; var entry; while (index < entries.length) { entry = entries[index++]; push(result, serialize(entry.key) + '=' + serialize(entry.value)); } return join(result, '&'); }, { enumerable: true }); setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); $({ global: true, forced: !USE_NATIVE_URL }, { URLSearchParams: URLSearchParamsConstructor }); // Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams` if (!USE_NATIVE_URL && isCallable(Headers)) { var headersHas = uncurryThis(HeadersPrototype.has); var headersSet = uncurryThis(HeadersPrototype.set); var wrapRequestOptions = function (init) { if (isObject(init)) { var body = init.body; var headers; if (classof(body) === URL_SEARCH_PARAMS) { headers = init.headers ? new Headers(init.headers) : new Headers(); if (!headersHas(headers, 'content-type')) { headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); } return create(init, { body: createPropertyDescriptor(0, $toString(body)), headers: createPropertyDescriptor(0, headers) }); } } return init; }; if (isCallable(n$Fetch)) { $({ global: true, enumerable: true, forced: true }, { fetch: function fetch(input /* , init */) { return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); } }); } if (isCallable(N$Request)) { var RequestConstructor = function Request(input /* , init */) { anInstance(this, RequestPrototype); return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {}); }; RequestPrototype.constructor = RequestConstructor; RequestConstructor.prototype = RequestPrototype; $({ global: true, forced: true }, { Request: RequestConstructor }); } } module.exports = { URLSearchParams: URLSearchParamsConstructor, getState: getInternalParamsState }; /***/ }), /* 815 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(5); var wellKnownSymbol = __webpack_require__(4); var IS_PURE = __webpack_require__(56); var ITERATOR = wellKnownSymbol('iterator'); module.exports = !fails(function () { var url = new URL('b?a=1&b=2&c=3', 'http://a'); var searchParams = url.searchParams; var result = ''; url.pathname = 'c%20d'; searchParams.forEach(function (value, key) { searchParams['delete']('b'); result += key + value; }); return (IS_PURE && !url.toJSON) || !searchParams.sort || url.href !== 'http://a/c%20d?a=1&c=3' || searchParams.get('c') !== '3' || String(new URLSearchParams('?a=1')) !== 'a=1' || !searchParams[ITERATOR] // throws in Edge || new URL('https://a@b').username !== 'a' || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' // not punycoded in Edge || new URL('http://теÑÑ‚').host !== 'xn--e1aybc' // not escaped in Chrome 62- || new URL('http://a#б').hash !== '#%D0%B1' // fails in Chrome 66- || result !== 'a1c3' // throws in Safari || new URL('http://x', undefined).host !== 'x'; }); /***/ }), /* 816 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleLoginRedirects = handleLoginRedirects; exports.handleLogInForms = handleLogInForms; exports.asyncLogInUser = asyncLogInUser; var _utils = __webpack_require__(51); var _constants = __webpack_require__(36); var _mutations = __webpack_require__(82); /* globals document, window, HTMLFormElement, HTMLInputElement */ function getLoginLinks() { return Array.prototype.slice.call(document.links).filter(function (link) { return link.getAttribute('href') === '/log-in'; }); } // Grabs each log-in href on the page. If the page has redirect params from the proxy // we persist that param when the user clicks on log-in. This way after log-in // we can redirect them to the content they were previously trying to view. function handleLoginRedirects() { getLoginLinks().forEach(function (link) { var queryString = window.location.search; var redirectParam = queryString.match(/\?usredir=([^&]+)/g); if (redirectParam) { link.href = link.href.concat(redirectParam[0]); } }); } var loginFormQuerySelector = "form[".concat(_constants.USYS_DATA_ATTRS.formType, "=\"").concat(_constants.USYS_FORM_TYPES.login, "\"]"); // error handling var errorState = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.formError, "]")); var defaultErrorCopy = _constants.logInErrorStates[_constants.LOGIN_UI_ERROR_CODES.GENERAL_ERROR].copy; var errorMsgNode = document.querySelector(".".concat(_constants.ERROR_MSG_CLASS)); var getLogInErrorCode = function getLogInErrorCode(error) { var errorCode; switch (error) { case 'UsysInvalidCredentials': errorCode = _constants.LOGIN_UI_ERROR_CODES.INVALID_EMAIL_OR_PASSWORD; break; default: errorCode = _constants.LOGIN_UI_ERROR_CODES.GENERAL_ERROR; } return errorCode; }; function getLoginForms() { var loginForms = document.querySelectorAll(loginFormQuerySelector); return Array.prototype.slice.call(loginForms).filter(function (loginForm) { return loginForm instanceof HTMLFormElement; }); } function handleLogInForms() { getLoginForms().forEach(function (loginForm) { loginForm.addEventListener('submit', function (event) { event.preventDefault(); var form = event.currentTarget; if (!(form instanceof HTMLFormElement)) { return; } var submit = form.querySelector('input[type="submit"]'); var submitText = (0, _utils.disableSubmit)(submit); (0, _utils.hideElement)(errorState); var emailInput = form.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.email, "\"]")); var passwordInput = form.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.password, "\"]")); if (!(emailInput instanceof HTMLInputElement) || !(passwordInput instanceof HTMLInputElement)) { return; } var onSuccessRedirectUrl = form.getAttribute(_constants.USYS_DATA_ATTRS.redirectUrl); asyncLogInUser(emailInput.value, passwordInput.value).then(function () { // If there is a redirect param, redirect to that href after log-in. (0, _utils.handleRedirect)(onSuccessRedirectUrl); })["catch"](function (error) { (0, _utils.resetSubmit)(submit, submitText); if (errorState) { var _ref, _error$graphQLErrors, _error$graphQLErrors$; // if there isn't an error code, send an empty string so a generic error message appears var elementErrorCode = (_ref = error === null || error === void 0 ? void 0 : (_error$graphQLErrors = error.graphQLErrors) === null || _error$graphQLErrors === void 0 ? void 0 : (_error$graphQLErrors$ = _error$graphQLErrors[0]) === null || _error$graphQLErrors$ === void 0 ? void 0 : _error$graphQLErrors$.code) !== null && _ref !== void 0 ? _ref : ''; var errorCode = getLogInErrorCode(elementErrorCode); (0, _utils.handleErrorNode)(errorMsgNode, errorState, errorCode, _constants.ERROR_ATTRIBUTE_PREFIX.LOGIN, defaultErrorCopy); } }); }); }); } function asyncLogInUser(email, password) { return _utils.userSystemsRequestClient.mutate({ mutation: _mutations.loginMutation, variables: { email: email, authPassword: password } }); } /***/ }), /* 817 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleSignUpForms = handleSignUpForms; exports.asyncSignUpUser = asyncSignUpUser; var _utils = __webpack_require__(51); var _constants = __webpack_require__(36); var _mutations = __webpack_require__(82); var _fields = __webpack_require__(374); /* globals document, HTMLFormElement, HTMLInputElement, window */ var signupFormQuerySelector = "form[".concat(_constants.USYS_DATA_ATTRS.formType, "=\"").concat(_constants.USYS_FORM_TYPES.signup, "\"]"); var verificationMessage = document.querySelector(".".concat(_constants.USYS_DOM_CLASS_NAMES.formVerfication)); // error handling var errorState = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.formError, "]")); var defaultErrorCopy = _constants.signUpErrorStates[_constants.SIGNUP_UI_ERROR_CODES.GENERAL_ERROR].copy; var errorMsgNode = document.querySelector(".".concat(_constants.ERROR_MSG_CLASS)); var getSignupErrorCode = function getSignupErrorCode(error) { var errorCode; switch (error) { case 'UsysUnauthorizedEmail': errorCode = _constants.SIGNUP_UI_ERROR_CODES.NOT_ALLOWED; break; case 'UsysMustUseInvitation': errorCode = _constants.SIGNUP_UI_ERROR_CODES.USE_INVITE_EMAIL; break; case 'UsysDuplicateEmail': errorCode = _constants.SIGNUP_UI_ERROR_CODES.EMAIL_ALREADY_EXIST; break; case 'UsysInvalidEmail': errorCode = _constants.SIGNUP_UI_ERROR_CODES.INVALID_EMAIL; break; case 'UsysInvalidPassword': errorCode = _constants.SIGNUP_UI_ERROR_CODES.INVALID_PASSWORD; break; case 'UsysInvalidToken': errorCode = _constants.SIGNUP_UI_ERROR_CODES.NOT_VERIFIED; break; case 'UsysExpiredToken': errorCode = _constants.SIGNUP_UI_ERROR_CODES.EXPIRED_TOKEN; break; default: errorCode = _constants.SIGNUP_UI_ERROR_CODES.GENERAL_ERROR; } return errorCode; }; function getSignupForms() { var signupForms = document.querySelectorAll(signupFormQuerySelector); return Array.prototype.slice.call(signupForms).filter(function (signupForm) { return signupForm instanceof HTMLFormElement; }); } function handleUserInvite(email) { // email is for DISPLAY use ONLY for security reasons var form = document.querySelector(signupFormQuerySelector); if (!(form instanceof HTMLFormElement)) { return; } var emailInput = form.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.email, "\"]")); if (!(emailInput instanceof HTMLInputElement)) { return; } // disable email input emailInput.disabled = true; emailInput.classList.add('w-input-disabled'); // and set the value to the user's email emailInput.value = email; } // users are sent to the sign up page to complete verification function handleEmailVerifcation(token) { var form = document.querySelector(signupFormQuerySelector); (0, _utils.hideElement)(form); asyncVerifyEmailToken(token).then(function () { var _ref; var successMessage = document.querySelector(".".concat(_constants.USYS_DOM_CLASS_NAMES.formSuccess)); var redirectAnchor = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.redirectUrl, "] a")); var redirectPath = (0, _utils.getRedirectPath)(); // If redirect param exists, use that path for the redirect anchor href if (redirectPath && redirectAnchor) { redirectAnchor.setAttribute('href', encodeURIComponent(redirectPath)); } (0, _utils.showElement)(successMessage); // If redirect anchor exists, use that as default redirect path (0, _utils.handleRedirect)((_ref = redirectAnchor === null || redirectAnchor === void 0 ? void 0 : redirectAnchor.getAttribute('href')) !== null && _ref !== void 0 ? _ref : '/', true); })["catch"](function (error) { (0, _utils.showElement)(verificationMessage); if (errorState) { var _error$graphQLErrors, _error$graphQLErrors$; var elementErrorCode = (_error$graphQLErrors = error.graphQLErrors) === null || _error$graphQLErrors === void 0 ? void 0 : (_error$graphQLErrors$ = _error$graphQLErrors[0]) === null || _error$graphQLErrors$ === void 0 ? void 0 : _error$graphQLErrors$.code; var errorCode = getSignupErrorCode(elementErrorCode); (0, _utils.handleErrorNode)(errorMsgNode, errorState, errorCode, _constants.ERROR_ATTRIBUTE_PREFIX.SIGNUP, defaultErrorCopy); } }); } function handleSignUpForms() { // we will check to see if their is a token in the link to initiate the verification flow // otherwise, the regular sign-up form will be shown var params = new URLSearchParams(window.location.search); var inviteToken = params.get('inviteToken') || ''; var verifyToken = params.get('verifyToken') || ''; getSignupForms().forEach(function (signupForm) { if (inviteToken) { var email = params.get('email') || ''; handleUserInvite(email); } if (verifyToken) { handleEmailVerifcation(verifyToken); } signupForm.addEventListener('submit', function (event) { event.preventDefault(); var form = event.currentTarget; if (!(form instanceof HTMLFormElement)) { return; } var submit = form.querySelector('input[type="submit"]'); var submitText = (0, _utils.disableSubmit)(submit); var commonFields = (0, _fields.getCommonFields)(form); var customFields = (0, _fields.getCustomFields)(form); (0, _utils.hideElement)(errorState); asyncSignUpUser((0, _fields.getFieldValueById)('email', commonFields) || '', (0, _fields.getFieldValueById)('name', commonFields) || '', (0, _fields.getFieldValueById)('password', commonFields) || '', (0, _fields.getFieldValueById)('accept-privacy', commonFields) || false, (0, _fields.getFieldValueById)('accept-communications', commonFields) || false, customFields, inviteToken).then(function () { if (inviteToken) { window.location = '/log-in'; } else { (0, _utils.hideElement)(form); (0, _utils.showAndFocusElement)(verificationMessage); } })["catch"](function (error) { (0, _utils.resetSubmit)(submit, submitText); if (errorState) { var _ref2, _error$graphQLErrors2, _error$graphQLErrors3; // if there isn't an error code, send an empty string so a generic error message appears var elementErrorCode = (_ref2 = error === null || error === void 0 ? void 0 : (_error$graphQLErrors2 = error.graphQLErrors) === null || _error$graphQLErrors2 === void 0 ? void 0 : (_error$graphQLErrors3 = _error$graphQLErrors2[0]) === null || _error$graphQLErrors3 === void 0 ? void 0 : _error$graphQLErrors3.code) !== null && _ref2 !== void 0 ? _ref2 : ''; var errorCode = getSignupErrorCode(elementErrorCode); (0, _utils.handleErrorNode)(errorMsgNode, errorState, errorCode, _constants.ERROR_ATTRIBUTE_PREFIX.SIGNUP, defaultErrorCopy); } }); }); }); } function asyncSignUpUser(email) { var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var password = arguments.length > 2 ? arguments[2] : undefined; var acceptPrivacy = arguments.length > 3 ? arguments[3] : undefined; var acceptCommunications = arguments.length > 4 ? arguments[4] : undefined; var customFields = arguments.length > 5 ? arguments[5] : undefined; var inviteToken = arguments.length > 6 ? arguments[6] : undefined; var variables = { email: email, name: name, acceptPrivacy: acceptPrivacy, acceptCommunications: acceptCommunications, authPassword: password, data: (0, _fields.getFieldsAsTypeKeys)(customFields), inviteToken: inviteToken || undefined, redirectPath: (0, _utils.getRedirectPath)() }; return _utils.userSystemsRequestClient.mutate({ mutation: _mutations.signupMutation, variables: variables }); } function asyncVerifyEmailToken(verifyToken) { return _utils.userSystemsRequestClient.mutate({ mutation: _mutations.verifyEmailMutation, variables: { verifyToken: verifyToken, redirectPath: (0, _utils.getRedirectPath)() } }); } /***/ }), /* 818 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleLogInLogOutButton = handleLogInLogOutButton; exports.asyncLogOutUser = asyncLogOutUser; var _utils = __webpack_require__(51); var _constants = __webpack_require__(36); var _mutations = __webpack_require__(82); /* globals window, document, HTMLButtonElement */ var logoutButtonQuerySelector = "[".concat(_constants.USYS_DATA_ATTRS.logout, "]"); function getLogoutButtons() { var logoutButtons = document.querySelectorAll(logoutButtonQuerySelector); return Array.prototype.slice.call(logoutButtons).filter(function (logoutButton) { return logoutButton instanceof HTMLButtonElement; }); } function handleGoToLoginClick() { if (window.Webflow.env('preview')) { return; } window.location = '/log-in'; } function handleLogOutButtonClick(event) { event.preventDefault(); asyncLogOutUser().then(function () { window.Webflow.location('/'); }); } function handleLogInLogOutButton() { getLogoutButtons().forEach(function (logoutButton) { if (document.cookie.split(';').some(function (cookie) { return cookie.indexOf(_constants.LOGGEDIN_COOKIE_NAME) > -1; })) { logoutButton.innerHTML = logoutButton.getAttribute(_constants.USYS_DATA_ATTRS.logout) || 'Log out'; logoutButton.removeEventListener('click', handleGoToLoginClick); logoutButton.addEventListener('click', handleLogOutButtonClick); } else if (!window.Webflow.env('design')) { logoutButton.innerHTML = logoutButton.getAttribute(_constants.USYS_DATA_ATTRS.login) || 'Log in'; logoutButton.removeEventListener('click', handleLogOutButtonClick); logoutButton.addEventListener('click', handleGoToLoginClick); } }); } function asyncLogOutUser() { return _utils.userSystemsRequestClient.mutate({ mutation: _mutations.logoutMutation }); } /***/ }), /* 819 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleResetPasswordForms = handleResetPasswordForms; exports.asyncRequestResetPassword = asyncRequestResetPassword; var _utils = __webpack_require__(51); var _constants = __webpack_require__(36); var _mutations = __webpack_require__(82); /* globals document, HTMLFormElement, HTMLInputElement */ var resetPasswordFormQuerySelector = "form[".concat(_constants.USYS_DATA_ATTRS.formType, "=\"").concat(_constants.USYS_FORM_TYPES.resetPassword, "\"]"); // error handling var errorState = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.formError, "]")); var defaultErrorCopy = _constants.resetPasswordErrorStates[_constants.RESET_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR].copy; var errorMsgNode = document.querySelector(".".concat(_constants.ERROR_MSG_CLASS)); var getResetPasswordErrorCode = function getResetPasswordErrorCode(error) { // right now we only have one error, this is for when add more var errorCode; switch (error) { default: errorCode = _constants.RESET_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR; } return errorCode; }; function getResetPasswordForms() { var resetPasswordForms = document.querySelectorAll(resetPasswordFormQuerySelector); return Array.prototype.slice.call(resetPasswordForms).filter(function (resetPasswordForm) { return resetPasswordForm instanceof HTMLFormElement; }); } function handleResetPasswordForms() { getResetPasswordForms().forEach(function (resetPasswordForm) { resetPasswordForm.addEventListener('submit', function (event) { event.preventDefault(); var form = event.currentTarget; var successMessage = document.querySelector(".".concat(_constants.USYS_DOM_CLASS_NAMES.formSuccess)); if (!(form instanceof HTMLFormElement)) { return; } (0, _utils.hideElement)(errorState); var emailInput = form.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.email, "\"]")); if (!(emailInput instanceof HTMLInputElement)) { return; } asyncRequestResetPassword(emailInput.value).then(function () { (0, _utils.hideElement)(form); (0, _utils.showAndFocusElement)(successMessage); })["catch"](function (error) { if (errorState) { var _ref, _error$graphQLErrors, _error$graphQLErrors$; // if there isn't an error code, send an empty string so a generic error message appears var elementErrorCode = (_ref = error === null || error === void 0 ? void 0 : (_error$graphQLErrors = error.graphQLErrors) === null || _error$graphQLErrors === void 0 ? void 0 : (_error$graphQLErrors$ = _error$graphQLErrors[0]) === null || _error$graphQLErrors$ === void 0 ? void 0 : _error$graphQLErrors$.code) !== null && _ref !== void 0 ? _ref : ''; var errorCode = getResetPasswordErrorCode(elementErrorCode); (0, _utils.handleErrorNode)(errorMsgNode, errorState, errorCode, _constants.ERROR_ATTRIBUTE_PREFIX.RESET_PASSWORD, defaultErrorCopy); } }); }); }); } function asyncRequestResetPassword(email) { return _utils.userSystemsRequestClient.mutate({ mutation: _mutations.resetPasswordMutation, variables: { email: email } }); } /***/ }), /* 820 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleUpdatePasswordForms = handleUpdatePasswordForms; exports.asyncRequestUpdatePassword = asyncRequestUpdatePassword; var _utils = __webpack_require__(51); var _constants = __webpack_require__(36); var _mutations = __webpack_require__(82); /* globals document, HTMLFormElement, HTMLInputElement, window */ var updatePasswordFormQuerySelector = "form[".concat(_constants.USYS_DATA_ATTRS.formType, "=\"").concat(_constants.USYS_FORM_TYPES.updatePassword, "\"]"); // error handling var errorState = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.formError, "]")); var defaultErrorCopy = _constants.updatePasswordErrorStates[_constants.UPDATE_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR].copy; var errorMsgNode = document.querySelector(".".concat(_constants.ERROR_MSG_CLASS)); var getUpdatePasswordErrorCode = function getUpdatePasswordErrorCode(error) { var errorCode; switch (error) { case 'UsysInvalidPassword': errorCode = _constants.UPDATE_PASSWORD_UI_ERROR_CODES.WEAK_PASSWORD; break; default: errorCode = _constants.UPDATE_PASSWORD_UI_ERROR_CODES.GENERAL_ERROR; } return errorCode; }; function getUpdatePasswordForms() { var updatePasswordForms = document.querySelectorAll(updatePasswordFormQuerySelector); return Array.prototype.slice.call(updatePasswordForms).filter(function (updatePasswordForm) { return updatePasswordForm instanceof HTMLFormElement; }); } function handleUpdatePasswordForms() { getUpdatePasswordForms().forEach(function (updatePasswordForm) { updatePasswordForm.addEventListener('submit', function (event) { event.preventDefault(); var form = event.currentTarget; var successMessage = document.querySelector(".".concat(_constants.USYS_DOM_CLASS_NAMES.formSuccess)); if (!(form instanceof HTMLFormElement)) { return; } var errorElement = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.formError, "]")); (0, _utils.hideElement)(errorElement); var passwordInput = form.querySelector("input[".concat(_constants.USYS_DATA_ATTRS.inputType, "=\"").concat(_constants.USYS_INPUT_TYPES.password, "\"]")); if (!(passwordInput instanceof HTMLInputElement)) { return; } var params = new URLSearchParams(window.location.search); var token = params.get('token') || ''; asyncRequestUpdatePassword(passwordInput.value, token).then(function () { (0, _utils.hideElement)(form); (0, _utils.showAndFocusElement)(successMessage); })["catch"](function (error) { if (errorState) { var _ref, _error$graphQLErrors, _error$graphQLErrors$; // if there isn't an error code, send an empty string so a generic error message appears var elementErrorCode = (_ref = error === null || error === void 0 ? void 0 : (_error$graphQLErrors = error.graphQLErrors) === null || _error$graphQLErrors === void 0 ? void 0 : (_error$graphQLErrors$ = _error$graphQLErrors[0]) === null || _error$graphQLErrors$ === void 0 ? void 0 : _error$graphQLErrors$.code) !== null && _ref !== void 0 ? _ref : ''; var errorCode = getUpdatePasswordErrorCode(elementErrorCode); (0, _utils.handleErrorNode)(errorMsgNode, errorState, errorCode, _constants.ERROR_ATTRIBUTE_PREFIX.UPDATE_PASSWORD, defaultErrorCopy); } }); }); }); } function asyncRequestUpdatePassword(authPassword, token) { return _utils.userSystemsRequestClient.mutate({ mutation: _mutations.updatePasswordMutation, variables: { authPassword: authPassword, token: token } }); } /***/ }), /* 821 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault(__webpack_require__(41)); Object.defineProperty(exports, "__esModule", { value: true }); exports.handleUserSubscriptionLists = handleUserSubscriptionLists; exports.handleUserAccount = handleUserAccount; var _constants = __webpack_require__(36); var _constants2 = __webpack_require__(19); var _RenderingUtils = __webpack_require__(150); var _utils = __webpack_require__(51); var _queries = __webpack_require__(375); var _mutations = __webpack_require__(82); var _rendering = __webpack_require__(822); var _fields = __webpack_require__(374); /* globals document window HTMLFormElement */ function asyncGetUserSubscriptions() { return _utils.userSystemsRequestClient.query({ query: _queries.getUserSubscriptions }); } function asyncGetUser(dataFields) { return _utils.userSystemsRequestClient.query({ query: (0, _queries.buildGetLoggedInUserQuery)(dataFields) }); } function asyncSubmitUserData(dataFields) { // get variables in correct shape var data = (0, _fields.getFieldsAsTypeKeys)(dataFields); return _utils.userSystemsRequestClient.mutate({ mutation: (0, _mutations.buildUpdateUsysUserDataMutation)(dataFields), variables: { data: data } }); } var subscriptionListSelector = "[".concat(_constants.USYS_DATA_ATTRS.userSubscriptions, "]"); var EmptyStateSelector = "[".concat(_constants.USYS_DATA_ATTRS.userSubscriptionsEmptyState, "]"); var templateSelector = "script[type='".concat(_constants2.WF_TEMPLATE_TYPE, "']"); function getUserSubscriptionLists() { var subscriptionLists = document.querySelectorAll(subscriptionListSelector); return Array.from(subscriptionLists); } var userAccountFormQuerySelector = "form[".concat(_constants.USYS_DATA_ATTRS.formType, "=\"").concat(_constants.USYS_FORM_TYPES.account, "\"]"); function getUserAccountForms() { var accountForms = document.querySelectorAll(userAccountFormQuerySelector); return Array.prototype.slice.call(accountForms).filter(function (accountForm) { return accountForm instanceof HTMLFormElement; }); } function handleUserSubscriptionLists(domParser) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { // The usys Apollo client does not work in the Designer and will error out. // We are using mocked data in the Designer and Preview mode instead. return; } var subscriptionLists = getUserSubscriptionLists(); // If we have a list to render, query for the data if (subscriptionLists.length > 0) { asyncGetUserSubscriptions().then(function (response) { var _response$data, _response$data$databa; var userSubscriptions = response === null || response === void 0 ? void 0 : (_response$data = response.data) === null || _response$data === void 0 ? void 0 : (_response$data$databa = _response$data.database) === null || _response$data$databa === void 0 ? void 0 : _response$data$databa.userSubscriptions; var noUserSubscriptions = userSubscriptions.length === 0; if (noUserSubscriptions) return renderEmptySubscriptionList(subscriptionLists); renderUserSubscriptionLists(subscriptionLists, domParser, userSubscriptions); })["catch"](function (error) { var graphQLErrors = (error === null || error === void 0 ? void 0 : error.graphQLErrors) || []; var errorsHandled = graphQLErrors.reduce(function (hasUnhandledError, graphQLError) { if ((graphQLError === null || graphQLError === void 0 ? void 0 : graphQLError.code) === 'NoCommerceCustomerFound') { renderEmptySubscriptionList(subscriptionLists); return hasUnhandledError; } return false; }, graphQLErrors.length > 0); if (!errorsHandled) throw error; }); } } function renderEmptySubscriptionList(subscriptionListElements) { subscriptionListElements.forEach(function (subscriptionListElement) { var EmptyStateElement = subscriptionListElement.querySelector(EmptyStateSelector); (0, _utils.showElement)(EmptyStateElement); }); } function renderUserSubscriptionLists(subscriptionListElements, domParser) { var userSubscriptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; subscriptionListElements.forEach(function (subscriptionListElement) { var EmptyStateElement = subscriptionListElement.querySelector(EmptyStateSelector); (0, _utils.hideElement)(EmptyStateElement); var templateScript = subscriptionListElement.querySelector(templateSelector); if (!templateScript) { return; } var templateId = templateScript.getAttribute('id'); if (!templateId) { return; } var listWrapperElement = document.querySelector("[".concat(_constants2.WF_TEMPLATE_ID_DATA_KEY, "='").concat(templateId, "']")); if (!(listWrapperElement instanceof Element)) { // If we don't have a wrapper to append items to, return return; } var templateElement = domParser.getHtmlFromString(templateScript.innerHTML); if (!(templateElement instanceof Element)) { // If there is no template content present, return return; } userSubscriptions.forEach(function (subscription) { var templateClone = templateElement.cloneNode(true); listWrapperElement.appendChild(templateClone); (0, _RenderingUtils.walkDOM)(templateClone, function (node) { (0, _rendering.applyBindingsAndConditionalVisibility)(node, subscription); // Add handler for cancel subscription button. Done here since we have access to subscription id. if (node.hasAttribute(_constants.USYS_DATA_ATTRS.subscriptionCancel)) { addCancelButtonEventListener(node, subscription._id); } }); }); }); } function addCancelButtonEventListener(node, subscriptionId) { node.addEventListener('click', function () { _utils.userSystemsRequestClient.mutate({ mutation: _mutations.cancelSubscriptionMutation, variables: { subscriptionId: subscriptionId } }).then(function () { // Refresh so can refetch and rerender with updated status of subscription after cancelation // Ultimately we should probably do a re fetch adn re render render, but will require replacing existing nodes window.location.reload(); }); }); } function handleUserAccount() { // UserAccountWrapper var userAccount = document.querySelector("[".concat(_constants.USYS_DATA_ATTRS.userAccount, "]")); if (!userAccount || window.Webflow.env('design') || window.Webflow.env('preview')) { return; } var successMessage = userAccount.querySelector('.' + _constants.USYS_DOM_CLASS_NAMES.formSuccess); var errorMessage = userAccount.querySelector('.' + _constants.USYS_DOM_CLASS_NAMES.formError); var userAccountForms = getUserAccountForms(); if (userAccountForms.length > 0) { var fields = (0, _fields.getFieldsForFetch)(userAccountForms); asyncGetUser(fields).then(function (response) { var _response$data2, _response$data2$site; var siteUser = response === null || response === void 0 ? void 0 : (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : (_response$data2$site = _response$data2.site) === null || _response$data2$site === void 0 ? void 0 : _response$data2$site.siteUser; if (!siteUser) return; var userData = siteUser.data; userAccountForms.forEach(function (accountForm) { (0, _RenderingUtils.walkDOM)(userAccount, function (node) { (0, _rendering.applyUserAccountData)(node, userData); }); if (!(accountForm instanceof HTMLFormElement)) return; var submit = accountForm.querySelector('input[type="submit"]'); accountForm.addEventListener('submit', function (event) { event.preventDefault(); var form = event.currentTarget; if (!(form instanceof HTMLFormElement)) { return; } (0, _utils.hideElement)(successMessage); (0, _utils.hideElement)(errorMessage); var submitText = (0, _utils.disableSubmit)(submit); var commonFields = (0, _fields.getCommonFields)(form, ['name', 'accept-communications']); var customFields = (0, _fields.getCustomFields)(form); asyncSubmitUserData([].concat((0, _toConsumableArray2["default"])(commonFields), (0, _toConsumableArray2["default"])(customFields))).then(function (res) { var newUserData = res && res.data && res.data.usysUpdateUserData && res.data.usysUpdateUserData.data; if (newUserData) { addResetEventListener(accountForm, userAccount, newUserData); } successMessage && (0, _utils.showAndFocusElement)(successMessage); })["catch"](function (err) { console.error(err); errorMessage && (0, _utils.showAndFocusElement)(errorMessage); })["finally"](function () { (0, _utils.resetSubmit)(submit, submitText); }); }); accountForm.querySelectorAll('input').forEach(function (input) { return input.addEventListener('input', function () { (0, _utils.hideElement)(successMessage); (0, _utils.hideElement)(errorMessage); }); }); addResetEventListener(accountForm, userAccount, userData); }); }); } } var addResetEventListener = function addResetEventListener(accountForm, userAccount, userData) { accountForm.addEventListener('reset', function (event) { event.preventDefault(); var form = event.currentTarget; if (!(form instanceof HTMLFormElement)) return; if (userData) { // apply saved user account data (0, _RenderingUtils.walkDOM)(userAccount, function (node) { (0, _rendering.applyUserAccountData)(node, userData); }); } }); }; /***/ }), /* 822 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.applyBindingsAndConditionalVisibility = applyBindingsAndConditionalVisibility; exports.applyUserAccountData = applyUserAccountData; var _escape = _interopRequireDefault(__webpack_require__(225)); var _get = _interopRequireDefault(__webpack_require__(60)); var _Transformers = __webpack_require__(368); var _RenderingUtils = __webpack_require__(150); var _constants = __webpack_require__(111); var _constants2 = __webpack_require__(19); var _constants3 = __webpack_require__(36); /* globals window */ var getPropertyMutator = function getPropertyMutator(bindingProperty) { if (typeof mutators[bindingProperty] === 'function') { return mutators[bindingProperty]; } return null; }; var mutators = { innerHTML: function innerHTML(node, type, value) { var valueString = value != null ? String(value) : ''; if (_constants.SHARED_ALLOWED_FIELD_TYPES.innerHTML[type] === 'innerHTML') { node.innerHTML = valueString; } else if (_constants.SHARED_ALLOWED_FIELD_TYPES.innerHTML[type] === 'innerText') { node.innerHTML = (0, _escape["default"])(valueString); } if (node.innerHTML) { node.classList.remove('w-dyn-bind-empty'); } }, src: function src(node, type, value) { if (value && value.url) { node.setAttribute('src', value.url); } node.classList.remove('w-dyn-bind-empty'); } }; var bindDataToNode = function bindDataToNode(node, data, bindings) { bindings.forEach(function (binding) { Object.keys(binding).forEach(function (bindingProperty) { var bindingValue = binding[bindingProperty]; var dataPath = bindingValue.dataPath, filter = bindingValue.filter, timezone = bindingValue.timezone, type = bindingValue.type; var rawValue = (0, _get["default"])(data, dataPath); var transformedValue = (0, _Transformers.transformers)(rawValue, filter, { timezone: timezone, collectionSlugMap: {}, currencySettings: window.__WEBFLOW_CURRENCY_SETTINGS }); var propertyMutator = getPropertyMutator(bindingProperty); if (propertyMutator) { propertyMutator(node, type, transformedValue); } }); }); }; function applyBindingsAndConditionalVisibility(node, data) { // Apply bindings if (node.hasAttribute(_constants2.WF_BINDING_DATA_KEY)) { var bindingsStr = node.getAttribute(_constants2.WF_BINDING_DATA_KEY) || ''; var bindings = JSON.parse(decodeURIComponent(bindingsStr)); if (bindings) { bindDataToNode(node, data, bindings); } } // Apply conditional visibility if (node.hasAttribute(_constants2.WF_CONDITION_DATA_KEY)) { var conditionsStr = node.getAttribute(_constants2.WF_CONDITION_DATA_KEY) || ''; var conditionData = JSON.parse(decodeURIComponent(conditionsStr)); if (conditionData) { (0, _RenderingUtils.applyConditionToNode)(node, data, conditionData); } } } function applyUserAccountData(node, userData) { // Apply user name, checkbox, and custom fields if (node.hasAttribute(_constants3.USYS_DATA_ATTRS.field)) { var field = node.getAttribute(_constants3.USYS_DATA_ATTRS.field) || ''; var fieldType = node.getAttribute(_constants3.USYS_DATA_ATTRS.fieldType) || ''; if (fieldType === 'Option') { node.value = (0, _get["default"])(userData, ["f_".concat(field), 'slug'], ''); return; } var dataPath = field && field.includes(_constants3.RESERVED_USER_PREFIX) ? _constants3.KEY_FROM_RESERVED_USER_FIELD[field] : "f_".concat(field); var value = (0, _get["default"])(userData, [dataPath], ''); if (node.type === 'checkbox') { node.checked = Boolean(value); return; } node.value = value; } // Apply user email, if not empty if (node.hasAttribute(_constants3.USYS_DATA_ATTRS.inputType)) { var _dataPath = node.getAttribute(_constants3.USYS_DATA_ATTRS.inputType) || ''; var _value = (0, _get["default"])(userData, [_dataPath], ''); if (_value) { node.value = _value; } } } /***/ }), /* 823 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleFields = handleFields; var _utils = __webpack_require__(51); var _queries = __webpack_require__(375); var _constants = __webpack_require__(36); //@wf-will-never-add-flow-to-this-file /* global HTMLInputElement, HTMLSelectElement, document */ function asyncGetFieldValidations() { return _utils.userSystemsRequestClient.query({ query: _queries.getFieldValidations }); } function setRequired(input, userField) { if (userField.required == null) return; input.required = userField.required; } var inputAttributeMap = { minLength: 'minlength', maxLength: 'maxlength', min: 'min', max: 'max', step: 'step' }; function setValidations(input, userField) { if (userField.validations == null) return; Object.keys(userField.validations).map(function (attr) { var val = userField.validations[attr]; if (attr === 'options' && Array.isArray(val) && input instanceof HTMLSelectElement) { val.forEach(function (option) { if (option.slug && option.name) { var opt = document.createElement('option'); opt.value = option.slug; opt.innerHTML = option.name; input.appendChild(opt); } }); } if (val !== null && inputAttributeMap[attr]) { input.setAttribute(inputAttributeMap[attr], String(val)); } if (attr === 'maxLength' && val === null) { input.removeAttribute('maxlength'); } }); } function setUserFieldValidationAttr(input, userField) { setRequired(input, userField); setValidations(input, userField); } function matchInputToData(input, userFieldData) { var fieldId = input.getAttribute(_constants.USYS_DATA_ATTRS.field); if (!fieldId) { return null; } for (var i = 0; i < userFieldData.length; i++) { if (userFieldData[i].id === fieldId) { return userFieldData[i]; } } return null; } function setFieldValidation(customFieldInputs) { asyncGetFieldValidations().then(function (response) { var userFieldData = response.data.site.usysFieldSchema; if (!userFieldData) return; for (var i = 0; i < customFieldInputs.length; i++) { var input = customFieldInputs[i]; if (!input || !(input instanceof HTMLInputElement || input instanceof HTMLSelectElement) || input.getAttribute(_constants.USYS_DATA_ATTRS.fieldType) === 'Bool') { continue; } var userField = matchInputToData(input, userFieldData); if (!userField) continue; setUserFieldValidationAttr(input, userField); } })["catch"](function (err) { console.error(err); }); } function getMatchingSiblings(e, pred) { var siblings = []; if (e.target.parentNode === null) { return siblings; } [].slice.call(e.target.parentNode.children).forEach(function (element) { if (pred(element)) { siblings.push(element); } }); return siblings; } function handleFields() { var customFieldInputs = document.querySelectorAll("[".concat(_constants.USYS_DATA_ATTRS.field, "]")); if (customFieldInputs.length > 0) { setFieldValidation(customFieldInputs); } var CHECKBOX_CLASS_NAME = 'w-checkbox-input'; var CHECKED_CLASS = 'w--redirected-checked'; var customCheckboxes = document.querySelectorAll("form[".concat(_constants.USYS_DATA_ATTRS.formType, "] input[type=\"checkbox\"]:not(") + CHECKBOX_CLASS_NAME + ')'); customCheckboxes.forEach(function (checkbox) { checkbox.addEventListener('change', function (e) { getMatchingSiblings(e, function (element) { return element.classList.contains(CHECKBOX_CLASS_NAME); }).forEach(function (sibling) { sibling.classList.toggle(CHECKED_CLASS); }); }); }); } /***/ }), /* 824 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(41)); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n mutation AddToCart($skuId: String!, $count: Int!) {\n ecommerceUpdateCartItem(sku: $skuId, count: $count) {\n ok\n itemId\n itemCount\n }\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.register = exports.renderCart = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var _mergeWith = _interopRequireDefault(__webpack_require__(825)); var _forEach = _interopRequireDefault(__webpack_require__(179)); var _constants = __webpack_require__(19); var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _commerceUtils = __webpack_require__(37); var _stripeStore = __webpack_require__(109); var _debug = _interopRequireDefault(__webpack_require__(80)); var _webPaymentsEvents = __webpack_require__(226); var _rendering = __webpack_require__(151); var _defaultTo = _interopRequireDefault(__webpack_require__(272)); /* globals document, window, Element, HTMLElement, CustomEvent, HTMLFormElement, HTMLInputElement, HTMLCollection, HTMLAnchorElement */ var _constants$CART_TYPES = _constants.CART_TYPES, MODAL = _constants$CART_TYPES.MODAL, LEFT_SIDEBAR = _constants$CART_TYPES.LEFT_SIDEBAR, RIGHT_SIDEBAR = _constants$CART_TYPES.RIGHT_SIDEBAR, LEFT_DROPDOWN = _constants$CART_TYPES.LEFT_DROPDOWN, RIGHT_DROPDOWN = _constants$CART_TYPES.RIGHT_DROPDOWN; var _constants$COMMERCE_C = _constants.COMMERCE_CART_PUBLISHED_SITE_ACTIONS, REMOVE_ITEM = _constants$COMMERCE_C.REMOVE_ITEM, UPDATE_ITEM_QUANTITY = _constants$COMMERCE_C.UPDATE_ITEM_QUANTITY; var updateItemQuantityMutation = _graphqlTag["default"](_templateObject()); var forEachElementInForm = function forEachElementInForm(form, callback) { if (form instanceof HTMLFormElement && form.elements instanceof HTMLCollection) { Array.from(form.elements).forEach(function (input) { if (input instanceof HTMLInputElement) { callback(input); } }); } }; var disableAllFormElements = function disableAllFormElements(form) { forEachElementInForm(form, function (input) { input.disabled = true; }); }; var enableAllFormElements = function enableAllFormElements(form) { forEachElementInForm(form, function (input) { input.disabled = false; }); }; // Recursively searches up the tree to find the remove link anchor element var searchTreeForRemoveLink = function searchTreeForRemoveLink(element) { if (element instanceof Element && element.hasAttribute(_constants.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR) && element.getAttribute(_constants.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR) === REMOVE_ITEM && element.hasAttribute(_constants.DATA_ATTR_COMMERCE_SKU_ID)) { return element; } else { return element instanceof Element && element.parentElement ? searchTreeForRemoveLink(element.parentElement) : false; } }; // Matchers: var isItemRemovedEvent = function isItemRemovedEvent(event) { return searchTreeForRemoveLink(event.target); }; var isItemQuantityChangedEvent = function isItemQuantityChangedEvent(event) { return event.target instanceof Element && event.target.hasAttribute(_constants.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR) && event.target.getAttribute(_constants.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR) === UPDATE_ITEM_QUANTITY && event.target.hasAttribute(_constants.DATA_ATTR_COMMERCE_SKU_ID) && event.target; }; var isItemQuantityInputEvent = function isItemQuantityInputEvent(event) { return event.target instanceof Element && event.target.hasAttribute(_constants.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR) && event.target.getAttribute(_constants.COMMERCE_CART_PUBLISHED_SITE_ACTION_ATTR) === UPDATE_ITEM_QUANTITY && event.target.hasAttribute(_constants.DATA_ATTR_COMMERCE_SKU_ID) && event.target; }; var isCartButtonEvent = function isCartButtonEvent(_ref) { var target = _ref.target; var cartOpenLink = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_OPEN_LINK, target); var cartCloseLink = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CLOSE_LINK, target); if (cartOpenLink) { return cartOpenLink; } else if (cartCloseLink) { return cartCloseLink; } else { return false; } }; var isCartCheckoutButtonEvent = function isCartCheckoutButtonEvent(_ref2) { var target = _ref2.target; var cartCheckoutButton = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CHECKOUT_BUTTON, target); if (cartCheckoutButton) { return cartCheckoutButton; } else { return false; } }; var isCartWrapperEvent = function isCartWrapperEvent(_ref3) { var target = _ref3.target; return target instanceof Element && target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CART_WRAPPER && target; }; var isCartFormEvent = function isCartFormEvent(_ref4) { var target = _ref4.target; return target instanceof Element && target.hasAttribute(_constants.DATA_ATTR_NODE_TYPE) && target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CART_FORM; }; var getFormElement = function getFormElement(element) { if (!(element instanceof Element)) { return null; } return element instanceof HTMLFormElement ? element : getFormElement(element.parentElement); }; // Event handlers: var handleItemRemoved = function handleItemRemoved(event, apolloClient) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } event.preventDefault(); var currentTarget = event.currentTarget; if (!(currentTarget instanceof HTMLElement)) { return; } var commerceCartWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, currentTarget); if (!(commerceCartWrapper instanceof Element)) { return; } var errorElement = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_ERROR, commerceCartWrapper); if (!(errorElement instanceof Element)) { return; } errorElement.style.setProperty('display', 'none'); var skuId = currentTarget.getAttribute(_constants.DATA_ATTR_COMMERCE_SKU_ID); var count = 0; var form = getFormElement(currentTarget); disableAllFormElements(form); var cartItem = (0, _commerceUtils.findClosestElementByClassName)('w-commerce-commercecartitem', currentTarget); if (!(cartItem instanceof Element)) { return; } (0, _commerceUtils.addLoadingCallback)((0, _commerceUtils.setElementLoading)(cartItem)); var removeLinkElement = searchTreeForRemoveLink(event.target); // It always will be an anchor element here, but this is mostly a Flow-complaint-fixer if (removeLinkElement instanceof HTMLAnchorElement) { // Disable click events on the Remove link removeLinkElement.style.pointerEvents = 'none'; } apolloClient.mutate({ mutation: updateItemQuantityMutation, variables: { skuId: skuId, count: count } }).then( // eslint-disable-next-line no-unused-vars function (data) { (0, _commerceUtils.triggerRender)(null); }, function (error) { _debug["default"].error(error); errorElement.style.removeProperty('display'); var errorMsg = errorElement.querySelector(_constants.CART_ERROR_MESSAGE_SELECTOR); if (!errorMsg) { return; } // Only general error should be triggered when removing items var errorText = errorMsg.getAttribute(_constants.CART_GENERAL_ERROR_MESSAGE) || ''; errorMsg.textContent = errorText; (0, _commerceUtils.triggerRender)(error); }).then(function () { if (removeLinkElement instanceof HTMLAnchorElement) { // Re-enable click events on the Remove link removeLinkElement.style.pointerEvents = 'auto'; } // When cart is becoming empty, focus on the first thing that can be focused var cartContainer = currentTarget.closest('.w-commerce-commercecartcontainer'); if (cartContainer instanceof HTMLElement) { var itemContainer = cartContainer.getElementsByClassName('w-commerce-commercecartitem'); var focusableContent = getFocusableElements(cartContainer); if (itemContainer.length === 1 && focusableContent.length > 0) { focusableContent[0].focus(); } } }); }; var handleItemQuantityChanged = function handleItemQuantityChanged(event, apolloClient) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } event.preventDefault(); var currentTarget = event.currentTarget; if (!(currentTarget instanceof HTMLInputElement)) { return; } if (currentTarget.form instanceof HTMLFormElement && currentTarget.form.reportValidity() === false) { return; } var commerceCartWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, currentTarget); if (!(commerceCartWrapper instanceof Element)) { return; } var errorElement = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_ERROR, commerceCartWrapper); if (!(errorElement instanceof Element)) { return; } errorElement.style.setProperty('display', 'none'); var cartItem = currentTarget.parentElement; if (!(cartItem instanceof Element)) { return; } (0, _commerceUtils.addLoadingCallback)((0, _commerceUtils.setElementLoading)(cartItem)); var skuId = currentTarget.getAttribute(_constants.DATA_ATTR_COMMERCE_SKU_ID); var count = currentTarget.value; disableAllFormElements(currentTarget.form); apolloClient.mutate({ mutation: updateItemQuantityMutation, variables: { skuId: skuId, count: count } }).then( // eslint-disable-next-line no-unused-vars function (data) { enableAllFormElements(currentTarget.form); (0, _commerceUtils.triggerRender)(null); }, function (error) { enableAllFormElements(currentTarget.form); _debug["default"].error(error); errorElement.style.removeProperty('display'); var errorMsg = errorElement.querySelector(_constants.CART_ERROR_MESSAGE_SELECTOR); if (!errorMsg) { return; } var errorType = error.graphQLErrors && error.graphQLErrors.length > 0 && error.graphQLErrors[0].code === 'OutOfInventory' ? 'quantity' : 'general'; var errorText = errorMsg.getAttribute((0, _constants.getCartErrorMessageForType)(errorType)) || ''; errorMsg.textContent = errorText; (0, _commerceUtils.triggerRender)(error); }); }; var handleItemInputChanged = function handleItemInputChanged(event) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } event.preventDefault(); var currentTarget = event.currentTarget; if (!(currentTarget instanceof HTMLInputElement)) { return; } if (currentTarget.validity.valid === false && currentTarget.form instanceof HTMLFormElement) { currentTarget.form.reportValidity(); } }; var handleChangeCartStateEvent = function handleChangeCartStateEvent(event) { if (!(event.currentTarget instanceof Element) || !(event instanceof CustomEvent)) { return; } var currentTarget = event.currentTarget, detail = event.detail; var isOpen = currentTarget.hasAttribute(_constants.CART_OPEN); var shouldOpen = detail && detail.open != null ? detail.open : !isOpen; var wrapper = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER, currentTarget); if (!wrapper) { return; } var cartContainer = getCartContainer(wrapper); if (!cartContainer) { return; } var cartElement = wrapper.parentElement; if (!cartElement) { return; } var cartType = cartElement.getAttribute(_constants.CART_TYPE); var duration = (0, _defaultTo["default"])(cartElement.getAttribute(_constants.DATA_ATTR_ANIMATION_DURATION), _constants.ANIMATION_DURATION_DEFAULT) + 'ms'; var containerEasing = (0, _defaultTo["default"])(cartElement.getAttribute(_constants.DATA_ATTR_ANIMATION_EASING), _constants.ANIMATION_EASING_DEFAULT); var wrapperTransition = "opacity ".concat(duration, " ease 0ms"); var containerOutDelay = '50ms'; var shouldAnimate = duration !== '0ms'; var containerStepA; var containerStepB; switch (cartType) { case MODAL: { containerStepA = { scale: 0.95 }; containerStepB = { scale: 1.0 }; break; } case LEFT_SIDEBAR: { containerStepA = { x: -30 }; containerStepB = { x: 0 }; break; } case RIGHT_SIDEBAR: { containerStepA = { x: 30 }; containerStepB = { x: 0 }; break; } case LEFT_DROPDOWN: case RIGHT_DROPDOWN: { containerStepA = { y: -10 }; containerStepB = { y: 0 }; break; } } if (shouldOpen) { document.addEventListener('keydown', handleCartFocusTrap); currentTarget.setAttribute(_constants.CART_OPEN, ''); wrapper.style.removeProperty('display'); // Ensures that the first focusable element in the cart gets focus // on cart launching. var focusableContent = getFocusableElements(cartContainer); if (focusableContent.length > 0) { focusableContent[0].focus(); } if (shouldAnimate && !isOpen) { window.Webflow.tram(wrapper).add(wrapperTransition).set({ opacity: 0 }).start({ opacity: 1 }); window.Webflow.tram(cartContainer).add("transform ".concat(duration, " ").concat(containerEasing, " 0ms")).set(containerStepA).start(containerStepB); } } else { document.removeEventListener('keydown', handleCartFocusTrap); currentTarget.removeAttribute(_constants.CART_OPEN); if (shouldAnimate) { window.Webflow.tram(wrapper).add(wrapperTransition).start({ opacity: 0 }).then(function () { wrapper.style.display = 'none'; window.Webflow.tram(cartContainer).stop(); }); window.Webflow.tram(cartContainer).add("transform ".concat(duration, " ").concat(containerEasing, " ").concat(containerOutDelay)).start(containerStepA); } else { wrapper.style.display = 'none'; } var cartOpenButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_OPEN_LINK, cartElement); if (cartOpenButton instanceof Element) { cartOpenButton.focus(); } } }; var handleCartButton = function handleCartButton(event) { // Don't handle events when we're in design mode if (window.Webflow.env('design')) { return; } var currentTarget = event.currentTarget, type = event.type; if (!(currentTarget instanceof Element)) { return; } var commerceCartWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, currentTarget); if (!(commerceCartWrapper instanceof Element)) { return; } var cartContainerWrapper = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER, commerceCartWrapper); var evt; if (type === 'click' && (currentTarget.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CART_CLOSE_LINK || currentTarget.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CART_OPEN_LINK && !commerceCartWrapper.hasAttribute(_constants.DATA_ATTR_OPEN_ON_HOVER))) { evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true }); if (cartContainerWrapper && currentTarget.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CART_CLOSE_LINK) { cartContainerWrapper.removeEventListener('mouseleave', handleCartContainerLeave); commerceCartWrapper.removeEventListener('mouseleave', handleCartContainerLeave); } } else if (type === 'mouseover' && commerceCartWrapper.hasAttribute(_constants.DATA_ATTR_OPEN_ON_HOVER) && currentTarget.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CART_OPEN_LINK) { evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true, detail: { open: true } }); if (cartContainerWrapper) { cartContainerWrapper.addEventListener('mouseleave', handleCartContainerLeave); currentTarget.addEventListener('mouseleave', handleCartContainerLeave); } } if (evt) { commerceCartWrapper.dispatchEvent(evt); } }; var handleCartCheckoutButton = function handleCartCheckoutButton(event) { // Don't want to continue with validation in preview mode if (window.Webflow.env('preview')) { return; } event.preventDefault(); var checkoutButton = event.currentTarget; if (!(checkoutButton instanceof Element)) { return; } if (!(0, _commerceUtils.isProtocolHttps)()) { window.alert('This site is currently unsecured so you cannot enter checkout.'); return; } var loadingText = checkoutButton.getAttribute(_constants.DATA_ATTR_LOADING_TEXT); var buttonText = checkoutButton.innerHTML; checkoutButton.innerHTML = loadingText ? loadingText : _constants.CART_CHECKOUT_LOADING_TEXT_DEFAULT; var commerceCartWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, checkoutButton); if (!(commerceCartWrapper instanceof Element)) { return; } // To determine if we should continue with checkout, we check for the existence of // either the Stripe publishable key (only added when Stripe is enabled), or the // PayPal script element. If neither exists, we want to block checkout, as this means // no payment gateway has been enabled, and therefore, checkout cannot be enabled. // In the future, we may need to expand this to be more comprehensive, if we allow // for free orders on sites without a payment gateway attached, or if/when we add // more possible payment gateways. var publishableKey = checkoutButton.getAttribute(_constants.DATA_ATTR_PUBLISHABLE_KEY); var paypalElement = document.querySelector("[".concat(_constants.PAYPAL_ELEMENT_INSTANCE, "]")); if (!publishableKey && !paypalElement) { var errorElement = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_ERROR, commerceCartWrapper); if (!(errorElement instanceof Element)) { return; } errorElement.style.setProperty('display', 'none'); errorElement.style.removeProperty('display'); var errorMsg = errorElement.querySelector('.w-cart-error-msg'); if (!errorMsg) { return; } // Render checkout error message var errorText = errorMsg.getAttribute("data-w-cart-checkout-error") || ''; errorMsg.textContent = errorText; checkoutButton.innerHTML = buttonText ? buttonText : _constants.CART_CHECKOUT_BUTTON_TEXT_DEFAULT; return; } if (!(checkoutButton instanceof HTMLAnchorElement)) { checkoutButton.innerHTML = buttonText ? buttonText : _constants.CART_CHECKOUT_BUTTON_TEXT_DEFAULT; return; } window.location = checkoutButton.href; }; var handleSubmitForm = function handleSubmitForm(event) { if (window.Webflow.env('preview')) { return; } event.preventDefault(); }; var handleCartContainerLeave = function handleCartContainerLeave(event) { var target = event.target, relatedTarget = event.relatedTarget; if (!(target instanceof Element) || !(relatedTarget instanceof Element)) { return; } var parentElement = target.parentElement; if (!(parentElement instanceof Element)) { return; } // Don't want to close cart if switching between the button and the container var cartWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, relatedTarget); var cartContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CONTAINER, relatedTarget); if (cartWrapper || cartContainer) { return; } var evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true, detail: { open: false } }); parentElement.dispatchEvent(evt); cartWrapper && cartWrapper instanceof Element && cartWrapper.removeEventListener('mouseleave', handleCartContainerLeave); cartContainer && cartContainer instanceof Element && cartContainer.removeEventListener('mouseleave', handleCartContainerLeave); }; var cartContainerStates = []; var handlePreviewMode = function handlePreviewMode() { // When we change to preview mode, we start by getting all of the cart wrappers on the page var cartContainerElements = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CONTAINER_WRAPPER); cartContainerElements.forEach(function (element) { // We then store the container element and its state in the designer var wasOpen = element.style.display !== 'none'; cartContainerStates.push({ element: element, wasOpen: wasOpen }); // If it was open, we then dispatch the cart change event on the wrapper outside // to mirror what the functionality is in the `handleCartButton` function, so that // when the user tries to close the cart in the preview, it works as expected if (wasOpen) { var evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true, detail: { open: true } }); var parentElement = element.parentElement; if (parentElement) { parentElement.dispatchEvent(evt); } } }); }; var handleDesignMode = function handleDesignMode() { // When we change back to design mode, we iterate over all the stored elements and states // and return them back to what they were when the user changed to preview mode. // While it would be nice if we could update the state that's stored in the designer, // this would require some ugly hacks to access the outer frame of the designer. cartContainerStates.forEach(function (_ref5) { var wrapper = _ref5.element, wasOpen = _ref5.wasOpen; // Remove quick animation style data window.Webflow.tram(wrapper).destroy(); wrapper.style.opacity = '1'; var cartContainer = getCartContainer(wrapper); if (cartContainer) { window.Webflow.tram(cartContainer).destroy(); cartContainer.style.transform = ''; } // Reset the wrapper display property if (wasOpen) { wrapper.style.removeProperty('display'); } else { wrapper.style.display = 'none'; } // We reset the associated outer wrapper's state, so that we're back exactly to the state // of the DOM as it was in the designer. var cartElement = wrapper.parentElement; if (cartElement) { cartElement.removeAttribute(_constants.CART_OPEN); } }); // We then clear out the states after the iteration has completed. It's possible we could keep them, and then // do some diff-ing or something so we don't have to iterate over them again in `handlePreviewMode`, but I think // that would be more computational work than just re-querying the DOM. cartContainerStates = []; }; var doForAllMatchingClass = function doForAllMatchingClass(cart, className, fn) { return Array.from(cart.getElementsByClassName(className)).forEach(fn); }; var showCartDefaultState = function showCartDefaultState(cart) { doForAllMatchingClass(cart, 'w-commerce-commercecartemptystate', _commerceUtils.hideElement); doForAllMatchingClass(cart, 'w-commerce-commercecartform', _commerceUtils.showElement); }; var showCartEmptyState = function showCartEmptyState(cart) { doForAllMatchingClass(cart, 'w-commerce-commercecartemptystate', _commerceUtils.showElement); doForAllMatchingClass(cart, 'w-commerce-commercecartform', _commerceUtils.hideElement); }; var hideErrorState = function hideErrorState(cart) { doForAllMatchingClass(cart, 'w-commerce-commercecarterrorstate', _commerceUtils.hideElement); }; var showErrorState = function showErrorState(cart) { doForAllMatchingClass(cart, 'w-commerce-commercecarterrorstate', _commerceUtils.showElement); }; var hasItems = function hasItems(response) { return response && response.data && response.data.database && response.data.database.commerceOrder && response.data.database.commerceOrder.userItems && response.data.database.commerceOrder.userItems.length > 0; }; var hasErrors = function hasErrors(response) { return response && response.errors && response.errors.length > 0; }; var updateCartA11Y = function updateCartA11Y(cart) { doForAllMatchingClass(cart, 'w-commerce-commercecartopenlinkcount', function (element) { doForAllMatchingClass(cart, 'w-commerce-commercecartopenlink', function (openLinkElement) { openLinkElement.setAttribute('aria-label', element.textContent === '0' ? 'Open empty cart' : "Open cart containing ".concat(element.textContent, " items")); }); }); }; var renderCart = function renderCart(cart, data, stripeStore) { hideErrorState(cart); if (hasErrors(data)) { showErrorState(cart); } doForAllMatchingClass(cart, 'w-commerce-commercecartopenlinkcount', function (element) { var hideRule = element.getAttribute(_constants.DATA_ATTR_COUNT_HIDE_RULE); if (hideRule === _constants.CART_COUNT_HIDE_RULES.ALWAYS || hideRule === _constants.CART_COUNT_HIDE_RULES.EMPTY && !hasItems(data)) { (0, _commerceUtils.hideElement)(element); } else { (0, _commerceUtils.showElement)(element); } }); // If it is a newly published site the commerceOrder will be null, causing the cart counter to render // an empty div if hide cart when empty is false and userItemsCount is not set to 0 var dataWithDefaults = (0, _mergeWith["default"])({}, data, function (obj, src, key) { if (key === 'commerceOrder' && src === null) { return { userItemsCount: 0 }; } }); (0, _rendering.renderTree)(cart, dataWithDefaults); if (hasItems(data)) { showCartDefaultState(cart); } else { showCartEmptyState(cart); } var cartForm = cart.querySelector('form'); if (cartForm instanceof HTMLFormElement) { enableAllFormElements(cartForm); } // we hide the button when the paypal sdk is on the page (only appears when paypal linked and checkout enabled) // and when the stripe store reports that it's not initialized. we don't pass stripe store for some errors, // so this ensures that the button will be shown still if there was an error. var paypalElement = document.querySelector("[".concat(_constants.PAYPAL_ELEMENT_INSTANCE, "]")); var checkoutButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CHECKOUT_BUTTON, cart); if (checkoutButton && paypalElement && stripeStore && !stripeStore.isInitialized()) { if ((0, _commerceUtils.isFreeOrder)(data)) { (0, _commerceUtils.showElement)(checkoutButton); } else { (0, _commerceUtils.hideElement)(checkoutButton); } } var paypalButton = cart.querySelector("[".concat(_constants.PAYPAL_BUTTON_ELEMENT_INSTANCE, "]")); if (paypalElement && paypalButton) { if ((0, _commerceUtils.isFreeOrder)(data) || (0, _commerceUtils.hasSubscription)(data)) { (0, _commerceUtils.hideElement)(paypalButton); } else { (0, _commerceUtils.showElement)(paypalButton); } } (0, _webPaymentsEvents.updateWebPaymentsButton)(cart, data, stripeStore); return cart; }; exports.renderCart = renderCart; var handleRenderCart = function handleRenderCart(event, apolloClient, stripeStore) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } if (!(event instanceof CustomEvent && event.type === _constants.RENDER_TREE_EVENT)) { return; } var errors = []; var detail = event.detail; if (detail != null && detail.error) { errors.push(detail.error); } var orderConfirmationContainer = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER); // stop cart render on order confirmation page as it will always be empty, this query was setting commerceOrder to null // and overwritting a second query in `handleRenderOrderConfirmation` if (orderConfirmationContainer) { return; } var carts = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER); if (!carts.length) { (0, _commerceUtils.executeLoadingCallbacks)(); return; } carts.forEach(function (cart) { apolloClient.query({ query: _graphqlTag["default"](_templateObject2(), cart.getAttribute(_constants.CART_QUERY)), fetchPolicy: 'network-only', errorPolicy: 'all' }).then(function (data) { (0, _commerceUtils.executeLoadingCallbacks)(); renderCart(cart, (0, _extends2["default"])({}, data, { errors: errors.concat(data.errors).filter(Boolean) }), stripeStore); updateCartA11Y(cart); })["catch"](function (err) { (0, _commerceUtils.executeLoadingCallbacks)(); errors.push(err); renderCart(cart, { errors: errors }); updateCartA11Y(cart); }); }); }; var handleCartKeyUp = function handleCartKeyUp(event) { // Escape if (event.keyCode === 27) { var openCarts = Array.from(document.querySelectorAll("[".concat(_constants.CART_OPEN, "]"))); (0, _forEach["default"])(openCarts, function (cart) { var evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true, detail: { open: false } }); cart.dispatchEvent(evt); }); } // Spacebar if (event.keyCode === 32 && event.target instanceof HTMLElement) { // Flow was being a bit strange with typing and only assuming HTMLElement // the first time it was used. So setting it as a new variable here to // persist that type. var htmlElement = event.target; // Make sure element being checked is intended to work as a link or button and // is a child of `commerce-cart-wrapper` // This will prevent the keyboard trigger applying to elements that don't // belong to the Cart or otherwise shouldn't be interactable in this manner. if ((htmlElement.getAttribute('role') === 'button' || htmlElement.getAttribute('role') === 'link' || htmlElement.hasAttribute('href') || htmlElement.hasAttribute('onClick')) && (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_WRAPPER, event.target) != null) { event.preventDefault(); htmlElement.click(); } } }; var getCartContainer = function getCartContainer(parent) { return (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_CONTAINER, parent); }; var handleClickCloseCart = function handleClickCloseCart(_ref6) { var target = _ref6.target; if (!(target instanceof Element)) { return; } var openCarts = Array.from(document.querySelectorAll("[".concat(_constants.CART_OPEN, "]"))); (0, _forEach["default"])(openCarts, function (cart) { var cartContainer = getCartContainer(cart); var cartOpenButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CART_OPEN_LINK, cart); if (!(cartContainer instanceof Element) || !(cartOpenButton instanceof Element)) { return; } var cartType = cart.getAttribute(_constants.CART_TYPE); // on dropdown, we close if outside the cart is clicked, and on modal/sidebar, we close if outside the container or open button is clicked var isNotInside = cartType === LEFT_DROPDOWN || cartType === RIGHT_DROPDOWN ? !cart.contains(target) : !cartContainer.contains(target) && !cartOpenButton.contains(target); if (isNotInside) { var evt = new CustomEvent(_constants.CHANGE_CART_EVENT, { bubbles: true, detail: { open: false } }); cart.dispatchEvent(evt); } }); }; var getFocusableElements = function getFocusableElements(container) { var focusableElements = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'; return (0, _toConsumableArray2["default"])(container.querySelectorAll(focusableElements)).filter(function (element) { return !element.hasAttribute('disabled') && element.offsetHeight > 0; }); }; var handleCartFocusTrap = function handleCartFocusTrap(event) { if (event.key !== 'Tab' && event.keyCode !== 9) { return; } var openCarts = Array.from(document.querySelectorAll("[".concat(_constants.CART_OPEN, "]"))); (0, _forEach["default"])(openCarts, function (cart) { var cartContainer = getCartContainer(cart); if (!(cartContainer instanceof Element)) { return; } var focusableContent = getFocusableElements(cartContainer); var firstFocusableElement = focusableContent[0]; var lastFocusableElement = focusableContent[focusableContent.length - 1]; if (event.shiftKey) { if (document.activeElement === firstFocusableElement) { lastFocusableElement.focus(); event.preventDefault(); } } else { if (document.activeElement === lastFocusableElement) { firstFocusableElement.focus(); event.preventDefault(); } } }); }; var register = function register(handlerProxy) { handlerProxy.on('click', isItemRemovedEvent, handleItemRemoved); handlerProxy.on('change', isItemQuantityChangedEvent, handleItemQuantityChanged); handlerProxy.on('focus', isItemQuantityInputEvent, handleItemInputChanged); handlerProxy.on('click', isCartButtonEvent, handleCartButton); handlerProxy.on('click', isCartCheckoutButtonEvent, handleCartCheckoutButton); handlerProxy.on('mouseover', isCartButtonEvent, handleCartButton); handlerProxy.on(_constants.CHANGE_CART_EVENT, isCartWrapperEvent, handleChangeCartStateEvent); handlerProxy.on(_constants.RENDER_TREE_EVENT, Boolean, handleRenderCart); // Needed to avoid submission of cart form when only one item is in cart and user hits // enter key while in quantity input (acts as submit if only 1 input and no submit) handlerProxy.on('submit', isCartFormEvent, handleSubmitForm); handlerProxy.on('keyup', Boolean, handleCartKeyUp); handlerProxy.on('click', Boolean, handleClickCloseCart); // These events are for handling the back and forth between preview and designer // and must be registered directly to the window, otherwise they are not registered // when the canvas is created. if (window.Webflow.env('design') || window.Webflow.env('preview')) { window.addEventListener('__wf_preview', handlePreviewMode); window.addEventListener('__wf_design', handleDesignMode); } }; exports.register = register; var _default = { register: register }; exports["default"] = _default; /***/ }), /* 825 */ /***/ (function(module, exports, __webpack_require__) { var baseMerge = __webpack_require__(342), createAssigner = __webpack_require__(348); /** * This method is like `_.merge` except that it accepts `customizer` which * is invoked to produce the merged values of the destination and source * properties. If `customizer` returns `undefined`, merging is handled by the * method instead. The `customizer` is invoked with six arguments: * (objValue, srcValue, key, object, source, stack). * * **Note:** This method mutates `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The destination object. * @param {...Object} sources The source objects. * @param {Function} customizer The function to customize assigned values. * @returns {Object} Returns `object`. * @example * * function customizer(objValue, srcValue) { * if (_.isArray(objValue)) { * return objValue.concat(srcValue); * } * } * * var object = { 'a': [1], 'b': [2] }; * var other = { 'a': [3], 'b': [4] }; * * _.mergeWith(object, other, customizer); * // => { 'a': [1, 3], 'b': [2, 4] } */ var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { baseMerge(object, source, srcIndex, customizer); }); module.exports = mergeWith; /***/ }), /* 826 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.register = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _debounce = _interopRequireDefault(__webpack_require__(281)); var _constants = __webpack_require__(19); var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _commerceUtils = __webpack_require__(37); var _checkoutUtils = __webpack_require__(152); var _debug = _interopRequireDefault(__webpack_require__(80)); /* globals window, Element, CustomEvent, HTMLElement */ var isInputInsideCustomerInfoEvent = function isInputInsideCustomerInfoEvent(_ref) { var target = _ref.target; // ensures this event's logic doesn't run on non-checkout pages var checkoutFormContainer = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER); if (!checkoutFormContainer) { return false; } var customerInfoWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER, target); if (customerInfoWrapper && target instanceof Element && target.tagName === 'INPUT') { return target; } else { return false; } }; var isInputInsideAddressWrapperEvent = function isInputInsideAddressWrapperEvent(_ref2) { var target = _ref2.target; // ensures this event's logic doesn't run on non-checkout pages var checkoutFormContainer = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER); if (!checkoutFormContainer || !(target instanceof Element)) { return false; } var shippingAddressWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER, target); var billingAddressWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER, target); if (shippingAddressWrapper) { return shippingAddressWrapper; } else if (billingAddressWrapper) { return billingAddressWrapper; } else { return false; } }; var isInputInsideShippingMethodEvent = function isInputInsideShippingMethodEvent(_ref3) { var target = _ref3.target; // ensures this event's logic doesn't run on non-checkout pages var checkoutFormContainer = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER) || (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER); if (!checkoutFormContainer) { return false; } var shippingMethodWrapper = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER, target); if (shippingMethodWrapper && target instanceof Element && target.tagName === 'INPUT') { return target; } else { return false; } }; var isBillingAddressToggleEvent = function isBillingAddressToggleEvent(_ref4) { var target = _ref4.target; if (target instanceof Element && target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX) { return target; } else { return false; } }; var isPlaceOrderButtonEvent = function isPlaceOrderButtonEvent(_ref5) { var target = _ref5.target; var placeOrderButton = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON, target); if (placeOrderButton && target instanceof Element) { return target; } else { return false; } }; var isApplyDiscountFormEvent = function isApplyDiscountFormEvent(_ref6) { var target = _ref6.target; if (target instanceof Element && target.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_FORM) { return target; } else { return false; } }; var isFormInsideCheckoutContainerEvent = function isFormInsideCheckoutContainerEvent(_ref7) { var target = _ref7.target; var checkoutForm = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, target); if (target instanceof HTMLFormElement && checkoutForm) { return target; } else { return false; } }; var isInputInsideCheckoutFormEvent = function isInputInsideCheckoutFormEvent(_ref8) { var target = _ref8.target; var checkoutForm = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, target); if (target instanceof HTMLInputElement && checkoutForm) { return target; } else { return false; } }; var handleRenderCheckout = function handleRenderCheckout(event, apolloClient, stripeStore) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } if (!(event instanceof CustomEvent && event.type === _constants.RENDER_TREE_EVENT)) { return; } var errors = []; var detail = event.detail; if (detail != null && detail.error) { errors.push(detail.error); } var focusedEle = window.document.activeElement; var checkoutForm = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, focusedEle); var prevFocusedInput = null; // Only trigger for focused elements in a checkout form if (focusedEle instanceof HTMLInputElement && checkoutForm) { prevFocusedInput = focusedEle.id; if (!prevFocusedInput) { prevFocusedInput = focusedEle.getAttribute('data-wf-bindings'); } // Move from empty string to null prevFocusedInput = prevFocusedInput ? null : prevFocusedInput; } var checkoutFormContainers = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER); (0, _checkoutUtils.renderCheckoutFormContainers)(checkoutFormContainers, errors, apolloClient, stripeStore, prevFocusedInput); }; var checkFormValidity = function checkFormValidity(_ref9) { var customerInfo = _ref9.customerInfo, shippingAddress = _ref9.shippingAddress, shippingInfo = _ref9.shippingInfo, billingAddress = _ref9.billingAddress, billingAddressToggle = _ref9.billingAddressToggle, additionalInfo = _ref9.additionalInfo, requiresShipping = _ref9.requiresShipping; // reportValidity isn't supported in IE, so we need to check if it exists // for our IE users. they'll have to rely on the server error, which isn't // too bad from a UX experience, since they'll still know something went wrong if (!HTMLFormElement.prototype.reportValidity) { return true; } // because we have multiple form elements, what we do is ask the browser to report // the validity of each form, which triggers the UI that would usually be seen // when someone submitted a regular form. we return if it's not valid, so that // the browser doesn't jump ahead to the next element, allowing the user to // fix their mistakes. we don't check the stripe elements, since we can't // directly get the status of those, as that's handled by stripe. however, if // the user is missing a field and tries to submit the form, they will get // an error when we try to create the token, so we'll display an error then if (!customerInfo.reportValidity() || requiresShipping && !shippingAddress.reportValidity() || requiresShipping && !shippingInfo.reportValidity() || // only check the billing address if the toggle is off, i.e. the billing address // form is being shown or if it does not require shipping (!requiresShipping || !billingAddressToggle.checked) && !billingAddress.reportValidity() || additionalInfo && additionalInfo instanceof HTMLFormElement && !additionalInfo.reportValidity()) { return false; } return true; }; var placingOrder = false; var startOrderFlow = function startOrderFlow(placeOrderButton) { placingOrder = true; window.addEventListener('beforeunload', _checkoutUtils.beforeUnloadHandler); var buttonText = placeOrderButton.innerHTML; var loadingText = placeOrderButton.getAttribute(_constants.DATA_ATTR_LOADING_TEXT); placeOrderButton.innerHTML = loadingText ? loadingText : _constants.CHECKOUT_PLACE_ORDER_LOADING_TEXT_DEFAULT; var finishOrderFlow = function finishOrderFlow() { var isRedirecting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; // we only set `placingOrder` to false if we're not redirecting to the // confirmation page. this is so that while waiting for the confirmation // page to load, the user can't attempt to submit the order again if (!isRedirecting) { placingOrder = false; } window.removeEventListener('beforeunload', _checkoutUtils.beforeUnloadHandler); placeOrderButton.innerHTML = buttonText ? buttonText : _constants.CHECKOUT_PLACE_ORDER_BUTTON_TEXT_DEFAULT; }; return finishOrderFlow; }; var handlePlaceOrder = function handlePlaceOrder(event, apolloClient, stripeStore) { // Want to skip placing order if in design/preview mode, or an order place is in progress if (window.Webflow.env('design') || window.Webflow.env('preview') || placingOrder) { return; } var currentTarget = event.currentTarget; if (!(currentTarget instanceof Element)) { return; } var checkoutFormContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, currentTarget); if (!(checkoutFormContainer instanceof Element)) { return; } var errorState = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE, checkoutFormContainer); var customerInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER, checkoutFormContainer); var shippingAddress = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER, checkoutFormContainer); var shippingInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER, checkoutFormContainer); var billingAddress = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER, checkoutFormContainer); var billingAddressToggle = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX, checkoutFormContainer); var placeOrderButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON, checkoutFormContainer); var additionalInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO, checkoutFormContainer); if (!(errorState instanceof HTMLElement) || !(customerInfo instanceof HTMLFormElement) || !(shippingAddress instanceof HTMLFormElement) || !(shippingInfo instanceof HTMLFormElement) || !(billingAddress instanceof HTMLFormElement) || !(billingAddressToggle instanceof HTMLInputElement) || !(placeOrderButton instanceof Element)) { return; } var errorMessage = errorState.querySelector(_constants.CART_CHECKOUT_ERROR_MESSAGE_SELECTOR); // If the error message has this attribute, we want to block the order from // being submitted as the user is being forced to refresh the checkout page. if (errorMessage && errorMessage.hasAttribute(_constants.NEEDS_REFRESH)) { return; } var hasAdditionalInfo = additionalInfo && additionalInfo instanceof HTMLElement; var finishOrderFlow = startOrderFlow(placeOrderButton); errorState.style.setProperty('display', 'none'); (0, _commerceUtils.fetchOrderStatusFlags)(apolloClient).then(function (_ref10) { var requiresShipping = _ref10.requiresShipping, isFreeOrder = _ref10.isFreeOrder; var isFormValid = checkFormValidity({ customerInfo: customerInfo, shippingAddress: shippingAddress, shippingInfo: shippingInfo, billingAddress: billingAddress, billingAddressToggle: billingAddressToggle, additionalInfo: additionalInfo, requiresShipping: requiresShipping }); if (!isFormValid) { finishOrderFlow(); return; } // final sync with server, to ensure validity var customerInfoFormData = (0, _commerceUtils.formToObject)(customerInfo); var email = String(customerInfoFormData.email).trim(); var shippingAddressInfo = (0, _extends2["default"])({ type: 'shipping' }, (0, _commerceUtils.formToObject)(shippingAddress, true)); var billingAddressInfo = (0, _extends2["default"])({ type: 'billing' }, (0, _commerceUtils.formToObject)(!billingAddressToggle.checked || !requiresShipping ? billingAddress : shippingAddress, true)); var stripeBillingAddressInfo = { billing_details: { name: billingAddressInfo.name, email: email, address: { line1: billingAddressInfo.address_line1, line2: billingAddressInfo.address_line2, city: billingAddressInfo.address_city, state: billingAddressInfo.address_state, country: billingAddressInfo.address_country, postal_code: billingAddressInfo.address_zip } } }; var shippingMethodId = ''; if (requiresShipping && shippingInfo.elements['shipping-method-choice']) { // this is an IE11-safe way of just doing shippingInfo.elements['shipping-method-choice'].value var shippingMethodChoice = shippingInfo.querySelector('input[name="shipping-method-choice"]:checked'); // this should never be falsey, but Flow if (shippingMethodChoice) { shippingMethodId = shippingMethodChoice.value; } } var customData = hasAdditionalInfo ? (0, _commerceUtils.customDataFormToArray)(additionalInfo) : []; var syncCheckoutForm = Promise.all([(0, _checkoutUtils.createOrderIdentityMutation)(apolloClient, email), (0, _checkoutUtils.createOrderAddressMutation)(apolloClient, billingAddressInfo), requiresShipping ? (0, _checkoutUtils.createOrderAddressMutation)(apolloClient, shippingAddressInfo) : Promise.resolve(), requiresShipping ? (0, _checkoutUtils.createOrderShippingMethodMutation)(apolloClient, shippingMethodId) : Promise.resolve(), hasAdditionalInfo ? (0, _checkoutUtils.createCustomDataMutation)(apolloClient, customData) : Promise.resolve()]); syncCheckoutForm.then(function () { if (isFreeOrder) { return Promise.resolve(); } if (!stripeStore.isInitialized()) { return Promise.reject(new Error("Stripe has not been set up for this project – Go to the project's Ecommerce Payment settings in the Designer to link Stripe.")); } var stripe = stripeStore.getStripeInstance(); var checkoutFormInstance = parseInt(checkoutFormContainer.getAttribute(_constants.STRIPE_ELEMENT_INSTANCE), 10); var card = stripeStore.getElement('cardNumber', checkoutFormInstance); return stripe.createPaymentMethod('card', card, stripeBillingAddressInfo); }).then(function (data) { if (!data || isFreeOrder) { return Promise.resolve(); } if (data.error) { return Promise.reject(data.error); } return (0, _checkoutUtils.createStripePaymentMethodMutation)(apolloClient, data.paymentMethod.id); }).then(function () { return (0, _checkoutUtils.createAttemptSubmitOrderRequest)(apolloClient, { checkoutType: 'normal' }); }).then(function (data) { _debug["default"].log(data); var order = (0, _checkoutUtils.getOrderDataFromGraphQLResponse)(data); if ((0, _checkoutUtils.orderRequiresAdditionalAction)(order.status)) { var stripe = stripeStore.getStripeInstance(); return stripe.handleCardAction(order.clientSecret).then(function (result) { if (result.error) { return Promise.reject(result.error); } return (0, _checkoutUtils.createAttemptSubmitOrderRequest)(apolloClient, { checkoutType: 'normal', paymentIntentId: result.paymentIntent.id }).then(function (resp) { var finishedOrder = (0, _checkoutUtils.getOrderDataFromGraphQLResponse)(resp); if (finishedOrder.ok) { finishOrderFlow(true); (0, _checkoutUtils.redirectToOrderConfirmation)(finishedOrder); } }); }); } if (order.ok) { finishOrderFlow(true); (0, _checkoutUtils.redirectToOrderConfirmation)(order); } })["catch"](function (err) { finishOrderFlow(); _debug["default"].error(err); errorState.style.removeProperty('display'); (0, _checkoutUtils.updateErrorMessage)(errorState, err); }); }); }; var handleApplyDiscount = function handleApplyDiscount(event, apolloClient) { event.preventDefault(); // prevent submit event.stopImmediatePropagation(); // do not trigger submission of any other forms (we have forms in forms :()) var currentTarget = event.currentTarget; if (!(currentTarget instanceof Element)) { return; } var inputEl = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_INPUT, currentTarget); var checkoutFormContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, currentTarget) || (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER, currentTarget); if (!checkoutFormContainer) { return; } var errorStateEl = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_ERROR_STATE, checkoutFormContainer); if (!(inputEl instanceof HTMLInputElement && errorStateEl instanceof HTMLElement)) { return; } var discountCode = inputEl.value.trim().toUpperCase(); (0, _checkoutUtils.applyDiscount)(apolloClient, { discountCode: discountCode }).then(function () { inputEl.value = ''; errorStateEl.style.display = 'none'; (0, _commerceUtils.triggerRender)(null); })["catch"](function (error) { return (0, _checkoutUtils.showErrorMessageForError)(error, checkoutFormContainer); }); }; var handleUpdateCustomerInfo = function handleUpdateCustomerInfo(event, apolloClient) { var currentTarget = event.currentTarget; if (!(currentTarget instanceof HTMLInputElement)) { return; } var value = currentTarget.value.trim(); var email = value == null || value === '' ? null : value; (0, _checkoutUtils.createOrderIdentityMutation)(apolloClient, email).then(function () { (0, _commerceUtils.triggerRender)(null); })["catch"](function (err) { (0, _commerceUtils.triggerRender)(err); }); }; var handleUpdateAddress = (0, _debounce["default"])(function (event, apolloClient) { var currentTarget = event.currentTarget; if (!(currentTarget instanceof HTMLFormElement)) { return; } var type = currentTarget.getAttribute(_constants.DATA_ATTR_NODE_TYPE) === _constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER ? 'shipping' : 'billing'; var addressInfo = (0, _extends2["default"])({ type: type }, (0, _commerceUtils.formToObject)(currentTarget, true)); (0, _checkoutUtils.createOrderAddressMutation)(apolloClient, addressInfo).then(function () { (0, _commerceUtils.triggerRender)(null); })["catch"](function (err) { (0, _commerceUtils.triggerRender)(err); }); }, 500); var handleToggleBillingAddress = function handleToggleBillingAddress(_ref11) { var currentTarget = _ref11.currentTarget; var checkoutFormContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, currentTarget); if (!checkoutFormContainer) { return; } var billingAddressWrapper = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER, checkoutFormContainer); if (!billingAddressWrapper || !(currentTarget instanceof HTMLInputElement)) { return; } if (currentTarget.checked) { billingAddressWrapper.style.setProperty('display', 'none'); } else { billingAddressWrapper.style.removeProperty('display'); } }; var handleChooseShippingMethod = function handleChooseShippingMethod(_ref12, apolloClient) { var currentTarget = _ref12.currentTarget; if (!(currentTarget instanceof HTMLInputElement)) { return; } (0, _checkoutUtils.createOrderShippingMethodMutation)(apolloClient, currentTarget.id).then(function () { (0, _commerceUtils.triggerRender)(null); })["catch"](function (err) { (0, _commerceUtils.triggerRender)(err); }); }; var handleSubmitFormInsideCheckoutContainer = function handleSubmitFormInsideCheckoutContainer(event, apolloClient) { if (event.type === 'submit') { event.preventDefault(); } if (event.type === 'keyup' && event.keyCode !== 13 || !(event.currentTarget instanceof Element)) { return; } if (event.target === (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_DISCOUNT_INPUT)) { return; } var checkoutFormContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_FORM_CONTAINER, event.currentTarget); if (!(checkoutFormContainer instanceof Element)) { return; } var customerInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_CUSTOMER_INFO_WRAPPER, checkoutFormContainer); var shippingAddress = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_ADDRESS_WRAPPER, checkoutFormContainer); var shippingInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER, checkoutFormContainer); var billingAddress = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_WRAPPER, checkoutFormContainer); var billingAddressToggle = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_BILLING_ADDRESS_TOGGLE_CHECKBOX, checkoutFormContainer); var additionalInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO, checkoutFormContainer); if (!(customerInfo instanceof HTMLFormElement) || !(shippingAddress instanceof HTMLFormElement) || !(shippingInfo instanceof HTMLFormElement) || !(billingAddress instanceof HTMLFormElement) || !(billingAddressToggle instanceof HTMLInputElement)) { return; } var hasAdditionalInfo = additionalInfo && additionalInfo instanceof HTMLFormElement; (0, _commerceUtils.fetchOrderStatusFlags)(apolloClient).then(function (_ref13) { var requiresShipping = _ref13.requiresShipping; checkFormValidity({ customerInfo: customerInfo, shippingAddress: shippingAddress, shippingInfo: shippingInfo, billingAddress: billingAddress, billingAddressToggle: billingAddressToggle, additionalInfo: hasAdditionalInfo ? additionalInfo : null, requiresShipping: requiresShipping }); }); }; var register = function register(handlerProxy) { handlerProxy.on(_constants.RENDER_TREE_EVENT, Boolean, handleRenderCheckout); handlerProxy.on('click', isPlaceOrderButtonEvent, handlePlaceOrder); handlerProxy.on('keydown', isPlaceOrderButtonEvent, function (event, apolloClient, StripeStore) { // $FlowIgnore which exists in KeyboardEvent if (event.which === 32) { // prevent scrolling on spacebar key press event.preventDefault(); } // $FlowIgnore which exists in KeyboardEvent if (event.which === 13) { // enter key press return handlePlaceOrder(event, apolloClient, StripeStore); } }); handlerProxy.on('keyup', isPlaceOrderButtonEvent, function (event, apolloClient, StripeStore) { // $FlowIgnore which exists in KeyboardEvent if (event.which === 32) { // spacebar key press return handlePlaceOrder(event, apolloClient, StripeStore); } }); handlerProxy.on('submit', isApplyDiscountFormEvent, handleApplyDiscount); // we use blur events on the text inputs, and change event on the country select // so that we update faster (blur on a select element requires going into another field) handlerProxy.on('change', isInputInsideCustomerInfoEvent, handleUpdateCustomerInfo); handlerProxy.on('change', isInputInsideAddressWrapperEvent, handleUpdateAddress); handlerProxy.on('change', isBillingAddressToggleEvent, handleToggleBillingAddress); handlerProxy.on('change', isInputInsideShippingMethodEvent, handleChooseShippingMethod); handlerProxy.on('submit', isFormInsideCheckoutContainerEvent, handleSubmitFormInsideCheckoutContainer); // we have to add a keyup event for the enter key on forms to run the validity check // as forms with multiple inputs but no submit input don't fire the submit event // however we do still need that above submit check, as the email form only has one // input, and a browser will fire the submit event if the form has just one input // even if it has no submit input handlerProxy.on('keyup', isInputInsideCheckoutFormEvent, handleSubmitFormInsideCheckoutContainer); }; exports.register = register; var _default = { register: register }; exports["default"] = _default; /***/ }), /* 827 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _taggedTemplateLiteral2 = _interopRequireDefault2(__webpack_require__(45)); function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "]); _templateObject = function _templateObject() { return data; }; return data; } var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.register = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(11)); var _graphqlTag = _interopRequireDefault(__webpack_require__(46)); var _qs = _interopRequireDefault(__webpack_require__(828)); var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _commerceUtils = __webpack_require__(37); var _rendering = __webpack_require__(151); var _constants = __webpack_require__(19); /* globals window, CustomEvent */ // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types var renderOrderConfirmation = function renderOrderConfirmation(orderConfirmation, data) { (0, _rendering.renderTree)(orderConfirmation, data); }; var handleRenderOrderConfirmation = function handleRenderOrderConfirmation(event, apolloClient) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } if (!(event instanceof CustomEvent && event.type === _constants.RENDER_TREE_EVENT)) { return; } var errors = []; var detail = event.detail; if (detail != null && detail.error) { errors.push(detail.error); } var orderConfirmationContainer = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER); if (!orderConfirmationContainer) { return; } var _qs$default$parse = _qs["default"].parse(window.location.search.substring(1)), orderId = _qs$default$parse.orderId, token = _qs$default$parse.token; if (!orderId || !token) { return; } var finalizedOrder = { orderId: orderId, token: token }; // runs the analytics (facebook and google pixel) // we don't block on it, since this isn't needed for any rendering // so it if fails, it can just fail silently (0, _commerceUtils.trackOrder)(apolloClient, finalizedOrder); var allOrderConfirmationContainers = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_ORDER_CONFIRMATION_WRAPPER); apolloClient.query({ query: _graphqlTag["default"](_templateObject(), orderConfirmationContainer.getAttribute(_constants.ORDER_QUERY)), variables: { finalizedOrder: finalizedOrder }, fetchPolicy: 'network-only', // errorPolicy is set to `all` so that we continue to get the cart data when an error occurs // this is important in cases like when the address entered doesn't have a shipping zone, as that returns // a graphQL error, but we still want to render what the customer has entered errorPolicy: 'all' }).then(function (data) { allOrderConfirmationContainers.forEach(function (orderConfirmationContainerNode) { renderOrderConfirmation(orderConfirmationContainerNode, (0, _extends2["default"])({}, data, { errors: errors.concat(data.errors).filter(Boolean) })); }); })["catch"](function (err) { errors.push(err); allOrderConfirmationContainers.forEach(function (orderConfirmationContainerNode) { renderOrderConfirmation(orderConfirmationContainerNode, { errors: errors }); }); }); }; var register = function register(handlerProxy) { handlerProxy.on(_constants.RENDER_TREE_EVENT, Boolean, handleRenderOrderConfirmation); }; exports.register = register; var _default = { register: register }; exports["default"] = _default; /***/ }), /* 828 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var stringify = __webpack_require__(829); var parse = __webpack_require__(830); var formats = __webpack_require__(378); module.exports = { formats: formats, parse: parse, stringify: stringify }; /***/ }), /* 829 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(227); var formats = __webpack_require__(378); var has = Object.prototype.hasOwnProperty; var arrayPrefixGenerators = { brackets: function brackets(prefix) { return prefix + '[]'; }, comma: 'comma', indices: function indices(prefix, key) { return prefix + '[' + key + ']'; }, repeat: function repeat(prefix) { return prefix; } }; var isArray = Array.isArray; var push = Array.prototype.push; var pushToArray = function (arr, valueOrArray) { push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); }; var toISO = Date.prototype.toISOString; var defaultFormat = formats['default']; var defaults = { addQueryPrefix: false, allowDots: false, charset: 'utf-8', charsetSentinel: false, delimiter: '&', encode: true, encoder: utils.encode, encodeValuesOnly: false, format: defaultFormat, formatter: formats.formatters[defaultFormat], // deprecated indices: false, serializeDate: function serializeDate(date) { return toISO.call(date); }, skipNulls: false, strictNullHandling: false }; var isNonNullishPrimitive = function isNonNullishPrimitive(v) { return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || typeof v === 'symbol' || typeof v === 'bigint'; }; var stringify = function stringify( object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset ) { var obj = object; if (typeof filter === 'function') { obj = filter(prefix, obj); } else if (obj instanceof Date) { obj = serializeDate(obj); } else if (generateArrayPrefix === 'comma' && isArray(obj)) { obj = utils.maybeMap(obj, function (value) { if (value instanceof Date) { return serializeDate(value); } return value; }).join(','); } if (obj === null) { if (strictNullHandling) { return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix; } obj = ''; } if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { if (encoder) { var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key'); return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))]; } return [formatter(prefix) + '=' + formatter(String(obj))]; } var values = []; if (typeof obj === 'undefined') { return values; } var objKeys; if (isArray(filter)) { objKeys = filter; } else { var keys = Object.keys(obj); objKeys = sort ? keys.sort(sort) : keys; } for (var i = 0; i < objKeys.length; ++i) { var key = objKeys[i]; var value = obj[key]; if (skipNulls && value === null) { continue; } var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix : prefix + (allowDots ? '.' + key : '[' + key + ']'); pushToArray(values, stringify( value, keyPrefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter, encodeValuesOnly, charset )); } return values; }; var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { if (!opts) { return defaults; } if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') { throw new TypeError('Encoder has to be a function.'); } var charset = opts.charset || defaults.charset; if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); } var format = formats['default']; if (typeof opts.format !== 'undefined') { if (!has.call(formats.formatters, opts.format)) { throw new TypeError('Unknown format option provided.'); } format = opts.format; } var formatter = formats.formatters[format]; var filter = defaults.filter; if (typeof opts.filter === 'function' || isArray(opts.filter)) { filter = opts.filter; } return { addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, charset: charset, charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, filter: filter, formatter: formatter, serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, sort: typeof opts.sort === 'function' ? opts.sort : null, strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling }; }; module.exports = function (object, opts) { var obj = object; var options = normalizeStringifyOptions(opts); var objKeys; var filter; if (typeof options.filter === 'function') { filter = options.filter; obj = filter('', obj); } else if (isArray(options.filter)) { filter = options.filter; objKeys = filter; } var keys = []; if (typeof obj !== 'object' || obj === null) { return ''; } var arrayFormat; if (opts && opts.arrayFormat in arrayPrefixGenerators) { arrayFormat = opts.arrayFormat; } else if (opts && 'indices' in opts) { arrayFormat = opts.indices ? 'indices' : 'repeat'; } else { arrayFormat = 'indices'; } var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; if (!objKeys) { objKeys = Object.keys(obj); } if (options.sort) { objKeys.sort(options.sort); } for (var i = 0; i < objKeys.length; ++i) { var key = objKeys[i]; if (options.skipNulls && obj[key] === null) { continue; } pushToArray(keys, stringify( obj[key], key, generateArrayPrefix, options.strictNullHandling, options.skipNulls, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.formatter, options.encodeValuesOnly, options.charset )); } var joined = keys.join(options.delimiter); var prefix = options.addQueryPrefix === true ? '?' : ''; if (options.charsetSentinel) { if (options.charset === 'iso-8859-1') { // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark prefix += 'utf8=%26%2310003%3B&'; } else { // encodeURIComponent('✓') prefix += 'utf8=%E2%9C%93&'; } } return joined.length > 0 ? prefix + joined : ''; }; /***/ }), /* 830 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var utils = __webpack_require__(227); var has = Object.prototype.hasOwnProperty; var isArray = Array.isArray; var defaults = { allowDots: false, allowPrototypes: false, arrayLimit: 20, charset: 'utf-8', charsetSentinel: false, comma: false, decoder: utils.decode, delimiter: '&', depth: 5, ignoreQueryPrefix: false, interpretNumericEntities: false, parameterLimit: 1000, parseArrays: true, plainObjects: false, strictNullHandling: false }; var interpretNumericEntities = function (str) { return str.replace(/&#(\d+);/g, function ($0, numberStr) { return String.fromCharCode(parseInt(numberStr, 10)); }); }; var parseArrayValue = function (val, options) { if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) { return val.split(','); } return val; }; // This is what browsers will submit when the ✓ character occurs in an // application/x-www-form-urlencoded body and the encoding of the page containing // the form is iso-8859-1, or when the submitted form has an accept-charset // attribute of iso-8859-1. Presumably also with other charsets that do not contain // the ✓ character, such as us-ascii. var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') // These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') var parseValues = function parseQueryStringValues(str, options) { var obj = {}; var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; var parts = cleanStr.split(options.delimiter, limit); var skipIndex = -1; // Keep track of where the utf8 sentinel was found var i; var charset = options.charset; if (options.charsetSentinel) { for (i = 0; i < parts.length; ++i) { if (parts[i].indexOf('utf8=') === 0) { if (parts[i] === charsetSentinel) { charset = 'utf-8'; } else if (parts[i] === isoSentinel) { charset = 'iso-8859-1'; } skipIndex = i; i = parts.length; // The eslint settings do not allow break; } } } for (i = 0; i < parts.length; ++i) { if (i === skipIndex) { continue; } var part = parts[i]; var bracketEqualsPos = part.indexOf(']='); var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; var key, val; if (pos === -1) { key = options.decoder(part, defaults.decoder, charset, 'key'); val = options.strictNullHandling ? null : ''; } else { key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); val = utils.maybeMap( parseArrayValue(part.slice(pos + 1), options), function (encodedVal) { return options.decoder(encodedVal, defaults.decoder, charset, 'value'); } ); } if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { val = interpretNumericEntities(val); } if (part.indexOf('[]=') > -1) { val = isArray(val) ? [val] : val; } if (has.call(obj, key)) { obj[key] = utils.combine(obj[key], val); } else { obj[key] = val; } } return obj; }; var parseObject = function (chain, val, options, valuesParsed) { var leaf = valuesParsed ? val : parseArrayValue(val, options); for (var i = chain.length - 1; i >= 0; --i) { var obj; var root = chain[i]; if (root === '[]' && options.parseArrays) { obj = [].concat(leaf); } else { obj = options.plainObjects ? Object.create(null) : {}; var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; var index = parseInt(cleanRoot, 10); if (!options.parseArrays && cleanRoot === '') { obj = { 0: leaf }; } else if ( !isNaN(index) && root !== cleanRoot && String(index) === cleanRoot && index >= 0 && (options.parseArrays && index <= options.arrayLimit) ) { obj = []; obj[index] = leaf; } else { obj[cleanRoot] = leaf; } } leaf = obj; // eslint-disable-line no-param-reassign } return leaf; }; var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { if (!givenKey) { return; } // Transform dot notation to bracket notation var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; // The regex chunks var brackets = /(\[[^[\]]*])/; var child = /(\[[^[\]]*])/g; // Get the parent var segment = options.depth > 0 && brackets.exec(key); var parent = segment ? key.slice(0, segment.index) : key; // Stash the parent if it exists var keys = []; if (parent) { // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties if (!options.plainObjects && has.call(Object.prototype, parent)) { if (!options.allowPrototypes) { return; } } keys.push(parent); } // Loop through children appending to the array until we hit depth var i = 0; while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { i += 1; if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { if (!options.allowPrototypes) { return; } } keys.push(segment[1]); } // If there's a remainder, just add whatever is left if (segment) { keys.push('[' + key.slice(segment.index) + ']'); } return parseObject(keys, val, options, valuesParsed); }; var normalizeParseOptions = function normalizeParseOptions(opts) { if (!opts) { return defaults; } if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { throw new TypeError('Decoder has to be a function.'); } if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); } var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; return { allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, charset: charset, charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, // eslint-disable-next-line no-implicit-coercion, no-extra-parens depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, ignoreQueryPrefix: opts.ignoreQueryPrefix === true, interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, parseArrays: opts.parseArrays !== false, plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling }; }; module.exports = function (str, opts) { var options = normalizeParseOptions(opts); if (str === '' || str === null || typeof str === 'undefined') { return options.plainObjects ? Object.create(null) : {}; } var tempObj = typeof str === 'string' ? parseValues(str, options) : str; var obj = options.plainObjects ? Object.create(null) : {}; // Iterate over the keys and setup the new object var keys = Object.keys(tempObj); for (var i = 0; i < keys.length; ++i) { var key = keys[i]; var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); obj = utils.merge(obj, newObj, options); } return utils.compact(obj); }; /***/ }), /* 831 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.renderPaypalButtons = void 0; var _eventHandlerProxyWithApolloClient = _interopRequireDefault(__webpack_require__(65)); var _commerceUtils = __webpack_require__(37); var _checkoutUtils = __webpack_require__(152); var _cartUtils = __webpack_require__(377); var _debug = _interopRequireDefault(__webpack_require__(80)); var _checkoutMutations = __webpack_require__(376); var _constants = __webpack_require__(19); /* global window, document, Element, CustomEvent, HTMLElement, HTMLFormElement */ var isPlaceOrderButtonEvent = function isPlaceOrderButtonEvent(_ref) { var target = _ref.target; var placeOrderButton = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON, target); if (placeOrderButton && target instanceof Element) { return target; } else { return false; } }; var hasSyncedWithPaypal = false; var handleRenderPayPalCheckout = function handleRenderPayPalCheckout(event, apolloClient) { if (window.Webflow.env('design') || window.Webflow.env('preview')) { return; } if (!(event instanceof CustomEvent && event.type === _constants.RENDER_TREE_EVENT)) { return; } var checkoutFormContainers = (0, _commerceUtils.findAllElementsByNodeType)(_constants.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER); if (!checkoutFormContainers || checkoutFormContainers.length === 0) { return; } var errors = []; var detail = event.detail; if (detail != null && detail.error) { errors.push(detail.error); } var focusedEle = window.document.activeElement; var checkoutForm = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER, focusedEle); var prevFocusedInput = null; // Only trigger for focused elements in a checkout form if (focusedEle instanceof HTMLInputElement && checkoutForm) { prevFocusedInput = focusedEle.id; if (!prevFocusedInput) { prevFocusedInput = focusedEle.getAttribute('data-wf-bindings'); } // Move from empty string to null prevFocusedInput = prevFocusedInput ? null : prevFocusedInput; } var syncWithPayPalIfNeeded = !hasSyncedWithPaypal ? apolloClient.mutate({ mutation: _checkoutMutations.syncPayPalOrderInfo }) : Promise.resolve(); syncWithPayPalIfNeeded.then(function () { hasSyncedWithPaypal = true; (0, _checkoutUtils.renderCheckoutFormContainers)(checkoutFormContainers, errors, apolloClient, undefined, prevFocusedInput); }); }; var placingOrder = false; var startOrderFlow = function startOrderFlow(placeOrderButton) { placingOrder = true; window.addEventListener('beforeunload', _checkoutUtils.beforeUnloadHandler); var buttonText = placeOrderButton.innerHTML; var loadingText = placeOrderButton.getAttribute(_constants.DATA_ATTR_LOADING_TEXT); placeOrderButton.innerHTML = loadingText ? loadingText : _constants.CHECKOUT_PLACE_ORDER_LOADING_TEXT_DEFAULT; var finishOrderFlow = function finishOrderFlow() { var isRedirecting = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; // we only set `placingOrder` to false if we're not redirecting to the // confirmation page. this is so that while waiting for the confirmation // page to load, the user can't attempt to submit the order again if (!isRedirecting) { placingOrder = false; } window.removeEventListener('beforeunload', _checkoutUtils.beforeUnloadHandler); placeOrderButton.innerHTML = buttonText ? buttonText : _constants.CHECKOUT_PLACE_ORDER_BUTTON_TEXT_DEFAULT; }; return finishOrderFlow; }; var checkFormValidity = function checkFormValidity(_ref2) { var shippingInfo = _ref2.shippingInfo, additionalInfo = _ref2.additionalInfo, requiresShipping = _ref2.requiresShipping; if (!HTMLFormElement.prototype.reportValidity) { return true; } if (requiresShipping && !shippingInfo.reportValidity() || additionalInfo && additionalInfo instanceof HTMLFormElement && !additionalInfo.reportValidity()) { return false; } return true; }; var handlePlaceOrder = function handlePlaceOrder(event, apolloClient) { // Want to skip placing order if in design/preview mode, or an order place is in progress if (window.Webflow.env('design') || window.Webflow.env('preview') || placingOrder) { return; } var currentTarget = event.currentTarget; if (!(currentTarget instanceof Element)) { return; } var checkoutFormContainer = (0, _commerceUtils.findClosestElementByNodeType)(_constants.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_FORM_CONTAINER, currentTarget); if (!(checkoutFormContainer instanceof Element)) { return; } var errorState = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_PAYPAL_CHECKOUT_ERROR_STATE, checkoutFormContainer); var shippingInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_SHIPPING_METHODS_WRAPPER, checkoutFormContainer); var placeOrderButton = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_PLACE_ORDER_BUTTON, checkoutFormContainer); var additionalInfo = (0, _commerceUtils.findElementByNodeType)(_constants.NODE_TYPE_COMMERCE_CHECKOUT_ADDITIONAL_INFO, checkoutFormContainer); if (!(errorState instanceof HTMLElement) || !(shippingInfo instanceof HTMLFormElement) || !(placeOrderButton instanceof Element)) { return; } var errorMessage = errorState.querySelector(_constants.CART_CHECKOUT_ERROR_MESSAGE_SELECTOR); // If the error message has this attribute, we want to block the order from // being submitted as the user is being forced to refresh the checkout page. if (errorMessage && errorMessage.hasAttribute(_constants.NEEDS_REFRESH)) { return; } var hasAdditionalInfo = additionalInfo && additionalInfo instanceof HTMLElement; var finishOrderFlow = startOrderFlow(placeOrderButton); errorState.style.setProperty('display', 'none'); (0, _commerceUtils.fetchOrderStatusFlags)(apolloClient).then(function (_ref3) { var requiresShipping = _ref3.requiresShipping; var isFormValid = checkFormValidity({ shippingInfo: shippingInfo, additionalInfo: additionalInfo, requiresShipping: requiresShipping }); if (!isFormValid) { finishOrderFlow(); return; } // final sync with server, to ensure validity var shippingMethodId = ''; if (requiresShipping && shippingInfo.elements['shipping-method-choice']) { // this is an IE11-safe way of just doing shippingInfo.elements['shipping-method-choice'].value var shippingMethodChoice = shippingInfo.querySelector('input[name="shipping-method-choice"]:checked'); // this should never be falsey, but Flow if (shippingMethodChoice) { shippingMethodId = shippingMethodChoice.value; } } var customData = hasAdditionalInfo ? (0, _commerceUtils.customDataFormToArray)(additionalInfo) : []; var syncPayPalCheckoutForm = Promise.all([requiresShipping ? (0, _checkoutUtils.createOrderShippingMethodMutation)(apolloClient, shippingMethodId) : Promise.resolve(), hasAdditionalInfo ? (0, _checkoutUtils.createCustomDataMutation)(apolloClient, customData) : Promise.resolve()]); syncPayPalCheckoutForm.then(function () { return (0, _checkoutUtils.createAttemptSubmitOrderRequest)(apolloClient, { checkoutType: 'paypal' }); }).then(function (data) { _debug["default"].log(data); var order = (0, _checkoutUtils.getOrderDataFromGraphQLResponse)(data); if (order.ok) { finishOrderFlow(true); (0, _checkoutUtils.redirectToOrderConfirmation)(order, true); } })["catch"](function (err) { finishOrderFlow(); _debug["default"].error(err); errorState.style.removeProperty('display'); (0, _checkoutUtils.updateErrorMessage)(errorState, err); if (err.graphQLErrors && err.graphQLErrors[0] && err.graphQLErrors[0].message) { var parsedError = (0, _commerceUtils.safeParseJson)(err.graphQLErrors[0].message); if (!parsedError) { return; } if (parsedError.details && parsedError.details[0] && parsedError.details[0].issue === 'INSTRUMENT_DECLINED') { var message = { isWebflow: true, type: 'error', detail: parsedError }; window.parent.postMessage(JSON.stringify(message), window.location.origin); } } }); }); }; // width and height is defined twice, so that on older browsers that // don't support vw/vh, we get the 100% instead var iframeStyle = "\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n width: 100vw;\n height: 100vh;\n min-width: 100%;\n min-height: 100%;\n max-width: 100%;\n max-height: 100%;\n z-index: 2147483647;\n border: 0;\n background-color: #ffffff;\n"; var createConfirmationIframe = function createConfirmationIframe(actions) { var documentRoot = document.documentElement; // we use this instead of document.body to appease the flow gods var documentBody = document.querySelector('body'); if (!documentRoot || !documentBody) { return; } var iframe = document.createElement('iframe'); iframe.setAttribute('style', iframeStyle); iframe.setAttribute('src', '/paypal-checkout'); if (!documentBody.parentNode) { return; } documentBody.parentNode.appendChild(iframe); var previousRootOverflow = documentRoot.style.overflow; documentRoot.style.overflow = 'hidden'; var previousBodyDisplay = documentBody.style.display; documentBody.style.display = 'none'; var paypalMessageHandler = function paypalMessageHandler(event) { if (event.origin !== window.location.origin) { return; } var data = (0, _commerceUtils.safeParseJson)(String(event.data)); // we include an `isWebflow` since paypal sends some messages on the page // and we want to make sure that we don't accidentally intercept one of their messages if (!data || data.isWebflow !== true || !data.type || !data.detail) { return; } if (data.type === 'success') { window.removeEventListener('message', paypalMessageHandler); window.location.href = data.detail; } if (data.type === 'error') { window.removeEventListener('message', paypalMessageHandler); if (previousRootOverflow) { documentRoot.style.overflow = previousRootOverflow; } else { documentRoot.style.overflow = ''; } if (previousBodyDisplay) { documentBody.style.display = previousBodyDisplay; } else { documentBody.style.display = ''; } if (documentBody.parentNode) { documentBody.parentNode.removeChild(iframe); } actions.restart(); } }; window.addEventListener('message', paypalMessageHandler); }; var renderPaypalButtons = function renderPaypalButtons(apolloClient) { return function () { var paypalElement = document.querySelector("[".concat(_constants.PAYPAL_ELEMENT_INSTANCE, "]")); var buttons = Array.from(document.querySelectorAll("[".concat(_constants.PAYPAL_BUTTON_ELEMENT_INSTANCE, "]"))); if (paypalElement && buttons && buttons.length > 0) { buttons.forEach(function (button) { var style = (0, _commerceUtils.safeParseJson)(button.getAttribute(_constants.PAYPAL_BUTTON_ELEMENT_INSTANCE)); window.paypal.Buttons({ style: style, createOrder: function createOrder() { return apolloClient.mutate({ mutation: _checkoutMutations.requestPayPalOrderMutation }).then(function (data) { var orderId = data.data.ecommercePaypalOrderRequest.orderId; return orderId; })["catch"](function (err) { (0, _checkoutUtils.showErrorMessageForError)(err); if ((0, _cartUtils.isCartOpen)()) { (0, _cartUtils.showErrorMessageForError)(err); } throw err; }); }, onApprove: function onApprove(data, actions) { createConfirmationIframe(actions); } }).render(button); }); } }; }; exports.renderPaypalButtons = renderPaypalButtons; var register = function register(handlerProxy) { handlerProxy.on(_constants.RENDER_TREE_EVENT, Boolean, handleRenderPayPalCheckout); handlerProxy.on('click', isPlaceOrderButtonEvent, handlePlaceOrder); handlerProxy.on('keydown', isPlaceOrderButtonEvent, function (event, apolloClient) { // $FlowIgnore which exists in KeyboardEvent if (event.which === 32) { // prevent scrolling on spacebar key press event.preventDefault(); } // $FlowIgnore which exists in KeyboardEvent if (event.which === 13) { // enter key press return handlePlaceOrder(event, apolloClient); } }); handlerProxy.on('keyup', isPlaceOrderButtonEvent, function (event, apolloClient) { // $FlowIgnore which exists in KeyboardEvent if (event.which === 32) { // spacebar key press return handlePlaceOrder(event, apolloClient); } }); }; var _default = { register: register }; exports["default"] = _default; /***/ }), /* 832 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document, FormData, WEBFLOW_FORM_API_HOST, WEBFLOW_FORM_OLDIE_HOST */ /* eslint-disable no-var */ /** * Webflow: Forms */ var _interopRequireDefault = __webpack_require__(0); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(81)); var Webflow = __webpack_require__(20); Webflow.define('forms', module.exports = function ($, _) { var api = {}; var $doc = $(document); var $forms; var loc = window.location; var retro = window.XDomainRequest && !window.atob; var namespace = '.w-form'; var siteId; var emailField = /e(-)?mail/i; var emailValue = /^\S+@\S+$/; var alert = window.alert; var inApp = Webflow.env(); var listening; var formUrl; var signFileUrl; // MailChimp domains: list-manage.com + mirrors var chimpRegex = /list-manage[1-9]?.com/i; var disconnected = _.debounce(function () { alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); }, 100); api.ready = api.design = api.preview = function () { // Init forms init(); // Wire document events on published site only once if (!inApp && !listening) { addListeners(); } }; function init() { siteId = $('html').attr('data-wf-site'); formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit if (retro && formUrl.indexOf("https://webflow.com") >= 0) { formUrl = formUrl.replace("https://webflow.com", "https://formdata.webflow.com"); } signFileUrl = "".concat(formUrl, "/signFile"); $forms = $(namespace + ' form'); if (!$forms.length) { return; } $forms.each(build); } function build(i, el) { // Store form state using namespace var $el = $(el); var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { form: $el }); } // data.form reset(data); var wrap = $el.closest('div.w-form'); data.done = wrap.find('> .w-form-done'); data.fail = wrap.find('> .w-form-fail'); data.fileUploads = wrap.find('.w-file-upload'); data.fileUploads.each(function (j) { initFileUpload(j, data); }); // Accessiblity fixes var formName = data.form.attr('aria-label') || data.form.attr('data-name') || 'Form'; if (!data.done.attr('aria-label')) { data.form.attr('aria-label', formName); } data.done.attr('tabindex', '-1'); data.done.attr('role', 'region'); if (!data.done.attr('aria-label')) { data.done.attr('aria-label', formName + ' success'); } data.fail.attr('tabindex', '-1'); data.fail.attr('role', 'region'); if (!data.fail.attr('aria-label')) { data.fail.attr('aria-label', formName + ' failure'); } var action = data.action = $el.attr('action'); data.handler = null; data.redirect = $el.attr('data-redirect'); // MailChimp form if (chimpRegex.test(action)) { data.handler = submitMailChimp; return; } // Custom form action if (action) { return; } // Webflow forms for hosting accounts if (siteId) { data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; return; } // Alert for disconnected Webflow forms disconnected(); } function addListeners() { listening = true; // Handle form submission for Webflow forms $doc.on('submit', namespace + ' form', function (evt) { var data = $.data(this, namespace); if (data.handler) { data.evt = evt; data.handler(data); } }); // handle checked ui for custom checkbox and radio button var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; var CHECKED_CLASS = 'w--redirected-checked'; var FOCUSED_CLASS = 'w--redirected-focus'; var FOCUSED_VISIBLE_CLASS = 'w--redirected-focus-visible'; var focusVisibleSelectors = ':focus-visible, [data-wf-focus-visible]'; var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); }); $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); }); var $target = $(evt.target); if (!$target.hasClass('w-radio-input')) { $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); } }); CUSTOM_CONTROLS.forEach(function (_ref) { var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), controlType = _ref2[0], customControlClassName = _ref2[1]; $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); $(evt.target).filter(focusVisibleSelectors).siblings(customControlClassName).addClass(FOCUSED_VISIBLE_CLASS); }); $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { $(evt.target).siblings(customControlClassName).removeClass("".concat(FOCUSED_CLASS, " ").concat(FOCUSED_VISIBLE_CLASS)); }); }); } // Reset data common to all submit handlers function reset(data) { var btn = data.btn = data.form.find(':input[type="submit"]'); data.wait = data.btn.attr('data-wait') || null; data.success = false; btn.prop('disabled', false); data.label && btn.val(data.label); } // Disable submit button function disableBtn(data) { var btn = data.btn; var wait = data.wait; btn.prop('disabled', true); // Show wait text and store previous label if (wait) { data.label = btn.val(); btn.val(wait); } } // Find form fields, validate, and set value pairs function findFields(form, result) { var status = null; result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { var field = $(el); var type = field.attr('type'); var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); var value = field.val(); if (type === 'checkbox') { value = field.is(':checked'); } else if (type === 'radio') { // Radio group value already processed if (result[name] === null || typeof result[name] === 'string') { return; } value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; } if (typeof value === 'string') { value = $.trim(value); } result[name] = value; status = status || getStatus(field, type, name, value); }); return status; } function findFileUploads(form) { var result = {}; form.find(':input[type="file"]').each(function (i, el) { var field = $(el); var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); var value = field.attr('data-value'); if (typeof value === 'string') { value = $.trim(value); } result[name] = value; }); return result; } var trackingCookieNameMap = { _mkto_trk: 'marketo' // __hstc: 'hubspot', }; function collectEnterpriseTrackingCookies() { var cookies = document.cookie.split('; ').reduce(function (acc, cookie) { var splitCookie = cookie.split('='); var name = splitCookie[0]; if (name in trackingCookieNameMap) { var mappedName = trackingCookieNameMap[name]; var value = splitCookie.slice(1).join('='); acc[mappedName] = value; } return acc; }, {}); return cookies; } function getStatus(field, type, name, value) { var status = null; if (type === 'password') { status = 'Passwords cannot be submitted.'; } else if (field.attr('required')) { if (!value) { status = 'Please fill out the required field: ' + name; } else if (emailField.test(field.attr('type'))) { if (!emailValue.test(value)) { status = 'Please enter a valid email address for: ' + name; } } } else if (name === 'g-recaptcha-response' && !value) { status = 'Please confirm you’re not a robot.'; } return status; } function exportedSubmitWebflow(data) { preventDefault(data); afterSubmit(data); } /* WEBFLOW_HOSTED_BLOCK:START */ // Submit form to Webflow function hostedSubmitWebflow(data) { reset(data); var form = data.form; var payload = { name: form.attr('data-name') || form.attr('name') || 'Untitled Form', source: loc.href, test: Webflow.env(), fields: {}, fileUploads: {}, dolphin: /pass[\s-_]?(word|code)|secret|login|credentials/i.test(form.html()), trackingCookies: collectEnterpriseTrackingCookies() }; var wfFlow = form.attr('data-wf-flow'); if (wfFlow) { payload.wfFlow = wfFlow; } preventDefault(data); // Find & populate all fields var status = findFields(form, payload.fields); if (status) { return alert(status); } payload.fileUploads = findFileUploads(form); // Disable submit button disableBtn(data); // Read site ID // NOTE: If this site is exported, the HTML tag must retain the data-wf-site attribute for forms to work if (!siteId) { afterSubmit(data); return; } $.ajax({ url: formUrl, type: 'POST', data: payload, dataType: 'json', crossDomain: true }).done(function (response) { if (response && response.code === 200) { data.success = true; } afterSubmit(data); }).fail(function () { afterSubmit(data); }); } /* WEBFLOW_HOSTED_BLOCK:END */ // Submit form to MailChimp function submitMailChimp(data) { reset(data); var form = data.form; var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead if (/^https/.test(loc.href) && !/^https/.test(data.action)) { form.attr('method', 'post'); return; } preventDefault(data); // Find & populate all fields var status = findFields(form, payload); if (status) { return alert(status); } // Disable submit button disableBtn(data); // Use special format for MailChimp params var fullName; _.each(payload, function (value, key) { if (emailField.test(key)) { payload.EMAIL = value; } if (/^((full[ _-]?)?name)$/i.test(key)) { fullName = value; } if (/^(first[ _-]?name)$/i.test(key)) { payload.FNAME = value; } if (/^(last[ _-]?name)$/i.test(key)) { payload.LNAME = value; } }); if (fullName && !payload.FNAME) { fullName = fullName.split(' '); payload.FNAME = fullName[0]; payload.LNAME = payload.LNAME || fullName[1]; } // Use the (undocumented) MailChimp jsonp api var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups var userId = url.indexOf('u=') + 2; userId = url.substring(userId, url.indexOf('&', userId)); var listId = url.indexOf('id=') + 3; listId = url.substring(listId, url.indexOf('&', listId)); payload['b_' + userId + '_' + listId] = ''; $.ajax({ url: url, data: payload, dataType: 'jsonp' }).done(function (resp) { data.success = resp.result === 'success' || /already/.test(resp.msg); if (!data.success) { console.info('MailChimp error: ' + resp.msg); } afterSubmit(data); }).fail(function () { afterSubmit(data); }); } // Common callback which runs after all Ajax submissions function afterSubmit(data) { var form = data.form; var redirect = data.redirect; var success = data.success; // Redirect to a success url if defined if (success && redirect) { Webflow.location(redirect); return; } // Show or hide status divs data.done.toggle(success); data.fail.toggle(!success); if (success) { data.done.focus(); } else { data.fail.focus(); } // Hide form on success form.toggle(!success); // Reset data and enable submit button reset(data); } function preventDefault(data) { data.evt && data.evt.preventDefault(); data.evt = null; } function initFileUpload(i, form) { if (!form.fileUploads || !form.fileUploads[i]) { return; } var file; var $el = $(form.fileUploads[i]); var $defaultWrap = $el.find('> .w-file-upload-default'); var $uploadingWrap = $el.find('> .w-file-upload-uploading'); var $successWrap = $el.find('> .w-file-upload-success'); var $errorWrap = $el.find('> .w-file-upload-error'); var $input = $defaultWrap.find('.w-file-upload-input'); var $label = $defaultWrap.find('.w-file-upload-label'); var $labelChildren = $label.children(); var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); var $fileEl = $successWrap.find('.w-file-upload-file'); var $removeEl = $successWrap.find('.w-file-remove-link'); var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); // Accessiblity fixes // The file upload Input is not stylable by the designer, so we are // going to pretend the Label is the input. ¯\_(ツ)_/¯ if (!inApp) { $label.on('click keydown', function (e) { if (e.type === 'keydown' && e.which !== 13 && e.which !== 32) { return; } e.preventDefault(); $input.click(); }); } // Both of these are added through CSS $label.find('.w-icon-file-upload-icon').attr('aria-hidden', 'true'); $removeEl.find('.w-icon-file-upload-remove').attr('aria-hidden', 'true'); if (!inApp) { $removeEl.on('click keydown', function (e) { if (e.type === 'keydown') { if (e.which !== 13 && e.which !== 32) { return; } e.preventDefault(); } $input.removeAttr('data-value'); $input.val(''); $fileNameEl.html(''); $defaultWrap.toggle(true); $successWrap.toggle(false); $label.focus(); }); $input.on('change', function (e) { file = e.target && e.target.files && e.target.files[0]; if (!file) { return; } // Show uploading $defaultWrap.toggle(false); $errorWrap.toggle(false); $uploadingWrap.toggle(true); $uploadingWrap.focus(); // Set filename $fileNameEl.text(file.name); // Disable submit button if (!isUploading()) { disableBtn(form); } form.fileUploads[i].uploading = true; signFile(file, afterSign); }); // Setting input width 1px and height equal label // This is so the browser required error will show up var height = $label.outerHeight(); $input.height(height); $input.width(1); } else { $input.on('click', function (e) { e.preventDefault(); }); $label.on('click', function (e) { e.preventDefault(); }); $labelChildren.on('click', function (e) { e.preventDefault(); }); } function parseError(err) { var errorMsg = err.responseJSON && err.responseJSON.msg; var userError = genericErrMsg; if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { userError = typeErrMsg; } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { userError = sizeErrMsg; } $errorMsgEl.text(userError); $input.removeAttr('data-value'); $input.val(''); $uploadingWrap.toggle(false); $defaultWrap.toggle(true); $errorWrap.toggle(true); $errorWrap.focus(); form.fileUploads[i].uploading = false; if (!isUploading()) { reset(form); } } function afterSign(err, data) { if (err) { return parseError(err); } var fileName = data.fileName; var postData = data.postData; var fileId = data.fileId; var s3Url = data.s3Url; $input.attr('data-value', fileId); uploadS3(s3Url, postData, file, fileName, afterUpload); } function afterUpload(err) { if (err) { return parseError(err); } // Show success $uploadingWrap.toggle(false); $successWrap.css('display', 'inline-block'); $successWrap.focus(); form.fileUploads[i].uploading = false; if (!isUploading()) { reset(form); } } function isUploading() { var uploads = form.fileUploads && form.fileUploads.toArray() || []; return uploads.some(function (value) { return value.uploading; }); } } function signFile(file, cb) { var payload = new URLSearchParams({ name: file.name, size: file.size }); $.ajax({ type: 'GET', url: "".concat(signFileUrl, "?").concat(payload), crossDomain: true }).done(function (data) { cb(null, data); }).fail(function (err) { cb(err); }); } function uploadS3(url, data, file, fileName, cb) { var formData = new FormData(); for (var k in data) { formData.append(k, data[k]); } formData.append('file', file, fileName); $.ajax({ type: 'POST', url: url, data: formData, processData: false, contentType: false }).done(function () { cb(null); }).fail(function (err) { cb(err); }); } // Export module return api; }); /***/ }), /* 833 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document, jQuery */ /* eslint-disable no-var */ /** * Webflow: Lightbox component */ var Webflow = __webpack_require__(20); var CONDITION_INVISIBLE_CLASS = 'w-condition-invisible'; var CONDVIS_SELECTOR = '.' + CONDITION_INVISIBLE_CLASS; function withoutConditionallyHidden(items) { return items.filter(function (item) { return !isConditionallyHidden(item); }); } function isConditionallyHidden(item) { return Boolean(item.$el && item.$el.closest(CONDVIS_SELECTOR).length); } function getPreviousVisibleIndex(start, items) { for (var i = start; i >= 0; i--) { if (!isConditionallyHidden(items[i])) { return i; } } return -1; } function getNextVisibleIndex(start, items) { for (var i = start; i <= items.length - 1; i++) { if (!isConditionallyHidden(items[i])) { return i; } } return -1; } function shouldSetArrowLeftInactive(currentIndex, items) { return getPreviousVisibleIndex(currentIndex - 1, items) === -1; } function shouldSetArrowRightInactive(currentIndex, items) { return getNextVisibleIndex(currentIndex + 1, items) === -1; } function setAriaLabelIfEmpty($element, labelText) { if (!$element.attr('aria-label')) { $element.attr('aria-label', labelText); } } function createLightbox(window, document, $, container) { var tram = $.tram; var isArray = Array.isArray; var namespace = 'w-lightbox'; var prefix = namespace + '-'; var prefixRegex = /(^|\s+)/g; // Array of objects describing items to be displayed. var items = []; // Index of the currently displayed item. var currentIndex; // Object holding references to jQuery wrapped nodes. var $refs; // Instance of Spinner var spinner; // Tracks data on element visiblity modified when lightbox opens var resetVisibilityState = []; function lightbox(thing, index) { items = isArray(thing) ? thing : [thing]; if (!$refs) { lightbox.build(); } if (withoutConditionallyHidden(items).length > 1) { $refs.items = $refs.empty; items.forEach(function (item, idx) { var $thumbnail = dom('thumbnail'); var $item = dom('item').prop('tabIndex', 0).attr('aria-controls', 'w-lightbox-view').attr('role', 'tab').append($thumbnail); setAriaLabelIfEmpty($item, "show item ".concat(idx + 1, " of ").concat(items.length)); if (isConditionallyHidden(item)) { $item.addClass(CONDITION_INVISIBLE_CLASS); } $refs.items = $refs.items.add($item); loadImage(item.thumbnailUrl || item.url, function ($image) { if ($image.prop('width') > $image.prop('height')) { addClass($image, 'wide'); } else { addClass($image, 'tall'); } $thumbnail.append(addClass($image, 'thumbnail-image')); }); }); $refs.strip.empty().append($refs.items); addClass($refs.content, 'group'); } tram( // Focus the lightbox to receive keyboard events. removeClass($refs.lightbox, 'hide').trigger('focus')).add('opacity .3s').start({ opacity: 1 }); // Prevent document from scrolling while lightbox is active. addClass($refs.html, 'noscroll'); return lightbox.show(index || 0); } /** * Creates the DOM structure required by the lightbox. */ lightbox.build = function () { // In case `build` is called more than once. lightbox.destroy(); $refs = { html: $(document.documentElement), // Empty jQuery object can be used to build new ones using `.add`. empty: $() }; $refs.arrowLeft = dom('control left inactive').attr('role', 'button').attr('aria-hidden', true).attr('aria-controls', 'w-lightbox-view'); $refs.arrowRight = dom('control right inactive').attr('role', 'button').attr('aria-hidden', true).attr('aria-controls', 'w-lightbox-view'); $refs.close = dom('control close').attr('role', 'button'); // Only set `aria-label` values if not already present setAriaLabelIfEmpty($refs.arrowLeft, 'previous image'); setAriaLabelIfEmpty($refs.arrowRight, 'next image'); setAriaLabelIfEmpty($refs.close, 'close lightbox'); $refs.spinner = dom('spinner').attr('role', 'progressbar').attr('aria-live', 'polite').attr('aria-hidden', false).attr('aria-busy', true).attr('aria-valuemin', 0).attr('aria-valuemax', 100).attr('aria-valuenow', 0).attr('aria-valuetext', 'Loading image'); $refs.strip = dom('strip').attr('role', 'tablist'); spinner = new Spinner($refs.spinner, prefixed('hide')); $refs.content = dom('content').append($refs.spinner, $refs.arrowLeft, $refs.arrowRight, $refs.close); $refs.container = dom('container').append($refs.content, $refs.strip); $refs.lightbox = dom('backdrop hide').append($refs.container); // We are delegating events for performance reasons and also // to not have to reattach handlers when images change. $refs.strip.on('click', selector('item'), itemTapHandler); $refs.content.on('swipe', swipeHandler).on('click', selector('left'), handlerPrev).on('click', selector('right'), handlerNext).on('click', selector('close'), handlerHide).on('click', selector('image, caption'), handlerNext); $refs.container.on('click', selector('view'), handlerHide) // Prevent images from being dragged around. .on('dragstart', selector('img'), preventDefault); $refs.lightbox.on('keydown', keyHandler) // IE loses focus to inner nodes without letting us know. .on('focusin', focusThis); $(container).append($refs.lightbox); return lightbox; }; /** * Dispose of DOM nodes created by the lightbox. */ lightbox.destroy = function () { if (!$refs) { return; } // Event handlers are also removed. removeClass($refs.html, 'noscroll'); $refs.lightbox.remove(); $refs = undefined; }; /** * Show a specific item. */ lightbox.show = function (index) { // Bail if we are already showing this item. if (index === currentIndex) { return; } var item = items[index]; if (!item) { return lightbox.hide(); } if (isConditionallyHidden(item)) { if (index < currentIndex) { var previousVisibleIndex = getPreviousVisibleIndex(index - 1, items); index = previousVisibleIndex > -1 ? previousVisibleIndex : index; } else { var nextVisibleIndex = getNextVisibleIndex(index + 1, items); index = nextVisibleIndex > -1 ? nextVisibleIndex : index; } item = items[index]; } var previousIndex = currentIndex; currentIndex = index; $refs.spinner.attr('aria-hidden', false).attr('aria-busy', true).attr('aria-valuenow', 0).attr('aria-valuetext', 'Loading image'); spinner.show(); // For videos, load an empty SVG with the video dimensions to preserve // the video’s aspect ratio while being responsive. var url = item.html && svgDataUri(item.width, item.height) || item.url; loadImage(url, function ($image) { // Make sure this is the last item requested to be shown since // images can finish loading in a different order than they were // requested in. if (index !== currentIndex) { return; } var $figure = dom('figure', 'figure').append(addClass($image, 'image')); var $frame = dom('frame').append($figure); var $newView = dom('view').prop('tabIndex', 0).attr('id', 'w-lightbox-view').append($frame); var $html; var isIframe; if (item.html) { $html = $(item.html); isIframe = $html.is('iframe'); if (isIframe) { $html.on('load', transitionToNewView); } $figure.append(addClass($html, 'embed')); } if (item.caption) { $figure.append(dom('caption', 'figcaption').text(item.caption)); } $refs.spinner.before($newView); if (!isIframe) { transitionToNewView(); } function transitionToNewView() { $refs.spinner.attr('aria-hidden', true).attr('aria-busy', false).attr('aria-valuenow', 100).attr('aria-valuetext', 'Loaded image'); spinner.hide(); if (index !== currentIndex) { $newView.remove(); return; } var shouldHideLeftArrow = shouldSetArrowLeftInactive(index, items); toggleClass($refs.arrowLeft, 'inactive', shouldHideLeftArrow); toggleHidden($refs.arrowLeft, shouldHideLeftArrow); if (shouldHideLeftArrow && $refs.arrowLeft.is(':focus')) { // Refocus on right arrow as left arrow is hidden $refs.arrowRight.focus(); } var shouldHideRightArrow = shouldSetArrowRightInactive(index, items); toggleClass($refs.arrowRight, 'inactive', shouldHideRightArrow); toggleHidden($refs.arrowRight, shouldHideRightArrow); if (shouldHideRightArrow && $refs.arrowRight.is(':focus')) { // Refocus on left arrow as right arrow is hidden $refs.arrowLeft.focus(); } if ($refs.view) { tram($refs.view).add('opacity .3s').start({ opacity: 0 }).then(remover($refs.view)); tram($newView).add('opacity .3s').add('transform .3s').set({ x: index > previousIndex ? '80px' : '-80px' }).start({ opacity: 1, x: 0 }); } else { $newView.css('opacity', 1); } $refs.view = $newView; $refs.view.prop('tabIndex', 0); if ($refs.items) { removeClass($refs.items, 'active'); $refs.items.removeAttr('aria-selected'); // Mark proper thumbnail as active var $activeThumb = $refs.items.eq(index); addClass($activeThumb, 'active'); $activeThumb.attr('aria-selected', true); // Scroll into view maybeScroll($activeThumb); } } }); $refs.close.prop('tabIndex', 0); // Track the focused item on page prior to lightbox opening, // so we can return focus on hide $(':focus').addClass('active-lightbox'); // Build is only called once per site (across multiple lightboxes), // while the show function is called when opening lightbox but also // when changing image. // So checking resetVisibilityState seems to be one approach to // trigger something only when the lightbox is opened if (resetVisibilityState.length === 0) { // Take all elements on the page out of the accessibility flow by marking // them hidden and preventing tab index while lightbox is open. $('body').children().each(function () { // We don't include the lightbox wrapper or script tags if ($(this).hasClass('w-lightbox-backdrop') || $(this).is('script')) { return; } // Store the elements previous visiblity state resetVisibilityState.push({ node: $(this), hidden: $(this).attr('aria-hidden'), tabIndex: $(this).attr('tabIndex') }); // Hide element from the accessiblity tree $(this).attr('aria-hidden', true).attr('tabIndex', -1); }); // Start focus on the close icon $refs.close.focus(); } return lightbox; }; /** * Hides the lightbox. */ lightbox.hide = function () { tram($refs.lightbox).add('opacity .3s').start({ opacity: 0 }).then(hideLightbox); return lightbox; }; lightbox.prev = function () { var previousVisibleIndex = getPreviousVisibleIndex(currentIndex - 1, items); if (previousVisibleIndex > -1) { lightbox.show(previousVisibleIndex); } }; lightbox.next = function () { var nextVisibleIndex = getNextVisibleIndex(currentIndex + 1, items); if (nextVisibleIndex > -1) { lightbox.show(nextVisibleIndex); } }; function createHandler(action) { return function (event) { // We only care about events triggered directly on the bound selectors. if (this !== event.target) { return; } event.stopPropagation(); event.preventDefault(); action(); }; } var handlerPrev = createHandler(lightbox.prev); var handlerNext = createHandler(lightbox.next); var handlerHide = createHandler(lightbox.hide); var itemTapHandler = function itemTapHandler(event) { var index = $(this).index(); event.preventDefault(); lightbox.show(index); }; var swipeHandler = function swipeHandler(event, data) { // Prevent scrolling. event.preventDefault(); if (data.direction === 'left') { lightbox.next(); } else if (data.direction === 'right') { lightbox.prev(); } }; var focusThis = function focusThis() { this.focus(); }; function preventDefault(event) { event.preventDefault(); } function keyHandler(event) { var keyCode = event.keyCode; // [esc] or ([enter] or [space] while close button is focused) if (keyCode === 27 || checkForFocusTrigger(keyCode, 'close')) { lightbox.hide(); // [â—€] or ([enter] or [space] while left button is focused) } else if (keyCode === 37 || checkForFocusTrigger(keyCode, 'left')) { lightbox.prev(); // [â–¶] or ([enter] or [space] while right button is focused) } else if (keyCode === 39 || checkForFocusTrigger(keyCode, 'right')) { lightbox.next(); // [enter] or [space] while a thumbnail is focused } else if (checkForFocusTrigger(keyCode, 'item')) { $(':focus').click(); } } /** * checkForFocusTrigger will check if the current focused element includes the matching class * and that the user has pressed either enter or space to trigger an action. * @param {number} The numerical keyCode from the `keydown` event * @param {string} The unique part of the `className` from the element we are checking. E.g. `close` will be prefixed into `w-lightbox-close` * @return {boolean} */ function checkForFocusTrigger(keyCode, classMatch) { if (keyCode !== 13 && keyCode !== 32) { return false; } var currentElementClasses = $(':focus').attr('class'); var classToFind = prefixed(classMatch).trim(); return currentElementClasses.includes(classToFind); } function hideLightbox() { // If the lightbox hasn't been destroyed already if ($refs) { // Reset strip scroll, otherwise next lightbox opens scrolled to last position $refs.strip.scrollLeft(0).empty(); removeClass($refs.html, 'noscroll'); addClass($refs.lightbox, 'hide'); $refs.view && $refs.view.remove(); // Reset some stuff removeClass($refs.content, 'group'); addClass($refs.arrowLeft, 'inactive'); addClass($refs.arrowRight, 'inactive'); currentIndex = $refs.view = undefined; // Bring the page elements back into the accessiblity tree resetVisibilityState.forEach(function (visibilityState) { var node = visibilityState.node; if (!node) { return; } if (visibilityState.hidden) { node.attr('aria-hidden', visibilityState.hidden); } else { node.removeAttr('aria-hidden'); } if (visibilityState.tabIndex) { node.attr('tabIndex', visibilityState.tabIndex); } else { node.removeAttr('tabIndex'); } }); // Clear out the reset visibility state resetVisibilityState = []; // Re-focus on the element that triggered the lightbox $('.active-lightbox').removeClass('active-lightbox').focus(); } } function loadImage(url, callback) { var $image = dom('img', 'img'); $image.one('load', function () { callback($image); }); // Start loading image. $image.attr('src', url); return $image; } function remover($element) { return function () { $element.remove(); }; } function maybeScroll($item) { var itemElement = $item.get(0); var stripElement = $refs.strip.get(0); var itemLeft = itemElement.offsetLeft; var itemWidth = itemElement.clientWidth; var stripScrollLeft = stripElement.scrollLeft; var stripWidth = stripElement.clientWidth; var stripScrollLeftMax = stripElement.scrollWidth - stripWidth; var newScrollLeft; if (itemLeft < stripScrollLeft) { newScrollLeft = Math.max(0, itemLeft + itemWidth - stripWidth); } else if (itemLeft + itemWidth > stripWidth + stripScrollLeft) { newScrollLeft = Math.min(itemLeft, stripScrollLeftMax); } if (newScrollLeft != null) { tram($refs.strip).add('scroll-left 500ms').start({ 'scroll-left': newScrollLeft }); } } /** * Spinner */ function Spinner($spinner, className, delay) { this.$element = $spinner; this.className = className; this.delay = delay || 200; this.hide(); } Spinner.prototype.show = function () { // eslint-disable-next-line no-shadow var spinner = this; // Bail if we are already showing the spinner. if (spinner.timeoutId) { return; } spinner.timeoutId = setTimeout(function () { spinner.$element.removeClass(spinner.className); // eslint-disable-next-line webflow/no-delete delete spinner.timeoutId; }, spinner.delay); }; Spinner.prototype.hide = function () { // eslint-disable-next-line no-shadow var spinner = this; if (spinner.timeoutId) { clearTimeout(spinner.timeoutId); // eslint-disable-next-line webflow/no-delete delete spinner.timeoutId; return; } spinner.$element.addClass(spinner.className); }; function prefixed(string, isSelector) { return string.replace(prefixRegex, (isSelector ? ' .' : ' ') + prefix); } function selector(string) { return prefixed(string, true); } /** * jQuery.addClass with auto-prefixing * @param {jQuery} Element to add class to * @param {string} Class name that will be prefixed and added to element * @return {jQuery} */ function addClass($element, className) { return $element.addClass(prefixed(className)); } /** * jQuery.removeClass with auto-prefixing * @param {jQuery} Element to remove class from * @param {string} Class name that will be prefixed and removed from element * @return {jQuery} */ function removeClass($element, className) { return $element.removeClass(prefixed(className)); } /** * jQuery.toggleClass with auto-prefixing * @param {jQuery} Element where class will be toggled * @param {string} Class name that will be prefixed and toggled * @param {boolean} Optional boolean that determines if class will be added or removed * @return {jQuery} */ function toggleClass($element, className, shouldAdd) { return $element.toggleClass(prefixed(className), shouldAdd); } /** * jQuery.toggleHidden * @param {jQuery} Element where attribute will be set * @param {boolean} Boolean that determines if aria-hidden will be true or false * @return {jQuery} */ function toggleHidden($element, isHidden) { return $element.attr('aria-hidden', isHidden).attr('tabIndex', isHidden ? -1 : 0); } /** * Create a new DOM element wrapped in a jQuery object, * decorated with our custom methods. * @param {string} className * @param {string} [tag] * @return {jQuery} */ function dom(className, tag) { return addClass($(document.createElement(tag || 'div')), className); } function svgDataUri(width, height) { var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' + width + '" height="' + height + '"/>'; return 'data:image/svg+xml;charset=utf-8,' + encodeURI(svg); } // Compute some dimensions manually for iOS < 8, because of buggy support for VH. // Also, Android built-in browser does not support viewport units. (function () { var ua = window.navigator.userAgent; var iOSRegex = /(iPhone|iPad|iPod);[^OS]*OS (\d)/; var iOSMatches = ua.match(iOSRegex); var android = ua.indexOf('Android ') > -1 && ua.indexOf('Chrome') === -1; if (!android && (!iOSMatches || iOSMatches[2] > 7)) { return; } var styleNode = document.createElement('style'); document.head.appendChild(styleNode); window.addEventListener('resize', refresh, true); function refresh() { var vh = window.innerHeight; var vw = window.innerWidth; var content = '.w-lightbox-content, .w-lightbox-view, .w-lightbox-view:before {' + 'height:' + vh + 'px' + '}' + '.w-lightbox-view {' + 'width:' + vw + 'px' + '}' + '.w-lightbox-group, .w-lightbox-group .w-lightbox-view, .w-lightbox-group .w-lightbox-view:before {' + 'height:' + 0.86 * vh + 'px' + '}' + '.w-lightbox-image {' + 'max-width:' + vw + 'px;' + 'max-height:' + vh + 'px' + '}' + '.w-lightbox-group .w-lightbox-image {' + 'max-height:' + 0.86 * vh + 'px' + '}' + '.w-lightbox-strip {' + 'padding: 0 ' + 0.01 * vh + 'px' + '}' + '.w-lightbox-item {' + 'width:' + 0.1 * vh + 'px;' + 'padding:' + 0.02 * vh + 'px ' + 0.01 * vh + 'px' + '}' + '.w-lightbox-thumbnail {' + 'height:' + 0.1 * vh + 'px' + '}' + '@media (min-width: 768px) {' + '.w-lightbox-content, .w-lightbox-view, .w-lightbox-view:before {' + 'height:' + 0.96 * vh + 'px' + '}' + '.w-lightbox-content {' + 'margin-top:' + 0.02 * vh + 'px' + '}' + '.w-lightbox-group, .w-lightbox-group .w-lightbox-view, .w-lightbox-group .w-lightbox-view:before {' + 'height:' + 0.84 * vh + 'px' + '}' + '.w-lightbox-image {' + 'max-width:' + 0.96 * vw + 'px;' + 'max-height:' + 0.96 * vh + 'px' + '}' + '.w-lightbox-group .w-lightbox-image {' + 'max-width:' + 0.823 * vw + 'px;' + 'max-height:' + 0.84 * vh + 'px' + '}' + '}'; styleNode.textContent = content; } refresh(); })(); return lightbox; } Webflow.define('lightbox', module.exports = function ($) { var api = {}; var inApp = Webflow.env(); var lightbox = createLightbox(window, document, $, inApp ? '#lightbox-mountpoint' : 'body'); var $doc = $(document); var $lightboxes; var designer; var namespace = '.w-lightbox'; var groups; // ----------------------------------- // Module methods api.ready = api.design = api.preview = init; // ----------------------------------- // Private methods function init() { designer = inApp && Webflow.env('design'); // Reset Lightbox lightbox.destroy(); // Reset groups groups = {}; // Find all instances on the page $lightboxes = $doc.find(namespace); // Instantiate all lighboxes $lightboxes.webflowLightBox(); // Set accessibility properties that are useful prior // to a lightbox being opened $lightboxes.each(function () { setAriaLabelIfEmpty($(this), 'open lightbox'); $(this).attr('aria-haspopup', 'dialog'); }); } jQuery.fn.extend({ webflowLightBox: function webflowLightBox() { var $el = this; $.each($el, function (i, el) { // Store state in data var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { el: $(el), mode: 'images', images: [], embed: '' }); } // Remove old events data.el.off(namespace); // Set config from json script tag configure(data); // Add events based on mode if (designer) { data.el.on('setting' + namespace, configure.bind(null, data)); } else { data.el.on('click' + namespace, clickHandler(data)) // Prevent page scrolling to top when clicking on lightbox triggers. .on('click' + namespace, function (e) { e.preventDefault(); }); } }); } }); function configure(data) { var json = data.el.children('.w-json').html(); var groupName; var groupItems; if (!json) { data.items = []; return; } try { json = JSON.parse(json); } catch (e) { console.error('Malformed lightbox JSON configuration.', e); } supportOldLightboxJson(json); json.items.forEach(function (item) { item.$el = data.el; }); groupName = json.group; if (groupName) { groupItems = groups[groupName]; if (!groupItems) { groupItems = groups[groupName] = []; } data.items = groupItems; if (json.items.length) { data.index = groupItems.length; groupItems.push.apply(groupItems, json.items); } } else { data.items = json.items; data.index = 0; } } function clickHandler(data) { return function () { data.items.length && lightbox(data.items, data.index || 0); }; } function supportOldLightboxJson(data) { if (data.images) { data.images.forEach(function (item) { item.type = 'image'; }); data.items = data.images; } if (data.embed) { data.embed.type = 'video'; data.items = [data.embed]; } if (data.groupId) { data.group = data.groupId; } } // Export module return api; }); /***/ }), /* 834 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: Navbar component */ var Webflow = __webpack_require__(20); var IXEvents = __webpack_require__(153); var KEY_CODES = { ARROW_LEFT: 37, ARROW_UP: 38, ARROW_RIGHT: 39, ARROW_DOWN: 40, ESCAPE: 27, SPACE: 32, ENTER: 13, HOME: 36, END: 35 }; Webflow.define('navbar', module.exports = function ($, _) { var api = {}; var tram = $.tram; var $win = $(window); var $doc = $(document); var debounce = _.debounce; var $body; var $navbars; var designer; var inEditor; var inApp = Webflow.env(); var overlay = '<div class="w-nav-overlay" data-wf-ignore />'; var namespace = '.w-nav'; var navbarOpenedButton = 'w--open'; var navbarOpenedDropdown = 'w--nav-dropdown-open'; var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; var navbarOpenedLink = 'w--nav-link-open'; var ix = IXEvents.triggers; var menuSibling = $(); // ----------------------------------- // Module methods api.ready = api.design = api.preview = init; api.destroy = function () { menuSibling = $(); removeListeners(); if ($navbars && $navbars.length) { $navbars.each(teardown); } }; // ----------------------------------- // Private methods function init() { designer = inApp && Webflow.env('design'); inEditor = Webflow.env('editor'); $body = $(document.body); // Find all instances on the page $navbars = $doc.find(namespace); if (!$navbars.length) { return; } $navbars.each(build); // Wire events removeListeners(); addListeners(); } function removeListeners() { Webflow.resize.off(resizeAll); } function addListeners() { Webflow.resize.on(resizeAll); } function resizeAll() { $navbars.each(resize); } function build(i, el) { var $el = $(el); // Store state in data var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { open: false, el: $el, config: {}, selectedIdx: -1 }); } data.menu = $el.find('.w-nav-menu'); data.links = data.menu.find('.w-nav-link'); data.dropdowns = data.menu.find('.w-dropdown'); data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); data.dropdownList = data.menu.find('.w-dropdown-list'); data.button = $el.find('.w-nav-button'); data.container = $el.find('.w-container'); data.overlayContainerId = 'w-nav-overlay-' + i; data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the // default setting, then add an aria-label var navBrandLink = $el.find('.w-nav-brand'); if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { navBrandLink.attr('aria-label', 'home'); } // VoiceOver bug, when items that disallow user selection are focused // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ツ)_/¯ data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element if (data.button.attr('aria-label') == null) { data.button.attr('aria-label', 'menu'); } data.button.attr('role', 'button'); data.button.attr('tabindex', '0'); data.button.attr('aria-controls', data.overlayContainerId); data.button.attr('aria-haspopup', 'menu'); data.button.attr('aria-expanded', 'false'); // Remove old events data.el.off(namespace); data.button.off(namespace); data.menu.off(namespace); // Set config from data attributes configure(data); // Add events based on mode if (designer) { removeOverlay(data); data.el.on('setting' + namespace, handler(data)); } else { addOverlay(data); data.button.on('click' + namespace, toggle(data)); data.menu.on('click' + namespace, 'a', navigate(data)); data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); } // Trigger initial resize resize(i, el); } function teardown(i, el) { var data = $.data(el, namespace); if (data) { removeOverlay(data); $.removeData(el, namespace); } } function removeOverlay(data) { if (!data.overlay) { return; } close(data, true); data.overlay.remove(); data.overlay = null; } function addOverlay(data) { if (data.overlay) { return; } data.overlay = $(overlay).appendTo(data.el); data.overlay.attr('id', data.overlayContainerId); data.parent = data.menu.parent(); close(data, true); } function configure(data) { var config = {}; var old = data.config || {}; // Set config options from data attributes var animation = config.animation = data.el.attr('data-animation') || 'default'; config.animOver = /^over/.test(animation); config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed if (old.animation !== animation) { data.open && _.defer(reopen, data); } config.easing = data.el.attr('data-easing') || 'ease'; config.easing2 = data.el.attr('data-easing2') || 'ease'; var duration = data.el.attr('data-duration'); config.duration = duration != null ? Number(duration) : 400; config.docHeight = data.el.attr('data-doc-height'); // Store config in data data.config = config; } function handler(data) { return function (evt, options) { options = options || {}; var winWidth = $win.width(); configure(data); options.open === true && open(data, true); options.open === false && close(data, true); // Reopen if media query changed after setting data.open && _.defer(function () { if (winWidth !== $win.width()) { reopen(data); } }); }; } function makeToggleButtonKeyboardHandler(data) { return function (evt) { switch (evt.keyCode) { case KEY_CODES.SPACE: case KEY_CODES.ENTER: { // Toggle returns a function toggle(data)(); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ESCAPE: { close(data); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ARROW_RIGHT: case KEY_CODES.ARROW_DOWN: case KEY_CODES.HOME: case KEY_CODES.END: { if (!data.open) { evt.preventDefault(); return evt.stopPropagation(); } if (evt.keyCode === KEY_CODES.END) { data.selectedIdx = data.links.length - 1; } else { data.selectedIdx = 0; } focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } } }; } function makeLinksKeyboardHandler(data) { return function (evt) { if (!data.open) { return; } // Realign selectedIdx with the menu item that is currently in focus. // We need this because we do not track the `Tab` key activity! data.selectedIdx = data.links.index(document.activeElement); switch (evt.keyCode) { case KEY_CODES.HOME: case KEY_CODES.END: { if (evt.keyCode === KEY_CODES.END) { data.selectedIdx = data.links.length - 1; } else { data.selectedIdx = 0; } focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ESCAPE: { close(data); // Focus toggle button data.button.focus(); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ARROW_LEFT: case KEY_CODES.ARROW_UP: { data.selectedIdx = Math.max(-1, data.selectedIdx - 1); focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ARROW_RIGHT: case KEY_CODES.ARROW_DOWN: { data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } } }; } function focusSelectedLink(data) { if (data.links[data.selectedIdx]) { var selectedElement = data.links[data.selectedIdx]; selectedElement.focus(); navigate(selectedElement); } } function reopen(data) { if (!data.open) { return; } close(data, true); open(data, true); } function toggle(data) { // Debounce toggle to wait for accurate open state return debounce(function () { data.open ? close(data) : open(data); }); } function navigate(data) { return function (evt) { var link = $(this); var href = link.attr('href'); // Avoid late clicks on touch devices if (!Webflow.validClick(evt.currentTarget)) { evt.preventDefault(); return; } // Close when navigating to an in-page anchor if (href && href.indexOf('#') === 0 && data.open) { close(data); } }; } function outside(data) { // Unbind previous click handler if it exists if (data.outside) { $doc.off('click' + namespace, data.outside); } return function (evt) { var $target = $(evt.target); // Ignore clicks on Editor overlay UI if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { return; } // Close menu when clicked outside, debounced to wait for state outsideDebounced(data, $target); }; } var outsideDebounced = debounce(function (data, $target) { if (!data.open) { return; } var menu = $target.closest('.w-nav-menu'); if (!data.menu.is(menu)) { close(data); } }); function resize(i, el) { var data = $.data(el, namespace); // Check for collapsed state based on button display var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) if (data.open && !collapsed && !designer) { close(data, true); } // Set max-width of links + dropdowns to match container if (data.container.length) { var updateEachMax = updateMax(data); data.links.each(updateEachMax); data.dropdowns.each(updateEachMax); } // If currently open, update height to match body if (data.open) { setOverlayHeight(data); } } var maxWidth = 'max-width'; function updateMax(data) { // Set max-width of each element to match container var containMax = data.container.css(maxWidth); if (containMax === 'none') { containMax = ''; } return function (i, link) { link = $(link); link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists if (link.css(maxWidth) === 'none') { link.css(maxWidth, containMax); } }; } function addMenuOpen(i, el) { el.setAttribute('data-nav-menu-open', ''); } function removeMenuOpen(i, el) { el.removeAttribute('data-nav-menu-open'); } function open(data, immediate) { if (data.open) { return; } data.open = true; data.menu.each(addMenuOpen); data.links.addClass(navbarOpenedLink); data.dropdowns.addClass(navbarOpenedDropdown); data.dropdownToggle.addClass(navbarOpenedDropdownToggle); data.dropdownList.addClass(navbarOpenedDropdownList); data.button.addClass(navbarOpenedButton); var config = data.config; var animation = config.animation; if (animation === 'none' || !tram.support.transform || config.duration <= 0) { immediate = true; } var bodyHeight = setOverlayHeight(data); var menuHeight = data.menu.outerHeight(true); var menuWidth = data.menu.outerWidth(true); var navHeight = data.el.height(); var navbarEl = data.el[0]; resize(0, navbarEl); ix.intro(0, navbarEl); Webflow.redraw.up(); // Listen for click outside events if (!designer) { $doc.on('click' + namespace, data.outside); } // No transition for immediate if (immediate) { complete(); return; } var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay if (data.overlay) { menuSibling = data.menu.prev(); data.overlay.show().append(data.menu); } // Over left/right if (config.animOver) { tram(data.menu).add(transConfig).set({ x: config.animDirect * menuWidth, height: bodyHeight }).start({ x: 0 }).then(complete); data.overlay && data.overlay.width(menuWidth); return; } // Drop Down var offsetY = navHeight + menuHeight; tram(data.menu).add(transConfig).set({ y: -offsetY }).start({ y: 0 }).then(complete); function complete() { data.button.attr('aria-expanded', 'true'); } } function setOverlayHeight(data) { var config = data.config; var bodyHeight = config.docHeight ? $doc.height() : $body.height(); if (config.animOver) { data.menu.height(bodyHeight); } else if (data.el.css('position') !== 'fixed') { bodyHeight -= data.el.outerHeight(true); } data.overlay && data.overlay.height(bodyHeight); return bodyHeight; } function close(data, immediate) { if (!data.open) { return; } data.open = false; data.button.removeClass(navbarOpenedButton); var config = data.config; if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { immediate = true; } ix.outro(0, data.el[0]); // Stop listening for click outside events $doc.off('click' + namespace, data.outside); if (immediate) { tram(data.menu).stop(); complete(); return; } var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; var menuHeight = data.menu.outerHeight(true); var menuWidth = data.menu.outerWidth(true); var navHeight = data.el.height(); // Over left/right if (config.animOver) { tram(data.menu).add(transConfig).start({ x: menuWidth * config.animDirect }).then(complete); return; } // Drop Down var offsetY = navHeight + menuHeight; tram(data.menu).add(transConfig).start({ y: -offsetY }).then(complete); function complete() { data.menu.height(''); tram(data.menu).set({ x: 0, y: 0 }); data.menu.each(removeMenuOpen); data.links.removeClass(navbarOpenedLink); data.dropdowns.removeClass(navbarOpenedDropdown); data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); data.dropdownList.removeClass(navbarOpenedDropdownList); if (data.overlay && data.overlay.children().length) { // Move menu back to parent at the original location menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); data.overlay.attr('style', '').hide(); } // Trigger event so other components can hook in (dropdown) data.el.triggerHandler('w-close'); data.button.attr('aria-expanded', 'false'); } } // Export module return api; }); /***/ }), /* 835 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* global window, document */ /* eslint-disable no-var */ /** * Webflow: Slider component */ var Webflow = __webpack_require__(20); var IXEvents = __webpack_require__(153); var KEY_CODES = { ARROW_LEFT: 37, ARROW_UP: 38, ARROW_RIGHT: 39, ARROW_DOWN: 40, SPACE: 32, ENTER: 13, HOME: 36, END: 35 }; var FOCUSABLE_SELECTOR = 'a[href], area[href], [role="button"], input, select, textarea, button, iframe, object, embed, *[tabindex], *[contenteditable]'; Webflow.define('slider', module.exports = function ($, _) { var api = {}; var tram = $.tram; var $doc = $(document); var $sliders; var designer; var inApp = Webflow.env(); var namespace = '.w-slider'; var dot = '<div class="w-slider-dot" data-wf-ignore />'; var ariaLiveLabelHtml = '<div aria-live="off" aria-atomic="true" class="w-slider-aria-label" data-wf-ignore />'; var forceShow = 'w-slider-force-show'; var ix = IXEvents.triggers; var fallback; var inRedraw = false; // ----------------------------------- // Module methods api.ready = function () { designer = Webflow.env('design'); init(); }; api.design = function () { designer = true; // Helps slider init on Designer load. setTimeout(init, 1000); }; api.preview = function () { designer = false; init(); }; api.redraw = function () { inRedraw = true; init(); inRedraw = false; }; api.destroy = removeListeners; // ----------------------------------- // Private methods function init() { // Find all sliders on the page $sliders = $doc.find(namespace); if (!$sliders.length) { return; } $sliders.each(build); if (fallback) { return; } removeListeners(); addListeners(); } function removeListeners() { Webflow.resize.off(renderAll); Webflow.redraw.off(api.redraw); } function addListeners() { Webflow.resize.on(renderAll); Webflow.redraw.on(api.redraw); } function renderAll() { $sliders.filter(':visible').each(render); } function build(i, el) { var $el = $(el); // Store slider state in data var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { index: 0, depth: 1, hasFocus: { keyboard: false, mouse: false }, el: $el, config: {} }); } data.mask = $el.children('.w-slider-mask'); data.left = $el.children('.w-slider-arrow-left'); data.right = $el.children('.w-slider-arrow-right'); data.nav = $el.children('.w-slider-nav'); data.slides = data.mask.children('.w-slide'); data.slides.each(ix.reset); if (inRedraw) { data.maskWidth = 0; } if ($el.attr('role') === undefined) { $el.attr('role', 'region'); } if ($el.attr('aria-label') === undefined) { $el.attr('aria-label', 'carousel'); } // Store the ID of the slider slide view mask var slideViewId = data.mask.attr('id'); // If user did not provide an ID, set it if (!slideViewId) { slideViewId = 'w-slider-mask-' + i; data.mask.attr('id', slideViewId); } // Create aria live label if (!designer && !data.ariaLiveLabel) { data.ariaLiveLabel = $(ariaLiveLabelHtml).appendTo(data.mask); } // Add attributes to left/right buttons data.left.attr('role', 'button'); data.left.attr('tabindex', '0'); data.left.attr('aria-controls', slideViewId); if (data.left.attr('aria-label') === undefined) { data.left.attr('aria-label', 'previous slide'); } data.right.attr('role', 'button'); data.right.attr('tabindex', '0'); data.right.attr('aria-controls', slideViewId); if (data.right.attr('aria-label') === undefined) { data.right.attr('aria-label', 'next slide'); } // Disable in old browsers if (!tram.support.transform) { data.left.hide(); data.right.hide(); data.nav.hide(); fallback = true; return; } // Remove old events data.el.off(namespace); data.left.off(namespace); data.right.off(namespace); data.nav.off(namespace); // Set config from data attributes configure(data); // Add events based on mode if (designer) { data.el.on('setting' + namespace, handler(data)); stopTimer(data); data.hasTimer = false; } else { data.el.on('swipe' + namespace, handler(data)); data.left.on('click' + namespace, previousFunction(data)); data.right.on('click' + namespace, next(data)); data.left.on('keydown' + namespace, keyboardSlideButtonsFunction(data, previousFunction)); data.right.on('keydown' + namespace, keyboardSlideButtonsFunction(data, next)); // Listen to nav keyboard events data.nav.on('keydown' + namespace, '> div', handler(data)); // Start timer if autoplay is true, only once if (data.config.autoplay && !data.hasTimer) { data.hasTimer = true; data.timerCount = 1; startTimer(data); } data.el.on('mouseenter' + namespace, hasFocus(data, true, 'mouse')); data.el.on('focusin' + namespace, hasFocus(data, true, 'keyboard')); data.el.on('mouseleave' + namespace, hasFocus(data, false, 'mouse')); data.el.on('focusout' + namespace, hasFocus(data, false, 'keyboard')); } // Listen to nav click events data.nav.on('click' + namespace, '> div', handler(data)); // Remove gaps from formatted html (for inline-blocks) if (!inApp) { data.mask.contents().filter(function () { return this.nodeType === 3; }).remove(); } // If slider or any parent is hidden, temporarily show for measurements (https://github.com/webflow/webflow/issues/24921) var $elHidden = $el.filter(':hidden'); $elHidden.addClass(forceShow); var $elHiddenParents = $el.parents(':hidden'); $elHiddenParents.addClass(forceShow); // Run first render if (!inRedraw) { render(i, el); } // If slider or any parent is hidden, reset after temporarily showing for measurements $elHidden.removeClass(forceShow); $elHiddenParents.removeClass(forceShow); } function configure(data) { var config = {}; config.crossOver = 0; // Set config options from data attributes config.animation = data.el.attr('data-animation') || 'slide'; if (config.animation === 'outin') { config.animation = 'cross'; config.crossOver = 0.5; } config.easing = data.el.attr('data-easing') || 'ease'; var duration = data.el.attr('data-duration'); config.duration = duration != null ? parseInt(duration, 10) : 500; if (isAttrTrue(data.el.attr('data-infinite'))) { config.infinite = true; } if (isAttrTrue(data.el.attr('data-disable-swipe'))) { config.disableSwipe = true; } if (isAttrTrue(data.el.attr('data-hide-arrows'))) { config.hideArrows = true; } else if (data.config.hideArrows) { data.left.show(); data.right.show(); } if (isAttrTrue(data.el.attr('data-autoplay'))) { config.autoplay = true; config.delay = parseInt(data.el.attr('data-delay'), 10) || 2000; config.timerMax = parseInt(data.el.attr('data-autoplay-limit'), 10); // Disable timer on first touch or mouse down var touchEvents = 'mousedown' + namespace + ' touchstart' + namespace; if (!designer) { data.el.off(touchEvents).one(touchEvents, function () { stopTimer(data); }); } } // Use edge buffer to help calculate page count var arrowWidth = data.right.width(); config.edge = arrowWidth ? arrowWidth + 40 : 100; // Store config in data data.config = config; } function isAttrTrue(value) { return value === '1' || value === 'true'; } function hasFocus(data, focusIn, eventType) { return function (evt) { if (!focusIn) { // Prevent Focus Out if moving to another element in the slider if ($.contains(data.el.get(0), evt.relatedTarget)) { return; } data.hasFocus[eventType] = focusIn; // Prevent Aria live change if focused by other input if (data.hasFocus.mouse && eventType === 'keyboard' || data.hasFocus.keyboard && eventType === 'mouse') { return; } } else { data.hasFocus[eventType] = focusIn; } if (focusIn) { data.ariaLiveLabel.attr('aria-live', 'polite'); if (data.hasTimer) { stopTimer(data); } } else { data.ariaLiveLabel.attr('aria-live', 'off'); if (data.hasTimer) { startTimer(data); } } return; }; } function keyboardSlideButtonsFunction(data, directionFunction) { return function (evt) { switch (evt.keyCode) { case KEY_CODES.SPACE: case KEY_CODES.ENTER: { // DirectionFunction returns a function directionFunction(data)(); evt.preventDefault(); return evt.stopPropagation(); } } }; } function previousFunction(data) { return function () { change(data, { index: data.index - 1, vector: -1 }); }; } function next(data) { return function () { change(data, { index: data.index + 1, vector: 1 }); }; } function select(data, value) { // Select page based on slide element index var found = null; if (value === data.slides.length) { init(); layout(data); // Rebuild and find new slides } _.each(data.anchors, function (anchor, index) { $(anchor.els).each(function (i, el) { if ($(el).index() === value) { found = index; } }); }); if (found != null) { change(data, { index: found, immediate: true }); } } function startTimer(data) { stopTimer(data); var config = data.config; var timerMax = config.timerMax; if (timerMax && data.timerCount++ > timerMax) { return; } data.timerId = window.setTimeout(function () { if (data.timerId == null || designer) { return; } next(data)(); startTimer(data); }, config.delay); } function stopTimer(data) { window.clearTimeout(data.timerId); data.timerId = null; } function handler(data) { return function (evt, options) { options = options || {}; var config = data.config; // Designer settings if (designer && evt.type === 'setting') { if (options.select === 'prev') { return previousFunction(data)(); } if (options.select === 'next') { return next(data)(); } configure(data); layout(data); if (options.select == null) { return; } select(data, options.select); return; } // Swipe event if (evt.type === 'swipe') { if (config.disableSwipe) { return; } if (Webflow.env('editor')) { return; } if (options.direction === 'left') { return next(data)(); } if (options.direction === 'right') { return previousFunction(data)(); } return; } // Page buttons if (data.nav.has(evt.target).length) { var index = $(evt.target).index(); if (evt.type === 'click') { change(data, { index: index }); } if (evt.type === 'keydown') { switch (evt.keyCode) { case KEY_CODES.ENTER: case KEY_CODES.SPACE: { change(data, { index: index }); evt.preventDefault(); break; } case KEY_CODES.ARROW_LEFT: case KEY_CODES.ARROW_UP: { focusDot(data.nav, Math.max(index - 1, 0)); evt.preventDefault(); break; } case KEY_CODES.ARROW_RIGHT: case KEY_CODES.ARROW_DOWN: { focusDot(data.nav, Math.min(index + 1, data.pages)); evt.preventDefault(); break; } case KEY_CODES.HOME: { focusDot(data.nav, 0); evt.preventDefault(); break; } case KEY_CODES.END: { focusDot(data.nav, data.pages); evt.preventDefault(); break; } default: { return; } } } } }; } function focusDot($nav, index) { // Focus nav dot; don't change class to active var $active = $nav.children().eq(index).focus(); $nav.children().not($active); } function change(data, options) { options = options || {}; var config = data.config; var anchors = data.anchors; // Set new index data.previous = data.index; var index = options.index; var shift = {}; if (index < 0) { index = anchors.length - 1; if (config.infinite) { // Shift first slide to the end shift.x = -data.endX; shift.from = 0; shift.to = anchors[0].width; } } else if (index >= anchors.length) { index = 0; if (config.infinite) { // Shift last slide to the start shift.x = anchors[anchors.length - 1].width; shift.from = -anchors[anchors.length - 1].x; shift.to = shift.from - shift.x; } } data.index = index; // Select nav dot; set class active var $active = data.nav.children().eq(index).addClass('w-active').attr('aria-pressed', 'true').attr('tabindex', '0'); data.nav.children().not($active).removeClass('w-active').attr('aria-pressed', 'false').attr('tabindex', '-1'); // Hide arrows if (config.hideArrows) { data.index === anchors.length - 1 ? data.right.hide() : data.right.show(); data.index === 0 ? data.left.hide() : data.left.show(); } // Get page offset from anchors var lastOffsetX = data.offsetX || 0; var offsetX = data.offsetX = -anchors[data.index].x; var resetConfig = { x: offsetX, opacity: 1, visibility: '' }; // Transition slides var targets = $(anchors[data.index].els); var prevTargs = $(anchors[data.previous] && anchors[data.previous].els); var others = data.slides.not(targets); var animation = config.animation; var easing = config.easing; var duration = Math.round(config.duration); var vector = options.vector || (data.index > data.previous ? 1 : -1); var fadeRule = 'opacity ' + duration + 'ms ' + easing; var slideRule = 'transform ' + duration + 'ms ' + easing; // Make active slides' content focusable targets.find(FOCUSABLE_SELECTOR).removeAttr('tabindex'); targets.removeAttr('aria-hidden'); // Voiceover bug: Sometimes descendants are still visible, so hide everything... targets.find('*').removeAttr('aria-hidden'); // Prevent focus on inactive slides' content others.find(FOCUSABLE_SELECTOR).attr('tabindex', '-1'); others.attr('aria-hidden', 'true'); // Voiceover bug: Sometimes descendants are still visible, so hide everything... others.find('*').attr('aria-hidden', 'true'); // Trigger IX events if (!designer) { targets.each(ix.intro); others.each(ix.outro); } // Set immediately after layout changes (but not during redraw) if (options.immediate && !inRedraw) { tram(targets).set(resetConfig); resetOthers(); return; } // Exit early if index is unchanged if (data.index === data.previous) { return; } // Announce slide change to screen reader if (!designer) { data.ariaLiveLabel.text("Slide ".concat(index + 1, " of ").concat(anchors.length, ".")); } // Cross Fade / Out-In if (animation === 'cross') { var reduced = Math.round(duration - duration * config.crossOver); var wait = Math.round(duration - reduced); fadeRule = 'opacity ' + reduced + 'ms ' + easing; tram(prevTargs).set({ visibility: '' }).add(fadeRule).start({ opacity: 0 }); tram(targets).set({ visibility: '', x: offsetX, opacity: 0, zIndex: data.depth++ }).add(fadeRule).wait(wait).then({ opacity: 1 }).then(resetOthers); return; } // Fade Over if (animation === 'fade') { tram(prevTargs).set({ visibility: '' }).stop(); tram(targets).set({ visibility: '', x: offsetX, opacity: 0, zIndex: data.depth++ }).add(fadeRule).start({ opacity: 1 }).then(resetOthers); return; } // Slide Over if (animation === 'over') { resetConfig = { x: data.endX }; tram(prevTargs).set({ visibility: '' }).stop(); tram(targets).set({ visibility: '', zIndex: data.depth++, x: offsetX + anchors[data.index].width * vector }).add(slideRule).start({ x: offsetX }).then(resetOthers); return; } // Slide - infinite scroll if (config.infinite && shift.x) { tram(data.slides.not(prevTargs)).set({ visibility: '', x: shift.x }).add(slideRule).start({ x: offsetX }); tram(prevTargs).set({ visibility: '', x: shift.from }).add(slideRule).start({ x: shift.to }); data.shifted = prevTargs; } else { if (config.infinite && data.shifted) { tram(data.shifted).set({ visibility: '', x: lastOffsetX }); data.shifted = null; } // Slide - basic scroll tram(data.slides).set({ visibility: '' }).add(slideRule).start({ x: offsetX }); } // Helper to move others out of view function resetOthers() { targets = $(anchors[data.index].els); others = data.slides.not(targets); if (animation !== 'slide') { resetConfig.visibility = 'hidden'; } tram(others).set(resetConfig); } } function render(i, el) { var data = $.data(el, namespace); if (!data) { return; } if (maskChanged(data)) { return layout(data); } if (designer && slidesChanged(data)) { layout(data); } } function layout(data) { // Determine page count from width of slides var pages = 1; var offset = 0; var anchor = 0; var width = 0; var maskWidth = data.maskWidth; var threshold = maskWidth - data.config.edge; if (threshold < 0) { threshold = 0; } data.anchors = [{ els: [], x: 0, width: 0 }]; data.slides.each(function (i, el) { if (anchor - offset > threshold) { pages++; offset += maskWidth; // Store page anchor for transition data.anchors[pages - 1] = { els: [], x: anchor, width: 0 }; } // Set next anchor using current width + margin width = $(el).outerWidth(true); anchor += width; data.anchors[pages - 1].width += width; data.anchors[pages - 1].els.push(el); var ariaLabel = i + 1 + ' of ' + data.slides.length; $(el).attr('aria-label', ariaLabel); $(el).attr('role', 'group'); }); data.endX = anchor; // Build dots if nav exists and needs updating if (designer) { data.pages = null; } if (data.nav.length && data.pages !== pages) { data.pages = pages; buildNav(data); } // Make sure index is still within range and call change handler var index = data.index; if (index >= pages) { index = pages - 1; } change(data, { immediate: true, index: index }); } function buildNav(data) { var dots = []; var $dot; var spacing = data.el.attr('data-nav-spacing'); if (spacing) { spacing = parseFloat(spacing) + 'px'; } for (var i = 0, len = data.pages; i < len; i++) { $dot = $(dot); $dot.attr('aria-label', 'Show slide ' + (i + 1) + ' of ' + len).attr('aria-pressed', 'false').attr('role', 'button').attr('tabindex', '-1'); if (data.nav.hasClass('w-num')) { $dot.text(i + 1); } if (spacing != null) { $dot.css({ 'margin-left': spacing, 'margin-right': spacing }); } dots.push($dot); } data.nav.empty().append(dots); } function maskChanged(data) { var maskWidth = data.mask.width(); if (data.maskWidth !== maskWidth) { data.maskWidth = maskWidth; return true; } return false; } function slidesChanged(data) { var slidesWidth = 0; data.slides.each(function (i, el) { slidesWidth += $(el).outerWidth(true); }); if (data.slidesWidth !== slidesWidth) { data.slidesWidth = slidesWidth; return true; } return false; } // Export module return api; }); /***/ }) /******/ ]);/** * ---------------------------------------------------------------------- * Webflow: Interactions 2.0: Init */ Webflow.require('ix2').init( {"events":{"e-7":{"id":"e-7","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-8"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"63b9ba01408418d5d407c982|26568618-4075-7663-5eb1-9a3790fd0853","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"63b9ba01408418d5d407c982|26568618-4075-7663-5eb1-9a3790fd0853","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1541187643339},"e-9":{"id":"e-9","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInLeft","autoStopEventId":"e-10"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"63b9ba01408418d5d407c982|26568618-4075-7663-5eb1-9a3790fd0856","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"63b9ba01408418d5d407c982|26568618-4075-7663-5eb1-9a3790fd0856","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":300,"direction":"LEFT","effectIn":true},"createdOn":1541187649628},"e-11":{"id":"e-11","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInRight","autoStopEventId":"e-12"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"63b9ba01408418d5d407c982|26568618-4075-7663-5eb1-9a3790fd0863","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"63b9ba01408418d5d407c982|26568618-4075-7663-5eb1-9a3790fd0863","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":600,"direction":"RIGHT","effectIn":true},"createdOn":1541187658031},"e-45":{"id":"e-45","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInLeft","autoStopEventId":"e-46"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"63b9ba01408418d5d407c982|2092c187-47e7-5cc8-e302-a3b04bb26465","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"63b9ba01408418d5d407c982|2092c187-47e7-5cc8-e302-a3b04bb26465","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"LEFT","effectIn":true},"createdOn":1541188042678},"e-47":{"id":"e-47","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInRight","autoStopEventId":"e-48"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"63b9ba01408418d5d407c982|5602729c-e647-7a4f-0ed1-3e62f07e45f2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"63b9ba01408418d5d407c982|5602729c-e647-7a4f-0ed1-3e62f07e45f2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"RIGHT","effectIn":true},"createdOn":1541188048610},"e-49":{"id":"e-49","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInLeft","autoStopEventId":"e-50"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"63b9ba01408418d5d407c982|46843dd4-9e4d-eace-d4c9-5c945b497350","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"63b9ba01408418d5d407c982|46843dd4-9e4d-eace-d4c9-5c945b497350","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"LEFT","effectIn":true},"createdOn":1541188057277},"e-53":{"id":"e-53","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-54"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"7bdace99-34e0-3291-e973-c20f6a696aa7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"7bdace99-34e0-3291-e973-c20f6a696aa7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1541188334745},"e-55":{"id":"e-55","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-56"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"7bdace99-34e0-3291-e973-c20f6a696aaa","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"7bdace99-34e0-3291-e973-c20f6a696aaa","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1541188344814},"e-57":{"id":"e-57","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-58"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"7bdace99-34e0-3291-e973-c20f6a696ab2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"7bdace99-34e0-3291-e973-c20f6a696ab2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":300,"direction":"BOTTOM","effectIn":true},"createdOn":1541188352149},"e-59":{"id":"e-59","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-60"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"7bdace99-34e0-3291-e973-c20f6a696aba","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"7bdace99-34e0-3291-e973-c20f6a696aba","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":600,"direction":"BOTTOM","effectIn":true},"createdOn":1541188362254}},"actionLists":{"slideInBottom":{"id":"slideInBottom","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":100,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}}]}]},"slideInLeft":{"id":"slideInLeft","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":-100,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}},{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}]},"slideInRight":{"id":"slideInRight","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":100,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}},{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}]}},"site":{"mediaQueries":[{"key":"main","min":992,"max":10000},{"key":"medium","min":768,"max":991},{"key":"small","min":480,"max":767},{"key":"tiny","min":0,"max":479}]}} ); Webflow.require('commerce') && Webflow.require('commerce').init({siteId: "63b9ba0140841845f207c96f", apiUrl: "https://render.webflow.com"});