webpackJsonp([0,4],[ /* 0 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(8); var core = __webpack_require__(7); var hide = __webpack_require__(21); var redefine = __webpack_require__(13); var ctx = __webpack_require__(36); var PROTOTYPE = 'prototype'; var $export = function (type, name, source) { var IS_FORCED = type & $export.F; var IS_GLOBAL = type & $export.G; var IS_STATIC = type & $export.S; var IS_PROTO = type & $export.P; var IS_BIND = type & $export.B; var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); var key, own, out, exp; if (IS_GLOBAL) source = name; for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; // export native or passed out = (own ? target : source)[key]; // bind timers to global for call from export context exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // extend global if (target) redefine(target, key, out, type & $export.U); // export if (exports[key] != out) hide(exports, key, exp); if (IS_PROTO && expProto[key] != out) expProto[key] = out; } }; global.core = core; // type bitmap $export.F = 1; // forced $export.G = 2; // global $export.S = 4; // static $export.P = 8; // proto $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe $export.R = 128; // real proto method for `library` module.exports = $export; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(3); module.exports = function (it) { if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; /***/ }), /* 2 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (e) { return true; } }; /***/ }), /* 3 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 4 */, /* 5 */ /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__(46)('wks'); var uid = __webpack_require__(48); var Symbol = __webpack_require__(8).Symbol; var USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; /***/ }), /* 6 */, /* 7 */ /***/ (function(module, exports) { var core = module.exports = { version: '2.6.11' }; if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef /***/ }), /* 8 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func : Function('return this')(); if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(1); var IE8_DOM_DEFINE = __webpack_require__(117); var toPrimitive = __webpack_require__(32); var dP = Object.defineProperty; exports.f = __webpack_require__(10) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); } catch (e) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty module.exports = !__webpack_require__(2)(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.15 ToLength var toInteger = __webpack_require__(31); var min = Math.min; module.exports = function (it) { return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; /***/ }), /* 12 */, /* 13 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(8); var hide = __webpack_require__(21); var has = __webpack_require__(16); var SRC = __webpack_require__(48)('src'); var $toString = __webpack_require__(203); var TO_STRING = 'toString'; var TPL = ('' + $toString).split(TO_STRING); __webpack_require__(7).inspectSource = function (it) { return $toString.call(it); }; (module.exports = function (O, key, val, safe) { var isFunction = typeof val == 'function'; if (isFunction) has(val, 'name') || hide(val, 'name', key); if (O[key] === val) return; if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); if (O === global) { O[key] = val; } else if (!safe) { delete O[key]; hide(O, key, val); } else if (O[key]) { O[key] = val; } else { hide(O, key, val); } // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, TO_STRING, function toString() { return typeof this == 'function' && this[SRC] || $toString.call(this); }); /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var fails = __webpack_require__(2); var defined = __webpack_require__(26); var quot = /"/g; // B.2.3.2.1 CreateHTML(string, tag, attribute, value) var createHTML = function (string, tag, attribute, value) { var S = String(defined(string)); var p1 = '<' + tag; if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; return p1 + '>' + S + ''; }; module.exports = function (NAME, exec) { var O = {}; O[NAME] = exec(createHTML); $export($export.P + $export.F * fails(function () { var test = ''[NAME]('"'); return test !== test.toLowerCase() || test.split('"').length > 3; }), 'String', O); }; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(26); module.exports = function (it) { return Object(defined(it)); }; /***/ }), /* 16 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__(2); module.exports = function (method, arg) { return !!method && fails(function () { // eslint-disable-next-line no-useless-call arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); }); }; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { // most Object methods by ES6 should accept primitives var $export = __webpack_require__(0); var core = __webpack_require__(7); var fails = __webpack_require__(2); module.exports = function (KEY, exec) { var fn = (core.Object || {})[KEY] || Object[KEY]; var exp = {}; exp[KEY] = exec(fn); $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); }; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings var IObject = __webpack_require__(43); var defined = __webpack_require__(26); module.exports = function (it) { return IObject(defined(it)); }; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { // 0 -> Array#forEach // 1 -> Array#map // 2 -> Array#filter // 3 -> Array#some // 4 -> Array#every // 5 -> Array#find // 6 -> Array#findIndex var ctx = __webpack_require__(36); var IObject = __webpack_require__(43); var toObject = __webpack_require__(15); var toLength = __webpack_require__(11); var asc = __webpack_require__(198); module.exports = function (TYPE, $create) { 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 NO_HOLES = TYPE == 5 || IS_FIND_INDEX; var create = $create || asc; return function ($this, callbackfn, that) { var O = toObject($this); var self = IObject(O); var f = ctx(callbackfn, that, 3); var length = toLength(self.length); var index = 0; var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; var val, res; for (;length > index; index++) if (NO_HOLES || index in self) { val = self[index]; res = f(val, index, O); if (TYPE) { if (IS_MAP) result[index] = res; // map else if (res) switch (TYPE) { case 3: return true; // some case 5: return val; // find case 6: return index; // findIndex case 2: result.push(val); // filter } else if (IS_EVERY) return false; // every } } return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; }; }; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(9); var createDesc = __webpack_require__(39); module.exports = __webpack_require__(10) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { var Map = __webpack_require__(136); var $export = __webpack_require__(0); var shared = __webpack_require__(46)('metadata'); var store = shared.store || (shared.store = new (__webpack_require__(321))()); var getOrCreateMetadataMap = function (target, targetKey, create) { var targetMetadata = store.get(target); if (!targetMetadata) { if (!create) return undefined; store.set(target, targetMetadata = new Map()); } var keyMetadata = targetMetadata.get(targetKey); if (!keyMetadata) { if (!create) return undefined; targetMetadata.set(targetKey, keyMetadata = new Map()); } return keyMetadata; }; var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { var metadataMap = getOrCreateMetadataMap(O, P, false); return metadataMap === undefined ? false : metadataMap.has(MetadataKey); }; var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { var metadataMap = getOrCreateMetadataMap(O, P, false); return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); }; var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); }; var ordinaryOwnMetadataKeys = function (target, targetKey) { var metadataMap = getOrCreateMetadataMap(target, targetKey, false); var keys = []; if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); return keys; }; var toMetaKey = function (it) { return it === undefined || typeof it == 'symbol' ? it : String(it); }; var exp = function (O) { $export($export.S, 'Reflect', O); }; module.exports = { store: store, map: getOrCreateMetadataMap, has: ordinaryHasOwnMetadata, get: ordinaryGetOwnMetadata, set: ordinaryDefineOwnMetadata, keys: ordinaryOwnMetadataKeys, key: toMetaKey, exp: exp }; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) var has = __webpack_require__(16); var toObject = __webpack_require__(15); var IE_PROTO = __webpack_require__(86)('IE_PROTO'); var ObjectProto = Object.prototype; module.exports = Object.getPrototypeOf || function (O) { O = toObject(O); if (has(O, IE_PROTO)) return O[IE_PROTO]; if (typeof O.constructor == 'function' && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectProto : null; }; /***/ }), /* 24 */ /***/ (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 || Function("return this")() || (1,eval)("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; /***/ }), /* 25 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; /***/ }), /* 26 */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { var META = __webpack_require__(48)('meta'); var isObject = __webpack_require__(3); var has = __webpack_require__(16); var setDesc = __webpack_require__(9).f; var id = 0; var isExtensible = Object.isExtensible || function () { return true; }; var FREEZE = !__webpack_require__(2)(function () { return isExtensible(Object.preventExtensions({})); }); var setMeta = function (it) { setDesc(it, META, { value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs } }); }; var fastKey = function (it, create) { // return primitive with prefix if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; if (!has(it, META)) { // 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 setMeta(it); // return object ID } return it[META].i; }; var getWeak = function (it, create) { if (!has(it, META)) { // 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 setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling var onFreeze = function (it) { if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); return it; }; var meta = module.exports = { KEY: META, NEED: false, fastKey: fastKey, getWeak: getWeak, onFreeze: onFreeze }; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { var pIE = __webpack_require__(55); var createDesc = __webpack_require__(39); var toIObject = __webpack_require__(19); var toPrimitive = __webpack_require__(32); var has = __webpack_require__(16); var IE8_DOM_DEFINE = __webpack_require__(117); var gOPD = Object.getOwnPropertyDescriptor; exports.f = __webpack_require__(10) ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return gOPD(O, P); } catch (e) { /* empty */ } if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; /***/ }), /* 29 */, /* 30 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 31 */ /***/ (function(module, exports) { // 7.1.4 ToInteger var ceil = Math.ceil; var floor = Math.floor; module.exports = function (it) { return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.1 ToPrimitive(input [, PreferredType]) var isObject = __webpack_require__(3); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (it, S) { if (!isObject(it)) return it; var fn, val; if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 33 */, /* 34 */, /* 35 */, /* 36 */ /***/ (function(module, exports, __webpack_require__) { // optional / simple context binding var aFunction = __webpack_require__(25); module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__(1); var dPs = __webpack_require__(126); var enumBugKeys = __webpack_require__(74); var IE_PROTO = __webpack_require__(86)('IE_PROTO'); var Empty = function () { /* empty */ }; var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () { // Thrash, waste and sodomy: IE GC bug var iframe = __webpack_require__(115)('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; __webpack_require__(116).appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; return createDict(); }; module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : dPs(result, Properties); }; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__(128); var enumBugKeys = __webpack_require__(74); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /* 39 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(3); module.exports = function (it, TYPE) { if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); return it; }; /***/ }), /* 41 */, /* 42 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.3.31 Array.prototype[@@unscopables] var UNSCOPABLES = __webpack_require__(5)('unscopables'); var ArrayProto = Array.prototype; if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(21)(ArrayProto, UNSCOPABLES, {}); module.exports = function (key) { ArrayProto[UNSCOPABLES][key] = true; }; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(30); // eslint-disable-next-line no-prototype-builtins module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; /***/ }), /* 44 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) var $keys = __webpack_require__(128); var hiddenKeys = __webpack_require__(74).concat('length', 'prototype'); exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { var core = __webpack_require__(7); var global = __webpack_require__(8); var SHARED = '__core-js_shared__'; var store = global[SHARED] || (global[SHARED] = {}); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: core.version, mode: __webpack_require__(53) ? 'pure' : 'global', copyright: '© 2019 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(31); var max = Math.max; var min = Math.min; module.exports = function (index, length) { index = toInteger(index); return index < 0 ? max(index + length, 0) : min(index, length); }; /***/ }), /* 48 */ /***/ (function(module, exports) { var id = 0; var px = Math.random(); module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; /***/ }), /* 49 */, /* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(137); var redefine = __webpack_require__(13); var hide = __webpack_require__(21); var fails = __webpack_require__(2); var defined = __webpack_require__(26); var wks = __webpack_require__(5); var regexpExec = __webpack_require__(83); var SPECIES = wks('species'); var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { // #replace needs built-in support for named groups. // #match works fine because it just return the exec results, even if it has // a "grops" property. var re = /./; re.exec = function () { var result = []; result.groups = { a: '7' }; return result; }; return ''.replace(re, '$') !== '7'; }); var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec var re = /(?:)/; var originalExec = re.exec; re.exec = function () { return originalExec.apply(this, arguments); }; var result = 'ab'.split(re); return result.length === 2 && result[0] === 'a' && result[1] === 'b'; })(); module.exports = function (KEY, length, exec) { var SYMBOL = wks(KEY); var DELEGATES_TO_SYMBOL = !fails(function () { // String methods call symbol-named RegEp methods var O = {}; O[SYMBOL] = function () { return 7; }; return ''[KEY](O) != 7; }); var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { // Symbol-named RegExp methods call .exec var execCalled = false; var re = /a/; re.exec = function () { execCalled = true; return null; }; if (KEY === 'split') { // RegExp[@@split] doesn't call the regex's exec method, but first creates // a new one. We need to return the patched regex when creating the new one. re.constructor = {}; re.constructor[SPECIES] = function () { return re; }; } re[SYMBOL](''); return !execCalled; }) : undefined; if ( !DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) ) { var nativeRegExpMethod = /./[SYMBOL]; var fns = exec( defined, SYMBOL, ''[KEY], function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { if (regexp.exec === regexpExec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { // The native String method already delegates to @@method (this // polyfilled function), leasing to infinite recursion. // We avoid it by directly calling the native @@method method. return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; } return { done: true, value: nativeMethod.call(str, regexp, arg2) }; } return { done: false }; } ); var strfn = fns[0]; var rxfn = fns[1]; redefine(String.prototype, KEY, strfn); hide(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) // 21.2.5.11 RegExp.prototype[@@split](string, limit) ? function (string, arg) { return rxfn.call(string, this, arg); } // 21.2.5.6 RegExp.prototype[@@match](string) // 21.2.5.9 RegExp.prototype[@@search](string) : function (string) { return rxfn.call(string, this); } ); } }; /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.2.5.3 get RegExp.prototype.flags var anObject = __webpack_require__(1); module.exports = function () { var that = anObject(this); var result = ''; if (that.global) result += 'g'; if (that.ignoreCase) result += 'i'; if (that.multiline) result += 'm'; if (that.unicode) result += 'u'; if (that.sticky) result += 'y'; return result; }; /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { var ctx = __webpack_require__(36); var call = __webpack_require__(120); var isArrayIter = __webpack_require__(118); var anObject = __webpack_require__(1); var toLength = __webpack_require__(11); var getIterFn = __webpack_require__(134); var BREAK = {}; var RETURN = {}; var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); var f = ctx(fn, that, entries ? 2 : 1); var index = 0; var length, step, iterator, result; if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); if (result === BREAK || result === RETURN) return result; } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { result = call(iterator, f, step.value, entries); if (result === BREAK || result === RETURN) return result; } }; exports.BREAK = BREAK; exports.RETURN = RETURN; /***/ }), /* 53 */ /***/ (function(module, exports) { module.exports = false; /***/ }), /* 54 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /* 55 */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var classof = __webpack_require__(72); var builtinExec = RegExp.prototype.exec; // `RegExpExec` abstract operation // https://tc39.github.io/ecma262/#sec-regexpexec module.exports = function (R, S) { var exec = R.exec; if (typeof exec === 'function') { var result = exec.call(R, S); if (typeof result !== 'object') { throw new TypeError('RegExp exec method returned something other than an Object or null'); } return result; } if (classof(R) !== 'RegExp') { throw new TypeError('RegExp#exec called on incompatible receiver'); } return builtinExec.call(R, S); }; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { var def = __webpack_require__(9).f; var has = __webpack_require__(16); var TAG = __webpack_require__(5)('toStringTag'); module.exports = function (it, tag, stat) { if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var defined = __webpack_require__(26); var fails = __webpack_require__(2); var spaces = __webpack_require__(89); var space = '[' + spaces + ']'; var non = '\u200b\u0085'; var ltrim = RegExp('^' + space + space + '*'); var rtrim = RegExp(space + space + '*$'); var exporter = function (KEY, exec, ALIAS) { var exp = {}; var FORCE = fails(function () { return !!spaces[KEY]() || non[KEY]() != non; }); var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; if (ALIAS) exp[ALIAS] = fn; $export($export.P + $export.F * FORCE, 'String', exp); }; // 1 -> String#trimLeft // 2 -> String#trimRight // 3 -> String#trim var trim = exporter.trim = function (string, TYPE) { string = String(defined(string)); if (TYPE & 1) string = string.replace(ltrim, ''); if (TYPE & 2) string = string.replace(rtrim, ''); return string; }; module.exports = exporter; /***/ }), /* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.3.6 Object.prototype.toString() var classof = __webpack_require__(72); var test = {}; test[__webpack_require__(5)('toStringTag')] = 'z'; if (test + '' != '[object z]') { __webpack_require__(13)(Object.prototype, 'toString', function toString() { return '[object ' + classof(this) + ']'; }, true); } /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $at = __webpack_require__(87)(true); // 21.1.3.27 String.prototype[@@iterator]() __webpack_require__(79)(String, 'String', function (iterated) { this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() }, function () { var O = this._t; var index = this._i; var point; if (index >= O.length) return { value: undefined, done: true }; point = $at(O, index); this._i += point.length; return { value: point, done: false }; }); /***/ }), /* 61 */, /* 62 */, /* 63 */, /* 64 */, /* 65 */, /* 66 */, /* 67 */, /* 68 */, /* 69 */, /* 70 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var at = __webpack_require__(87)(true); // `AdvanceStringIndex` abstract operation // https://tc39.github.io/ecma262/#sec-advancestringindex module.exports = function (S, index, unicode) { return index + (unicode ? at(S, index).length : 1); }; /***/ }), /* 71 */ /***/ (function(module, exports) { module.exports = function (it, Constructor, name, forbiddenField) { if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { throw TypeError(name + ': incorrect invocation!'); } return it; }; /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__(30); var TAG = __webpack_require__(5)('toStringTag'); // ES3 wrong here var ARG = cof(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (e) { /* empty */ } }; module.exports = function (it) { var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }), /* 73 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(8); var $export = __webpack_require__(0); var redefine = __webpack_require__(13); var redefineAll = __webpack_require__(82); var meta = __webpack_require__(27); var forOf = __webpack_require__(52); var anInstance = __webpack_require__(71); var isObject = __webpack_require__(3); var fails = __webpack_require__(2); var $iterDetect = __webpack_require__(122); var setToStringTag = __webpack_require__(57); var inheritIfRequired = __webpack_require__(76); module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { var Base = global[NAME]; var C = Base; var ADDER = IS_MAP ? 'set' : 'add'; var proto = C && C.prototype; var O = {}; var fixMethod = function (KEY) { var fn = proto[KEY]; redefine(proto, KEY, KEY == 'delete' ? function (a) { return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); } : KEY == 'has' ? function has(a) { return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); } : KEY == 'get' ? function get(a) { return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } ); }; if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { new C().entries().next(); }))) { // create collection constructor C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); redefineAll(C.prototype, methods); meta.NEED = true; } else { var instance = new C(); // 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 var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new // 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 C(); var index = 5; while (index--) $instance[ADDER](index, index); return !$instance.has(-0); }); if (!ACCEPT_ITERABLES) { C = wrapper(function (target, iterable) { anInstance(target, C, NAME); var that = inheritIfRequired(new Base(), target, C); if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); return that; }); C.prototype = proto; proto.constructor = C; } 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 && proto.clear) delete proto.clear; } setToStringTag(C, NAME); O[NAME] = C; $export($export.G + $export.W + $export.F * (C != Base), O); if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); return C; }; /***/ }), /* 74 */ /***/ (function(module, exports) { // IE 8- don't enum bug keys module.exports = ( 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { var MATCH = __webpack_require__(5)('match'); module.exports = function (KEY) { var re = /./; try { '/./'[KEY](re); } catch (e) { try { re[MATCH] = false; return !'/./'[KEY](re); } catch (f) { /* empty */ } } return true; }; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(3); var setPrototypeOf = __webpack_require__(84).set; module.exports = function (that, target, C) { var S = target.constructor; var P; if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { setPrototypeOf(that, P); } return that; }; /***/ }), /* 77 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(30); module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.8 IsRegExp(argument) var isObject = __webpack_require__(3); var cof = __webpack_require__(30); var MATCH = __webpack_require__(5)('match'); module.exports = function (it) { var isRegExp; return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); }; /***/ }), /* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__(53); var $export = __webpack_require__(0); var redefine = __webpack_require__(13); var hide = __webpack_require__(21); var Iterators = __webpack_require__(44); var $iterCreate = __webpack_require__(121); var setToStringTag = __webpack_require__(57); var getPrototypeOf = __webpack_require__(23); var ITERATOR = __webpack_require__(5)('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values'; var returnThis = function () { return this; }; module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { $iterCreate(Constructor, NAME, next); var getMethod = function (kind) { if (!BUGGY && kind in proto) return proto[kind]; switch (kind) { case KEYS: return function keys() { return new Constructor(this, kind); }; case VALUES: return function values() { return new Constructor(this, kind); }; } return function entries() { return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator'; var DEF_VALUES = DEFAULT == VALUES; var VALUES_BUG = false; var proto = Base.prototype; var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; var $default = $native || getMethod(DEFAULT); var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; var methods, key, IteratorPrototype; // Fix native if ($anyNative) { IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF if (DEF_VALUES && $native && $native.name !== VALUES) { VALUES_BUG = true; $default = function values() { return $native.call(this); }; } // Define iterator if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if (DEFAULT) { methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; if (FORCED) for (key in methods) { if (!(key in proto)) redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }), /* 80 */ /***/ (function(module, exports) { // 20.2.2.14 Math.expm1(x) var $expm1 = Math.expm1; module.exports = (!$expm1 // Old FF bug || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 // Tor Browser bug || $expm1(-2e-17) != -2e-17 ) ? function expm1(x) { return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; } : $expm1; /***/ }), /* 81 */ /***/ (function(module, exports) { // 20.2.2.28 Math.sign(x) module.exports = Math.sign || function sign(x) { // eslint-disable-next-line no-self-compare return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; }; /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { var redefine = __webpack_require__(13); module.exports = function (target, src, safe) { for (var key in src) redefine(target, key, src[key], safe); return target; }; /***/ }), /* 83 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var regexpFlags = __webpack_require__(51); var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, // which loads this file before patching the method. var nativeReplace = String.prototype.replace; var patchedExec = nativeExec; var LAST_INDEX = 'lastIndex'; var UPDATES_LAST_INDEX_WRONG = (function () { var re1 = /a/, re2 = /b*/g; nativeExec.call(re1, 'a'); nativeExec.call(re2, 'a'); return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; })(); // nonparticipating capturing group, copied from es5-shim's String#split patch. var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; if (PATCH) { patchedExec = function exec(str) { var re = this; var lastIndex, reCopy, match, i; if (NPCG_INCLUDED) { reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); } if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; match = nativeExec.call(re, str); if (UPDATES_LAST_INDEX_WRONG && match) { re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; } if (NPCG_INCLUDED && match && match.length > 1) { // Fix browsers whose `exec` methods don't consistently return `undefined` // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ // eslint-disable-next-line no-loop-func nativeReplace.call(match[0], reCopy, function () { for (i = 1; i < arguments.length - 2; i++) { if (arguments[i] === undefined) match[i] = undefined; } }); } return match; }; } module.exports = patchedExec; /***/ }), /* 84 */ /***/ (function(module, exports, __webpack_require__) { // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ var isObject = __webpack_require__(3); var anObject = __webpack_require__(1); var check = function (O, proto) { anObject(O); if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); }; module.exports = { set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line function (test, buggy, set) { try { set = __webpack_require__(36)(Function.call, __webpack_require__(28).f(Object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof Array); } catch (e) { buggy = true; } return function setPrototypeOf(O, proto) { check(O, proto); if (buggy) O.__proto__ = proto; else set(O, proto); return O; }; }({}, false) : undefined), check: check }; /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(8); var dP = __webpack_require__(9); var DESCRIPTORS = __webpack_require__(10); var SPECIES = __webpack_require__(5)('species'); module.exports = function (KEY) { var C = global[KEY]; if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { configurable: true, get: function () { return this; } }); }; /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(46)('keys'); var uid = __webpack_require__(48); module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(31); var defined = __webpack_require__(26); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) { return function (that, pos) { var s = String(defined(that)); var i = toInteger(pos); var l = s.length; var a, b; if (i < 0 || i >= l) return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { // helper for String#{startsWith, endsWith, includes} var isRegExp = __webpack_require__(78); var defined = __webpack_require__(26); module.exports = function (that, searchString, NAME) { if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); return String(defined(that)); }; /***/ }), /* 89 */ /***/ (function(module, exports) { module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; /***/ }), /* 90 */, /* 91 */, /* 92 */, /* 93 */, /* 94 */, /* 95 */, /* 96 */, /* 97 */, /* 98 */, /* 99 */, /* 100 */, /* 101 */, /* 102 */, /* 103 */, /* 104 */, /* 105 */, /* 106 */, /* 107 */, /* 108 */, /* 109 */ /***/ (function(module, exports, __webpack_require__) { var cof = __webpack_require__(30); module.exports = function (it, msg) { if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); return +it; }; /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes var toIObject = __webpack_require__(19); var toLength = __webpack_require__(11); var toAbsoluteIndex = __webpack_require__(47); module.exports = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIObject($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) if (IS_INCLUDES || index in O) { if (O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { var aFunction = __webpack_require__(25); var toObject = __webpack_require__(15); var IObject = __webpack_require__(43); var toLength = __webpack_require__(11); module.exports = function (that, callbackfn, aLen, memo, isRight) { aFunction(callbackfn); var O = toObject(that); var self = IObject(O); var length = toLength(O.length); var index = isRight ? length - 1 : 0; var i = isRight ? -1 : 1; if (aLen < 2) for (;;) { if (index in self) { memo = self[index]; index += i; break; } index += i; if (isRight ? index < 0 : length <= index) { throw TypeError('Reduce of empty array with no initial value'); } } for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { memo = callbackfn(memo, self[index], index, O); } return memo; }; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var aFunction = __webpack_require__(25); var isObject = __webpack_require__(3); var invoke = __webpack_require__(204); var arraySlice = [].slice; var factories = {}; var construct = function (F, len, args) { if (!(len in factories)) { for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; // eslint-disable-next-line no-new-func factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); } return factories[len](F, args); }; module.exports = Function.bind || function bind(that /* , ...args */) { var fn = aFunction(this); var partArgs = arraySlice.call(arguments, 1); var bound = function (/* args... */) { var args = partArgs.concat(arraySlice.call(arguments)); return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); }; if (isObject(fn.prototype)) bound.prototype = fn.prototype; return bound; }; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var dP = __webpack_require__(9).f; var create = __webpack_require__(37); var redefineAll = __webpack_require__(82); var ctx = __webpack_require__(36); var anInstance = __webpack_require__(71); var forOf = __webpack_require__(52); var $iterDefine = __webpack_require__(79); var step = __webpack_require__(123); var setSpecies = __webpack_require__(85); var DESCRIPTORS = __webpack_require__(10); var fastKey = __webpack_require__(27).fastKey; var validate = __webpack_require__(40); var SIZE = DESCRIPTORS ? '_s' : 'size'; var getEntry = function (that, key) { // fast case var index = fastKey(key); var entry; if (index !== 'F') return that._i[index]; // frozen object case for (entry = that._f; entry; entry = entry.n) { if (entry.k == key) return entry; } }; module.exports = { getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { var C = wrapper(function (that, iterable) { anInstance(that, C, NAME, '_i'); that._t = NAME; // collection type that._i = create(null); // index that._f = undefined; // first entry that._l = undefined; // last entry that[SIZE] = 0; // size if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); }); redefineAll(C.prototype, { // 23.1.3.1 Map.prototype.clear() // 23.2.3.2 Set.prototype.clear() clear: function clear() { for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { entry.r = true; if (entry.p) entry.p = entry.p.n = undefined; delete data[entry.i]; } that._f = that._l = undefined; that[SIZE] = 0; }, // 23.1.3.3 Map.prototype.delete(key) // 23.2.3.4 Set.prototype.delete(value) 'delete': function (key) { var that = validate(this, NAME); var entry = getEntry(that, key); if (entry) { var next = entry.n; var prev = entry.p; delete that._i[entry.i]; entry.r = true; if (prev) prev.n = next; if (next) next.p = prev; if (that._f == entry) that._f = next; if (that._l == entry) that._l = prev; that[SIZE]--; } return !!entry; }, // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) forEach: function forEach(callbackfn /* , that = undefined */) { validate(this, NAME); var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); var entry; while (entry = entry ? entry.n : this._f) { f(entry.v, entry.k, this); // revert to the last existing entry while (entry && entry.r) entry = entry.p; } }, // 23.1.3.7 Map.prototype.has(key) // 23.2.3.7 Set.prototype.has(value) has: function has(key) { return !!getEntry(validate(this, NAME), key); } }); if (DESCRIPTORS) dP(C.prototype, 'size', { get: function () { return validate(this, NAME)[SIZE]; } }); return C; }, def: function (that, key, value) { var entry = getEntry(that, key); var prev, index; // change existing entry if (entry) { entry.v = value; // create new entry } else { that._l = entry = { i: index = fastKey(key, true), // <- index k: key, // <- key v: value, // <- value p: prev = that._l, // <- previous entry n: undefined, // <- next entry r: false // <- removed }; if (!that._f) that._f = entry; if (prev) prev.n = entry; that[SIZE]++; // add to index if (index !== 'F') that._i[index] = entry; } return that; }, getEntry: getEntry, setStrong: function (C, NAME, IS_MAP) { // add .keys, .values, .entries, [@@iterator] // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 $iterDefine(C, NAME, function (iterated, kind) { this._t = validate(iterated, NAME); // target this._k = kind; // kind this._l = undefined; // previous }, function () { var that = this; var kind = that._k; var entry = that._l; // revert to the last existing entry while (entry && entry.r) entry = entry.p; // get next entry if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { // or finish the iteration that._t = undefined; return step(1); } // return step by kind if (kind == 'keys') return step(0, entry.k); if (kind == 'values') return step(0, entry.v); return step(0, [entry.k, entry.v]); }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2 setSpecies(NAME); } }; /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $defineProperty = __webpack_require__(9); var createDesc = __webpack_require__(39); module.exports = function (object, index, value) { if (index in object) $defineProperty.f(object, index, createDesc(0, value)); else object[index] = value; }; /***/ }), /* 115 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(3); var document = __webpack_require__(8).document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) { return is ? document.createElement(it) : {}; }; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { var document = __webpack_require__(8).document; module.exports = document && document.documentElement; /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { module.exports = !__webpack_require__(10) && !__webpack_require__(2)(function () { return Object.defineProperty(__webpack_require__(115)('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { // check on default Array iterator var Iterators = __webpack_require__(44); var ITERATOR = __webpack_require__(5)('iterator'); var ArrayProto = Array.prototype; module.exports = function (it) { return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); }; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.3 Number.isInteger(number) var isObject = __webpack_require__(3); var floor = Math.floor; module.exports = function isInteger(it) { return !isObject(it) && isFinite(it) && floor(it) === it; }; /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { // call something on iterator step with safe closing on error var anObject = __webpack_require__(1); module.exports = function (iterator, fn, value, entries) { try { return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) } catch (e) { var ret = iterator['return']; if (ret !== undefined) anObject(ret.call(iterator)); throw e; } }; /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var create = __webpack_require__(37); var descriptor = __webpack_require__(39); var setToStringTag = __webpack_require__(57); var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() __webpack_require__(21)(IteratorPrototype, __webpack_require__(5)('iterator'), function () { return this; }); module.exports = function (Constructor, NAME, next) { Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); setToStringTag(Constructor, NAME + ' Iterator'); }; /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { var ITERATOR = __webpack_require__(5)('iterator'); var SAFE_CLOSING = false; try { var riter = [7][ITERATOR](); riter['return'] = function () { SAFE_CLOSING = true; }; // eslint-disable-next-line no-throw-literal Array.from(riter, function () { throw 2; }); } catch (e) { /* empty */ } module.exports = function (exec, skipClosing) { if (!skipClosing && !SAFE_CLOSING) return false; var safe = false; try { var arr = [7]; var iter = arr[ITERATOR](); iter.next = function () { return { done: safe = true }; }; arr[ITERATOR] = function () { return iter; }; exec(arr); } catch (e) { /* empty */ } return safe; }; /***/ }), /* 123 */ /***/ (function(module, exports) { module.exports = function (done, value) { return { value: value, done: !!done }; }; /***/ }), /* 124 */ /***/ (function(module, exports) { // 20.2.2.20 Math.log1p(x) module.exports = Math.log1p || function log1p(x) { return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); }; /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 19.1.2.1 Object.assign(target, source, ...) var DESCRIPTORS = __webpack_require__(10); var getKeys = __webpack_require__(38); var gOPS = __webpack_require__(54); var pIE = __webpack_require__(55); var toObject = __webpack_require__(15); var IObject = __webpack_require__(43); var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) module.exports = !$assign || __webpack_require__(2)(function () { var A = {}; var B = {}; // eslint-disable-next-line no-undef var S = Symbol(); var K = 'abcdefghijklmnopqrst'; A[S] = 7; K.split('').forEach(function (k) { B[k] = k; }); return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; }) ? function assign(target, source) { // eslint-disable-line no-unused-vars var T = toObject(target); var aLen = arguments.length; var index = 1; var getSymbols = gOPS.f; var isEnum = pIE.f; while (aLen > index) { var S = IObject(arguments[index++]); var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); var length = keys.length; var j = 0; var key; while (length > j) { key = keys[j++]; if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; } } return T; } : $assign; /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(9); var anObject = __webpack_require__(1); var getKeys = __webpack_require__(38); module.exports = __webpack_require__(10) ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = getKeys(Properties); var length = keys.length; var i = 0; var P; while (length > i) dP.f(O, P = keys[i++], Properties[P]); return O; }; /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window var toIObject = __webpack_require__(19); var gOPN = __webpack_require__(45).f; var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; var getWindowNames = function (it) { try { return gOPN(it); } catch (e) { return windowNames.slice(); } }; module.exports.f = function getOwnPropertyNames(it) { return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); }; /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(16); var toIObject = __webpack_require__(19); var arrayIndexOf = __webpack_require__(110)(false); var IE_PROTO = __webpack_require__(86)('IE_PROTO'); module.exports = function (object, names) { var O = toIObject(object); var i = 0; var result = []; var key; for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } return result; }; /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { var $parseFloat = __webpack_require__(8).parseFloat; var $trim = __webpack_require__(58).trim; module.exports = 1 / $parseFloat(__webpack_require__(89) + '-0') !== -Infinity ? function parseFloat(str) { var string = $trim(String(str), 3); var result = $parseFloat(string); return result === 0 && string.charAt(0) == '-' ? -0 : result; } : $parseFloat; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { var $parseInt = __webpack_require__(8).parseInt; var $trim = __webpack_require__(58).trim; var ws = __webpack_require__(89); var hex = /^[-+]?0[xX]/; module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { var string = $trim(String(str), 3); return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); } : $parseInt; /***/ }), /* 131 */ /***/ (function(module, exports) { // 7.2.9 SameValue(x, y) module.exports = Object.is || function is(x, y) { // eslint-disable-next-line no-self-compare return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; }; /***/ }), /* 132 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var toInteger = __webpack_require__(31); var defined = __webpack_require__(26); module.exports = function repeat(count) { var str = String(defined(this)); var res = ''; var n = toInteger(count); if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; return res; }; /***/ }), /* 133 */ /***/ (function(module, exports, __webpack_require__) { exports.f = __webpack_require__(5); /***/ }), /* 134 */ /***/ (function(module, exports, __webpack_require__) { var classof = __webpack_require__(72); var ITERATOR = __webpack_require__(5)('iterator'); var Iterators = __webpack_require__(44); module.exports = __webpack_require__(7).getIteratorMethod = function (it) { if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; }; /***/ }), /* 135 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var addToUnscopables = __webpack_require__(42); var step = __webpack_require__(123); var Iterators = __webpack_require__(44); var toIObject = __webpack_require__(19); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() module.exports = __webpack_require__(79)(Array, 'Array', function (iterated, kind) { this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() }, function () { var O = this._t; var kind = this._k; var index = this._i++; if (!O || index >= O.length) { this._t = undefined; return step(1); } if (kind == 'keys') return step(0, index); if (kind == 'values') return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) Iterators.Arguments = Iterators.Array; addToUnscopables('keys'); addToUnscopables('values'); addToUnscopables('entries'); /***/ }), /* 136 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var strong = __webpack_require__(113); var validate = __webpack_require__(40); var MAP = 'Map'; // 23.1 Map Objects module.exports = __webpack_require__(73)(MAP, function (get) { return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }, { // 23.1.3.6 Map.prototype.get(key) get: function get(key) { var entry = strong.getEntry(validate(this, MAP), key); return entry && entry.v; }, // 23.1.3.9 Map.prototype.set(key, value) set: function set(key, value) { return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); } }, strong, true); /***/ }), /* 137 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var regexpExec = __webpack_require__(83); __webpack_require__(0)({ target: 'RegExp', proto: true, forced: regexpExec !== /./.exec }, { exec: regexpExec }); /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { // 21.2.5.3 get RegExp.prototype.flags() if (__webpack_require__(10) && /./g.flags != 'g') __webpack_require__(9).f(RegExp.prototype, 'flags', { configurable: true, get: __webpack_require__(51) }); /***/ }), /* 139 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(1); var toLength = __webpack_require__(11); var advanceStringIndex = __webpack_require__(70); var regExpExec = __webpack_require__(56); // @@match logic __webpack_require__(50)('match', 1, function (defined, MATCH, $match, maybeCallNative) { return [ // `String.prototype.match` method // https://tc39.github.io/ecma262/#sec-string.prototype.match function match(regexp) { var O = defined(this); var fn = regexp == undefined ? undefined : regexp[MATCH]; return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); }, // `RegExp.prototype[@@match]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match function (regexp) { var res = maybeCallNative($match, regexp, this); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); if (!rx.global) return regExpExec(rx, S); var fullUnicode = rx.unicode; rx.lastIndex = 0; var A = []; var n = 0; var result; while ((result = regExpExec(rx, S)) !== null) { var matchStr = String(result[0]); A[n] = matchStr; if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); n++; } return n === 0 ? null : A; } ]; }); /***/ }), /* 140 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(1); var toObject = __webpack_require__(15); var toLength = __webpack_require__(11); var toInteger = __webpack_require__(31); var advanceStringIndex = __webpack_require__(70); var regExpExec = __webpack_require__(56); var max = Math.max; var min = Math.min; var floor = Math.floor; var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; var maybeToString = function (it) { return it === undefined ? it : String(it); }; // @@replace logic __webpack_require__(50)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { return [ // `String.prototype.replace` method // https://tc39.github.io/ecma262/#sec-string.prototype.replace function replace(searchValue, replaceValue) { var O = defined(this); var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; return fn !== undefined ? fn.call(searchValue, O, replaceValue) : $replace.call(String(O), searchValue, replaceValue); }, // `RegExp.prototype[@@replace]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace function (regexp, replaceValue) { var res = maybeCallNative($replace, regexp, this, replaceValue); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); var functionalReplace = typeof replaceValue === 'function'; if (!functionalReplace) replaceValue = String(replaceValue); var global = rx.global; if (global) { var fullUnicode = rx.unicode; rx.lastIndex = 0; } var results = []; while (true) { var result = regExpExec(rx, S); if (result === null) break; results.push(result); if (!global) break; var matchStr = String(result[0]); if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); } var accumulatedResult = ''; var nextSourcePosition = 0; for (var i = 0; i < results.length; i++) { result = results[i]; var matched = String(result[0]); var position = max(min(toInteger(result.index), S.length), 0); var captures = []; // NOTE: This is equivalent to // captures = result.slice(1).map(maybeToString) // but for some reason `nativeSlice.call(result, 1, result.length)` (called in // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); var namedCaptures = result.groups; if (functionalReplace) { var replacerArgs = [matched].concat(captures, position, S); if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); var replacement = String(replaceValue.apply(undefined, replacerArgs)); } else { replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); } if (position >= nextSourcePosition) { accumulatedResult += S.slice(nextSourcePosition, position) + replacement; nextSourcePosition = position + matched.length; } } return accumulatedResult + S.slice(nextSourcePosition); } ]; // https://tc39.github.io/ecma262/#sec-getsubstitution function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { var tailPos = position + matched.length; var m = captures.length; var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; if (namedCaptures !== undefined) { namedCaptures = toObject(namedCaptures); symbols = SUBSTITUTION_SYMBOLS; } return $replace.call(replacement, symbols, function (match, ch) { var capture; switch (ch.charAt(0)) { case '$': return '$'; case '&': return matched; case '`': return str.slice(0, position); case "'": return str.slice(tailPos); case '<': capture = namedCaptures[ch.slice(1, -1)]; break; default: // \d\d? var n = +ch; if (n === 0) return match; if (n > m) { var f = floor(n / 10); if (f === 0) return match; if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); return match; } capture = captures[n - 1]; } return capture === undefined ? '' : capture; }); } }); /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(1); var sameValue = __webpack_require__(131); var regExpExec = __webpack_require__(56); // @@search logic __webpack_require__(50)('search', 1, function (defined, SEARCH, $search, maybeCallNative) { return [ // `String.prototype.search` method // https://tc39.github.io/ecma262/#sec-string.prototype.search function search(regexp) { var O = defined(this); var fn = regexp == undefined ? undefined : regexp[SEARCH]; return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); }, // `RegExp.prototype[@@search]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search function (regexp) { var res = maybeCallNative($search, regexp, this); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); var previousLastIndex = rx.lastIndex; if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; var result = regExpExec(rx, S); if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; return result === null ? -1 : result.index; } ]; }); /***/ }), /* 142 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isRegExp = __webpack_require__(78); var anObject = __webpack_require__(1); var speciesConstructor = __webpack_require__(207); var advanceStringIndex = __webpack_require__(70); var toLength = __webpack_require__(11); var callRegExpExec = __webpack_require__(56); var regexpExec = __webpack_require__(83); var fails = __webpack_require__(2); var $min = Math.min; var $push = [].push; var $SPLIT = 'split'; var LENGTH = 'length'; var LAST_INDEX = 'lastIndex'; var MAX_UINT32 = 0xffffffff; // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); }); // @@split logic __webpack_require__(50)('split', 2, function (defined, SPLIT, $split, maybeCallNative) { var internalSplit; if ( 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || '.'[$SPLIT](/()()/)[LENGTH] > 1 || ''[$SPLIT](/.?/)[LENGTH] ) { // based on es5-shim implementation, need to rework it internalSplit = function (separator, limit) { var string = String(this); if (separator === undefined && limit === 0) return []; // If `separator` is not a regex, use native split if (!isRegExp(separator)) return $split.call(string, separator, limit); var output = []; var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : ''); var lastLastIndex = 0; var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0; // Make `global` and avoid `lastIndex` issues by working with a copy var separatorCopy = new RegExp(separator.source, flags + 'g'); var match, lastIndex, lastLength; while (match = regexpExec.call(separatorCopy, string)) { lastIndex = separatorCopy[LAST_INDEX]; if (lastIndex > lastLastIndex) { output.push(string.slice(lastLastIndex, match.index)); if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); lastLength = match[0][LENGTH]; lastLastIndex = lastIndex; if (output[LENGTH] >= splitLimit) break; } if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop } if (lastLastIndex === string[LENGTH]) { if (lastLength || !separatorCopy.test('')) output.push(''); } else output.push(string.slice(lastLastIndex)); return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; }; // Chakra, V8 } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { internalSplit = function (separator, limit) { return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); }; } else { internalSplit = $split; } return [ // `String.prototype.split` method // https://tc39.github.io/ecma262/#sec-string.prototype.split function split(separator, limit) { var O = defined(this); var splitter = separator == undefined ? undefined : separator[SPLIT]; return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit); }, // `RegExp.prototype[@@split]` method // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split // // NOTE: This cannot be properly polyfilled in engines that don't support // the 'y' flag. function (regexp, limit) { var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); if (res.done) return res.value; var rx = anObject(regexp); var S = String(this); var C = speciesConstructor(rx, RegExp); var unicodeMatching = rx.unicode; var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g'); // ^(? + rx + ) is needed, in combination with some S slicing, to // simulate the 'y' flag. var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; if (lim === 0) return []; if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; var p = 0; var q = 0; var A = []; while (q < S.length) { splitter.lastIndex = SUPPORTS_Y ? q : 0; var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); var e; if ( z === null || (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p ) { q = advanceStringIndex(S, q, unicodeMatching); } else { A.push(S.slice(p, q)); if (A.length === lim) return A; for (var i = 1; i <= z.length - 1; i++) { A.push(z[i]); if (A.length === lim) return A; } q = p = e; } } A.push(S.slice(p)); return A; } ]; }); /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var strong = __webpack_require__(113); var validate = __webpack_require__(40); var SET = 'Set'; // 23.2 Set Objects module.exports = __webpack_require__(73)(SET, function (get) { return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }, { // 23.2.3.1 Set.prototype.add(value) add: function add(value) { return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); } }, strong); /***/ }), /* 144 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // ECMAScript 6 symbols shim var global = __webpack_require__(8); var has = __webpack_require__(16); var DESCRIPTORS = __webpack_require__(10); var $export = __webpack_require__(0); var redefine = __webpack_require__(13); var META = __webpack_require__(27).KEY; var $fails = __webpack_require__(2); var shared = __webpack_require__(46); var setToStringTag = __webpack_require__(57); var uid = __webpack_require__(48); var wks = __webpack_require__(5); var wksExt = __webpack_require__(133); var wksDefine = __webpack_require__(208); var enumKeys = __webpack_require__(202); var isArray = __webpack_require__(77); var anObject = __webpack_require__(1); var isObject = __webpack_require__(3); var toObject = __webpack_require__(15); var toIObject = __webpack_require__(19); var toPrimitive = __webpack_require__(32); var createDesc = __webpack_require__(39); var _create = __webpack_require__(37); var gOPNExt = __webpack_require__(127); var $GOPD = __webpack_require__(28); var $GOPS = __webpack_require__(54); var $DP = __webpack_require__(9); var $keys = __webpack_require__(38); var gOPD = $GOPD.f; var dP = $DP.f; var gOPN = gOPNExt.f; var $Symbol = global.Symbol; var $JSON = global.JSON; var _stringify = $JSON && $JSON.stringify; var PROTOTYPE = 'prototype'; var HIDDEN = wks('_hidden'); var TO_PRIMITIVE = wks('toPrimitive'); var isEnum = {}.propertyIsEnumerable; var SymbolRegistry = shared('symbol-registry'); var AllSymbols = shared('symbols'); var OPSymbols = shared('op-symbols'); var ObjectProto = Object[PROTOTYPE]; var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 var setSymbolDesc = DESCRIPTORS && $fails(function () { return _create(dP({}, 'a', { get: function () { return dP(this, 'a', { value: 7 }).a; } })).a != 7; }) ? function (it, key, D) { var protoDesc = gOPD(ObjectProto, key); if (protoDesc) delete ObjectProto[key]; dP(it, key, D); if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); } : dP; var wrap = function (tag) { var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); sym._k = tag; return sym; }; var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { return typeof it == 'symbol'; } : function (it) { return it instanceof $Symbol; }; var $defineProperty = function defineProperty(it, key, D) { if (it === ObjectProto) $defineProperty(OPSymbols, key, D); anObject(it); key = toPrimitive(key, true); anObject(D); if (has(AllSymbols, key)) { if (!D.enumerable) { if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); it[HIDDEN][key] = true; } else { if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; D = _create(D, { enumerable: createDesc(0, false) }); } return setSymbolDesc(it, key, D); } return dP(it, key, D); }; var $defineProperties = function defineProperties(it, P) { anObject(it); var keys = enumKeys(P = toIObject(P)); var i = 0; var l = keys.length; var key; while (l > i) $defineProperty(it, key = keys[i++], P[key]); return it; }; var $create = function create(it, P) { return P === undefined ? _create(it) : $defineProperties(_create(it), P); }; var $propertyIsEnumerable = function propertyIsEnumerable(key) { var E = isEnum.call(this, key = toPrimitive(key, true)); if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { it = toIObject(it); key = toPrimitive(key, true); if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; var D = gOPD(it, key); if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; return D; }; var $getOwnPropertyNames = function getOwnPropertyNames(it) { var names = gOPN(toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); } return result; }; var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { var IS_OP = it === ObjectProto; var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); var result = []; var i = 0; var key; while (names.length > i) { if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); } return result; }; // 19.4.1.1 Symbol([description]) if (!USE_NATIVE) { $Symbol = function Symbol() { if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); var tag = uid(arguments.length > 0 ? arguments[0] : undefined); var $set = function (value) { if (this === ObjectProto) $set.call(OPSymbols, value); if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; setSymbolDesc(this, tag, createDesc(1, value)); }; if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); return wrap(tag); }; redefine($Symbol[PROTOTYPE], 'toString', function toString() { return this._k; }); $GOPD.f = $getOwnPropertyDescriptor; $DP.f = $defineProperty; __webpack_require__(45).f = gOPNExt.f = $getOwnPropertyNames; __webpack_require__(55).f = $propertyIsEnumerable; $GOPS.f = $getOwnPropertySymbols; if (DESCRIPTORS && !__webpack_require__(53)) { redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } wksExt.f = function (name) { return wrap(wks(name)); }; } $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); for (var es6Symbols = ( // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { // 19.4.2.1 Symbol.for(key) 'for': function (key) { return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) keyFor: function keyFor(sym) { if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; }, useSetter: function () { setter = true; }, useSimple: function () { setter = false; } }); $export($export.S + $export.F * !USE_NATIVE, 'Object', { // 19.1.2.2 Object.create(O [, Properties]) create: $create, // 19.1.2.4 Object.defineProperty(O, P, Attributes) defineProperty: $defineProperty, // 19.1.2.3 Object.defineProperties(O, Properties) defineProperties: $defineProperties, // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) getOwnPropertyDescriptor: $getOwnPropertyDescriptor, // 19.1.2.7 Object.getOwnPropertyNames(O) getOwnPropertyNames: $getOwnPropertyNames, // 19.1.2.8 Object.getOwnPropertySymbols(O) getOwnPropertySymbols: $getOwnPropertySymbols }); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives // https://bugs.chromium.org/p/v8/issues/detail?id=3443 var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { getOwnPropertySymbols: function getOwnPropertySymbols(it) { return $GOPS.f(toObject(it)); } }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { stringify: function stringify(it) { var args = [it]; var i = 1; var replacer, $replacer; while (arguments.length > i) args.push(arguments[i++]); $replacer = replacer = args[1]; if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined if (!isArray(replacer)) replacer = function (key, value) { if (typeof $replacer == 'function') value = $replacer.call(this, key, value); if (!isSymbol(value)) return value; }; args[1] = replacer; return _stringify.apply($JSON, args); } }); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(21)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag] setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] setToStringTag(global.JSON, 'JSON', true); /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { var $iterators = __webpack_require__(135); var getKeys = __webpack_require__(38); var redefine = __webpack_require__(13); var global = __webpack_require__(8); var hide = __webpack_require__(21); var Iterators = __webpack_require__(44); var wks = __webpack_require__(5); var ITERATOR = wks('iterator'); var TO_STRING_TAG = wks('toStringTag'); var ArrayValues = Iterators.Array; var DOMIterables = { CSSRuleList: true, // TODO: Not spec compliant, should be false. CSSStyleDeclaration: false, CSSValueList: false, ClientRectList: false, DOMRectList: false, DOMStringList: false, DOMTokenList: true, DataTransferItemList: false, FileList: false, HTMLAllCollection: false, HTMLCollection: false, HTMLFormElement: false, HTMLSelectElement: false, MediaList: true, // TODO: Not spec compliant, should be false. MimeTypeArray: false, NamedNodeMap: false, NodeList: true, PaintRequestList: false, Plugin: false, PluginArray: false, SVGLengthList: false, SVGNumberList: false, SVGPathSegList: false, SVGPointList: false, SVGStringList: false, SVGTransformList: false, SourceBufferList: false, StyleSheetList: true, // TODO: Not spec compliant, should be false. TextTrackCueList: false, TextTrackList: false, TouchList: false }; for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { var NAME = collections[i]; var explicit = DOMIterables[NAME]; var Collection = global[NAME]; var proto = Collection && Collection.prototype; var key; if (proto) { if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); Iterators[NAME] = ArrayValues; if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); } } /***/ }), /* 146 */, /* 147 */, /* 148 */, /* 149 */, /* 150 */, /* 151 */, /* 152 */, /* 153 */, /* 154 */, /* 155 */, /* 156 */, /* 157 */, /* 158 */, /* 159 */, /* 160 */, /* 161 */, /* 162 */, /* 163 */, /* 164 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol__ = __webpack_require__(192); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_es6_symbol__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es6_object__ = __webpack_require__(185); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_es6_object___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_es6_object__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_es6_function__ = __webpack_require__(181); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_es6_function___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_es6_function__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int__ = __webpack_require__(187); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_es6_parse_int__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float__ = __webpack_require__(186); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_es6_parse_float__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_es6_number__ = __webpack_require__(184); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_es6_number___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_es6_number__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_es6_math__ = __webpack_require__(183); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_es6_math___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_core_js_es6_math__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_es6_string__ = __webpack_require__(191); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_es6_string___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_core_js_es6_string__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_core_js_es6_date__ = __webpack_require__(180); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_core_js_es6_date___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_core_js_es6_date__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_core_js_es6_array__ = __webpack_require__(179); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_core_js_es6_array___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_core_js_es6_array__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_core_js_es6_regexp__ = __webpack_require__(189); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_core_js_es6_regexp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_core_js_es6_regexp__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_core_js_es6_map__ = __webpack_require__(182); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_core_js_es6_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_core_js_es6_map__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_core_js_es6_set__ = __webpack_require__(190); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_core_js_es6_set___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_core_js_es6_set__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect__ = __webpack_require__(188); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_core_js_es6_reflect__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect__ = __webpack_require__(193); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_core_js_es7_reflect__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_zone_js_dist_zone__ = __webpack_require__(385); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_zone_js_dist_zone___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_zone_js_dist_zone__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_intl__ = __webpack_require__(334); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_intl___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16_intl__); /** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. * * This file is divided into 2 sections: * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. * 2. Application imports. Files imported after ZoneJS that should be loaded before your main * file. * * The current setup is for so-called "evergreen" browsers; the last versions of browsers that * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html */ /*************************************************************************************************** * BROWSER POLYFILLS */ /** IE9, IE10 and IE11 requires all of the following polyfills. **/ /** IE10 and IE11 requires the following for NgClass support on SVG elements */ // import "classlist.js"; // Run `npm install --save classlist.js`. /** IE10 and IE11 requires the following to support `@angular/animation`. */ // import "web-animations-js"; // Run `npm install --save web-animations-js`. /** Evergreen browsers require these. **/ /** ALL Firefox browsers require the following to support `@angular/animation`. **/ // import "web-animations-js"; // Run `npm install --save web-animations-js`. /*************************************************************************************************** * Zone JS is required by Angular itself. */ // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS */ /** * Date, currency, decimal and percent pipes. * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 */ // Run `npm install --save intl`. //# sourceMappingURL=polyfills.js.map /***/ }), /* 165 */, /* 166 */, /* 167 */, /* 168 */, /* 169 */, /* 170 */, /* 171 */, /* 172 */, /* 173 */, /* 174 */, /* 175 */, /* 176 */, /* 177 */, /* 178 */, /* 179 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(60); __webpack_require__(218); __webpack_require__(216); __webpack_require__(222); __webpack_require__(219); __webpack_require__(225); __webpack_require__(227); __webpack_require__(215); __webpack_require__(221); __webpack_require__(212); __webpack_require__(226); __webpack_require__(210); __webpack_require__(224); __webpack_require__(223); __webpack_require__(217); __webpack_require__(220); __webpack_require__(209); __webpack_require__(211); __webpack_require__(214); __webpack_require__(213); __webpack_require__(228); __webpack_require__(135); module.exports = __webpack_require__(7).Array; /***/ }), /* 180 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(229); __webpack_require__(231); __webpack_require__(230); __webpack_require__(233); __webpack_require__(232); module.exports = Date; /***/ }), /* 181 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(234); __webpack_require__(236); __webpack_require__(235); module.exports = __webpack_require__(7).Function; /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(59); __webpack_require__(60); __webpack_require__(145); __webpack_require__(136); module.exports = __webpack_require__(7).Map; /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(237); __webpack_require__(238); __webpack_require__(239); __webpack_require__(240); __webpack_require__(241); __webpack_require__(242); __webpack_require__(243); __webpack_require__(244); __webpack_require__(245); __webpack_require__(246); __webpack_require__(247); __webpack_require__(248); __webpack_require__(249); __webpack_require__(250); __webpack_require__(251); __webpack_require__(252); __webpack_require__(253); module.exports = __webpack_require__(7).Math; /***/ }), /* 184 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(254); __webpack_require__(264); __webpack_require__(265); __webpack_require__(255); __webpack_require__(256); __webpack_require__(257); __webpack_require__(258); __webpack_require__(259); __webpack_require__(260); __webpack_require__(261); __webpack_require__(262); __webpack_require__(263); module.exports = __webpack_require__(7).Number; /***/ }), /* 185 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(144); __webpack_require__(267); __webpack_require__(269); __webpack_require__(268); __webpack_require__(271); __webpack_require__(273); __webpack_require__(278); __webpack_require__(272); __webpack_require__(270); __webpack_require__(280); __webpack_require__(279); __webpack_require__(275); __webpack_require__(276); __webpack_require__(274); __webpack_require__(266); __webpack_require__(277); __webpack_require__(281); __webpack_require__(59); module.exports = __webpack_require__(7).Object; /***/ }), /* 186 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(282); module.exports = __webpack_require__(7).parseFloat; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(283); module.exports = __webpack_require__(7).parseInt; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(284); __webpack_require__(285); __webpack_require__(286); __webpack_require__(287); __webpack_require__(288); __webpack_require__(291); __webpack_require__(289); __webpack_require__(290); __webpack_require__(292); __webpack_require__(293); __webpack_require__(294); __webpack_require__(295); __webpack_require__(297); __webpack_require__(296); module.exports = __webpack_require__(7).Reflect; /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(298); __webpack_require__(137); __webpack_require__(299); __webpack_require__(138); __webpack_require__(139); __webpack_require__(140); __webpack_require__(141); __webpack_require__(142); module.exports = __webpack_require__(7).RegExp; /***/ }), /* 190 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(59); __webpack_require__(60); __webpack_require__(145); __webpack_require__(143); module.exports = __webpack_require__(7).Set; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(309); __webpack_require__(313); __webpack_require__(320); __webpack_require__(60); __webpack_require__(304); __webpack_require__(305); __webpack_require__(310); __webpack_require__(314); __webpack_require__(316); __webpack_require__(300); __webpack_require__(301); __webpack_require__(302); __webpack_require__(303); __webpack_require__(306); __webpack_require__(307); __webpack_require__(308); __webpack_require__(311); __webpack_require__(312); __webpack_require__(315); __webpack_require__(317); __webpack_require__(318); __webpack_require__(319); __webpack_require__(139); __webpack_require__(140); __webpack_require__(141); __webpack_require__(142); module.exports = __webpack_require__(7).String; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(144); __webpack_require__(59); module.exports = __webpack_require__(7).Symbol; /***/ }), /* 193 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(322); __webpack_require__(323); __webpack_require__(325); __webpack_require__(324); __webpack_require__(327); __webpack_require__(326); __webpack_require__(328); __webpack_require__(329); __webpack_require__(330); module.exports = __webpack_require__(7).Reflect; /***/ }), /* 194 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) var toObject = __webpack_require__(15); var toAbsoluteIndex = __webpack_require__(47); var toLength = __webpack_require__(11); module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { var O = toObject(this); var len = toLength(O.length); var to = toAbsoluteIndex(target, len); var from = toAbsoluteIndex(start, len); var end = arguments.length > 2 ? arguments[2] : undefined; var count = Math.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; }; /***/ }), /* 195 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) var toObject = __webpack_require__(15); var toAbsoluteIndex = __webpack_require__(47); var toLength = __webpack_require__(11); module.exports = function fill(value /* , start = 0, end = @length */) { var O = toObject(this); var length = toLength(O.length); var aLen = arguments.length; var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); var end = aLen > 2 ? arguments[2] : undefined; var endPos = end === undefined ? length : toAbsoluteIndex(end, length); while (endPos > index) O[index++] = value; return O; }; /***/ }), /* 196 */ /***/ (function(module, exports, __webpack_require__) { var forOf = __webpack_require__(52); module.exports = function (iter, ITERATOR) { var result = []; forOf(iter, false, result.push, result, ITERATOR); return result; }; /***/ }), /* 197 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(3); var isArray = __webpack_require__(77); var SPECIES = __webpack_require__(5)('species'); module.exports = function (original) { var C; if (isArray(original)) { C = original.constructor; // cross-realm fallback if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; if (isObject(C)) { C = C[SPECIES]; if (C === null) C = undefined; } } return C === undefined ? Array : C; }; /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { // 9.4.2.3 ArraySpeciesCreate(originalArray, length) var speciesConstructor = __webpack_require__(197); module.exports = function (original, length) { return new (speciesConstructor(original))(length); }; /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var redefineAll = __webpack_require__(82); var getWeak = __webpack_require__(27).getWeak; var anObject = __webpack_require__(1); var isObject = __webpack_require__(3); var anInstance = __webpack_require__(71); var forOf = __webpack_require__(52); var createArrayMethod = __webpack_require__(20); var $has = __webpack_require__(16); var validate = __webpack_require__(40); var arrayFind = createArrayMethod(5); var arrayFindIndex = createArrayMethod(6); var id = 0; // fallback for uncaught frozen keys var uncaughtFrozenStore = function (that) { return that._l || (that._l = new UncaughtFrozenStore()); }; var UncaughtFrozenStore = function () { this.a = []; }; var findUncaughtFrozen = function (store, key) { return arrayFind(store.a, function (it) { return it[0] === key; }); }; UncaughtFrozenStore.prototype = { get: function (key) { var entry = findUncaughtFrozen(this, key); if (entry) return entry[1]; }, has: function (key) { return !!findUncaughtFrozen(this, key); }, set: function (key, value) { var entry = findUncaughtFrozen(this, key); if (entry) entry[1] = value; else this.a.push([key, value]); }, 'delete': function (key) { var index = arrayFindIndex(this.a, function (it) { return it[0] === key; }); if (~index) this.a.splice(index, 1); return !!~index; } }; module.exports = { getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { var C = wrapper(function (that, iterable) { anInstance(that, C, NAME, '_i'); that._t = NAME; // collection type that._i = id++; // collection id that._l = undefined; // leak store for uncaught frozen objects if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); }); redefineAll(C.prototype, { // 23.3.3.2 WeakMap.prototype.delete(key) // 23.4.3.3 WeakSet.prototype.delete(value) 'delete': function (key) { if (!isObject(key)) return false; var data = getWeak(key); if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); return data && $has(data, this._i) && delete data[this._i]; }, // 23.3.3.4 WeakMap.prototype.has(key) // 23.4.3.4 WeakSet.prototype.has(value) has: function has(key) { if (!isObject(key)) return false; var data = getWeak(key); if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); return data && $has(data, this._i); } }); return C; }, def: function (that, key, value) { var data = getWeak(anObject(key), true); if (data === true) uncaughtFrozenStore(that).set(key, value); else data[that._i] = value; return that; }, ufstore: uncaughtFrozenStore }; /***/ }), /* 200 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() var fails = __webpack_require__(2); var getTime = Date.prototype.getTime; var $toISOString = Date.prototype.toISOString; var lz = function (num) { return num > 9 ? num : '0' + num; }; // PhantomJS / old WebKit has a broken implementations module.exports = (fails(function () { return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; }) || !fails(function () { $toISOString.call(new Date(NaN)); })) ? function toISOString() { if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); var d = this; var y = d.getUTCFullYear(); var m = d.getUTCMilliseconds(); var s = y < 0 ? '-' : y > 9999 ? '+' : ''; return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; } : $toISOString; /***/ }), /* 201 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var anObject = __webpack_require__(1); var toPrimitive = __webpack_require__(32); var NUMBER = 'number'; module.exports = function (hint) { if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); return toPrimitive(anObject(this), hint != NUMBER); }; /***/ }), /* 202 */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols var getKeys = __webpack_require__(38); var gOPS = __webpack_require__(54); var pIE = __webpack_require__(55); module.exports = function (it) { var result = getKeys(it); var getSymbols = gOPS.f; if (getSymbols) { var symbols = getSymbols(it); var isEnum = pIE.f; var i = 0; var key; while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); } return result; }; /***/ }), /* 203 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(46)('native-function-to-string', Function.toString); /***/ }), /* 204 */ /***/ (function(module, exports) { // fast apply, http://jsperf.lnkit.com/fast-apply/5 module.exports = function (fn, args, that) { var un = that === undefined; switch (args.length) { case 0: return un ? fn() : fn.call(that); case 1: return un ? fn(args[0]) : fn.call(that, args[0]); case 2: return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); case 3: return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); case 4: return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); } return fn.apply(that, args); }; /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.16 Math.fround(x) var sign = __webpack_require__(81); var pow = Math.pow; var EPSILON = pow(2, -52); var EPSILON32 = pow(2, -23); var MAX32 = pow(2, 127) * (2 - EPSILON32); var MIN32 = pow(2, -126); var roundTiesToEven = function (n) { return n + 1 / EPSILON - 1 / EPSILON; }; module.exports = Math.fround || function fround(x) { var $abs = Math.abs(x); var $sign = sign(x); var a, result; if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; a = (1 + EPSILON32 / EPSILON) * $abs; result = a - (a - $abs); // eslint-disable-next-line no-self-compare if (result > MAX32 || result != result) return $sign * Infinity; return $sign * result; }; /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { // all object keys, includes non-enumerable and symbols var gOPN = __webpack_require__(45); var gOPS = __webpack_require__(54); var anObject = __webpack_require__(1); var Reflect = __webpack_require__(8).Reflect; module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { var keys = gOPN.f(anObject(it)); var getSymbols = gOPS.f; return getSymbols ? keys.concat(getSymbols(it)) : keys; }; /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { // 7.3.20 SpeciesConstructor(O, defaultConstructor) var anObject = __webpack_require__(1); var aFunction = __webpack_require__(25); var SPECIES = __webpack_require__(5)('species'); module.exports = function (O, D) { var C = anObject(O).constructor; var S; return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); }; /***/ }), /* 208 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(8); var core = __webpack_require__(7); var LIBRARY = __webpack_require__(53); var wksExt = __webpack_require__(133); var defineProperty = __webpack_require__(9).f; module.exports = function (name) { var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); }; /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) var $export = __webpack_require__(0); $export($export.P, 'Array', { copyWithin: __webpack_require__(194) }); __webpack_require__(42)('copyWithin'); /***/ }), /* 210 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $every = __webpack_require__(20)(4); $export($export.P + $export.F * !__webpack_require__(17)([].every, true), 'Array', { // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) every: function every(callbackfn /* , thisArg */) { return $every(this, callbackfn, arguments[1]); } }); /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) var $export = __webpack_require__(0); $export($export.P, 'Array', { fill: __webpack_require__(195) }); __webpack_require__(42)('fill'); /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $filter = __webpack_require__(20)(2); $export($export.P + $export.F * !__webpack_require__(17)([].filter, true), 'Array', { // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) filter: function filter(callbackfn /* , thisArg */) { return $filter(this, callbackfn, arguments[1]); } }); /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) var $export = __webpack_require__(0); var $find = __webpack_require__(20)(6); var KEY = 'findIndex'; var forced = true; // Shouldn't skip holes if (KEY in []) Array(1)[KEY](function () { forced = false; }); $export($export.P + $export.F * forced, 'Array', { findIndex: function findIndex(callbackfn /* , that = undefined */) { return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); __webpack_require__(42)(KEY); /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) var $export = __webpack_require__(0); var $find = __webpack_require__(20)(5); var KEY = 'find'; var forced = true; // Shouldn't skip holes if (KEY in []) Array(1)[KEY](function () { forced = false; }); $export($export.P + $export.F * forced, 'Array', { find: function find(callbackfn /* , that = undefined */) { return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } }); __webpack_require__(42)(KEY); /***/ }), /* 215 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $forEach = __webpack_require__(20)(0); var STRICT = __webpack_require__(17)([].forEach, true); $export($export.P + $export.F * !STRICT, 'Array', { // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) forEach: function forEach(callbackfn /* , thisArg */) { return $forEach(this, callbackfn, arguments[1]); } }); /***/ }), /* 216 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var ctx = __webpack_require__(36); var $export = __webpack_require__(0); var toObject = __webpack_require__(15); var call = __webpack_require__(120); var isArrayIter = __webpack_require__(118); var toLength = __webpack_require__(11); var createProperty = __webpack_require__(114); var getIterFn = __webpack_require__(134); $export($export.S + $export.F * !__webpack_require__(122)(function (iter) { Array.from(iter); }), 'Array', { // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { var O = toObject(arrayLike); var C = typeof this == 'function' ? this : Array; var aLen = arguments.length; var mapfn = aLen > 1 ? arguments[1] : undefined; var mapping = mapfn !== undefined; var index = 0; var iterFn = getIterFn(O); var length, result, step, iterator; if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); // if object isn't iterable or it's array with default iterator - use simple case if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); } } else { length = toLength(O.length); for (result = new C(length); length > index; index++) { createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); } } result.length = index; return result; } }); /***/ }), /* 217 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $indexOf = __webpack_require__(110)(false); var $native = [].indexOf; var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(17)($native)), 'Array', { // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { return NEGATIVE_ZERO // convert -0 to +0 ? $native.apply(this, arguments) || 0 : $indexOf(this, searchElement, arguments[1]); } }); /***/ }), /* 218 */ /***/ (function(module, exports, __webpack_require__) { // 22.1.2.2 / 15.4.3.2 Array.isArray(arg) var $export = __webpack_require__(0); $export($export.S, 'Array', { isArray: __webpack_require__(77) }); /***/ }), /* 219 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 22.1.3.13 Array.prototype.join(separator) var $export = __webpack_require__(0); var toIObject = __webpack_require__(19); var arrayJoin = [].join; // fallback for not array-like strings $export($export.P + $export.F * (__webpack_require__(43) != Object || !__webpack_require__(17)(arrayJoin)), 'Array', { join: function join(separator) { return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); } }); /***/ }), /* 220 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var toIObject = __webpack_require__(19); var toInteger = __webpack_require__(31); var toLength = __webpack_require__(11); var $native = [].lastIndexOf; var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(17)($native)), 'Array', { // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { // convert -0 to +0 if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; var O = toIObject(this); var length = toLength(O.length); var index = length - 1; if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); if (index < 0) index = length + index; for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; return -1; } }); /***/ }), /* 221 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $map = __webpack_require__(20)(1); $export($export.P + $export.F * !__webpack_require__(17)([].map, true), 'Array', { // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) map: function map(callbackfn /* , thisArg */) { return $map(this, callbackfn, arguments[1]); } }); /***/ }), /* 222 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var createProperty = __webpack_require__(114); // WebKit Array.of isn't generic $export($export.S + $export.F * __webpack_require__(2)(function () { function F() { /* empty */ } return !(Array.of.call(F) instanceof F); }), 'Array', { // 22.1.2.3 Array.of( ...items) of: function of(/* ...args */) { var index = 0; var aLen = arguments.length; var result = new (typeof this == 'function' ? this : Array)(aLen); while (aLen > index) createProperty(result, index, arguments[index++]); result.length = aLen; return result; } }); /***/ }), /* 223 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $reduce = __webpack_require__(111); $export($export.P + $export.F * !__webpack_require__(17)([].reduceRight, true), 'Array', { // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) reduceRight: function reduceRight(callbackfn /* , initialValue */) { return $reduce(this, callbackfn, arguments.length, arguments[1], true); } }); /***/ }), /* 224 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $reduce = __webpack_require__(111); $export($export.P + $export.F * !__webpack_require__(17)([].reduce, true), 'Array', { // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) reduce: function reduce(callbackfn /* , initialValue */) { return $reduce(this, callbackfn, arguments.length, arguments[1], false); } }); /***/ }), /* 225 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var html = __webpack_require__(116); var cof = __webpack_require__(30); var toAbsoluteIndex = __webpack_require__(47); var toLength = __webpack_require__(11); var arraySlice = [].slice; // fallback for not array-like ES3 strings and DOM objects $export($export.P + $export.F * __webpack_require__(2)(function () { if (html) arraySlice.call(html); }), 'Array', { slice: function slice(begin, end) { var len = toLength(this.length); var klass = cof(this); end = end === undefined ? len : end; if (klass == 'Array') return arraySlice.call(this, begin, end); var start = toAbsoluteIndex(begin, len); var upTo = toAbsoluteIndex(end, len); var size = toLength(upTo - start); var cloned = new Array(size); var i = 0; for (; i < size; i++) cloned[i] = klass == 'String' ? this.charAt(start + i) : this[start + i]; return cloned; } }); /***/ }), /* 226 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $some = __webpack_require__(20)(3); $export($export.P + $export.F * !__webpack_require__(17)([].some, true), 'Array', { // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) some: function some(callbackfn /* , thisArg */) { return $some(this, callbackfn, arguments[1]); } }); /***/ }), /* 227 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var aFunction = __webpack_require__(25); var toObject = __webpack_require__(15); var fails = __webpack_require__(2); var $sort = [].sort; var test = [1, 2, 3]; $export($export.P + $export.F * (fails(function () { // IE8- test.sort(undefined); }) || !fails(function () { // V8 bug test.sort(null); // Old WebKit }) || !__webpack_require__(17)($sort)), 'Array', { // 22.1.3.25 Array.prototype.sort(comparefn) sort: function sort(comparefn) { return comparefn === undefined ? $sort.call(toObject(this)) : $sort.call(toObject(this), aFunction(comparefn)); } }); /***/ }), /* 228 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(85)('Array'); /***/ }), /* 229 */ /***/ (function(module, exports, __webpack_require__) { // 20.3.3.1 / 15.9.4.4 Date.now() var $export = __webpack_require__(0); $export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); /***/ }), /* 230 */ /***/ (function(module, exports, __webpack_require__) { // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() var $export = __webpack_require__(0); var toISOString = __webpack_require__(200); // PhantomJS / old WebKit has a broken implementations $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { toISOString: toISOString }); /***/ }), /* 231 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var toObject = __webpack_require__(15); var toPrimitive = __webpack_require__(32); $export($export.P + $export.F * __webpack_require__(2)(function () { return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; }), 'Date', { // eslint-disable-next-line no-unused-vars toJSON: function toJSON(key) { var O = toObject(this); var pv = toPrimitive(O); return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); } }); /***/ }), /* 232 */ /***/ (function(module, exports, __webpack_require__) { var TO_PRIMITIVE = __webpack_require__(5)('toPrimitive'); var proto = Date.prototype; if (!(TO_PRIMITIVE in proto)) __webpack_require__(21)(proto, TO_PRIMITIVE, __webpack_require__(201)); /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { var DateProto = Date.prototype; var INVALID_DATE = 'Invalid Date'; var TO_STRING = 'toString'; var $toString = DateProto[TO_STRING]; var getTime = DateProto.getTime; if (new Date(NaN) + '' != INVALID_DATE) { __webpack_require__(13)(DateProto, TO_STRING, function toString() { var value = getTime.call(this); // eslint-disable-next-line no-self-compare return value === value ? $toString.call(this) : INVALID_DATE; }); } /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) var $export = __webpack_require__(0); $export($export.P, 'Function', { bind: __webpack_require__(112) }); /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isObject = __webpack_require__(3); var getPrototypeOf = __webpack_require__(23); var HAS_INSTANCE = __webpack_require__(5)('hasInstance'); var FunctionProto = Function.prototype; // 19.2.3.6 Function.prototype[@@hasInstance](V) if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(9).f(FunctionProto, HAS_INSTANCE, { value: function (O) { if (typeof this != 'function' || !isObject(O)) return false; if (!isObject(this.prototype)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: while (O = getPrototypeOf(O)) if (this.prototype === O) return true; return false; } }); /***/ }), /* 236 */ /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__(9).f; var FProto = Function.prototype; var nameRE = /^\s*function ([^ (]*)/; var NAME = 'name'; // 19.2.4.2 name NAME in FProto || __webpack_require__(10) && dP(FProto, NAME, { configurable: true, get: function () { try { return ('' + this).match(nameRE)[1]; } catch (e) { return ''; } } }); /***/ }), /* 237 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.3 Math.acosh(x) var $export = __webpack_require__(0); var log1p = __webpack_require__(124); var sqrt = Math.sqrt; var $acosh = Math.acosh; $export($export.S + $export.F * !($acosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 && Math.floor($acosh(Number.MAX_VALUE)) == 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN && $acosh(Infinity) == Infinity ), 'Math', { acosh: function acosh(x) { return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? Math.log(x) + Math.LN2 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); } }); /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.5 Math.asinh(x) var $export = __webpack_require__(0); var $asinh = Math.asinh; function asinh(x) { return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); } // Tor Browser bug: Math.asinh(0) -> -0 $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.7 Math.atanh(x) var $export = __webpack_require__(0); var $atanh = Math.atanh; // Tor Browser bug: Math.atanh(-0) -> 0 $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { atanh: function atanh(x) { return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; } }); /***/ }), /* 240 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.9 Math.cbrt(x) var $export = __webpack_require__(0); var sign = __webpack_require__(81); $export($export.S, 'Math', { cbrt: function cbrt(x) { return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); } }); /***/ }), /* 241 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.11 Math.clz32(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { clz32: function clz32(x) { return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; } }); /***/ }), /* 242 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.12 Math.cosh(x) var $export = __webpack_require__(0); var exp = Math.exp; $export($export.S, 'Math', { cosh: function cosh(x) { return (exp(x = +x) + exp(-x)) / 2; } }); /***/ }), /* 243 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.14 Math.expm1(x) var $export = __webpack_require__(0); var $expm1 = __webpack_require__(80); $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); /***/ }), /* 244 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.16 Math.fround(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { fround: __webpack_require__(205) }); /***/ }), /* 245 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) var $export = __webpack_require__(0); var abs = Math.abs; $export($export.S, 'Math', { hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars var sum = 0; var i = 0; var aLen = arguments.length; var larg = 0; var arg, div; while (i < aLen) { arg = abs(arguments[i++]); if (larg < arg) { div = larg / arg; sum = sum * div * div + 1; larg = arg; } else if (arg > 0) { div = arg / larg; sum += div * div; } else sum += arg; } return larg === Infinity ? Infinity : larg * Math.sqrt(sum); } }); /***/ }), /* 246 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.18 Math.imul(x, y) var $export = __webpack_require__(0); var $imul = Math.imul; // some WebKit versions fails with big numbers, some has wrong arity $export($export.S + $export.F * __webpack_require__(2)(function () { return $imul(0xffffffff, 5) != -5 || $imul.length != 2; }), 'Math', { imul: function imul(x, y) { var UINT16 = 0xffff; var xn = +x; var yn = +y; var xl = UINT16 & xn; var yl = UINT16 & yn; return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); } }); /***/ }), /* 247 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.21 Math.log10(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { log10: function log10(x) { return Math.log(x) * Math.LOG10E; } }); /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.20 Math.log1p(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { log1p: __webpack_require__(124) }); /***/ }), /* 249 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.22 Math.log2(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { log2: function log2(x) { return Math.log(x) / Math.LN2; } }); /***/ }), /* 250 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.28 Math.sign(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { sign: __webpack_require__(81) }); /***/ }), /* 251 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.30 Math.sinh(x) var $export = __webpack_require__(0); var expm1 = __webpack_require__(80); var exp = Math.exp; // V8 near Chromium 38 has a problem with very small numbers $export($export.S + $export.F * __webpack_require__(2)(function () { return !Math.sinh(-2e-17) != -2e-17; }), 'Math', { sinh: function sinh(x) { return Math.abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); } }); /***/ }), /* 252 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.33 Math.tanh(x) var $export = __webpack_require__(0); var expm1 = __webpack_require__(80); var exp = Math.exp; $export($export.S, 'Math', { tanh: function tanh(x) { var a = expm1(x = +x); var b = expm1(-x); return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); } }); /***/ }), /* 253 */ /***/ (function(module, exports, __webpack_require__) { // 20.2.2.34 Math.trunc(x) var $export = __webpack_require__(0); $export($export.S, 'Math', { trunc: function trunc(it) { return (it > 0 ? Math.floor : Math.ceil)(it); } }); /***/ }), /* 254 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(8); var has = __webpack_require__(16); var cof = __webpack_require__(30); var inheritIfRequired = __webpack_require__(76); var toPrimitive = __webpack_require__(32); var fails = __webpack_require__(2); var gOPN = __webpack_require__(45).f; var gOPD = __webpack_require__(28).f; var dP = __webpack_require__(9).f; var $trim = __webpack_require__(58).trim; var NUMBER = 'Number'; var $Number = global[NUMBER]; var Base = $Number; var proto = $Number.prototype; // Opera ~12 has broken Object#toString var BROKEN_COF = cof(__webpack_require__(37)(proto)) == NUMBER; var TRIM = 'trim' in String.prototype; // 7.1.3 ToNumber(argument) var toNumber = function (argument) { var it = toPrimitive(argument, false); if (typeof it == 'string' && it.length > 2) { it = TRIM ? it.trim() : $trim(it, 3); var first = it.charCodeAt(0); var third, radix, maxCode; if (first === 43 || first === 45) { third = it.charCodeAt(2); if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix } else if (first === 48) { switch (it.charCodeAt(1)) { case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i default: return +it; } for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { code = digits.charCodeAt(i); // 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; }; if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { $Number = function Number(value) { var it = arguments.length < 1 ? 0 : value; var that = this; return that instanceof $Number // check on 1..constructor(foo) case && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); }; for (var keys = __webpack_require__(10) ? gOPN(Base) : ( // ES3: 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES6 (in case, if modules with ES6 Number statics required before): 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' ).split(','), j = 0, key; keys.length > j; j++) { if (has(Base, key = keys[j]) && !has($Number, key)) { dP($Number, key, gOPD(Base, key)); } } $Number.prototype = proto; proto.constructor = $Number; __webpack_require__(13)(global, NUMBER, $Number); } /***/ }), /* 255 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.1 Number.EPSILON var $export = __webpack_require__(0); $export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); /***/ }), /* 256 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.2 Number.isFinite(number) var $export = __webpack_require__(0); var _isFinite = __webpack_require__(8).isFinite; $export($export.S, 'Number', { isFinite: function isFinite(it) { return typeof it == 'number' && _isFinite(it); } }); /***/ }), /* 257 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.3 Number.isInteger(number) var $export = __webpack_require__(0); $export($export.S, 'Number', { isInteger: __webpack_require__(119) }); /***/ }), /* 258 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.4 Number.isNaN(number) var $export = __webpack_require__(0); $export($export.S, 'Number', { isNaN: function isNaN(number) { // eslint-disable-next-line no-self-compare return number != number; } }); /***/ }), /* 259 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.5 Number.isSafeInteger(number) var $export = __webpack_require__(0); var isInteger = __webpack_require__(119); var abs = Math.abs; $export($export.S, 'Number', { isSafeInteger: function isSafeInteger(number) { return isInteger(number) && abs(number) <= 0x1fffffffffffff; } }); /***/ }), /* 260 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.6 Number.MAX_SAFE_INTEGER var $export = __webpack_require__(0); $export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); /***/ }), /* 261 */ /***/ (function(module, exports, __webpack_require__) { // 20.1.2.10 Number.MIN_SAFE_INTEGER var $export = __webpack_require__(0); $export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); /***/ }), /* 262 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var $parseFloat = __webpack_require__(129); // 20.1.2.12 Number.parseFloat(string) $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); /***/ }), /* 263 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var $parseInt = __webpack_require__(130); // 20.1.2.13 Number.parseInt(string, radix) $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); /***/ }), /* 264 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var toInteger = __webpack_require__(31); var aNumberValue = __webpack_require__(109); var repeat = __webpack_require__(132); var $toFixed = 1.0.toFixed; var floor = Math.floor; var data = [0, 0, 0, 0, 0, 0]; var ERROR = 'Number.toFixed: incorrect invocation!'; var ZERO = '0'; var multiply = function (n, c) { var i = -1; var c2 = c; while (++i < 6) { c2 += n * data[i]; data[i] = c2 % 1e7; c2 = floor(c2 / 1e7); } }; var divide = function (n) { var i = 6; var c = 0; while (--i >= 0) { c += data[i]; data[i] = floor(c / n); c = (c % n) * 1e7; } }; var numToString = function () { var i = 6; var s = ''; while (--i >= 0) { if (s !== '' || i === 0 || data[i] !== 0) { var t = String(data[i]); s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; } } return s; }; 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; }; $export($export.P + $export.F * (!!$toFixed && ( 0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128.0.toFixed(0) !== '1000000000000000128' ) || !__webpack_require__(2)(function () { // V8 ~ Android 4.3- $toFixed.call({}); })), 'Number', { toFixed: function toFixed(fractionDigits) { var x = aNumberValue(this, ERROR); var f = toInteger(fractionDigits); var s = ''; var m = ZERO; var e, z, j, k; if (f < 0 || f > 20) throw RangeError(ERROR); // eslint-disable-next-line no-self-compare if (x != x) return 'NaN'; if (x <= -1e21 || x >= 1e21) return String(x); if (x < 0) { s = '-'; x = -x; } if (x > 1e-21) { e = log(x * pow(2, 69, 1)) - 69; z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); z *= 0x10000000000000; e = 52 - e; if (e > 0) { multiply(0, z); j = f; while (j >= 7) { multiply(1e7, 0); j -= 7; } multiply(pow(10, j, 1), 0); j = e - 1; while (j >= 23) { divide(1 << 23); j -= 23; } divide(1 << j); multiply(1, 1); divide(2); m = numToString(); } else { multiply(0, z); multiply(1 << -e, 0); m = numToString() + repeat.call(ZERO, f); } } if (f > 0) { k = m.length; m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); } else { m = s + m; } return m; } }); /***/ }), /* 265 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $fails = __webpack_require__(2); var aNumberValue = __webpack_require__(109); var $toPrecision = 1.0.toPrecision; $export($export.P + $export.F * ($fails(function () { // IE7- return $toPrecision.call(1, undefined) !== '1'; }) || !$fails(function () { // V8 ~ Android 4.3- $toPrecision.call({}); })), 'Number', { toPrecision: function toPrecision(precision) { var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); } }); /***/ }), /* 266 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(0); $export($export.S + $export.F, 'Object', { assign: __webpack_require__(125) }); /***/ }), /* 267 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) $export($export.S, 'Object', { create: __webpack_require__(37) }); /***/ }), /* 268 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) $export($export.S + $export.F * !__webpack_require__(10), 'Object', { defineProperties: __webpack_require__(126) }); /***/ }), /* 269 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) $export($export.S + $export.F * !__webpack_require__(10), 'Object', { defineProperty: __webpack_require__(9).f }); /***/ }), /* 270 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.5 Object.freeze(O) var isObject = __webpack_require__(3); var meta = __webpack_require__(27).onFreeze; __webpack_require__(18)('freeze', function ($freeze) { return function freeze(it) { return $freeze && isObject(it) ? $freeze(meta(it)) : it; }; }); /***/ }), /* 271 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) var toIObject = __webpack_require__(19); var $getOwnPropertyDescriptor = __webpack_require__(28).f; __webpack_require__(18)('getOwnPropertyDescriptor', function () { return function getOwnPropertyDescriptor(it, key) { return $getOwnPropertyDescriptor(toIObject(it), key); }; }); /***/ }), /* 272 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 Object.getOwnPropertyNames(O) __webpack_require__(18)('getOwnPropertyNames', function () { return __webpack_require__(127).f; }); /***/ }), /* 273 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 Object.getPrototypeOf(O) var toObject = __webpack_require__(15); var $getPrototypeOf = __webpack_require__(23); __webpack_require__(18)('getPrototypeOf', function () { return function getPrototypeOf(it) { return $getPrototypeOf(toObject(it)); }; }); /***/ }), /* 274 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.11 Object.isExtensible(O) var isObject = __webpack_require__(3); __webpack_require__(18)('isExtensible', function ($isExtensible) { return function isExtensible(it) { return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; }; }); /***/ }), /* 275 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.12 Object.isFrozen(O) var isObject = __webpack_require__(3); __webpack_require__(18)('isFrozen', function ($isFrozen) { return function isFrozen(it) { return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; }; }); /***/ }), /* 276 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.13 Object.isSealed(O) var isObject = __webpack_require__(3); __webpack_require__(18)('isSealed', function ($isSealed) { return function isSealed(it) { return isObject(it) ? $isSealed ? $isSealed(it) : false : true; }; }); /***/ }), /* 277 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.10 Object.is(value1, value2) var $export = __webpack_require__(0); $export($export.S, 'Object', { is: __webpack_require__(131) }); /***/ }), /* 278 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 Object.keys(O) var toObject = __webpack_require__(15); var $keys = __webpack_require__(38); __webpack_require__(18)('keys', function () { return function keys(it) { return $keys(toObject(it)); }; }); /***/ }), /* 279 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.15 Object.preventExtensions(O) var isObject = __webpack_require__(3); var meta = __webpack_require__(27).onFreeze; __webpack_require__(18)('preventExtensions', function ($preventExtensions) { return function preventExtensions(it) { return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; }; }); /***/ }), /* 280 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.17 Object.seal(O) var isObject = __webpack_require__(3); var meta = __webpack_require__(27).onFreeze; __webpack_require__(18)('seal', function ($seal) { return function seal(it) { return $seal && isObject(it) ? $seal(meta(it)) : it; }; }); /***/ }), /* 281 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.19 Object.setPrototypeOf(O, proto) var $export = __webpack_require__(0); $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(84).set }); /***/ }), /* 282 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var $parseFloat = __webpack_require__(129); // 18.2.4 parseFloat(string) $export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); /***/ }), /* 283 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var $parseInt = __webpack_require__(130); // 18.2.5 parseInt(string, radix) $export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); /***/ }), /* 284 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.1 Reflect.apply(target, thisArgument, argumentsList) var $export = __webpack_require__(0); var aFunction = __webpack_require__(25); var anObject = __webpack_require__(1); var rApply = (__webpack_require__(8).Reflect || {}).apply; var fApply = Function.apply; // MS Edge argumentsList argument is optional $export($export.S + $export.F * !__webpack_require__(2)(function () { rApply(function () { /* empty */ }); }), 'Reflect', { apply: function apply(target, thisArgument, argumentsList) { var T = aFunction(target); var L = anObject(argumentsList); return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); } }); /***/ }), /* 285 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) var $export = __webpack_require__(0); var create = __webpack_require__(37); var aFunction = __webpack_require__(25); var anObject = __webpack_require__(1); var isObject = __webpack_require__(3); var fails = __webpack_require__(2); var bind = __webpack_require__(112); var rConstruct = (__webpack_require__(8).Reflect || {}).construct; // MS Edge supports only 2 arguments and argumentsList argument is optional // FF Nightly sets third argument as `new.target`, but does not create `this` from it var NEW_TARGET_BUG = fails(function () { function F() { /* empty */ } return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); }); var ARGS_BUG = !fails(function () { rConstruct(function () { /* empty */ }); }); $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { construct: function construct(Target, args /* , newTarget */) { aFunction(Target); anObject(args); var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); if (Target == newTarget) { // w/o altered newTarget, optimization for 0-4 arguments switch (args.length) { case 0: return new Target(); case 1: return new Target(args[0]); case 2: return new Target(args[0], args[1]); case 3: return new Target(args[0], args[1], args[2]); case 4: return new Target(args[0], args[1], args[2], args[3]); } // w/o altered newTarget, lot of arguments case var $args = [null]; $args.push.apply($args, args); return new (bind.apply(Target, $args))(); } // with altered newTarget, not support built-in constructors var proto = newTarget.prototype; var instance = create(isObject(proto) ? proto : Object.prototype); var result = Function.apply.call(Target, instance, args); return isObject(result) ? result : instance; } }); /***/ }), /* 286 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) var dP = __webpack_require__(9); var $export = __webpack_require__(0); var anObject = __webpack_require__(1); var toPrimitive = __webpack_require__(32); // MS Edge has broken Reflect.defineProperty - throwing instead of returning false $export($export.S + $export.F * __webpack_require__(2)(function () { // eslint-disable-next-line no-undef Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); }), 'Reflect', { defineProperty: function defineProperty(target, propertyKey, attributes) { anObject(target); propertyKey = toPrimitive(propertyKey, true); anObject(attributes); try { dP.f(target, propertyKey, attributes); return true; } catch (e) { return false; } } }); /***/ }), /* 287 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.4 Reflect.deleteProperty(target, propertyKey) var $export = __webpack_require__(0); var gOPD = __webpack_require__(28).f; var anObject = __webpack_require__(1); $export($export.S, 'Reflect', { deleteProperty: function deleteProperty(target, propertyKey) { var desc = gOPD(anObject(target), propertyKey); return desc && !desc.configurable ? false : delete target[propertyKey]; } }); /***/ }), /* 288 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 26.1.5 Reflect.enumerate(target) var $export = __webpack_require__(0); var anObject = __webpack_require__(1); var Enumerate = function (iterated) { this._t = anObject(iterated); // target this._i = 0; // next index var keys = this._k = []; // keys var key; for (key in iterated) keys.push(key); }; __webpack_require__(121)(Enumerate, 'Object', function () { var that = this; var keys = that._k; var key; do { if (that._i >= keys.length) return { value: undefined, done: true }; } while (!((key = keys[that._i++]) in that._t)); return { value: key, done: false }; }); $export($export.S, 'Reflect', { enumerate: function enumerate(target) { return new Enumerate(target); } }); /***/ }), /* 289 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) var gOPD = __webpack_require__(28); var $export = __webpack_require__(0); var anObject = __webpack_require__(1); $export($export.S, 'Reflect', { getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { return gOPD.f(anObject(target), propertyKey); } }); /***/ }), /* 290 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.8 Reflect.getPrototypeOf(target) var $export = __webpack_require__(0); var getProto = __webpack_require__(23); var anObject = __webpack_require__(1); $export($export.S, 'Reflect', { getPrototypeOf: function getPrototypeOf(target) { return getProto(anObject(target)); } }); /***/ }), /* 291 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.6 Reflect.get(target, propertyKey [, receiver]) var gOPD = __webpack_require__(28); var getPrototypeOf = __webpack_require__(23); var has = __webpack_require__(16); var $export = __webpack_require__(0); var isObject = __webpack_require__(3); var anObject = __webpack_require__(1); function get(target, propertyKey /* , receiver */) { var receiver = arguments.length < 3 ? target : arguments[2]; var desc, proto; if (anObject(target) === receiver) return target[propertyKey]; if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') ? desc.value : desc.get !== undefined ? desc.get.call(receiver) : undefined; if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); } $export($export.S, 'Reflect', { get: get }); /***/ }), /* 292 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.9 Reflect.has(target, propertyKey) var $export = __webpack_require__(0); $export($export.S, 'Reflect', { has: function has(target, propertyKey) { return propertyKey in target; } }); /***/ }), /* 293 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.10 Reflect.isExtensible(target) var $export = __webpack_require__(0); var anObject = __webpack_require__(1); var $isExtensible = Object.isExtensible; $export($export.S, 'Reflect', { isExtensible: function isExtensible(target) { anObject(target); return $isExtensible ? $isExtensible(target) : true; } }); /***/ }), /* 294 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.11 Reflect.ownKeys(target) var $export = __webpack_require__(0); $export($export.S, 'Reflect', { ownKeys: __webpack_require__(206) }); /***/ }), /* 295 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.12 Reflect.preventExtensions(target) var $export = __webpack_require__(0); var anObject = __webpack_require__(1); var $preventExtensions = Object.preventExtensions; $export($export.S, 'Reflect', { preventExtensions: function preventExtensions(target) { anObject(target); try { if ($preventExtensions) $preventExtensions(target); return true; } catch (e) { return false; } } }); /***/ }), /* 296 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.14 Reflect.setPrototypeOf(target, proto) var $export = __webpack_require__(0); var setProto = __webpack_require__(84); if (setProto) $export($export.S, 'Reflect', { setPrototypeOf: function setPrototypeOf(target, proto) { setProto.check(target, proto); try { setProto.set(target, proto); return true; } catch (e) { return false; } } }); /***/ }), /* 297 */ /***/ (function(module, exports, __webpack_require__) { // 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) var dP = __webpack_require__(9); var gOPD = __webpack_require__(28); var getPrototypeOf = __webpack_require__(23); var has = __webpack_require__(16); var $export = __webpack_require__(0); var createDesc = __webpack_require__(39); var anObject = __webpack_require__(1); var isObject = __webpack_require__(3); function set(target, propertyKey, V /* , receiver */) { var receiver = arguments.length < 4 ? target : arguments[3]; var ownDesc = gOPD.f(anObject(target), propertyKey); var existingDescriptor, proto; if (!ownDesc) { if (isObject(proto = getPrototypeOf(target))) { return set(proto, propertyKey, V, receiver); } ownDesc = createDesc(0); } if (has(ownDesc, 'value')) { if (ownDesc.writable === false || !isObject(receiver)) return false; if (existingDescriptor = gOPD.f(receiver, propertyKey)) { if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; existingDescriptor.value = V; dP.f(receiver, propertyKey, existingDescriptor); } else dP.f(receiver, propertyKey, createDesc(0, V)); return true; } return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); } $export($export.S, 'Reflect', { set: set }); /***/ }), /* 298 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(8); var inheritIfRequired = __webpack_require__(76); var dP = __webpack_require__(9).f; var gOPN = __webpack_require__(45).f; var isRegExp = __webpack_require__(78); var $flags = __webpack_require__(51); var $RegExp = global.RegExp; var Base = $RegExp; var proto = $RegExp.prototype; var re1 = /a/g; var re2 = /a/g; // "new" creates a new object, old webkit buggy here var CORRECT_NEW = new $RegExp(re1) !== re1; if (__webpack_require__(10) && (!CORRECT_NEW || __webpack_require__(2)(function () { re2[__webpack_require__(5)('match')] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; }))) { $RegExp = function RegExp(p, f) { var tiRE = this instanceof $RegExp; var piRE = isRegExp(p); var fiU = f === undefined; return !tiRE && piRE && p.constructor === $RegExp && fiU ? p : inheritIfRequired(CORRECT_NEW ? new Base(piRE && !fiU ? p.source : p, f) : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) , tiRE ? this : proto, $RegExp); }; var proxy = function (key) { key in $RegExp || dP($RegExp, key, { configurable: true, get: function () { return Base[key]; }, set: function (it) { Base[key] = it; } }); }; for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); proto.constructor = $RegExp; $RegExp.prototype = proto; __webpack_require__(13)(global, 'RegExp', $RegExp); } __webpack_require__(85)('RegExp'); /***/ }), /* 299 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__(138); var anObject = __webpack_require__(1); var $flags = __webpack_require__(51); var DESCRIPTORS = __webpack_require__(10); var TO_STRING = 'toString'; var $toString = /./[TO_STRING]; var define = function (fn) { __webpack_require__(13)(RegExp.prototype, TO_STRING, fn, true); }; // 21.2.5.14 RegExp.prototype.toString() if (__webpack_require__(2)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { define(function toString() { var R = anObject(this); return '/'.concat(R.source, '/', 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); }); // FF44- RegExp#toString has a wrong name } else if ($toString.name != TO_STRING) { define(function toString() { return $toString.call(this); }); } /***/ }), /* 300 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.2 String.prototype.anchor(name) __webpack_require__(14)('anchor', function (createHTML) { return function anchor(name) { return createHTML(this, 'a', 'name', name); }; }); /***/ }), /* 301 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.3 String.prototype.big() __webpack_require__(14)('big', function (createHTML) { return function big() { return createHTML(this, 'big', '', ''); }; }); /***/ }), /* 302 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.4 String.prototype.blink() __webpack_require__(14)('blink', function (createHTML) { return function blink() { return createHTML(this, 'blink', '', ''); }; }); /***/ }), /* 303 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.5 String.prototype.bold() __webpack_require__(14)('bold', function (createHTML) { return function bold() { return createHTML(this, 'b', '', ''); }; }); /***/ }), /* 304 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $export = __webpack_require__(0); var $at = __webpack_require__(87)(false); $export($export.P, 'String', { // 21.1.3.3 String.prototype.codePointAt(pos) codePointAt: function codePointAt(pos) { return $at(this, pos); } }); /***/ }), /* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) var $export = __webpack_require__(0); var toLength = __webpack_require__(11); var context = __webpack_require__(88); var ENDS_WITH = 'endsWith'; var $endsWith = ''[ENDS_WITH]; $export($export.P + $export.F * __webpack_require__(75)(ENDS_WITH), 'String', { endsWith: function endsWith(searchString /* , endPosition = @length */) { var that = context(this, searchString, ENDS_WITH); var endPosition = arguments.length > 1 ? arguments[1] : undefined; var len = toLength(that.length); var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); var search = String(searchString); return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; } }); /***/ }), /* 306 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.6 String.prototype.fixed() __webpack_require__(14)('fixed', function (createHTML) { return function fixed() { return createHTML(this, 'tt', '', ''); }; }); /***/ }), /* 307 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.7 String.prototype.fontcolor(color) __webpack_require__(14)('fontcolor', function (createHTML) { return function fontcolor(color) { return createHTML(this, 'font', 'color', color); }; }); /***/ }), /* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.8 String.prototype.fontsize(size) __webpack_require__(14)('fontsize', function (createHTML) { return function fontsize(size) { return createHTML(this, 'font', 'size', size); }; }); /***/ }), /* 309 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var toAbsoluteIndex = __webpack_require__(47); var fromCharCode = String.fromCharCode; var $fromCodePoint = String.fromCodePoint; // length should be 1, old FF problem $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { // 21.1.2.2 String.fromCodePoint(...codePoints) fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars var res = []; var aLen = arguments.length; var i = 0; var code; while (aLen > i) { code = +arguments[i++]; if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) ); } return res.join(''); } }); /***/ }), /* 310 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.7 String.prototype.includes(searchString, position = 0) var $export = __webpack_require__(0); var context = __webpack_require__(88); var INCLUDES = 'includes'; $export($export.P + $export.F * __webpack_require__(75)(INCLUDES), 'String', { includes: function includes(searchString /* , position = 0 */) { return !!~context(this, searchString, INCLUDES) .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); } }); /***/ }), /* 311 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.9 String.prototype.italics() __webpack_require__(14)('italics', function (createHTML) { return function italics() { return createHTML(this, 'i', '', ''); }; }); /***/ }), /* 312 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.10 String.prototype.link(url) __webpack_require__(14)('link', function (createHTML) { return function link(url) { return createHTML(this, 'a', 'href', url); }; }); /***/ }), /* 313 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); var toIObject = __webpack_require__(19); var toLength = __webpack_require__(11); $export($export.S, 'String', { // 21.1.2.4 String.raw(callSite, ...substitutions) raw: function raw(callSite) { var tpl = toIObject(callSite.raw); var len = toLength(tpl.length); var aLen = arguments.length; var res = []; var i = 0; while (len > i) { res.push(String(tpl[i++])); if (i < aLen) res.push(String(arguments[i])); } return res.join(''); } }); /***/ }), /* 314 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(0); $export($export.P, 'String', { // 21.1.3.13 String.prototype.repeat(count) repeat: __webpack_require__(132) }); /***/ }), /* 315 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.11 String.prototype.small() __webpack_require__(14)('small', function (createHTML) { return function small() { return createHTML(this, 'small', '', ''); }; }); /***/ }), /* 316 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.18 String.prototype.startsWith(searchString [, position ]) var $export = __webpack_require__(0); var toLength = __webpack_require__(11); var context = __webpack_require__(88); var STARTS_WITH = 'startsWith'; var $startsWith = ''[STARTS_WITH]; $export($export.P + $export.F * __webpack_require__(75)(STARTS_WITH), 'String', { startsWith: function startsWith(searchString /* , position = 0 */) { var that = context(this, searchString, STARTS_WITH); var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); var search = String(searchString); return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; } }); /***/ }), /* 317 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.12 String.prototype.strike() __webpack_require__(14)('strike', function (createHTML) { return function strike() { return createHTML(this, 'strike', '', ''); }; }); /***/ }), /* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.13 String.prototype.sub() __webpack_require__(14)('sub', function (createHTML) { return function sub() { return createHTML(this, 'sub', '', ''); }; }); /***/ }), /* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // B.2.3.14 String.prototype.sup() __webpack_require__(14)('sup', function (createHTML) { return function sup() { return createHTML(this, 'sup', '', ''); }; }); /***/ }), /* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.1.3.25 String.prototype.trim() __webpack_require__(58)('trim', function ($trim) { return function trim() { return $trim(this, 3); }; }); /***/ }), /* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var global = __webpack_require__(8); var each = __webpack_require__(20)(0); var redefine = __webpack_require__(13); var meta = __webpack_require__(27); var assign = __webpack_require__(125); var weak = __webpack_require__(199); var isObject = __webpack_require__(3); var validate = __webpack_require__(40); var NATIVE_WEAK_MAP = __webpack_require__(40); var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; var WEAK_MAP = 'WeakMap'; var getWeak = meta.getWeak; var isExtensible = Object.isExtensible; var uncaughtFrozenStore = weak.ufstore; var InternalMap; var wrapper = function (get) { return function WeakMap() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; }; var methods = { // 23.3.3.3 WeakMap.prototype.get(key) get: function get(key) { if (isObject(key)) { var data = getWeak(key); if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); return data ? data[this._i] : undefined; } }, // 23.3.3.5 WeakMap.prototype.set(key, value) set: function set(key, value) { return weak.def(validate(this, WEAK_MAP), key, value); } }; // 23.3 WeakMap Objects var $WeakMap = module.exports = __webpack_require__(73)(WEAK_MAP, wrapper, methods, weak, true, true); // IE11 WeakMap frozen keys fix if (NATIVE_WEAK_MAP && IS_IE11) { InternalMap = weak.getConstructor(wrapper, WEAK_MAP); assign(InternalMap.prototype, methods); meta.NEED = true; each(['delete', 'has', 'get', 'set'], function (key) { var proto = $WeakMap.prototype; var method = proto[key]; redefine(proto, key, function (a, b) { // store frozen objects on internal weakmap shim if (isObject(a) && !isExtensible(a)) { if (!this._f) this._f = new InternalMap(); var result = this._f[key](a, b); return key == 'set' ? this : result; // store all the rest on native weakmap } return method.call(this, a, b); }); }); } /***/ }), /* 322 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var toMetaKey = metadata.key; var ordinaryDefineOwnMetadata = metadata.set; metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); } }); /***/ }), /* 323 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var toMetaKey = metadata.key; var getOrCreateMetadataMap = metadata.map; var store = metadata.store; metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; if (metadataMap.size) return true; var targetMetadata = store.get(target); targetMetadata['delete'](targetKey); return !!targetMetadata.size || store['delete'](target); } }); /***/ }), /* 324 */ /***/ (function(module, exports, __webpack_require__) { var Set = __webpack_require__(143); var from = __webpack_require__(196); var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var getPrototypeOf = __webpack_require__(23); var ordinaryOwnMetadataKeys = metadata.keys; var toMetaKey = metadata.key; var ordinaryMetadataKeys = function (O, P) { var oKeys = ordinaryOwnMetadataKeys(O, P); var parent = getPrototypeOf(O); if (parent === null) return oKeys; var pKeys = ordinaryMetadataKeys(parent, P); return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; }; metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); } }); /***/ }), /* 325 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var getPrototypeOf = __webpack_require__(23); var ordinaryHasOwnMetadata = metadata.has; var ordinaryGetOwnMetadata = metadata.get; var toMetaKey = metadata.key; var ordinaryGetMetadata = function (MetadataKey, O, P) { var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); var parent = getPrototypeOf(O); return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; }; metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); } }); /***/ }), /* 326 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var ordinaryOwnMetadataKeys = metadata.keys; var toMetaKey = metadata.key; metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); } }); /***/ }), /* 327 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var ordinaryGetOwnMetadata = metadata.get; var toMetaKey = metadata.key; metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { return ordinaryGetOwnMetadata(metadataKey, anObject(target) , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); } }); /***/ }), /* 328 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var getPrototypeOf = __webpack_require__(23); var ordinaryHasOwnMetadata = metadata.has; var toMetaKey = metadata.key; var ordinaryHasMetadata = function (MetadataKey, O, P) { var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); if (hasOwn) return true; var parent = getPrototypeOf(O); return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; }; metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); } }); /***/ }), /* 329 */ /***/ (function(module, exports, __webpack_require__) { var metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var ordinaryHasOwnMetadata = metadata.has; var toMetaKey = metadata.key; metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { return ordinaryHasOwnMetadata(metadataKey, anObject(target) , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); } }); /***/ }), /* 330 */ /***/ (function(module, exports, __webpack_require__) { var $metadata = __webpack_require__(22); var anObject = __webpack_require__(1); var aFunction = __webpack_require__(25); var toMetaKey = $metadata.key; var ordinaryDefineOwnMetadata = $metadata.set; $metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { return function decorator(target, targetKey) { ordinaryDefineOwnMetadata( metadataKey, metadataValue, (targetKey !== undefined ? anObject : aFunction)(target), toMetaKey(targetKey) ); }; } }); /***/ }), /* 331 */, /* 332 */, /* 333 */, /* 334 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {// Expose `IntlPolyfill` as global to add locale data into runtime later on. global.IntlPolyfill = __webpack_require__(335); // Require all locale data for `Intl`. This module will be // ignored when bundling for the browser with Browserify/Webpack. __webpack_require__(386); // hack to export the polyfill as global Intl if needed if (!global.Intl) { global.Intl = global.IntlPolyfill; global.IntlPolyfill.__applyLocaleSensitivePrototypes(); } // providing an idiomatic api for the nodejs version of this module module.exports = global.IntlPolyfill; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24))) /***/ }), /* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) { var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; var jsx = function () { var REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; return function createRawReactElement(type, props, key, children) { var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }; }(); var asyncToGenerator = function (fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { return step("next", value); }, function (err) { return step("throw", err); }); } } return step("next"); }); }; }; var classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; 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; }; }(); var defineEnumerableProperties = function (obj, descs) { for (var key in descs) { var desc = descs[key]; desc.configurable = desc.enumerable = true; if ("value" in desc) desc.writable = true; Object.defineProperty(obj, key, desc); } return obj; }; var defaults = function (obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; }; var defineProperty$1 = function (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; }; 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; }; var get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; var inherits = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }; var _instanceof = function (left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); } else { return left instanceof right; } }; var interopRequireDefault = function (obj) { return obj && obj.__esModule ? obj : { default: obj }; }; var interopRequireWildcard = function (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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }; var newArrowCheck = function (innerThis, boundThis) { if (innerThis !== boundThis) { throw new TypeError("Cannot instantiate an arrow function"); } }; var objectDestructuringEmpty = function (obj) { if (obj == null) throw new TypeError("Cannot destructure undefined"); }; var objectWithoutProperties = function (obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }; var possibleConstructorReturn = function (self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }; var selfGlobal = typeof global === "undefined" ? self : global; var set = function set(object, property, value, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent !== null) { set(parent, property, value, receiver); } } else if ("value" in desc && desc.writable) { desc.value = value; } else { var setter = desc.set; if (setter !== undefined) { setter.call(receiver, value); } } return value; }; var slicedToArray = function () { function sliceIterator(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"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var slicedToArrayLoose = function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { _arr.push(_step.value); if (i && _arr.length === i) break; } return _arr; } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; var taggedTemplateLiteral = function (strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }; var taggedTemplateLiteralLoose = function (strings, raw) { strings.raw = raw; return strings; }; var temporalRef = function (val, name, undef) { if (val === undef) { throw new ReferenceError(name + " is not defined - temporal dead zone"); } else { return val; } }; var temporalUndefined = {}; var toArray = function (arr) { return Array.isArray(arr) ? arr : Array.from(arr); }; var toConsumableArray = function (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); } }; var babelHelpers$1 = Object.freeze({ jsx: jsx, asyncToGenerator: asyncToGenerator, classCallCheck: classCallCheck, createClass: createClass, defineEnumerableProperties: defineEnumerableProperties, defaults: defaults, defineProperty: defineProperty$1, get: get, inherits: inherits, interopRequireDefault: interopRequireDefault, interopRequireWildcard: interopRequireWildcard, newArrowCheck: newArrowCheck, objectDestructuringEmpty: objectDestructuringEmpty, objectWithoutProperties: objectWithoutProperties, possibleConstructorReturn: possibleConstructorReturn, selfGlobal: selfGlobal, set: set, slicedToArray: slicedToArray, slicedToArrayLoose: slicedToArrayLoose, taggedTemplateLiteral: taggedTemplateLiteral, taggedTemplateLiteralLoose: taggedTemplateLiteralLoose, temporalRef: temporalRef, temporalUndefined: temporalUndefined, toArray: toArray, toConsumableArray: toConsumableArray, typeof: _typeof, extends: _extends, instanceof: _instanceof }); var realDefineProp = function () { var sentinel = function sentinel() {}; try { Object.defineProperty(sentinel, 'a', { get: function get() { return 1; } }); Object.defineProperty(sentinel, 'prototype', { writable: false }); return sentinel.a === 1 && sentinel.prototype instanceof Object; } catch (e) { return false; } }(); // Need a workaround for getters in ES3 var es3 = !realDefineProp && !Object.prototype.__defineGetter__; // We use this a lot (and need it for proto-less objects) var hop = Object.prototype.hasOwnProperty; // Naive defineProperty for compatibility var defineProperty = realDefineProp ? Object.defineProperty : function (obj, name, desc) { if ('get' in desc && obj.__defineGetter__) obj.__defineGetter__(name, desc.get);else if (!hop.call(obj, name) || 'value' in desc) obj[name] = desc.value; }; // Array.prototype.indexOf, as good as we need it to be var arrIndexOf = Array.prototype.indexOf || function (search) { /*jshint validthis:true */ var t = this; if (!t.length) return -1; for (var i = arguments[1] || 0, max = t.length; i < max; i++) { if (t[i] === search) return i; } return -1; }; // Create an object with the specified prototype (2nd arg required for Record) var objCreate = Object.create || function (proto, props) { var obj = void 0; function F() {} F.prototype = proto; obj = new F(); for (var k in props) { if (hop.call(props, k)) defineProperty(obj, k, props[k]); } return obj; }; // Snapshot some (hopefully still) native built-ins var arrSlice = Array.prototype.slice; var arrConcat = Array.prototype.concat; var arrPush = Array.prototype.push; var arrJoin = Array.prototype.join; var arrShift = Array.prototype.shift; // Naive Function.prototype.bind for compatibility var fnBind = Function.prototype.bind || function (thisObj) { var fn = this, args = arrSlice.call(arguments, 1); // All our (presently) bound functions have either 1 or 0 arguments. By returning // different function signatures, we can pass some tests in ES3 environments if (fn.length === 1) { return function () { return fn.apply(thisObj, arrConcat.call(args, arrSlice.call(arguments))); }; } return function () { return fn.apply(thisObj, arrConcat.call(args, arrSlice.call(arguments))); }; }; // Object housing internal properties for constructors var internals = objCreate(null); // Keep internal properties internal var secret = Math.random(); // Helper functions // ================ /** * A function to deal with the inaccuracy of calculating log10 in pre-ES6 * JavaScript environments. Math.log(num) / Math.LN10 was responsible for * causing issue #62. */ function log10Floor(n) { // ES6 provides the more accurate Math.log10 if (typeof Math.log10 === 'function') return Math.floor(Math.log10(n)); var x = Math.round(Math.log(n) * Math.LOG10E); return x - (Number('1e' + x) > n); } /** * A map that doesn't contain Object in its prototype chain */ function Record(obj) { // Copy only own properties over unless this object is already a Record instance for (var k in obj) { if (obj instanceof Record || hop.call(obj, k)) defineProperty(this, k, { value: obj[k], enumerable: true, writable: true, configurable: true }); } } Record.prototype = objCreate(null); /** * An ordered list */ function List() { defineProperty(this, 'length', { writable: true, value: 0 }); if (arguments.length) arrPush.apply(this, arrSlice.call(arguments)); } List.prototype = objCreate(null); /** * Constructs a regular expression to restore tainted RegExp properties */ function createRegExpRestore() { if (internals.disableRegExpRestore) { return function () {/* no-op */}; } var regExpCache = { lastMatch: RegExp.lastMatch || '', leftContext: RegExp.leftContext, multiline: RegExp.multiline, input: RegExp.input }, has = false; // Create a snapshot of all the 'captured' properties for (var i = 1; i <= 9; i++) { has = (regExpCache['$' + i] = RegExp['$' + i]) || has; }return function () { // Now we've snapshotted some properties, escape the lastMatch string var esc = /[.?*+^$[\]\\(){}|-]/g, lm = regExpCache.lastMatch.replace(esc, '\\$&'), reg = new List(); // If any of the captured strings were non-empty, iterate over them all if (has) { for (var _i = 1; _i <= 9; _i++) { var m = regExpCache['$' + _i]; // If it's empty, add an empty capturing group if (!m) lm = '()' + lm; // Else find the string in lm and escape & wrap it to capture it else { m = m.replace(esc, '\\$&'); lm = lm.replace(m, '(' + m + ')'); } // Push it to the reg and chop lm to make sure further groups come after arrPush.call(reg, lm.slice(0, lm.indexOf('(') + 1)); lm = lm.slice(lm.indexOf('(') + 1); } } var exprStr = arrJoin.call(reg, '') + lm; // Shorten the regex by replacing each part of the expression with a match // for a string of that exact length. This is safe for the type of // expressions generated above, because the expression matches the whole // match string, so we know each group and each segment between capturing // groups can be matched by its length alone. exprStr = exprStr.replace(/(\\\(|\\\)|[^()])+/g, function (match) { return '[\\s\\S]{' + match.replace('\\', '').length + '}'; }); // Create the regular expression that will reconstruct the RegExp properties var expr = new RegExp(exprStr, regExpCache.multiline ? 'gm' : 'g'); // Set the lastIndex of the generated expression to ensure that the match // is found in the correct index. expr.lastIndex = regExpCache.leftContext.length; expr.exec(regExpCache.input); }; } /** * Mimics ES5's abstract ToObject() function */ function toObject(arg) { if (arg === null) throw new TypeError('Cannot convert null or undefined to object'); if ((typeof arg === 'undefined' ? 'undefined' : babelHelpers$1['typeof'](arg)) === 'object') return arg; return Object(arg); } function toNumber(arg) { if (typeof arg === 'number') return arg; return Number(arg); } function toInteger(arg) { var number = toNumber(arg); if (isNaN(number)) return 0; if (number === +0 || number === -0 || number === +Infinity || number === -Infinity) return number; if (number < 0) return Math.floor(Math.abs(number)) * -1; return Math.floor(Math.abs(number)); } function toLength(arg) { var len = toInteger(arg); if (len <= 0) return 0; if (len === Infinity) return Math.pow(2, 53) - 1; return Math.min(len, Math.pow(2, 53) - 1); } /** * Returns "internal" properties for an object */ function getInternalProperties(obj) { if (hop.call(obj, '__getInternalProperties')) return obj.__getInternalProperties(secret); return objCreate(null); } /** * Defines regular expressions for various operations related to the BCP 47 syntax, * as defined at http://tools.ietf.org/html/bcp47#section-2.1 */ // extlang = 3ALPHA ; selected ISO 639 codes // *2("-" 3ALPHA) ; permanently reserved var extlang = '[a-z]{3}(?:-[a-z]{3}){0,2}'; // language = 2*3ALPHA ; shortest ISO 639 code // ["-" extlang] ; sometimes followed by // ; extended language subtags // / 4ALPHA ; or reserved for future use // / 5*8ALPHA ; or registered language subtag var language = '(?:[a-z]{2,3}(?:-' + extlang + ')?|[a-z]{4}|[a-z]{5,8})'; // script = 4ALPHA ; ISO 15924 code var script = '[a-z]{4}'; // region = 2ALPHA ; ISO 3166-1 code // / 3DIGIT ; UN M.49 code var region = '(?:[a-z]{2}|\\d{3})'; // variant = 5*8alphanum ; registered variants // / (DIGIT 3alphanum) var variant = '(?:[a-z0-9]{5,8}|\\d[a-z0-9]{3})'; // ; Single alphanumerics // ; "x" reserved for private use // singleton = DIGIT ; 0 - 9 // / %x41-57 ; A - W // / %x59-5A ; Y - Z // / %x61-77 ; a - w // / %x79-7A ; y - z var singleton = '[0-9a-wy-z]'; // extension = singleton 1*("-" (2*8alphanum)) var extension = singleton + '(?:-[a-z0-9]{2,8})+'; // privateuse = "x" 1*("-" (1*8alphanum)) var privateuse = 'x(?:-[a-z0-9]{1,8})+'; // irregular = "en-GB-oed" ; irregular tags do not match // / "i-ami" ; the 'langtag' production and // / "i-bnn" ; would not otherwise be // / "i-default" ; considered 'well-formed' // / "i-enochian" ; These tags are all valid, // / "i-hak" ; but most are deprecated // / "i-klingon" ; in favor of more modern // / "i-lux" ; subtags or subtag // / "i-mingo" ; combination // / "i-navajo" // / "i-pwn" // / "i-tao" // / "i-tay" // / "i-tsu" // / "sgn-BE-FR" // / "sgn-BE-NL" // / "sgn-CH-DE" var irregular = '(?:en-GB-oed' + '|i-(?:ami|bnn|default|enochian|hak|klingon|lux|mingo|navajo|pwn|tao|tay|tsu)' + '|sgn-(?:BE-FR|BE-NL|CH-DE))'; // regular = "art-lojban" ; these tags match the 'langtag' // / "cel-gaulish" ; production, but their subtags // / "no-bok" ; are not extended language // / "no-nyn" ; or variant subtags: their meaning // / "zh-guoyu" ; is defined by their registration // / "zh-hakka" ; and all of these are deprecated // / "zh-min" ; in favor of a more modern // / "zh-min-nan" ; subtag or sequence of subtags // / "zh-xiang" var regular = '(?:art-lojban|cel-gaulish|no-bok|no-nyn' + '|zh-(?:guoyu|hakka|min|min-nan|xiang))'; // grandfathered = irregular ; non-redundant tags registered // / regular ; during the RFC 3066 era var grandfathered = '(?:' + irregular + '|' + regular + ')'; // langtag = language // ["-" script] // ["-" region] // *("-" variant) // *("-" extension) // ["-" privateuse] var langtag = language + '(?:-' + script + ')?(?:-' + region + ')?(?:-' + variant + ')*(?:-' + extension + ')*(?:-' + privateuse + ')?'; // Language-Tag = langtag ; normal language tags // / privateuse ; private use tag // / grandfathered ; grandfathered tags var expBCP47Syntax = RegExp('^(?:' + langtag + '|' + privateuse + '|' + grandfathered + ')$', 'i'); // Match duplicate variants in a language tag var expVariantDupes = RegExp('^(?!x).*?-(' + variant + ')-(?:\\w{4,8}-(?!x-))*\\1\\b', 'i'); // Match duplicate singletons in a language tag (except in private use) var expSingletonDupes = RegExp('^(?!x).*?-(' + singleton + ')-(?:\\w+-(?!x-))*\\1\\b', 'i'); // Match all extension sequences var expExtSequences = RegExp('-' + extension, 'ig'); // Default locale is the first-added locale data for us var defaultLocale = void 0; function setDefaultLocale(locale) { defaultLocale = locale; } // IANA Subtag Registry redundant tag and subtag maps var redundantTags = { tags: { "art-lojban": "jbo", "i-ami": "ami", "i-bnn": "bnn", "i-hak": "hak", "i-klingon": "tlh", "i-lux": "lb", "i-navajo": "nv", "i-pwn": "pwn", "i-tao": "tao", "i-tay": "tay", "i-tsu": "tsu", "no-bok": "nb", "no-nyn": "nn", "sgn-BE-FR": "sfb", "sgn-BE-NL": "vgt", "sgn-CH-DE": "sgg", "zh-guoyu": "cmn", "zh-hakka": "hak", "zh-min-nan": "nan", "zh-xiang": "hsn", "sgn-BR": "bzs", "sgn-CO": "csn", "sgn-DE": "gsg", "sgn-DK": "dsl", "sgn-ES": "ssp", "sgn-FR": "fsl", "sgn-GB": "bfi", "sgn-GR": "gss", "sgn-IE": "isg", "sgn-IT": "ise", "sgn-JP": "jsl", "sgn-MX": "mfs", "sgn-NI": "ncs", "sgn-NL": "dse", "sgn-NO": "nsl", "sgn-PT": "psr", "sgn-SE": "swl", "sgn-US": "ase", "sgn-ZA": "sfs", "zh-cmn": "cmn", "zh-cmn-Hans": "cmn-Hans", "zh-cmn-Hant": "cmn-Hant", "zh-gan": "gan", "zh-wuu": "wuu", "zh-yue": "yue" }, subtags: { BU: "MM", DD: "DE", FX: "FR", TP: "TL", YD: "YE", ZR: "CD", heploc: "alalc97", 'in': "id", iw: "he", ji: "yi", jw: "jv", mo: "ro", ayx: "nun", bjd: "drl", ccq: "rki", cjr: "mom", cka: "cmr", cmk: "xch", drh: "khk", drw: "prs", gav: "dev", hrr: "jal", ibi: "opa", kgh: "kml", lcq: "ppr", mst: "mry", myt: "mry", sca: "hle", tie: "ras", tkk: "twm", tlw: "weo", tnf: "prs", ybd: "rki", yma: "lrr" }, extLang: { aao: ["aao", "ar"], abh: ["abh", "ar"], abv: ["abv", "ar"], acm: ["acm", "ar"], acq: ["acq", "ar"], acw: ["acw", "ar"], acx: ["acx", "ar"], acy: ["acy", "ar"], adf: ["adf", "ar"], ads: ["ads", "sgn"], aeb: ["aeb", "ar"], aec: ["aec", "ar"], aed: ["aed", "sgn"], aen: ["aen", "sgn"], afb: ["afb", "ar"], afg: ["afg", "sgn"], ajp: ["ajp", "ar"], apc: ["apc", "ar"], apd: ["apd", "ar"], arb: ["arb", "ar"], arq: ["arq", "ar"], ars: ["ars", "ar"], ary: ["ary", "ar"], arz: ["arz", "ar"], ase: ["ase", "sgn"], asf: ["asf", "sgn"], asp: ["asp", "sgn"], asq: ["asq", "sgn"], asw: ["asw", "sgn"], auz: ["auz", "ar"], avl: ["avl", "ar"], ayh: ["ayh", "ar"], ayl: ["ayl", "ar"], ayn: ["ayn", "ar"], ayp: ["ayp", "ar"], bbz: ["bbz", "ar"], bfi: ["bfi", "sgn"], bfk: ["bfk", "sgn"], bjn: ["bjn", "ms"], bog: ["bog", "sgn"], bqn: ["bqn", "sgn"], bqy: ["bqy", "sgn"], btj: ["btj", "ms"], bve: ["bve", "ms"], bvl: ["bvl", "sgn"], bvu: ["bvu", "ms"], bzs: ["bzs", "sgn"], cdo: ["cdo", "zh"], cds: ["cds", "sgn"], cjy: ["cjy", "zh"], cmn: ["cmn", "zh"], coa: ["coa", "ms"], cpx: ["cpx", "zh"], csc: ["csc", "sgn"], csd: ["csd", "sgn"], cse: ["cse", "sgn"], csf: ["csf", "sgn"], csg: ["csg", "sgn"], csl: ["csl", "sgn"], csn: ["csn", "sgn"], csq: ["csq", "sgn"], csr: ["csr", "sgn"], czh: ["czh", "zh"], czo: ["czo", "zh"], doq: ["doq", "sgn"], dse: ["dse", "sgn"], dsl: ["dsl", "sgn"], dup: ["dup", "ms"], ecs: ["ecs", "sgn"], esl: ["esl", "sgn"], esn: ["esn", "sgn"], eso: ["eso", "sgn"], eth: ["eth", "sgn"], fcs: ["fcs", "sgn"], fse: ["fse", "sgn"], fsl: ["fsl", "sgn"], fss: ["fss", "sgn"], gan: ["gan", "zh"], gds: ["gds", "sgn"], gom: ["gom", "kok"], gse: ["gse", "sgn"], gsg: ["gsg", "sgn"], gsm: ["gsm", "sgn"], gss: ["gss", "sgn"], gus: ["gus", "sgn"], hab: ["hab", "sgn"], haf: ["haf", "sgn"], hak: ["hak", "zh"], hds: ["hds", "sgn"], hji: ["hji", "ms"], hks: ["hks", "sgn"], hos: ["hos", "sgn"], hps: ["hps", "sgn"], hsh: ["hsh", "sgn"], hsl: ["hsl", "sgn"], hsn: ["hsn", "zh"], icl: ["icl", "sgn"], ils: ["ils", "sgn"], inl: ["inl", "sgn"], ins: ["ins", "sgn"], ise: ["ise", "sgn"], isg: ["isg", "sgn"], isr: ["isr", "sgn"], jak: ["jak", "ms"], jax: ["jax", "ms"], jcs: ["jcs", "sgn"], jhs: ["jhs", "sgn"], jls: ["jls", "sgn"], jos: ["jos", "sgn"], jsl: ["jsl", "sgn"], jus: ["jus", "sgn"], kgi: ["kgi", "sgn"], knn: ["knn", "kok"], kvb: ["kvb", "ms"], kvk: ["kvk", "sgn"], kvr: ["kvr", "ms"], kxd: ["kxd", "ms"], lbs: ["lbs", "sgn"], lce: ["lce", "ms"], lcf: ["lcf", "ms"], liw: ["liw", "ms"], lls: ["lls", "sgn"], lsg: ["lsg", "sgn"], lsl: ["lsl", "sgn"], lso: ["lso", "sgn"], lsp: ["lsp", "sgn"], lst: ["lst", "sgn"], lsy: ["lsy", "sgn"], ltg: ["ltg", "lv"], lvs: ["lvs", "lv"], lzh: ["lzh", "zh"], max: ["max", "ms"], mdl: ["mdl", "sgn"], meo: ["meo", "ms"], mfa: ["mfa", "ms"], mfb: ["mfb", "ms"], mfs: ["mfs", "sgn"], min: ["min", "ms"], mnp: ["mnp", "zh"], mqg: ["mqg", "ms"], mre: ["mre", "sgn"], msd: ["msd", "sgn"], msi: ["msi", "ms"], msr: ["msr", "sgn"], mui: ["mui", "ms"], mzc: ["mzc", "sgn"], mzg: ["mzg", "sgn"], mzy: ["mzy", "sgn"], nan: ["nan", "zh"], nbs: ["nbs", "sgn"], ncs: ["ncs", "sgn"], nsi: ["nsi", "sgn"], nsl: ["nsl", "sgn"], nsp: ["nsp", "sgn"], nsr: ["nsr", "sgn"], nzs: ["nzs", "sgn"], okl: ["okl", "sgn"], orn: ["orn", "ms"], ors: ["ors", "ms"], pel: ["pel", "ms"], pga: ["pga", "ar"], pks: ["pks", "sgn"], prl: ["prl", "sgn"], prz: ["prz", "sgn"], psc: ["psc", "sgn"], psd: ["psd", "sgn"], pse: ["pse", "ms"], psg: ["psg", "sgn"], psl: ["psl", "sgn"], pso: ["pso", "sgn"], psp: ["psp", "sgn"], psr: ["psr", "sgn"], pys: ["pys", "sgn"], rms: ["rms", "sgn"], rsi: ["rsi", "sgn"], rsl: ["rsl", "sgn"], sdl: ["sdl", "sgn"], sfb: ["sfb", "sgn"], sfs: ["sfs", "sgn"], sgg: ["sgg", "sgn"], sgx: ["sgx", "sgn"], shu: ["shu", "ar"], slf: ["slf", "sgn"], sls: ["sls", "sgn"], sqk: ["sqk", "sgn"], sqs: ["sqs", "sgn"], ssh: ["ssh", "ar"], ssp: ["ssp", "sgn"], ssr: ["ssr", "sgn"], svk: ["svk", "sgn"], swc: ["swc", "sw"], swh: ["swh", "sw"], swl: ["swl", "sgn"], syy: ["syy", "sgn"], tmw: ["tmw", "ms"], tse: ["tse", "sgn"], tsm: ["tsm", "sgn"], tsq: ["tsq", "sgn"], tss: ["tss", "sgn"], tsy: ["tsy", "sgn"], tza: ["tza", "sgn"], ugn: ["ugn", "sgn"], ugy: ["ugy", "sgn"], ukl: ["ukl", "sgn"], uks: ["uks", "sgn"], urk: ["urk", "ms"], uzn: ["uzn", "uz"], uzs: ["uzs", "uz"], vgt: ["vgt", "sgn"], vkk: ["vkk", "ms"], vkt: ["vkt", "ms"], vsi: ["vsi", "sgn"], vsl: ["vsl", "sgn"], vsv: ["vsv", "sgn"], wuu: ["wuu", "zh"], xki: ["xki", "sgn"], xml: ["xml", "sgn"], xmm: ["xmm", "ms"], xms: ["xms", "sgn"], yds: ["yds", "sgn"], ysl: ["ysl", "sgn"], yue: ["yue", "zh"], zib: ["zib", "sgn"], zlm: ["zlm", "ms"], zmi: ["zmi", "ms"], zsl: ["zsl", "sgn"], zsm: ["zsm", "ms"] } }; /** * Convert only a-z to uppercase as per section 6.1 of the spec */ function toLatinUpperCase(str) { var i = str.length; while (i--) { var ch = str.charAt(i); if (ch >= "a" && ch <= "z") str = str.slice(0, i) + ch.toUpperCase() + str.slice(i + 1); } return str; } /** * The IsStructurallyValidLanguageTag abstract operation verifies that the locale * argument (which must be a String value) * * - represents a well-formed BCP 47 language tag as specified in RFC 5646 section * 2.1, or successor, * - does not include duplicate variant subtags, and * - does not include duplicate singleton subtags. * * The abstract operation returns true if locale can be generated from the ABNF * grammar in section 2.1 of the RFC, starting with Language-Tag, and does not * contain duplicate variant or singleton subtags (other than as a private use * subtag). It returns false otherwise. Terminal value characters in the grammar are * interpreted as the Unicode equivalents of the ASCII octet values given. */ function /* 6.2.2 */IsStructurallyValidLanguageTag(locale) { // represents a well-formed BCP 47 language tag as specified in RFC 5646 if (!expBCP47Syntax.test(locale)) return false; // does not include duplicate variant subtags, and if (expVariantDupes.test(locale)) return false; // does not include duplicate singleton subtags. if (expSingletonDupes.test(locale)) return false; return true; } /** * The CanonicalizeLanguageTag abstract operation returns the canonical and case- * regularized form of the locale argument (which must be a String value that is * a structurally valid BCP 47 language tag as verified by the * IsStructurallyValidLanguageTag abstract operation). It takes the steps * specified in RFC 5646 section 4.5, or successor, to bring the language tag * into canonical form, and to regularize the case of the subtags, but does not * take the steps to bring a language tag into “extlang form” and to reorder * variant subtags. * The specifications for extensions to BCP 47 language tags, such as RFC 6067, * may include canonicalization rules for the extension subtag sequences they * define that go beyond the canonicalization rules of RFC 5646 section 4.5. * Implementations are allowed, but not required, to apply these additional rules. */ function /* 6.2.3 */CanonicalizeLanguageTag(locale) { var match = void 0, parts = void 0; // A language tag is in 'canonical form' when the tag is well-formed // according to the rules in Sections 2.1 and 2.2 // Section 2.1 says all subtags use lowercase... locale = locale.toLowerCase(); // ...with 2 exceptions: 'two-letter and four-letter subtags that neither // appear at the start of the tag nor occur after singletons. Such two-letter // subtags are all uppercase (as in the tags "en-CA-x-ca" or "sgn-BE-FR") and // four-letter subtags are titlecase (as in the tag "az-Latn-x-latn"). parts = locale.split('-'); for (var i = 1, max = parts.length; i < max; i++) { // Two-letter subtags are all uppercase if (parts[i].length === 2) parts[i] = parts[i].toUpperCase(); // Four-letter subtags are titlecase else if (parts[i].length === 4) parts[i] = parts[i].charAt(0).toUpperCase() + parts[i].slice(1); // Is it a singleton? else if (parts[i].length === 1 && parts[i] !== 'x') break; } locale = arrJoin.call(parts, '-'); // The steps laid out in RFC 5646 section 4.5 are as follows: // 1. Extension sequences are ordered into case-insensitive ASCII order // by singleton subtag. if ((match = locale.match(expExtSequences)) && match.length > 1) { // The built-in sort() sorts by ASCII order, so use that match.sort(); // Replace all extensions with the joined, sorted array locale = locale.replace(RegExp('(?:' + expExtSequences.source + ')+', 'i'), arrJoin.call(match, '')); } // 2. Redundant or grandfathered tags are replaced by their 'Preferred- // Value', if there is one. if (hop.call(redundantTags.tags, locale)) locale = redundantTags.tags[locale]; // 3. Subtags are replaced by their 'Preferred-Value', if there is one. // For extlangs, the original primary language subtag is also // replaced if there is a primary language subtag in the 'Preferred- // Value'. parts = locale.split('-'); for (var _i = 1, _max = parts.length; _i < _max; _i++) { if (hop.call(redundantTags.subtags, parts[_i])) parts[_i] = redundantTags.subtags[parts[_i]];else if (hop.call(redundantTags.extLang, parts[_i])) { parts[_i] = redundantTags.extLang[parts[_i]][0]; // For extlang tags, the prefix needs to be removed if it is redundant if (_i === 1 && redundantTags.extLang[parts[1]][1] === parts[0]) { parts = arrSlice.call(parts, _i++); _max -= 1; } } } return arrJoin.call(parts, '-'); } /** * The DefaultLocale abstract operation returns a String value representing the * structurally valid (6.2.2) and canonicalized (6.2.3) BCP 47 language tag for the * host environment’s current locale. */ function /* 6.2.4 */DefaultLocale() { return defaultLocale; } // Sect 6.3 Currency Codes // ======================= var expCurrencyCode = /^[A-Z]{3}$/; /** * The IsWellFormedCurrencyCode abstract operation verifies that the currency argument * (after conversion to a String value) represents a well-formed 3-letter ISO currency * code. The following steps are taken: */ function /* 6.3.1 */IsWellFormedCurrencyCode(currency) { // 1. Let `c` be ToString(currency) var c = String(currency); // 2. Let `normalized` be the result of mapping c to upper case as described // in 6.1. var normalized = toLatinUpperCase(c); // 3. If the string length of normalized is not 3, return false. // 4. If normalized contains any character that is not in the range "A" to "Z" // (U+0041 to U+005A), return false. if (expCurrencyCode.test(normalized) === false) return false; // 5. Return true return true; } var expUnicodeExSeq = /-u(?:-[0-9a-z]{2,8})+/gi; // See `extension` below function /* 9.2.1 */CanonicalizeLocaleList(locales) { // The abstract operation CanonicalizeLocaleList takes the following steps: // 1. If locales is undefined, then a. Return a new empty List if (locales === undefined) return new List(); // 2. Let seen be a new empty List. var seen = new List(); // 3. If locales is a String value, then // a. Let locales be a new array created as if by the expression new // Array(locales) where Array is the standard built-in constructor with // that name and locales is the value of locales. locales = typeof locales === 'string' ? [locales] : locales; // 4. Let O be ToObject(locales). var O = toObject(locales); // 5. Let lenValue be the result of calling the [[Get]] internal method of // O with the argument "length". // 6. Let len be ToUint32(lenValue). var len = toLength(O.length); // 7. Let k be 0. var k = 0; // 8. Repeat, while k < len while (k < len) { // a. Let Pk be ToString(k). var Pk = String(k); // b. Let kPresent be the result of calling the [[HasProperty]] internal // method of O with argument Pk. var kPresent = Pk in O; // c. If kPresent is true, then if (kPresent) { // i. Let kValue be the result of calling the [[Get]] internal // method of O with argument Pk. var kValue = O[Pk]; // ii. If the type of kValue is not String or Object, then throw a // TypeError exception. if (kValue === null || typeof kValue !== 'string' && (typeof kValue === "undefined" ? "undefined" : babelHelpers$1["typeof"](kValue)) !== 'object') throw new TypeError('String or Object type expected'); // iii. Let tag be ToString(kValue). var tag = String(kValue); // iv. If the result of calling the abstract operation // IsStructurallyValidLanguageTag (defined in 6.2.2), passing tag as // the argument, is false, then throw a RangeError exception. if (!IsStructurallyValidLanguageTag(tag)) throw new RangeError("'" + tag + "' is not a structurally valid language tag"); // v. Let tag be the result of calling the abstract operation // CanonicalizeLanguageTag (defined in 6.2.3), passing tag as the // argument. tag = CanonicalizeLanguageTag(tag); // vi. If tag is not an element of seen, then append tag as the last // element of seen. if (arrIndexOf.call(seen, tag) === -1) arrPush.call(seen, tag); } // d. Increase k by 1. k++; } // 9. Return seen. return seen; } /** * The BestAvailableLocale abstract operation compares the provided argument * locale, which must be a String value with a structurally valid and * canonicalized BCP 47 language tag, against the locales in availableLocales and * returns either the longest non-empty prefix of locale that is an element of * availableLocales, or undefined if there is no such element. It uses the * fallback mechanism of RFC 4647, section 3.4. The following steps are taken: */ function /* 9.2.2 */BestAvailableLocale(availableLocales, locale) { // 1. Let candidate be locale var candidate = locale; // 2. Repeat while (candidate) { // a. If availableLocales contains an element equal to candidate, then return // candidate. if (arrIndexOf.call(availableLocales, candidate) > -1) return candidate; // b. Let pos be the character index of the last occurrence of "-" // (U+002D) within candidate. If that character does not occur, return // undefined. var pos = candidate.lastIndexOf('-'); if (pos < 0) return; // c. If pos ≥ 2 and the character "-" occurs at index pos-2 of candidate, // then decrease pos by 2. if (pos >= 2 && candidate.charAt(pos - 2) === '-') pos -= 2; // d. Let candidate be the substring of candidate from position 0, inclusive, // to position pos, exclusive. candidate = candidate.substring(0, pos); } } /** * The LookupMatcher abstract operation compares requestedLocales, which must be * a List as returned by CanonicalizeLocaleList, against the locales in * availableLocales and determines the best available language to meet the * request. The following steps are taken: */ function /* 9.2.3 */LookupMatcher(availableLocales, requestedLocales) { // 1. Let i be 0. var i = 0; // 2. Let len be the number of elements in requestedLocales. var len = requestedLocales.length; // 3. Let availableLocale be undefined. var availableLocale = void 0; var locale = void 0, noExtensionsLocale = void 0; // 4. Repeat while i < len and availableLocale is undefined: while (i < len && !availableLocale) { // a. Let locale be the element of requestedLocales at 0-origined list // position i. locale = requestedLocales[i]; // b. Let noExtensionsLocale be the String value that is locale with all // Unicode locale extension sequences removed. noExtensionsLocale = String(locale).replace(expUnicodeExSeq, ''); // c. Let availableLocale be the result of calling the // BestAvailableLocale abstract operation (defined in 9.2.2) with // arguments availableLocales and noExtensionsLocale. availableLocale = BestAvailableLocale(availableLocales, noExtensionsLocale); // d. Increase i by 1. i++; } // 5. Let result be a new Record. var result = new Record(); // 6. If availableLocale is not undefined, then if (availableLocale !== undefined) { // a. Set result.[[locale]] to availableLocale. result['[[locale]]'] = availableLocale; // b. If locale and noExtensionsLocale are not the same String value, then if (String(locale) !== String(noExtensionsLocale)) { // i. Let extension be the String value consisting of the first // substring of locale that is a Unicode locale extension sequence. var extension = locale.match(expUnicodeExSeq)[0]; // ii. Let extensionIndex be the character position of the initial // "-" of the first Unicode locale extension sequence within locale. var extensionIndex = locale.indexOf('-u-'); // iii. Set result.[[extension]] to extension. result['[[extension]]'] = extension; // iv. Set result.[[extensionIndex]] to extensionIndex. result['[[extensionIndex]]'] = extensionIndex; } } // 7. Else else // a. Set result.[[locale]] to the value returned by the DefaultLocale abstract // operation (defined in 6.2.4). result['[[locale]]'] = DefaultLocale(); // 8. Return result return result; } /** * The BestFitMatcher abstract operation compares requestedLocales, which must be * a List as returned by CanonicalizeLocaleList, against the locales in * availableLocales and determines the best available language to meet the * request. The algorithm is implementation dependent, but should produce results * that a typical user of the requested locales would perceive as at least as * good as those produced by the LookupMatcher abstract operation. Options * specified through Unicode locale extension sequences must be ignored by the * algorithm. Information about such subsequences is returned separately. * The abstract operation returns a record with a [[locale]] field, whose value * is the language tag of the selected locale, which must be an element of * availableLocales. If the language tag of the request locale that led to the * selected locale contained a Unicode locale extension sequence, then the * returned record also contains an [[extension]] field whose value is the first * Unicode locale extension sequence, and an [[extensionIndex]] field whose value * is the index of the first Unicode locale extension sequence within the request * locale language tag. */ function /* 9.2.4 */BestFitMatcher(availableLocales, requestedLocales) { return LookupMatcher(availableLocales, requestedLocales); } /** * The ResolveLocale abstract operation compares a BCP 47 language priority list * requestedLocales against the locales in availableLocales and determines the * best available language to meet the request. availableLocales and * requestedLocales must be provided as List values, options as a Record. */ function /* 9.2.5 */ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData) { if (availableLocales.length === 0) { throw new ReferenceError('No locale data has been provided for this object yet.'); } // The following steps are taken: // 1. Let matcher be the value of options.[[localeMatcher]]. var matcher = options['[[localeMatcher]]']; var r = void 0; // 2. If matcher is "lookup", then if (matcher === 'lookup') // a. Let r be the result of calling the LookupMatcher abstract operation // (defined in 9.2.3) with arguments availableLocales and // requestedLocales. r = LookupMatcher(availableLocales, requestedLocales); // 3. Else else // a. Let r be the result of calling the BestFitMatcher abstract // operation (defined in 9.2.4) with arguments availableLocales and // requestedLocales. r = BestFitMatcher(availableLocales, requestedLocales); // 4. Let foundLocale be the value of r.[[locale]]. var foundLocale = r['[[locale]]']; var extensionSubtags = void 0, extensionSubtagsLength = void 0; // 5. If r has an [[extension]] field, then if (hop.call(r, '[[extension]]')) { // a. Let extension be the value of r.[[extension]]. var extension = r['[[extension]]']; // b. Let split be the standard built-in function object defined in ES5, // 15.5.4.14. var split = String.prototype.split; // c. Let extensionSubtags be the result of calling the [[Call]] internal // method of split with extension as the this value and an argument // list containing the single item "-". extensionSubtags = split.call(extension, '-'); // d. Let extensionSubtagsLength be the result of calling the [[Get]] // internal method of extensionSubtags with argument "length". extensionSubtagsLength = extensionSubtags.length; } // 6. Let result be a new Record. var result = new Record(); // 7. Set result.[[dataLocale]] to foundLocale. result['[[dataLocale]]'] = foundLocale; // 8. Let supportedExtension be "-u". var supportedExtension = '-u'; // 9. Let i be 0. var i = 0; // 10. Let len be the result of calling the [[Get]] internal method of // relevantExtensionKeys with argument "length". var len = relevantExtensionKeys.length; // 11 Repeat while i < len: while (i < len) { // a. Let key be the result of calling the [[Get]] internal method of // relevantExtensionKeys with argument ToString(i). var key = relevantExtensionKeys[i]; // b. Let foundLocaleData be the result of calling the [[Get]] internal // method of localeData with the argument foundLocale. var foundLocaleData = localeData[foundLocale]; // c. Let keyLocaleData be the result of calling the [[Get]] internal // method of foundLocaleData with the argument key. var keyLocaleData = foundLocaleData[key]; // d. Let value be the result of calling the [[Get]] internal method of // keyLocaleData with argument "0". var value = keyLocaleData['0']; // e. Let supportedExtensionAddition be "". var supportedExtensionAddition = ''; // f. Let indexOf be the standard built-in function object defined in // ES5, 15.4.4.14. var indexOf = arrIndexOf; // g. If extensionSubtags is not undefined, then if (extensionSubtags !== undefined) { // i. Let keyPos be the result of calling the [[Call]] internal // method of indexOf with extensionSubtags as the this value and // an argument list containing the single item key. var keyPos = indexOf.call(extensionSubtags, key); // ii. If keyPos ≠ -1, then if (keyPos !== -1) { // 1. If keyPos + 1 < extensionSubtagsLength and the length of the // result of calling the [[Get]] internal method of // extensionSubtags with argument ToString(keyPos +1) is greater // than 2, then if (keyPos + 1 < extensionSubtagsLength && extensionSubtags[keyPos + 1].length > 2) { // a. Let requestedValue be the result of calling the [[Get]] // internal method of extensionSubtags with argument // ToString(keyPos + 1). var requestedValue = extensionSubtags[keyPos + 1]; // b. Let valuePos be the result of calling the [[Call]] // internal method of indexOf with keyLocaleData as the // this value and an argument list containing the single // item requestedValue. var valuePos = indexOf.call(keyLocaleData, requestedValue); // c. If valuePos ≠ -1, then if (valuePos !== -1) { // i. Let value be requestedValue. value = requestedValue, // ii. Let supportedExtensionAddition be the // concatenation of "-", key, "-", and value. supportedExtensionAddition = '-' + key + '-' + value; } } // 2. Else else { // a. Let valuePos be the result of calling the [[Call]] // internal method of indexOf with keyLocaleData as the this // value and an argument list containing the single item // "true". var _valuePos = indexOf(keyLocaleData, 'true'); // b. If valuePos ≠ -1, then if (_valuePos !== -1) // i. Let value be "true". value = 'true'; } } } // h. If options has a field [[]], then if (hop.call(options, '[[' + key + ']]')) { // i. Let optionsValue be the value of options.[[]]. var optionsValue = options['[[' + key + ']]']; // ii. If the result of calling the [[Call]] internal method of indexOf // with keyLocaleData as the this value and an argument list // containing the single item optionsValue is not -1, then if (indexOf.call(keyLocaleData, optionsValue) !== -1) { // 1. If optionsValue is not equal to value, then if (optionsValue !== value) { // a. Let value be optionsValue. value = optionsValue; // b. Let supportedExtensionAddition be "". supportedExtensionAddition = ''; } } } // i. Set result.[[]] to value. result['[[' + key + ']]'] = value; // j. Append supportedExtensionAddition to supportedExtension. supportedExtension += supportedExtensionAddition; // k. Increase i by 1. i++; } // 12. If the length of supportedExtension is greater than 2, then if (supportedExtension.length > 2) { // a. var privateIndex = foundLocale.indexOf("-x-"); // b. if (privateIndex === -1) { // i. foundLocale = foundLocale + supportedExtension; } // c. else { // i. var preExtension = foundLocale.substring(0, privateIndex); // ii. var postExtension = foundLocale.substring(privateIndex); // iii. foundLocale = preExtension + supportedExtension + postExtension; } // d. asserting - skipping // e. foundLocale = CanonicalizeLanguageTag(foundLocale); } // 13. Set result.[[locale]] to foundLocale. result['[[locale]]'] = foundLocale; // 14. Return result. return result; } /** * The LookupSupportedLocales abstract operation returns the subset of the * provided BCP 47 language priority list requestedLocales for which * availableLocales has a matching locale when using the BCP 47 Lookup algorithm. * Locales appear in the same order in the returned list as in requestedLocales. * The following steps are taken: */ function /* 9.2.6 */LookupSupportedLocales(availableLocales, requestedLocales) { // 1. Let len be the number of elements in requestedLocales. var len = requestedLocales.length; // 2. Let subset be a new empty List. var subset = new List(); // 3. Let k be 0. var k = 0; // 4. Repeat while k < len while (k < len) { // a. Let locale be the element of requestedLocales at 0-origined list // position k. var locale = requestedLocales[k]; // b. Let noExtensionsLocale be the String value that is locale with all // Unicode locale extension sequences removed. var noExtensionsLocale = String(locale).replace(expUnicodeExSeq, ''); // c. Let availableLocale be the result of calling the // BestAvailableLocale abstract operation (defined in 9.2.2) with // arguments availableLocales and noExtensionsLocale. var availableLocale = BestAvailableLocale(availableLocales, noExtensionsLocale); // d. If availableLocale is not undefined, then append locale to the end of // subset. if (availableLocale !== undefined) arrPush.call(subset, locale); // e. Increment k by 1. k++; } // 5. Let subsetArray be a new Array object whose elements are the same // values in the same order as the elements of subset. var subsetArray = arrSlice.call(subset); // 6. Return subsetArray. return subsetArray; } /** * The BestFitSupportedLocales abstract operation returns the subset of the * provided BCP 47 language priority list requestedLocales for which * availableLocales has a matching locale when using the Best Fit Matcher * algorithm. Locales appear in the same order in the returned list as in * requestedLocales. The steps taken are implementation dependent. */ function /*9.2.7 */BestFitSupportedLocales(availableLocales, requestedLocales) { // ###TODO: implement this function as described by the specification### return LookupSupportedLocales(availableLocales, requestedLocales); } /** * The SupportedLocales abstract operation returns the subset of the provided BCP * 47 language priority list requestedLocales for which availableLocales has a * matching locale. Two algorithms are available to match the locales: the Lookup * algorithm described in RFC 4647 section 3.4, and an implementation dependent * best-fit algorithm. Locales appear in the same order in the returned list as * in requestedLocales. The following steps are taken: */ function /*9.2.8 */SupportedLocales(availableLocales, requestedLocales, options) { var matcher = void 0, subset = void 0; // 1. If options is not undefined, then if (options !== undefined) { // a. Let options be ToObject(options). options = new Record(toObject(options)); // b. Let matcher be the result of calling the [[Get]] internal method of // options with argument "localeMatcher". matcher = options.localeMatcher; // c. If matcher is not undefined, then if (matcher !== undefined) { // i. Let matcher be ToString(matcher). matcher = String(matcher); // ii. If matcher is not "lookup" or "best fit", then throw a RangeError // exception. if (matcher !== 'lookup' && matcher !== 'best fit') throw new RangeError('matcher should be "lookup" or "best fit"'); } } // 2. If matcher is undefined or "best fit", then if (matcher === undefined || matcher === 'best fit') // a. Let subset be the result of calling the BestFitSupportedLocales // abstract operation (defined in 9.2.7) with arguments // availableLocales and requestedLocales. subset = BestFitSupportedLocales(availableLocales, requestedLocales); // 3. Else else // a. Let subset be the result of calling the LookupSupportedLocales // abstract operation (defined in 9.2.6) with arguments // availableLocales and requestedLocales. subset = LookupSupportedLocales(availableLocales, requestedLocales); // 4. For each named own property name P of subset, for (var P in subset) { if (!hop.call(subset, P)) continue; // a. Let desc be the result of calling the [[GetOwnProperty]] internal // method of subset with P. // b. Set desc.[[Writable]] to false. // c. Set desc.[[Configurable]] to false. // d. Call the [[DefineOwnProperty]] internal method of subset with P, desc, // and true as arguments. defineProperty(subset, P, { writable: false, configurable: false, value: subset[P] }); } // "Freeze" the array so no new elements can be added defineProperty(subset, 'length', { writable: false }); // 5. Return subset return subset; } /** * The GetOption abstract operation extracts the value of the property named * property from the provided options object, converts it to the required type, * checks whether it is one of a List of allowed values, and fills in a fallback * value if necessary. */ function /*9.2.9 */GetOption(options, property, type, values, fallback) { // 1. Let value be the result of calling the [[Get]] internal method of // options with argument property. var value = options[property]; // 2. If value is not undefined, then if (value !== undefined) { // a. Assert: type is "boolean" or "string". // b. If type is "boolean", then let value be ToBoolean(value). // c. If type is "string", then let value be ToString(value). value = type === 'boolean' ? Boolean(value) : type === 'string' ? String(value) : value; // d. If values is not undefined, then if (values !== undefined) { // i. If values does not contain an element equal to value, then throw a // RangeError exception. if (arrIndexOf.call(values, value) === -1) throw new RangeError("'" + value + "' is not an allowed value for `" + property + '`'); } // e. Return value. return value; } // Else return fallback. return fallback; } /** * The GetNumberOption abstract operation extracts a property value from the * provided options object, converts it to a Number value, checks whether it is * in the allowed range, and fills in a fallback value if necessary. */ function /* 9.2.10 */GetNumberOption(options, property, minimum, maximum, fallback) { // 1. Let value be the result of calling the [[Get]] internal method of // options with argument property. var value = options[property]; // 2. If value is not undefined, then if (value !== undefined) { // a. Let value be ToNumber(value). value = Number(value); // b. If value is NaN or less than minimum or greater than maximum, throw a // RangeError exception. if (isNaN(value) || value < minimum || value > maximum) throw new RangeError('Value is not a number or outside accepted range'); // c. Return floor(value). return Math.floor(value); } // 3. Else return fallback. return fallback; } // 8 The Intl Object var Intl = {}; // 8.2 Function Properties of the Intl Object // 8.2.1 // @spec[tc39/ecma402/master/spec/intl.html] // @clause[sec-intl.getcanonicallocales] function getCanonicalLocales(locales) { // 1. Let ll be ? CanonicalizeLocaleList(locales). var ll = CanonicalizeLocaleList(locales); // 2. Return CreateArrayFromList(ll). { var result = []; var len = ll.length; var k = 0; while (k < len) { result[k] = ll[k]; k++; } return result; } } Object.defineProperty(Intl, 'getCanonicalLocales', { enumerable: false, configurable: true, writable: true, value: getCanonicalLocales }); // Currency minor units output from get-4217 grunt task, formatted var currencyMinorUnits = { BHD: 3, BYR: 0, XOF: 0, BIF: 0, XAF: 0, CLF: 4, CLP: 0, KMF: 0, DJF: 0, XPF: 0, GNF: 0, ISK: 0, IQD: 3, JPY: 0, JOD: 3, KRW: 0, KWD: 3, LYD: 3, OMR: 3, PYG: 0, RWF: 0, TND: 3, UGX: 0, UYI: 0, VUV: 0, VND: 0 }; // Define the NumberFormat constructor internally so it cannot be tainted function NumberFormatConstructor() { var locales = arguments[0]; var options = arguments[1]; if (!this || this === Intl) { return new Intl.NumberFormat(locales, options); } return InitializeNumberFormat(toObject(this), locales, options); } defineProperty(Intl, 'NumberFormat', { configurable: true, writable: true, value: NumberFormatConstructor }); // Must explicitly set prototypes as unwritable defineProperty(Intl.NumberFormat, 'prototype', { writable: false }); /** * The abstract operation InitializeNumberFormat accepts the arguments * numberFormat (which must be an object), locales, and options. It initializes * numberFormat as a NumberFormat object. */ function /*11.1.1.1 */InitializeNumberFormat(numberFormat, locales, options) { // This will be a internal properties object if we're not already initialized var internal = getInternalProperties(numberFormat); // Create an object whose props can be used to restore the values of RegExp props var regexpRestore = createRegExpRestore(); // 1. If numberFormat has an [[initializedIntlObject]] internal property with // value true, throw a TypeError exception. if (internal['[[initializedIntlObject]]'] === true) throw new TypeError('`this` object has already been initialized as an Intl object'); // Need this to access the `internal` object defineProperty(numberFormat, '__getInternalProperties', { value: function value() { // NOTE: Non-standard, for internal use only if (arguments[0] === secret) return internal; } }); // 2. Set the [[initializedIntlObject]] internal property of numberFormat to true. internal['[[initializedIntlObject]]'] = true; // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList // abstract operation (defined in 9.2.1) with argument locales. var requestedLocales = CanonicalizeLocaleList(locales); // 4. If options is undefined, then if (options === undefined) // a. Let options be the result of creating a new object as if by the // expression new Object() where Object is the standard built-in constructor // with that name. options = {}; // 5. Else else // a. Let options be ToObject(options). options = toObject(options); // 6. Let opt be a new Record. var opt = new Record(), // 7. Let matcher be the result of calling the GetOption abstract operation // (defined in 9.2.9) with the arguments options, "localeMatcher", "string", // a List containing the two String values "lookup" and "best fit", and // "best fit". matcher = GetOption(options, 'localeMatcher', 'string', new List('lookup', 'best fit'), 'best fit'); // 8. Set opt.[[localeMatcher]] to matcher. opt['[[localeMatcher]]'] = matcher; // 9. Let NumberFormat be the standard built-in object that is the initial value // of Intl.NumberFormat. // 10. Let localeData be the value of the [[localeData]] internal property of // NumberFormat. var localeData = internals.NumberFormat['[[localeData]]']; // 11. Let r be the result of calling the ResolveLocale abstract operation // (defined in 9.2.5) with the [[availableLocales]] internal property of // NumberFormat, requestedLocales, opt, the [[relevantExtensionKeys]] // internal property of NumberFormat, and localeData. var r = ResolveLocale(internals.NumberFormat['[[availableLocales]]'], requestedLocales, opt, internals.NumberFormat['[[relevantExtensionKeys]]'], localeData); // 12. Set the [[locale]] internal property of numberFormat to the value of // r.[[locale]]. internal['[[locale]]'] = r['[[locale]]']; // 13. Set the [[numberingSystem]] internal property of numberFormat to the value // of r.[[nu]]. internal['[[numberingSystem]]'] = r['[[nu]]']; // The specification doesn't tell us to do this, but it's helpful later on internal['[[dataLocale]]'] = r['[[dataLocale]]']; // 14. Let dataLocale be the value of r.[[dataLocale]]. var dataLocale = r['[[dataLocale]]']; // 15. Let s be the result of calling the GetOption abstract operation with the // arguments options, "style", "string", a List containing the three String // values "decimal", "percent", and "currency", and "decimal". var s = GetOption(options, 'style', 'string', new List('decimal', 'percent', 'currency'), 'decimal'); // 16. Set the [[style]] internal property of numberFormat to s. internal['[[style]]'] = s; // 17. Let c be the result of calling the GetOption abstract operation with the // arguments options, "currency", "string", undefined, and undefined. var c = GetOption(options, 'currency', 'string'); // 18. If c is not undefined and the result of calling the // IsWellFormedCurrencyCode abstract operation (defined in 6.3.1) with // argument c is false, then throw a RangeError exception. if (c !== undefined && !IsWellFormedCurrencyCode(c)) throw new RangeError("'" + c + "' is not a valid currency code"); // 19. If s is "currency" and c is undefined, throw a TypeError exception. if (s === 'currency' && c === undefined) throw new TypeError('Currency code is required when style is currency'); var cDigits = void 0; // 20. If s is "currency", then if (s === 'currency') { // a. Let c be the result of converting c to upper case as specified in 6.1. c = c.toUpperCase(); // b. Set the [[currency]] internal property of numberFormat to c. internal['[[currency]]'] = c; // c. Let cDigits be the result of calling the CurrencyDigits abstract // operation (defined below) with argument c. cDigits = CurrencyDigits(c); } // 21. Let cd be the result of calling the GetOption abstract operation with the // arguments options, "currencyDisplay", "string", a List containing the // three String values "code", "symbol", and "name", and "symbol". var cd = GetOption(options, 'currencyDisplay', 'string', new List('code', 'symbol', 'name'), 'symbol'); // 22. If s is "currency", then set the [[currencyDisplay]] internal property of // numberFormat to cd. if (s === 'currency') internal['[[currencyDisplay]]'] = cd; // 23. Let mnid be the result of calling the GetNumberOption abstract operation // (defined in 9.2.10) with arguments options, "minimumIntegerDigits", 1, 21, // and 1. var mnid = GetNumberOption(options, 'minimumIntegerDigits', 1, 21, 1); // 24. Set the [[minimumIntegerDigits]] internal property of numberFormat to mnid. internal['[[minimumIntegerDigits]]'] = mnid; // 25. If s is "currency", then let mnfdDefault be cDigits; else let mnfdDefault // be 0. var mnfdDefault = s === 'currency' ? cDigits : 0; // 26. Let mnfd be the result of calling the GetNumberOption abstract operation // with arguments options, "minimumFractionDigits", 0, 20, and mnfdDefault. var mnfd = GetNumberOption(options, 'minimumFractionDigits', 0, 20, mnfdDefault); // 27. Set the [[minimumFractionDigits]] internal property of numberFormat to mnfd. internal['[[minimumFractionDigits]]'] = mnfd; // 28. If s is "currency", then let mxfdDefault be max(mnfd, cDigits); else if s // is "percent", then let mxfdDefault be max(mnfd, 0); else let mxfdDefault // be max(mnfd, 3). var mxfdDefault = s === 'currency' ? Math.max(mnfd, cDigits) : s === 'percent' ? Math.max(mnfd, 0) : Math.max(mnfd, 3); // 29. Let mxfd be the result of calling the GetNumberOption abstract operation // with arguments options, "maximumFractionDigits", mnfd, 20, and mxfdDefault. var mxfd = GetNumberOption(options, 'maximumFractionDigits', mnfd, 20, mxfdDefault); // 30. Set the [[maximumFractionDigits]] internal property of numberFormat to mxfd. internal['[[maximumFractionDigits]]'] = mxfd; // 31. Let mnsd be the result of calling the [[Get]] internal method of options // with argument "minimumSignificantDigits". var mnsd = options.minimumSignificantDigits; // 32. Let mxsd be the result of calling the [[Get]] internal method of options // with argument "maximumSignificantDigits". var mxsd = options.maximumSignificantDigits; // 33. If mnsd is not undefined or mxsd is not undefined, then: if (mnsd !== undefined || mxsd !== undefined) { // a. Let mnsd be the result of calling the GetNumberOption abstract // operation with arguments options, "minimumSignificantDigits", 1, 21, // and 1. mnsd = GetNumberOption(options, 'minimumSignificantDigits', 1, 21, 1); // b. Let mxsd be the result of calling the GetNumberOption abstract // operation with arguments options, "maximumSignificantDigits", mnsd, // 21, and 21. mxsd = GetNumberOption(options, 'maximumSignificantDigits', mnsd, 21, 21); // c. Set the [[minimumSignificantDigits]] internal property of numberFormat // to mnsd, and the [[maximumSignificantDigits]] internal property of // numberFormat to mxsd. internal['[[minimumSignificantDigits]]'] = mnsd; internal['[[maximumSignificantDigits]]'] = mxsd; } // 34. Let g be the result of calling the GetOption abstract operation with the // arguments options, "useGrouping", "boolean", undefined, and true. var g = GetOption(options, 'useGrouping', 'boolean', undefined, true); // 35. Set the [[useGrouping]] internal property of numberFormat to g. internal['[[useGrouping]]'] = g; // 36. Let dataLocaleData be the result of calling the [[Get]] internal method of // localeData with argument dataLocale. var dataLocaleData = localeData[dataLocale]; // 37. Let patterns be the result of calling the [[Get]] internal method of // dataLocaleData with argument "patterns". var patterns = dataLocaleData.patterns; // 38. Assert: patterns is an object (see 11.2.3) // 39. Let stylePatterns be the result of calling the [[Get]] internal method of // patterns with argument s. var stylePatterns = patterns[s]; // 40. Set the [[positivePattern]] internal property of numberFormat to the // result of calling the [[Get]] internal method of stylePatterns with the // argument "positivePattern". internal['[[positivePattern]]'] = stylePatterns.positivePattern; // 41. Set the [[negativePattern]] internal property of numberFormat to the // result of calling the [[Get]] internal method of stylePatterns with the // argument "negativePattern". internal['[[negativePattern]]'] = stylePatterns.negativePattern; // 42. Set the [[boundFormat]] internal property of numberFormat to undefined. internal['[[boundFormat]]'] = undefined; // 43. Set the [[initializedNumberFormat]] internal property of numberFormat to // true. internal['[[initializedNumberFormat]]'] = true; // In ES3, we need to pre-bind the format() function if (es3) numberFormat.format = GetFormatNumber.call(numberFormat); // Restore the RegExp properties regexpRestore(); // Return the newly initialised object return numberFormat; } function CurrencyDigits(currency) { // When the CurrencyDigits abstract operation is called with an argument currency // (which must be an upper case String value), the following steps are taken: // 1. If the ISO 4217 currency and funds code list contains currency as an // alphabetic code, then return the minor unit value corresponding to the // currency from the list; else return 2. return currencyMinorUnits[currency] !== undefined ? currencyMinorUnits[currency] : 2; } /* 11.2.3 */internals.NumberFormat = { '[[availableLocales]]': [], '[[relevantExtensionKeys]]': ['nu'], '[[localeData]]': {} }; /** * When the supportedLocalesOf method of Intl.NumberFormat is called, the * following steps are taken: */ /* 11.2.2 */ defineProperty(Intl.NumberFormat, 'supportedLocalesOf', { configurable: true, writable: true, value: fnBind.call(function (locales) { // Bound functions only have the `this` value altered if being used as a constructor, // this lets us imitate a native function that has no constructor if (!hop.call(this, '[[availableLocales]]')) throw new TypeError('supportedLocalesOf() is not a constructor'); // Create an object whose props can be used to restore the values of RegExp props var regexpRestore = createRegExpRestore(), // 1. If options is not provided, then let options be undefined. options = arguments[1], // 2. Let availableLocales be the value of the [[availableLocales]] internal // property of the standard built-in object that is the initial value of // Intl.NumberFormat. availableLocales = this['[[availableLocales]]'], // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList // abstract operation (defined in 9.2.1) with argument locales. requestedLocales = CanonicalizeLocaleList(locales); // Restore the RegExp properties regexpRestore(); // 4. Return the result of calling the SupportedLocales abstract operation // (defined in 9.2.8) with arguments availableLocales, requestedLocales, // and options. return SupportedLocales(availableLocales, requestedLocales, options); }, internals.NumberFormat) }); /** * This named accessor property returns a function that formats a number * according to the effective locale and the formatting options of this * NumberFormat object. */ /* 11.3.2 */defineProperty(Intl.NumberFormat.prototype, 'format', { configurable: true, get: GetFormatNumber }); function GetFormatNumber() { var internal = this !== null && babelHelpers$1["typeof"](this) === 'object' && getInternalProperties(this); // Satisfy test 11.3_b if (!internal || !internal['[[initializedNumberFormat]]']) throw new TypeError('`this` value for format() is not an initialized Intl.NumberFormat object.'); // The value of the [[Get]] attribute is a function that takes the following // steps: // 1. If the [[boundFormat]] internal property of this NumberFormat object // is undefined, then: if (internal['[[boundFormat]]'] === undefined) { // a. Let F be a Function object, with internal properties set as // specified for built-in functions in ES5, 15, or successor, and the // length property set to 1, that takes the argument value and // performs the following steps: var F = function F(value) { // i. If value is not provided, then let value be undefined. // ii. Let x be ToNumber(value). // iii. Return the result of calling the FormatNumber abstract // operation (defined below) with arguments this and x. return FormatNumber(this, /* x = */Number(value)); }; // b. Let bind be the standard built-in function object defined in ES5, // 15.3.4.5. // c. Let bf be the result of calling the [[Call]] internal method of // bind with F as the this value and an argument list containing // the single item this. var bf = fnBind.call(F, this); // d. Set the [[boundFormat]] internal property of this NumberFormat // object to bf. internal['[[boundFormat]]'] = bf; } // Return the value of the [[boundFormat]] internal property of this // NumberFormat object. return internal['[[boundFormat]]']; } function formatToParts() { var value = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0]; var internal = this !== null && babelHelpers$1["typeof"](this) === 'object' && getInternalProperties(this); if (!internal || !internal['[[initializedNumberFormat]]']) throw new TypeError('`this` value for formatToParts() is not an initialized Intl.NumberFormat object.'); var x = Number(value); return FormatNumberToParts(this, x); } Object.defineProperty(Intl.NumberFormat.prototype, 'formatToParts', { configurable: true, enumerable: false, writable: true, value: formatToParts }); /* * @spec[stasm/ecma402/number-format-to-parts/spec/numberformat.html] * @clause[sec-formatnumbertoparts] */ function FormatNumberToParts(numberFormat, x) { // 1. Let parts be ? PartitionNumberPattern(numberFormat, x). var parts = PartitionNumberPattern(numberFormat, x); // 2. Let result be ArrayCreate(0). var result = []; // 3. Let n be 0. var n = 0; // 4. For each part in parts, do: for (var i = 0; parts.length > i; i++) { var part = parts[i]; // a. Let O be ObjectCreate(%ObjectPrototype%). var O = {}; // a. Perform ? CreateDataPropertyOrThrow(O, "type", part.[[type]]). O.type = part['[[type]]']; // a. Perform ? CreateDataPropertyOrThrow(O, "value", part.[[value]]). O.value = part['[[value]]']; // a. Perform ? CreateDataPropertyOrThrow(result, ? ToString(n), O). result[n] = O; // a. Increment n by 1. n += 1; } // 5. Return result. return result; } /* * @spec[stasm/ecma402/number-format-to-parts/spec/numberformat.html] * @clause[sec-partitionnumberpattern] */ function PartitionNumberPattern(numberFormat, x) { var internal = getInternalProperties(numberFormat), locale = internal['[[dataLocale]]'], nums = internal['[[numberingSystem]]'], data = internals.NumberFormat['[[localeData]]'][locale], ild = data.symbols[nums] || data.symbols.latn, pattern = void 0; // 1. If x is not NaN and x < 0, then: if (!isNaN(x) && x < 0) { // a. Let x be -x. x = -x; // a. Let pattern be the value of numberFormat.[[negativePattern]]. pattern = internal['[[negativePattern]]']; } // 2. Else, else { // a. Let pattern be the value of numberFormat.[[positivePattern]]. pattern = internal['[[positivePattern]]']; } // 3. Let result be a new empty List. var result = new List(); // 4. Let beginIndex be Call(%StringProto_indexOf%, pattern, "{", 0). var beginIndex = pattern.indexOf('{', 0); // 5. Let endIndex be 0. var endIndex = 0; // 6. Let nextIndex be 0. var nextIndex = 0; // 7. Let length be the number of code units in pattern. var length = pattern.length; // 8. Repeat while beginIndex is an integer index into pattern: while (beginIndex > -1 && beginIndex < length) { // a. Set endIndex to Call(%StringProto_indexOf%, pattern, "}", beginIndex) endIndex = pattern.indexOf('}', beginIndex); // a. If endIndex = -1, throw new Error exception. if (endIndex === -1) throw new Error(); // a. If beginIndex is greater than nextIndex, then: if (beginIndex > nextIndex) { // i. Let literal be a substring of pattern from position nextIndex, inclusive, to position beginIndex, exclusive. var literal = pattern.substring(nextIndex, beginIndex); // ii. Add new part record { [[type]]: "literal", [[value]]: literal } as a new element of the list result. arrPush.call(result, { '[[type]]': 'literal', '[[value]]': literal }); } // a. Let p be the substring of pattern from position beginIndex, exclusive, to position endIndex, exclusive. var p = pattern.substring(beginIndex + 1, endIndex); // a. If p is equal "number", then: if (p === "number") { // i. If x is NaN, if (isNaN(x)) { // 1. Let n be an ILD String value indicating the NaN value. var n = ild.nan; // 2. Add new part record { [[type]]: "nan", [[value]]: n } as a new element of the list result. arrPush.call(result, { '[[type]]': 'nan', '[[value]]': n }); } // ii. Else if isFinite(x) is false, else if (!isFinite(x)) { // 1. Let n be an ILD String value indicating infinity. var _n = ild.infinity; // 2. Add new part record { [[type]]: "infinity", [[value]]: n } as a new element of the list result. arrPush.call(result, { '[[type]]': 'infinity', '[[value]]': _n }); } // iii. Else, else { // 1. If the value of numberFormat.[[style]] is "percent" and isFinite(x), let x be 100 × x. if (internal['[[style]]'] === 'percent' && isFinite(x)) x *= 100; var _n2 = void 0; // 2. If the numberFormat.[[minimumSignificantDigits]] and numberFormat.[[maximumSignificantDigits]] are present, then if (hop.call(internal, '[[minimumSignificantDigits]]') && hop.call(internal, '[[maximumSignificantDigits]]')) { // a. Let n be ToRawPrecision(x, numberFormat.[[minimumSignificantDigits]], numberFormat.[[maximumSignificantDigits]]). _n2 = ToRawPrecision(x, internal['[[minimumSignificantDigits]]'], internal['[[maximumSignificantDigits]]']); } // 3. Else, else { // a. Let n be ToRawFixed(x, numberFormat.[[minimumIntegerDigits]], numberFormat.[[minimumFractionDigits]], numberFormat.[[maximumFractionDigits]]). _n2 = ToRawFixed(x, internal['[[minimumIntegerDigits]]'], internal['[[minimumFractionDigits]]'], internal['[[maximumFractionDigits]]']); } // 4. If the value of the numberFormat.[[numberingSystem]] matches one of the values in the "Numbering System" column of Table 2 below, then if (numSys[nums]) { (function () { // a. Let digits be an array whose 10 String valued elements are the UTF-16 string representations of the 10 digits specified in the "Digits" column of the matching row in Table 2. var digits = numSys[nums]; // a. Replace each digit in n with the value of digits[digit]. _n2 = String(_n2).replace(/\d/g, function (digit) { return digits[digit]; }); })(); } // 5. Else use an implementation dependent algorithm to map n to the appropriate representation of n in the given numbering system. else _n2 = String(_n2); // ###TODO### var integer = void 0; var fraction = void 0; // 6. Let decimalSepIndex be Call(%StringProto_indexOf%, n, ".", 0). var decimalSepIndex = _n2.indexOf('.', 0); // 7. If decimalSepIndex > 0, then: if (decimalSepIndex > 0) { // a. Let integer be the substring of n from position 0, inclusive, to position decimalSepIndex, exclusive. integer = _n2.substring(0, decimalSepIndex); // a. Let fraction be the substring of n from position decimalSepIndex, exclusive, to the end of n. fraction = _n2.substring(decimalSepIndex + 1, decimalSepIndex.length); } // 8. Else: else { // a. Let integer be n. integer = _n2; // a. Let fraction be undefined. fraction = undefined; } // 9. If the value of the numberFormat.[[useGrouping]] is true, if (internal['[[useGrouping]]'] === true) { // a. Let groupSepSymbol be the ILND String representing the grouping separator. var groupSepSymbol = ild.group; // a. Let groups be a List whose elements are, in left to right order, the substrings defined by ILND set of locations within the integer. var groups = []; // ----> implementation: // Primary group represents the group closest to the decimal var pgSize = data.patterns.primaryGroupSize || 3; // Secondary group is every other group var sgSize = data.patterns.secondaryGroupSize || pgSize; // Group only if necessary if (integer.length > pgSize) { // Index of the primary grouping separator var end = integer.length - pgSize; // Starting index for our loop var idx = end % sgSize; var start = integer.slice(0, idx); if (start.length) arrPush.call(groups, start); // Loop to separate into secondary grouping digits while (idx < end) { arrPush.call(groups, integer.slice(idx, idx + sgSize)); idx += sgSize; } // Add the primary grouping digits arrPush.call(groups, integer.slice(end)); } else { arrPush.call(groups, integer); } // a. Assert: The number of elements in groups List is greater than 0. if (groups.length === 0) throw new Error(); // a. Repeat, while groups List is not empty: while (groups.length) { // i. Remove the first element from groups and let integerGroup be the value of that element. var integerGroup = arrShift.call(groups); // ii. Add new part record { [[type]]: "integer", [[value]]: integerGroup } as a new element of the list result. arrPush.call(result, { '[[type]]': 'integer', '[[value]]': integerGroup }); // iii. If groups List is not empty, then: if (groups.length) { // 1. Add new part record { [[type]]: "group", [[value]]: groupSepSymbol } as a new element of the list result. arrPush.call(result, { '[[type]]': 'group', '[[value]]': groupSepSymbol }); } } } // 10. Else, else { // a. Add new part record { [[type]]: "integer", [[value]]: integer } as a new element of the list result. arrPush.call(result, { '[[type]]': 'integer', '[[value]]': integer }); } // 11. If fraction is not undefined, then: if (fraction !== undefined) { // a. Let decimalSepSymbol be the ILND String representing the decimal separator. var decimalSepSymbol = ild.decimal; // a. Add new part record { [[type]]: "decimal", [[value]]: decimalSepSymbol } as a new element of the list result. arrPush.call(result, { '[[type]]': 'decimal', '[[value]]': decimalSepSymbol }); // a. Add new part record { [[type]]: "fraction", [[value]]: fraction } as a new element of the list result. arrPush.call(result, { '[[type]]': 'fraction', '[[value]]': fraction }); } } } // a. Else if p is equal "plusSign", then: else if (p === "plusSign") { // i. Let plusSignSymbol be the ILND String representing the plus sign. var plusSignSymbol = ild.plusSign; // ii. Add new part record { [[type]]: "plusSign", [[value]]: plusSignSymbol } as a new element of the list result. arrPush.call(result, { '[[type]]': 'plusSign', '[[value]]': plusSignSymbol }); } // a. Else if p is equal "minusSign", then: else if (p === "minusSign") { // i. Let minusSignSymbol be the ILND String representing the minus sign. var minusSignSymbol = ild.minusSign; // ii. Add new part record { [[type]]: "minusSign", [[value]]: minusSignSymbol } as a new element of the list result. arrPush.call(result, { '[[type]]': 'minusSign', '[[value]]': minusSignSymbol }); } // a. Else if p is equal "percentSign" and numberFormat.[[style]] is "percent", then: else if (p === "percentSign" && internal['[[style]]'] === "percent") { // i. Let percentSignSymbol be the ILND String representing the percent sign. var percentSignSymbol = ild.percentSign; // ii. Add new part record { [[type]]: "percentSign", [[value]]: percentSignSymbol } as a new element of the list result. arrPush.call(result, { '[[type]]': 'literal', '[[value]]': percentSignSymbol }); } // a. Else if p is equal "currency" and numberFormat.[[style]] is "currency", then: else if (p === "currency" && internal['[[style]]'] === "currency") { // i. Let currency be the value of numberFormat.[[currency]]. var currency = internal['[[currency]]']; var cd = void 0; // ii. If numberFormat.[[currencyDisplay]] is "code", then if (internal['[[currencyDisplay]]'] === "code") { // 1. Let cd be currency. cd = currency; } // iii. Else if numberFormat.[[currencyDisplay]] is "symbol", then else if (internal['[[currencyDisplay]]'] === "symbol") { // 1. Let cd be an ILD string representing currency in short form. If the implementation does not have such a representation of currency, use currency itself. cd = data.currencies[currency] || currency; } // iv. Else if numberFormat.[[currencyDisplay]] is "name", then else if (internal['[[currencyDisplay]]'] === "name") { // 1. Let cd be an ILD string representing currency in long form. If the implementation does not have such a representation of currency, then use currency itself. cd = currency; } // v. Add new part record { [[type]]: "currency", [[value]]: cd } as a new element of the list result. arrPush.call(result, { '[[type]]': 'currency', '[[value]]': cd }); } // a. Else, else { // i. Let literal be the substring of pattern from position beginIndex, inclusive, to position endIndex, inclusive. var _literal = pattern.substring(beginIndex, endIndex); // ii. Add new part record { [[type]]: "literal", [[value]]: literal } as a new element of the list result. arrPush.call(result, { '[[type]]': 'literal', '[[value]]': _literal }); } // a. Set nextIndex to endIndex + 1. nextIndex = endIndex + 1; // a. Set beginIndex to Call(%StringProto_indexOf%, pattern, "{", nextIndex) beginIndex = pattern.indexOf('{', nextIndex); } // 9. If nextIndex is less than length, then: if (nextIndex < length) { // a. Let literal be the substring of pattern from position nextIndex, inclusive, to position length, exclusive. var _literal2 = pattern.substring(nextIndex, length); // a. Add new part record { [[type]]: "literal", [[value]]: literal } as a new element of the list result. arrPush.call(result, { '[[type]]': 'literal', '[[value]]': _literal2 }); } // 10. Return result. return result; } /* * @spec[stasm/ecma402/number-format-to-parts/spec/numberformat.html] * @clause[sec-formatnumber] */ function FormatNumber(numberFormat, x) { // 1. Let parts be ? PartitionNumberPattern(numberFormat, x). var parts = PartitionNumberPattern(numberFormat, x); // 2. Let result be an empty String. var result = ''; // 3. For each part in parts, do: for (var i = 0; parts.length > i; i++) { var part = parts[i]; // a. Set result to a String value produced by concatenating result and part.[[value]]. result += part['[[value]]']; } // 4. Return result. return result; } /** * When the ToRawPrecision abstract operation is called with arguments x (which * must be a finite non-negative number), minPrecision, and maxPrecision (both * must be integers between 1 and 21) the following steps are taken: */ function ToRawPrecision(x, minPrecision, maxPrecision) { // 1. Let p be maxPrecision. var p = maxPrecision; var m = void 0, e = void 0; // 2. If x = 0, then if (x === 0) { // a. Let m be the String consisting of p occurrences of the character "0". m = arrJoin.call(Array(p + 1), '0'); // b. Let e be 0. e = 0; } // 3. Else else { // a. Let e and n be integers such that 10ᵖ⁻¹ ≤ n < 10ᵖ and for which the // exact mathematical value of n × 10ᵉ⁻ᵖ⁺¹ – x is as close to zero as // possible. If there are two such sets of e and n, pick the e and n for // which n × 10ᵉ⁻ᵖ⁺¹ is larger. e = log10Floor(Math.abs(x)); // Easier to get to m from here var f = Math.round(Math.exp(Math.abs(e - p + 1) * Math.LN10)); // b. Let m be the String consisting of the digits of the decimal // representation of n (in order, with no leading zeroes) m = String(Math.round(e - p + 1 < 0 ? x * f : x / f)); } // 4. If e ≥ p, then if (e >= p) // a. Return the concatenation of m and e-p+1 occurrences of the character "0". return m + arrJoin.call(Array(e - p + 1 + 1), '0'); // 5. If e = p-1, then else if (e === p - 1) // a. Return m. return m; // 6. If e ≥ 0, then else if (e >= 0) // a. Let m be the concatenation of the first e+1 characters of m, the character // ".", and the remaining p–(e+1) characters of m. m = m.slice(0, e + 1) + '.' + m.slice(e + 1); // 7. If e < 0, then else if (e < 0) // a. Let m be the concatenation of the String "0.", –(e+1) occurrences of the // character "0", and the string m. m = '0.' + arrJoin.call(Array(-(e + 1) + 1), '0') + m; // 8. If m contains the character ".", and maxPrecision > minPrecision, then if (m.indexOf(".") >= 0 && maxPrecision > minPrecision) { // a. Let cut be maxPrecision – minPrecision. var cut = maxPrecision - minPrecision; // b. Repeat while cut > 0 and the last character of m is "0": while (cut > 0 && m.charAt(m.length - 1) === '0') { // i. Remove the last character from m. m = m.slice(0, -1); // ii. Decrease cut by 1. cut--; } // c. If the last character of m is ".", then if (m.charAt(m.length - 1) === '.') // i. Remove the last character from m. m = m.slice(0, -1); } // 9. Return m. return m; } /** * @spec[tc39/ecma402/master/spec/numberformat.html] * @clause[sec-torawfixed] * When the ToRawFixed abstract operation is called with arguments x (which must * be a finite non-negative number), minInteger (which must be an integer between * 1 and 21), minFraction, and maxFraction (which must be integers between 0 and * 20) the following steps are taken: */ function ToRawFixed(x, minInteger, minFraction, maxFraction) { // 1. Let f be maxFraction. var f = maxFraction; // 2. Let n be an integer for which the exact mathematical value of n ÷ 10f – x is as close to zero as possible. If there are two such n, pick the larger n. var n = Math.pow(10, f) * x; // diverging... // 3. If n = 0, let m be the String "0". Otherwise, let m be the String consisting of the digits of the decimal representation of n (in order, with no leading zeroes). var m = n === 0 ? "0" : n.toFixed(0); // divering... { // this diversion is needed to take into consideration big numbers, e.g.: // 1.2344501e+37 -> 12344501000000000000000000000000000000 var idx = void 0; var exp = (idx = m.indexOf('e')) > -1 ? m.slice(idx + 1) : 0; if (exp) { m = m.slice(0, idx).replace('.', ''); m += arrJoin.call(Array(exp - (m.length - 1) + 1), '0'); } } var int = void 0; // 4. If f ≠ 0, then if (f !== 0) { // a. Let k be the number of characters in m. var k = m.length; // a. If k ≤ f, then if (k <= f) { // i. Let z be the String consisting of f+1–k occurrences of the character "0". var z = arrJoin.call(Array(f + 1 - k + 1), '0'); // ii. Let m be the concatenation of Strings z and m. m = z + m; // iii. Let k be f+1. k = f + 1; } // a. Let a be the first k–f characters of m, and let b be the remaining f characters of m. var a = m.substring(0, k - f), b = m.substring(k - f, m.length); // a. Let m be the concatenation of the three Strings a, ".", and b. m = a + "." + b; // a. Let int be the number of characters in a. int = a.length; } // 5. Else, let int be the number of characters in m. else int = m.length; // 6. Let cut be maxFraction – minFraction. var cut = maxFraction - minFraction; // 7. Repeat while cut > 0 and the last character of m is "0": while (cut > 0 && m.slice(-1) === "0") { // a. Remove the last character from m. m = m.slice(0, -1); // a. Decrease cut by 1. cut--; } // 8. If the last character of m is ".", then if (m.slice(-1) === ".") { // a. Remove the last character from m. m = m.slice(0, -1); } // 9. If int < minInteger, then if (int < minInteger) { // a. Let z be the String consisting of minInteger–int occurrences of the character "0". var _z = arrJoin.call(Array(minInteger - int + 1), '0'); // a. Let m be the concatenation of Strings z and m. m = _z + m; } // 10. Return m. return m; } // Sect 11.3.2 Table 2, Numbering systems // ====================================== var numSys = { arab: ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"], arabext: ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"], bali: ["᭐", "᭑", "᭒", "᭓", "᭔", "᭕", "᭖", "᭗", "᭘", "᭙"], beng: ["০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"], deva: ["०", "१", "२", "३", "४", "५", "६", "७", "८", "९"], fullwide: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], gujr: ["૦", "૧", "૨", "૩", "૪", "૫", "૬", "૭", "૮", "૯"], guru: ["੦", "੧", "੨", "੩", "੪", "੫", "੬", "੭", "੮", "੯"], hanidec: ["〇", "一", "二", "三", "四", "五", "六", "七", "八", "九"], khmr: ["០", "១", "២", "៣", "៤", "៥", "៦", "៧", "៨", "៩"], knda: ["೦", "೧", "೨", "೩", "೪", "೫", "೬", "೭", "೮", "೯"], laoo: ["໐", "໑", "໒", "໓", "໔", "໕", "໖", "໗", "໘", "໙"], latn: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], limb: ["᥆", "᥇", "᥈", "᥉", "᥊", "᥋", "᥌", "᥍", "᥎", "᥏"], mlym: ["൦", "൧", "൨", "൩", "൪", "൫", "൬", "൭", "൮", "൯"], mong: ["᠐", "᠑", "᠒", "᠓", "᠔", "᠕", "᠖", "᠗", "᠘", "᠙"], mymr: ["၀", "၁", "၂", "၃", "၄", "၅", "၆", "၇", "၈", "၉"], orya: ["୦", "୧", "୨", "୩", "୪", "୫", "୬", "୭", "୮", "୯"], tamldec: ["௦", "௧", "௨", "௩", "௪", "௫", "௬", "௭", "௮", "௯"], telu: ["౦", "౧", "౨", "౩", "౪", "౫", "౬", "౭", "౮", "౯"], thai: ["๐", "๑", "๒", "๓", "๔", "๕", "๖", "๗", "๘", "๙"], tibt: ["༠", "༡", "༢", "༣", "༤", "༥", "༦", "༧", "༨", "༩"] }; /** * This function provides access to the locale and formatting options computed * during initialization of the object. * * The function returns a new object whose properties and attributes are set as * if constructed by an object literal assigning to each of the following * properties the value of the corresponding internal property of this * NumberFormat object (see 11.4): locale, numberingSystem, style, currency, * currencyDisplay, minimumIntegerDigits, minimumFractionDigits, * maximumFractionDigits, minimumSignificantDigits, maximumSignificantDigits, and * useGrouping. Properties whose corresponding internal properties are not present * are not assigned. */ /* 11.3.3 */defineProperty(Intl.NumberFormat.prototype, 'resolvedOptions', { configurable: true, writable: true, value: function value() { var prop = void 0, descs = new Record(), props = ['locale', 'numberingSystem', 'style', 'currency', 'currencyDisplay', 'minimumIntegerDigits', 'minimumFractionDigits', 'maximumFractionDigits', 'minimumSignificantDigits', 'maximumSignificantDigits', 'useGrouping'], internal = this !== null && babelHelpers$1["typeof"](this) === 'object' && getInternalProperties(this); // Satisfy test 11.3_b if (!internal || !internal['[[initializedNumberFormat]]']) throw new TypeError('`this` value for resolvedOptions() is not an initialized Intl.NumberFormat object.'); for (var i = 0, max = props.length; i < max; i++) { if (hop.call(internal, prop = '[[' + props[i] + ']]')) descs[props[i]] = { value: internal[prop], writable: true, configurable: true, enumerable: true }; } return objCreate({}, descs); } }); /* jslint esnext: true */ // Match these datetime components in a CLDR pattern, except those in single quotes var expDTComponents = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g; // trim patterns after transformations var expPatternTrimmer = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; // Skip over patterns with these datetime components because we don't have data // to back them up: // timezone, weekday, amoung others var unwantedDTCs = /[rqQASjJgwWIQq]/; // xXVO were removed from this list in favor of computing matches with timeZoneName values but printing as empty string var dtKeys = ["era", "year", "month", "day", "weekday", "quarter"]; var tmKeys = ["hour", "minute", "second", "hour12", "timeZoneName"]; function isDateFormatOnly(obj) { for (var i = 0; i < tmKeys.length; i += 1) { if (obj.hasOwnProperty(tmKeys[i])) { return false; } } return true; } function isTimeFormatOnly(obj) { for (var i = 0; i < dtKeys.length; i += 1) { if (obj.hasOwnProperty(dtKeys[i])) { return false; } } return true; } function joinDateAndTimeFormats(dateFormatObj, timeFormatObj) { var o = { _: {} }; for (var i = 0; i < dtKeys.length; i += 1) { if (dateFormatObj[dtKeys[i]]) { o[dtKeys[i]] = dateFormatObj[dtKeys[i]]; } if (dateFormatObj._[dtKeys[i]]) { o._[dtKeys[i]] = dateFormatObj._[dtKeys[i]]; } } for (var j = 0; j < tmKeys.length; j += 1) { if (timeFormatObj[tmKeys[j]]) { o[tmKeys[j]] = timeFormatObj[tmKeys[j]]; } if (timeFormatObj._[tmKeys[j]]) { o._[tmKeys[j]] = timeFormatObj._[tmKeys[j]]; } } return o; } function computeFinalPatterns(formatObj) { // From http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns: // 'In patterns, two single quotes represents a literal single quote, either // inside or outside single quotes. Text within single quotes is not // interpreted in any way (except for two adjacent single quotes).' formatObj.pattern12 = formatObj.extendedPattern.replace(/'([^']*)'/g, function ($0, literal) { return literal ? literal : "'"; }); // pattern 12 is always the default. we can produce the 24 by removing {ampm} formatObj.pattern = formatObj.pattern12.replace('{ampm}', '').replace(expPatternTrimmer, ''); return formatObj; } function expDTComponentsMeta($0, formatObj) { switch ($0.charAt(0)) { // --- Era case 'G': formatObj.era = ['short', 'short', 'short', 'long', 'narrow'][$0.length - 1]; return '{era}'; // --- Year case 'y': case 'Y': case 'u': case 'U': case 'r': formatObj.year = $0.length === 2 ? '2-digit' : 'numeric'; return '{year}'; // --- Quarter (not supported in this polyfill) case 'Q': case 'q': formatObj.quarter = ['numeric', '2-digit', 'short', 'long', 'narrow'][$0.length - 1]; return '{quarter}'; // --- Month case 'M': case 'L': formatObj.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][$0.length - 1]; return '{month}'; // --- Week (not supported in this polyfill) case 'w': // week of the year formatObj.week = $0.length === 2 ? '2-digit' : 'numeric'; return '{weekday}'; case 'W': // week of the month formatObj.week = 'numeric'; return '{weekday}'; // --- Day case 'd': // day of the month formatObj.day = $0.length === 2 ? '2-digit' : 'numeric'; return '{day}'; case 'D': // day of the year case 'F': // day of the week case 'g': // 1..n: Modified Julian day formatObj.day = 'numeric'; return '{day}'; // --- Week Day case 'E': // day of the week formatObj.weekday = ['short', 'short', 'short', 'long', 'narrow', 'short'][$0.length - 1]; return '{weekday}'; case 'e': // local day of the week formatObj.weekday = ['numeric', '2-digit', 'short', 'long', 'narrow', 'short'][$0.length - 1]; return '{weekday}'; case 'c': // stand alone local day of the week formatObj.weekday = ['numeric', undefined, 'short', 'long', 'narrow', 'short'][$0.length - 1]; return '{weekday}'; // --- Period case 'a': // AM, PM case 'b': // am, pm, noon, midnight case 'B': // flexible day periods formatObj.hour12 = true; return '{ampm}'; // --- Hour case 'h': case 'H': formatObj.hour = $0.length === 2 ? '2-digit' : 'numeric'; return '{hour}'; case 'k': case 'K': formatObj.hour12 = true; // 12-hour-cycle time formats (using h or K) formatObj.hour = $0.length === 2 ? '2-digit' : 'numeric'; return '{hour}'; // --- Minute case 'm': formatObj.minute = $0.length === 2 ? '2-digit' : 'numeric'; return '{minute}'; // --- Second case 's': formatObj.second = $0.length === 2 ? '2-digit' : 'numeric'; return '{second}'; case 'S': case 'A': formatObj.second = 'numeric'; return '{second}'; // --- Timezone case 'z': // 1..3, 4: specific non-location format case 'Z': // 1..3, 4, 5: The ISO8601 varios formats case 'O': // 1, 4: miliseconds in day short, long case 'v': // 1, 4: generic non-location format case 'V': // 1, 2, 3, 4: time zone ID or city case 'X': // 1, 2, 3, 4: The ISO8601 varios formats case 'x': // 1, 2, 3, 4: The ISO8601 varios formats // this polyfill only supports much, for now, we are just doing something dummy formatObj.timeZoneName = $0.length < 4 ? 'short' : 'long'; return '{timeZoneName}'; } } /** * Converts the CLDR availableFormats into the objects and patterns required by * the ECMAScript Internationalization API specification. */ function createDateTimeFormat(skeleton, pattern) { // we ignore certain patterns that are unsupported to avoid this expensive op. if (unwantedDTCs.test(pattern)) return undefined; var formatObj = { originalPattern: pattern, _: {} }; // Replace the pattern string with the one required by the specification, whilst // at the same time evaluating it for the subsets and formats formatObj.extendedPattern = pattern.replace(expDTComponents, function ($0) { // See which symbol we're dealing with return expDTComponentsMeta($0, formatObj._); }); // Match the skeleton string with the one required by the specification // this implementation is based on the Date Field Symbol Table: // http://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table // Note: we are adding extra data to the formatObject even though this polyfill // might not support it. skeleton.replace(expDTComponents, function ($0) { // See which symbol we're dealing with return expDTComponentsMeta($0, formatObj); }); return computeFinalPatterns(formatObj); } /** * Processes DateTime formats from CLDR to an easier-to-parse format. * the result of this operation should be cached the first time a particular * calendar is analyzed. * * The specification requires we support at least the following subsets of * date/time components: * * - 'weekday', 'year', 'month', 'day', 'hour', 'minute', 'second' * - 'weekday', 'year', 'month', 'day' * - 'year', 'month', 'day' * - 'year', 'month' * - 'month', 'day' * - 'hour', 'minute', 'second' * - 'hour', 'minute' * * We need to cherry pick at least these subsets from the CLDR data and convert * them into the pattern objects used in the ECMA-402 API. */ function createDateTimeFormats(formats) { var availableFormats = formats.availableFormats; var timeFormats = formats.timeFormats; var dateFormats = formats.dateFormats; var result = []; var skeleton = void 0, pattern = void 0, computed = void 0, i = void 0, j = void 0; var timeRelatedFormats = []; var dateRelatedFormats = []; // Map available (custom) formats into a pattern for createDateTimeFormats for (skeleton in availableFormats) { if (availableFormats.hasOwnProperty(skeleton)) { pattern = availableFormats[skeleton]; computed = createDateTimeFormat(skeleton, pattern); if (computed) { result.push(computed); // in some cases, the format is only displaying date specific props // or time specific props, in which case we need to also produce the // combined formats. if (isDateFormatOnly(computed)) { dateRelatedFormats.push(computed); } else if (isTimeFormatOnly(computed)) { timeRelatedFormats.push(computed); } } } } // Map time formats into a pattern for createDateTimeFormats for (skeleton in timeFormats) { if (timeFormats.hasOwnProperty(skeleton)) { pattern = timeFormats[skeleton]; computed = createDateTimeFormat(skeleton, pattern); if (computed) { result.push(computed); timeRelatedFormats.push(computed); } } } // Map date formats into a pattern for createDateTimeFormats for (skeleton in dateFormats) { if (dateFormats.hasOwnProperty(skeleton)) { pattern = dateFormats[skeleton]; computed = createDateTimeFormat(skeleton, pattern); if (computed) { result.push(computed); dateRelatedFormats.push(computed); } } } // combine custom time and custom date formats when they are orthogonals to complete the // formats supported by CLDR. // This Algo is based on section "Missing Skeleton Fields" from: // http://unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems for (i = 0; i < timeRelatedFormats.length; i += 1) { for (j = 0; j < dateRelatedFormats.length; j += 1) { if (dateRelatedFormats[j].month === 'long') { pattern = dateRelatedFormats[j].weekday ? formats.full : formats.long; } else if (dateRelatedFormats[j].month === 'short') { pattern = formats.medium; } else { pattern = formats.short; } computed = joinDateAndTimeFormats(dateRelatedFormats[j], timeRelatedFormats[i]); computed.originalPattern = pattern; computed.extendedPattern = pattern.replace('{0}', timeRelatedFormats[i].extendedPattern).replace('{1}', dateRelatedFormats[j].extendedPattern).replace(/^[,\s]+|[,\s]+$/gi, ''); result.push(computeFinalPatterns(computed)); } } return result; } // this represents the exceptions of the rule that are not covered by CLDR availableFormats // for single property configurations, they play no role when using multiple properties, and // those that are not in this table, are not exceptions or are not covered by the data we // provide. var validSyntheticProps = { second: { numeric: 's', '2-digit': 'ss' }, minute: { numeric: 'm', '2-digit': 'mm' }, year: { numeric: 'y', '2-digit': 'yy' }, day: { numeric: 'd', '2-digit': 'dd' }, month: { numeric: 'L', '2-digit': 'LL', narrow: 'LLLLL', short: 'LLL', long: 'LLLL' }, weekday: { narrow: 'ccccc', short: 'ccc', long: 'cccc' } }; function generateSyntheticFormat(propName, propValue) { if (validSyntheticProps[propName] && validSyntheticProps[propName][propValue]) { var _ref2; return _ref2 = { originalPattern: validSyntheticProps[propName][propValue], _: defineProperty$1({}, propName, propValue), extendedPattern: "{" + propName + "}" }, defineProperty$1(_ref2, propName, propValue), defineProperty$1(_ref2, "pattern12", "{" + propName + "}"), defineProperty$1(_ref2, "pattern", "{" + propName + "}"), _ref2; } } // An object map of date component keys, saves using a regex later var dateWidths = objCreate(null, { narrow: {}, short: {}, long: {} }); /** * Returns a string for a date component, resolved using multiple inheritance as specified * as specified in the Unicode Technical Standard 35. */ function resolveDateString(data, ca, component, width, key) { // From http://www.unicode.org/reports/tr35/tr35.html#Multiple_Inheritance: // 'In clearly specified instances, resources may inherit from within the same locale. // For example, ... the Buddhist calendar inherits from the Gregorian calendar.' var obj = data[ca] && data[ca][component] ? data[ca][component] : data.gregory[component], // "sideways" inheritance resolves strings when a key doesn't exist alts = { narrow: ['short', 'long'], short: ['long', 'narrow'], long: ['short', 'narrow'] }, // resolved = hop.call(obj, width) ? obj[width] : hop.call(obj, alts[width][0]) ? obj[alts[width][0]] : obj[alts[width][1]]; // `key` wouldn't be specified for components 'dayPeriods' return key !== null ? resolved[key] : resolved; } // Define the DateTimeFormat constructor internally so it cannot be tainted function DateTimeFormatConstructor() { var locales = arguments[0]; var options = arguments[1]; if (!this || this === Intl) { return new Intl.DateTimeFormat(locales, options); } return InitializeDateTimeFormat(toObject(this), locales, options); } defineProperty(Intl, 'DateTimeFormat', { configurable: true, writable: true, value: DateTimeFormatConstructor }); // Must explicitly set prototypes as unwritable defineProperty(DateTimeFormatConstructor, 'prototype', { writable: false }); /** * The abstract operation InitializeDateTimeFormat accepts the arguments dateTimeFormat * (which must be an object), locales, and options. It initializes dateTimeFormat as a * DateTimeFormat object. */ function /* 12.1.1.1 */InitializeDateTimeFormat(dateTimeFormat, locales, options) { // This will be a internal properties object if we're not already initialized var internal = getInternalProperties(dateTimeFormat); // Create an object whose props can be used to restore the values of RegExp props var regexpRestore = createRegExpRestore(); // 1. If dateTimeFormat has an [[initializedIntlObject]] internal property with // value true, throw a TypeError exception. if (internal['[[initializedIntlObject]]'] === true) throw new TypeError('`this` object has already been initialized as an Intl object'); // Need this to access the `internal` object defineProperty(dateTimeFormat, '__getInternalProperties', { value: function value() { // NOTE: Non-standard, for internal use only if (arguments[0] === secret) return internal; } }); // 2. Set the [[initializedIntlObject]] internal property of numberFormat to true. internal['[[initializedIntlObject]]'] = true; // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList // abstract operation (defined in 9.2.1) with argument locales. var requestedLocales = CanonicalizeLocaleList(locales); // 4. Let options be the result of calling the ToDateTimeOptions abstract // operation (defined below) with arguments options, "any", and "date". options = ToDateTimeOptions(options, 'any', 'date'); // 5. Let opt be a new Record. var opt = new Record(); // 6. Let matcher be the result of calling the GetOption abstract operation // (defined in 9.2.9) with arguments options, "localeMatcher", "string", a List // containing the two String values "lookup" and "best fit", and "best fit". var matcher = GetOption(options, 'localeMatcher', 'string', new List('lookup', 'best fit'), 'best fit'); // 7. Set opt.[[localeMatcher]] to matcher. opt['[[localeMatcher]]'] = matcher; // 8. Let DateTimeFormat be the standard built-in object that is the initial // value of Intl.DateTimeFormat. var DateTimeFormat = internals.DateTimeFormat; // This is what we *really* need // 9. Let localeData be the value of the [[localeData]] internal property of // DateTimeFormat. var localeData = DateTimeFormat['[[localeData]]']; // 10. Let r be the result of calling the ResolveLocale abstract operation // (defined in 9.2.5) with the [[availableLocales]] internal property of // DateTimeFormat, requestedLocales, opt, the [[relevantExtensionKeys]] // internal property of DateTimeFormat, and localeData. var r = ResolveLocale(DateTimeFormat['[[availableLocales]]'], requestedLocales, opt, DateTimeFormat['[[relevantExtensionKeys]]'], localeData); // 11. Set the [[locale]] internal property of dateTimeFormat to the value of // r.[[locale]]. internal['[[locale]]'] = r['[[locale]]']; // 12. Set the [[calendar]] internal property of dateTimeFormat to the value of // r.[[ca]]. internal['[[calendar]]'] = r['[[ca]]']; // 13. Set the [[numberingSystem]] internal property of dateTimeFormat to the value of // r.[[nu]]. internal['[[numberingSystem]]'] = r['[[nu]]']; // The specification doesn't tell us to do this, but it's helpful later on internal['[[dataLocale]]'] = r['[[dataLocale]]']; // 14. Let dataLocale be the value of r.[[dataLocale]]. var dataLocale = r['[[dataLocale]]']; // 15. Let tz be the result of calling the [[Get]] internal method of options with // argument "timeZone". var tz = options.timeZone; // 16. If tz is not undefined, then if (tz !== undefined) { // a. Let tz be ToString(tz). // b. Convert tz to upper case as described in 6.1. // NOTE: If an implementation accepts additional time zone values, as permitted // under certain conditions by the Conformance clause, different casing // rules apply. tz = toLatinUpperCase(tz); // c. If tz is not "UTC", then throw a RangeError exception. // ###TODO: accept more time zones### if (tz !== 'UTC') throw new RangeError('timeZone is not supported.'); } // 17. Set the [[timeZone]] internal property of dateTimeFormat to tz. internal['[[timeZone]]'] = tz; // 18. Let opt be a new Record. opt = new Record(); // 19. For each row of Table 3, except the header row, do: for (var prop in dateTimeComponents) { if (!hop.call(dateTimeComponents, prop)) continue; // 20. Let prop be the name given in the Property column of the row. // 21. Let value be the result of calling the GetOption abstract operation, // passing as argument options, the name given in the Property column of the // row, "string", a List containing the strings given in the Values column of // the row, and undefined. var value = GetOption(options, prop, 'string', dateTimeComponents[prop]); // 22. Set opt.[[]] to value. opt['[[' + prop + ']]'] = value; } // Assigned a value below var bestFormat = void 0; // 23. Let dataLocaleData be the result of calling the [[Get]] internal method of // localeData with argument dataLocale. var dataLocaleData = localeData[dataLocale]; // 24. Let formats be the result of calling the [[Get]] internal method of // dataLocaleData with argument "formats". // Note: we process the CLDR formats into the spec'd structure var formats = ToDateTimeFormats(dataLocaleData.formats); // 25. Let matcher be the result of calling the GetOption abstract operation with // arguments options, "formatMatcher", "string", a List containing the two String // values "basic" and "best fit", and "best fit". matcher = GetOption(options, 'formatMatcher', 'string', new List('basic', 'best fit'), 'best fit'); // Optimization: caching the processed formats as a one time operation by // replacing the initial structure from localeData dataLocaleData.formats = formats; // 26. If matcher is "basic", then if (matcher === 'basic') { // 27. Let bestFormat be the result of calling the BasicFormatMatcher abstract // operation (defined below) with opt and formats. bestFormat = BasicFormatMatcher(opt, formats); // 28. Else } else { { // diverging var _hr = GetOption(options, 'hour12', 'boolean' /*, undefined, undefined*/); opt.hour12 = _hr === undefined ? dataLocaleData.hour12 : _hr; } // 29. Let bestFormat be the result of calling the BestFitFormatMatcher // abstract operation (defined below) with opt and formats. bestFormat = BestFitFormatMatcher(opt, formats); } // 30. For each row in Table 3, except the header row, do for (var _prop in dateTimeComponents) { if (!hop.call(dateTimeComponents, _prop)) continue; // a. Let prop be the name given in the Property column of the row. // b. Let pDesc be the result of calling the [[GetOwnProperty]] internal method of // bestFormat with argument prop. // c. If pDesc is not undefined, then if (hop.call(bestFormat, _prop)) { // i. Let p be the result of calling the [[Get]] internal method of bestFormat // with argument prop. var p = bestFormat[_prop]; { // diverging p = bestFormat._ && hop.call(bestFormat._, _prop) ? bestFormat._[_prop] : p; } // ii. Set the [[]] internal property of dateTimeFormat to p. internal['[[' + _prop + ']]'] = p; } } var pattern = void 0; // Assigned a value below // 31. Let hr12 be the result of calling the GetOption abstract operation with // arguments options, "hour12", "boolean", undefined, and undefined. var hr12 = GetOption(options, 'hour12', 'boolean' /*, undefined, undefined*/); // 32. If dateTimeFormat has an internal property [[hour]], then if (internal['[[hour]]']) { // a. If hr12 is undefined, then let hr12 be the result of calling the [[Get]] // internal method of dataLocaleData with argument "hour12". hr12 = hr12 === undefined ? dataLocaleData.hour12 : hr12; // b. Set the [[hour12]] internal property of dateTimeFormat to hr12. internal['[[hour12]]'] = hr12; // c. If hr12 is true, then if (hr12 === true) { // i. Let hourNo0 be the result of calling the [[Get]] internal method of // dataLocaleData with argument "hourNo0". var hourNo0 = dataLocaleData.hourNo0; // ii. Set the [[hourNo0]] internal property of dateTimeFormat to hourNo0. internal['[[hourNo0]]'] = hourNo0; // iii. Let pattern be the result of calling the [[Get]] internal method of // bestFormat with argument "pattern12". pattern = bestFormat.pattern12; } // d. Else else // i. Let pattern be the result of calling the [[Get]] internal method of // bestFormat with argument "pattern". pattern = bestFormat.pattern; } // 33. Else else // a. Let pattern be the result of calling the [[Get]] internal method of // bestFormat with argument "pattern". pattern = bestFormat.pattern; // 34. Set the [[pattern]] internal property of dateTimeFormat to pattern. internal['[[pattern]]'] = pattern; // 35. Set the [[boundFormat]] internal property of dateTimeFormat to undefined. internal['[[boundFormat]]'] = undefined; // 36. Set the [[initializedDateTimeFormat]] internal property of dateTimeFormat to // true. internal['[[initializedDateTimeFormat]]'] = true; // In ES3, we need to pre-bind the format() function if (es3) dateTimeFormat.format = GetFormatDateTime.call(dateTimeFormat); // Restore the RegExp properties regexpRestore(); // Return the newly initialised object return dateTimeFormat; } /** * Several DateTimeFormat algorithms use values from the following table, which provides * property names and allowable values for the components of date and time formats: */ var dateTimeComponents = { weekday: ["narrow", "short", "long"], era: ["narrow", "short", "long"], year: ["2-digit", "numeric"], month: ["2-digit", "numeric", "narrow", "short", "long"], day: ["2-digit", "numeric"], hour: ["2-digit", "numeric"], minute: ["2-digit", "numeric"], second: ["2-digit", "numeric"], timeZoneName: ["short", "long"] }; /** * When the ToDateTimeOptions abstract operation is called with arguments options, * required, and defaults, the following steps are taken: */ function ToDateTimeFormats(formats) { if (Object.prototype.toString.call(formats) === '[object Array]') { return formats; } return createDateTimeFormats(formats); } /** * When the ToDateTimeOptions abstract operation is called with arguments options, * required, and defaults, the following steps are taken: */ function ToDateTimeOptions(options, required, defaults) { // 1. If options is undefined, then let options be null, else let options be // ToObject(options). if (options === undefined) options = null;else { // (#12) options needs to be a Record, but it also needs to inherit properties var opt2 = toObject(options); options = new Record(); for (var k in opt2) { options[k] = opt2[k]; } } // 2. Let create be the standard built-in function object defined in ES5, 15.2.3.5. var create = objCreate; // 3. Let options be the result of calling the [[Call]] internal method of create with // undefined as the this value and an argument list containing the single item // options. options = create(options); // 4. Let needDefaults be true. var needDefaults = true; // 5. If required is "date" or "any", then if (required === 'date' || required === 'any') { // a. For each of the property names "weekday", "year", "month", "day": // i. If the result of calling the [[Get]] internal method of options with the // property name is not undefined, then let needDefaults be false. if (options.weekday !== undefined || options.year !== undefined || options.month !== undefined || options.day !== undefined) needDefaults = false; } // 6. If required is "time" or "any", then if (required === 'time' || required === 'any') { // a. For each of the property names "hour", "minute", "second": // i. If the result of calling the [[Get]] internal method of options with the // property name is not undefined, then let needDefaults be false. if (options.hour !== undefined || options.minute !== undefined || options.second !== undefined) needDefaults = false; } // 7. If needDefaults is true and defaults is either "date" or "all", then if (needDefaults && (defaults === 'date' || defaults === 'all')) // a. For each of the property names "year", "month", "day": // i. Call the [[DefineOwnProperty]] internal method of options with the // property name, Property Descriptor {[[Value]]: "numeric", [[Writable]]: // true, [[Enumerable]]: true, [[Configurable]]: true}, and false. options.year = options.month = options.day = 'numeric'; // 8. If needDefaults is true and defaults is either "time" or "all", then if (needDefaults && (defaults === 'time' || defaults === 'all')) // a. For each of the property names "hour", "minute", "second": // i. Call the [[DefineOwnProperty]] internal method of options with the // property name, Property Descriptor {[[Value]]: "numeric", [[Writable]]: // true, [[Enumerable]]: true, [[Configurable]]: true}, and false. options.hour = options.minute = options.second = 'numeric'; // 9. Return options. return options; } /** * When the BasicFormatMatcher abstract operation is called with two arguments options and * formats, the following steps are taken: */ function BasicFormatMatcher(options, formats) { // 1. Let removalPenalty be 120. var removalPenalty = 120; // 2. Let additionPenalty be 20. var additionPenalty = 20; // 3. Let longLessPenalty be 8. var longLessPenalty = 8; // 4. Let longMorePenalty be 6. var longMorePenalty = 6; // 5. Let shortLessPenalty be 6. var shortLessPenalty = 6; // 6. Let shortMorePenalty be 3. var shortMorePenalty = 3; // 7. Let bestScore be -Infinity. var bestScore = -Infinity; // 8. Let bestFormat be undefined. var bestFormat = void 0; // 9. Let i be 0. var i = 0; // 10. Assert: formats is an Array object. // 11. Let len be the result of calling the [[Get]] internal method of formats with argument "length". var len = formats.length; // 12. Repeat while i < len: while (i < len) { // a. Let format be the result of calling the [[Get]] internal method of formats with argument ToString(i). var format = formats[i]; // b. Let score be 0. var score = 0; // c. For each property shown in Table 3: for (var property in dateTimeComponents) { if (!hop.call(dateTimeComponents, property)) continue; // i. Let optionsProp be options.[[]]. var optionsProp = options['[[' + property + ']]']; // ii. Let formatPropDesc be the result of calling the [[GetOwnProperty]] internal method of format // with argument property. // iii. If formatPropDesc is not undefined, then // 1. Let formatProp be the result of calling the [[Get]] internal method of format with argument property. var formatProp = hop.call(format, property) ? format[property] : undefined; // iv. If optionsProp is undefined and formatProp is not undefined, then decrease score by // additionPenalty. if (optionsProp === undefined && formatProp !== undefined) score -= additionPenalty; // v. Else if optionsProp is not undefined and formatProp is undefined, then decrease score by // removalPenalty. else if (optionsProp !== undefined && formatProp === undefined) score -= removalPenalty; // vi. Else else { // 1. Let values be the array ["2-digit", "numeric", "narrow", "short", // "long"]. var values = ['2-digit', 'numeric', 'narrow', 'short', 'long']; // 2. Let optionsPropIndex be the index of optionsProp within values. var optionsPropIndex = arrIndexOf.call(values, optionsProp); // 3. Let formatPropIndex be the index of formatProp within values. var formatPropIndex = arrIndexOf.call(values, formatProp); // 4. Let delta be max(min(formatPropIndex - optionsPropIndex, 2), -2). var delta = Math.max(Math.min(formatPropIndex - optionsPropIndex, 2), -2); // 5. If delta = 2, decrease score by longMorePenalty. if (delta === 2) score -= longMorePenalty; // 6. Else if delta = 1, decrease score by shortMorePenalty. else if (delta === 1) score -= shortMorePenalty; // 7. Else if delta = -1, decrease score by shortLessPenalty. else if (delta === -1) score -= shortLessPenalty; // 8. Else if delta = -2, decrease score by longLessPenalty. else if (delta === -2) score -= longLessPenalty; } } // d. If score > bestScore, then if (score > bestScore) { // i. Let bestScore be score. bestScore = score; // ii. Let bestFormat be format. bestFormat = format; } // e. Increase i by 1. i++; } // 13. Return bestFormat. return bestFormat; } /** * When the BestFitFormatMatcher abstract operation is called with two arguments options * and formats, it performs implementation dependent steps, which should return a set of * component representations that a typical user of the selected locale would perceive as * at least as good as the one returned by BasicFormatMatcher. * * This polyfill defines the algorithm to be the same as BasicFormatMatcher, * with the addition of bonus points awarded where the requested format is of * the same data type as the potentially matching format. * * This algo relies on the concept of closest distance matching described here: * http://unicode.org/reports/tr35/tr35-dates.html#Matching_Skeletons * Typically a “best match” is found using a closest distance match, such as: * * Symbols requesting a best choice for the locale are replaced. * j → one of {H, k, h, K}; C → one of {a, b, B} * -> Covered by cldr.js matching process * * For fields with symbols representing the same type (year, month, day, etc): * Most symbols have a small distance from each other. * M ≅ L; E ≅ c; a ≅ b ≅ B; H ≅ k ≅ h ≅ K; ... * -> Covered by cldr.js matching process * * Width differences among fields, other than those marking text vs numeric, are given small distance from each other. * MMM ≅ MMMM * MM ≅ M * Numeric and text fields are given a larger distance from each other. * MMM ≈ MM * Symbols representing substantial differences (week of year vs week of month) are given much larger a distances from each other. * d ≋ D; ... * Missing or extra fields cause a match to fail. (But see Missing Skeleton Fields). * * * For example, * * { month: 'numeric', day: 'numeric' } * * should match * * { month: '2-digit', day: '2-digit' } * * rather than * * { month: 'short', day: 'numeric' } * * This makes sense because a user requesting a formatted date with numeric parts would * not expect to see the returned format containing narrow, short or long part names */ function BestFitFormatMatcher(options, formats) { /** Diverging: this block implements the hack for single property configuration, eg.: * * `new Intl.DateTimeFormat('en', {day: 'numeric'})` * * should produce a single digit with the day of the month. This is needed because * CLDR `availableFormats` data structure doesn't cover these cases. */ { var optionsPropNames = []; for (var property in dateTimeComponents) { if (!hop.call(dateTimeComponents, property)) continue; if (options['[[' + property + ']]'] !== undefined) { optionsPropNames.push(property); } } if (optionsPropNames.length === 1) { var _bestFormat = generateSyntheticFormat(optionsPropNames[0], options['[[' + optionsPropNames[0] + ']]']); if (_bestFormat) { return _bestFormat; } } } // 1. Let removalPenalty be 120. var removalPenalty = 120; // 2. Let additionPenalty be 20. var additionPenalty = 20; // 3. Let longLessPenalty be 8. var longLessPenalty = 8; // 4. Let longMorePenalty be 6. var longMorePenalty = 6; // 5. Let shortLessPenalty be 6. var shortLessPenalty = 6; // 6. Let shortMorePenalty be 3. var shortMorePenalty = 3; var patternPenalty = 2; var hour12Penalty = 1; // 7. Let bestScore be -Infinity. var bestScore = -Infinity; // 8. Let bestFormat be undefined. var bestFormat = void 0; // 9. Let i be 0. var i = 0; // 10. Assert: formats is an Array object. // 11. Let len be the result of calling the [[Get]] internal method of formats with argument "length". var len = formats.length; // 12. Repeat while i < len: while (i < len) { // a. Let format be the result of calling the [[Get]] internal method of formats with argument ToString(i). var format = formats[i]; // b. Let score be 0. var score = 0; // c. For each property shown in Table 3: for (var _property in dateTimeComponents) { if (!hop.call(dateTimeComponents, _property)) continue; // i. Let optionsProp be options.[[]]. var optionsProp = options['[[' + _property + ']]']; // ii. Let formatPropDesc be the result of calling the [[GetOwnProperty]] internal method of format // with argument property. // iii. If formatPropDesc is not undefined, then // 1. Let formatProp be the result of calling the [[Get]] internal method of format with argument property. var formatProp = hop.call(format, _property) ? format[_property] : undefined; // Diverging: using the default properties produced by the pattern/skeleton // to match it with user options, and apply a penalty var patternProp = hop.call(format._, _property) ? format._[_property] : undefined; if (optionsProp !== patternProp) { score -= patternPenalty; } // iv. If optionsProp is undefined and formatProp is not undefined, then decrease score by // additionPenalty. if (optionsProp === undefined && formatProp !== undefined) score -= additionPenalty; // v. Else if optionsProp is not undefined and formatProp is undefined, then decrease score by // removalPenalty. else if (optionsProp !== undefined && formatProp === undefined) score -= removalPenalty; // vi. Else else { // 1. Let values be the array ["2-digit", "numeric", "narrow", "short", // "long"]. var values = ['2-digit', 'numeric', 'narrow', 'short', 'long']; // 2. Let optionsPropIndex be the index of optionsProp within values. var optionsPropIndex = arrIndexOf.call(values, optionsProp); // 3. Let formatPropIndex be the index of formatProp within values. var formatPropIndex = arrIndexOf.call(values, formatProp); // 4. Let delta be max(min(formatPropIndex - optionsPropIndex, 2), -2). var delta = Math.max(Math.min(formatPropIndex - optionsPropIndex, 2), -2); { // diverging from spec // When the bestFit argument is true, subtract additional penalty where data types are not the same if (formatPropIndex <= 1 && optionsPropIndex >= 2 || formatPropIndex >= 2 && optionsPropIndex <= 1) { // 5. If delta = 2, decrease score by longMorePenalty. if (delta > 0) score -= longMorePenalty;else if (delta < 0) score -= longLessPenalty; } else { // 5. If delta = 2, decrease score by longMorePenalty. if (delta > 1) score -= shortMorePenalty;else if (delta < -1) score -= shortLessPenalty; } } } } { // diverging to also take into consideration differences between 12 or 24 hours // which is special for the best fit only. if (format._.hour12 !== options.hour12) { score -= hour12Penalty; } } // d. If score > bestScore, then if (score > bestScore) { // i. Let bestScore be score. bestScore = score; // ii. Let bestFormat be format. bestFormat = format; } // e. Increase i by 1. i++; } // 13. Return bestFormat. return bestFormat; } /* 12.2.3 */internals.DateTimeFormat = { '[[availableLocales]]': [], '[[relevantExtensionKeys]]': ['ca', 'nu'], '[[localeData]]': {} }; /** * When the supportedLocalesOf method of Intl.DateTimeFormat is called, the * following steps are taken: */ /* 12.2.2 */ defineProperty(Intl.DateTimeFormat, 'supportedLocalesOf', { configurable: true, writable: true, value: fnBind.call(function (locales) { // Bound functions only have the `this` value altered if being used as a constructor, // this lets us imitate a native function that has no constructor if (!hop.call(this, '[[availableLocales]]')) throw new TypeError('supportedLocalesOf() is not a constructor'); // Create an object whose props can be used to restore the values of RegExp props var regexpRestore = createRegExpRestore(), // 1. If options is not provided, then let options be undefined. options = arguments[1], // 2. Let availableLocales be the value of the [[availableLocales]] internal // property of the standard built-in object that is the initial value of // Intl.NumberFormat. availableLocales = this['[[availableLocales]]'], // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList // abstract operation (defined in 9.2.1) with argument locales. requestedLocales = CanonicalizeLocaleList(locales); // Restore the RegExp properties regexpRestore(); // 4. Return the result of calling the SupportedLocales abstract operation // (defined in 9.2.8) with arguments availableLocales, requestedLocales, // and options. return SupportedLocales(availableLocales, requestedLocales, options); }, internals.NumberFormat) }); /** * This named accessor property returns a function that formats a number * according to the effective locale and the formatting options of this * DateTimeFormat object. */ /* 12.3.2 */defineProperty(Intl.DateTimeFormat.prototype, 'format', { configurable: true, get: GetFormatDateTime }); function GetFormatDateTime() { var internal = this !== null && babelHelpers$1["typeof"](this) === 'object' && getInternalProperties(this); // Satisfy test 12.3_b if (!internal || !internal['[[initializedDateTimeFormat]]']) throw new TypeError('`this` value for format() is not an initialized Intl.DateTimeFormat object.'); // The value of the [[Get]] attribute is a function that takes the following // steps: // 1. If the [[boundFormat]] internal property of this DateTimeFormat object // is undefined, then: if (internal['[[boundFormat]]'] === undefined) { // a. Let F be a Function object, with internal properties set as // specified for built-in functions in ES5, 15, or successor, and the // length property set to 0, that takes the argument date and // performs the following steps: var F = function F() { var date = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0]; // i. If date is not provided or is undefined, then let x be the // result as if by the expression Date.now() where Date.now is // the standard built-in function defined in ES5, 15.9.4.4. // ii. Else let x be ToNumber(date). // iii. Return the result of calling the FormatDateTime abstract // operation (defined below) with arguments this and x. var x = date === undefined ? Date.now() : toNumber(date); return FormatDateTime(this, x); }; // b. Let bind be the standard built-in function object defined in ES5, // 15.3.4.5. // c. Let bf be the result of calling the [[Call]] internal method of // bind with F as the this value and an argument list containing // the single item this. var bf = fnBind.call(F, this); // d. Set the [[boundFormat]] internal property of this NumberFormat // object to bf. internal['[[boundFormat]]'] = bf; } // Return the value of the [[boundFormat]] internal property of this // NumberFormat object. return internal['[[boundFormat]]']; } function formatToParts$1() { var date = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0]; var internal = this !== null && babelHelpers$1["typeof"](this) === 'object' && getInternalProperties(this); if (!internal || !internal['[[initializedDateTimeFormat]]']) throw new TypeError('`this` value for formatToParts() is not an initialized Intl.DateTimeFormat object.'); var x = date === undefined ? Date.now() : toNumber(date); return FormatToPartsDateTime(this, x); } Object.defineProperty(Intl.DateTimeFormat.prototype, 'formatToParts', { enumerable: false, writable: true, configurable: true, value: formatToParts$1 }); function CreateDateTimeParts(dateTimeFormat, x) { // 1. If x is not a finite Number, then throw a RangeError exception. if (!isFinite(x)) throw new RangeError('Invalid valid date passed to format'); var internal = dateTimeFormat.__getInternalProperties(secret); // Creating restore point for properties on the RegExp object... please wait /* let regexpRestore = */createRegExpRestore(); // ###TODO: review this // 2. Let locale be the value of the [[locale]] internal property of dateTimeFormat. var locale = internal['[[locale]]']; // 3. Let nf be the result of creating a new NumberFormat object as if by the // expression new Intl.NumberFormat([locale], {useGrouping: false}) where // Intl.NumberFormat is the standard built-in constructor defined in 11.1.3. var nf = new Intl.NumberFormat([locale], { useGrouping: false }); // 4. Let nf2 be the result of creating a new NumberFormat object as if by the // expression new Intl.NumberFormat([locale], {minimumIntegerDigits: 2, useGrouping: // false}) where Intl.NumberFormat is the standard built-in constructor defined in // 11.1.3. var nf2 = new Intl.NumberFormat([locale], { minimumIntegerDigits: 2, useGrouping: false }); // 5. Let tm be the result of calling the ToLocalTime abstract operation (defined // below) with x, the value of the [[calendar]] internal property of dateTimeFormat, // and the value of the [[timeZone]] internal property of dateTimeFormat. var tm = ToLocalTime(x, internal['[[calendar]]'], internal['[[timeZone]]']); // 6. Let result be the value of the [[pattern]] internal property of dateTimeFormat. var pattern = internal['[[pattern]]']; // 7. var result = new List(); // 8. var index = 0; // 9. var beginIndex = pattern.indexOf('{'); // 10. var endIndex = 0; // Need the locale minus any extensions var dataLocale = internal['[[dataLocale]]']; // Need the calendar data from CLDR var localeData = internals.DateTimeFormat['[[localeData]]'][dataLocale].calendars; var ca = internal['[[calendar]]']; // 11. while (beginIndex !== -1) { var fv = void 0; // a. endIndex = pattern.indexOf('}', beginIndex); // b. if (endIndex === -1) { throw new Error('Unclosed pattern'); } // c. if (beginIndex > index) { arrPush.call(result, { type: 'literal', value: pattern.substring(index, beginIndex) }); } // d. var p = pattern.substring(beginIndex + 1, endIndex); // e. if (dateTimeComponents.hasOwnProperty(p)) { // i. Let f be the value of the [[

]] internal property of dateTimeFormat. var f = internal['[[' + p + ']]']; // ii. Let v be the value of tm.[[

]]. var v = tm['[[' + p + ']]']; // iii. If p is "year" and v ≤ 0, then let v be 1 - v. if (p === 'year' && v <= 0) { v = 1 - v; } // iv. If p is "month", then increase v by 1. else if (p === 'month') { v++; } // v. If p is "hour" and the value of the [[hour12]] internal property of // dateTimeFormat is true, then else if (p === 'hour' && internal['[[hour12]]'] === true) { // 1. Let v be v modulo 12. v = v % 12; // 2. If v is 0 and the value of the [[hourNo0]] internal property of // dateTimeFormat is true, then let v be 12. if (v === 0 && internal['[[hourNo0]]'] === true) { v = 12; } } // vi. If f is "numeric", then if (f === 'numeric') { // 1. Let fv be the result of calling the FormatNumber abstract operation // (defined in 11.3.2) with arguments nf and v. fv = FormatNumber(nf, v); } // vii. Else if f is "2-digit", then else if (f === '2-digit') { // 1. Let fv be the result of calling the FormatNumber abstract operation // with arguments nf2 and v. fv = FormatNumber(nf2, v); // 2. If the length of fv is greater than 2, let fv be the substring of fv // containing the last two characters. if (fv.length > 2) { fv = fv.slice(-2); } } // viii. Else if f is "narrow", "short", or "long", then let fv be a String // value representing f in the desired form; the String value depends upon // the implementation and the effective locale and calendar of // dateTimeFormat. If p is "month", then the String value may also depend // on whether dateTimeFormat has a [[day]] internal property. If p is // "timeZoneName", then the String value may also depend on the value of // the [[inDST]] field of tm. else if (f in dateWidths) { switch (p) { case 'month': fv = resolveDateString(localeData, ca, 'months', f, tm['[[' + p + ']]']); break; case 'weekday': try { fv = resolveDateString(localeData, ca, 'days', f, tm['[[' + p + ']]']); // fv = resolveDateString(ca.days, f)[tm['[['+ p +']]']]; } catch (e) { throw new Error('Could not find weekday data for locale ' + locale); } break; case 'timeZoneName': fv = ''; // ###TODO break; case 'era': try { fv = resolveDateString(localeData, ca, 'eras', f, tm['[[' + p + ']]']); } catch (e) { throw new Error('Could not find era data for locale ' + locale); } break; default: fv = tm['[[' + p + ']]']; } } // ix arrPush.call(result, { type: p, value: fv }); // f. } else if (p === 'ampm') { // i. var _v = tm['[[hour]]']; // ii./iii. fv = resolveDateString(localeData, ca, 'dayPeriods', _v > 11 ? 'pm' : 'am', null); // iv. arrPush.call(result, { type: 'dayPeriod', value: fv }); // g. } else { arrPush.call(result, { type: 'literal', value: pattern.substring(beginIndex, endIndex + 1) }); } // h. index = endIndex + 1; // i. beginIndex = pattern.indexOf('{', index); } // 12. if (endIndex < pattern.length - 1) { arrPush.call(result, { type: 'literal', value: pattern.substr(endIndex + 1) }); } // 13. return result; } /** * When the FormatDateTime abstract operation is called with arguments dateTimeFormat * (which must be an object initialized as a DateTimeFormat) and x (which must be a Number * value), it returns a String value representing x (interpreted as a time value as * specified in ES5, 15.9.1.1) according to the effective locale and the formatting * options of dateTimeFormat. */ function FormatDateTime(dateTimeFormat, x) { var parts = CreateDateTimeParts(dateTimeFormat, x); var result = ''; for (var i = 0; parts.length > i; i++) { var part = parts[i]; result += part.value; } return result; } function FormatToPartsDateTime(dateTimeFormat, x) { var parts = CreateDateTimeParts(dateTimeFormat, x); var result = []; for (var i = 0; parts.length > i; i++) { var part = parts[i]; result.push({ type: part.type, value: part.value }); } return result; } /** * When the ToLocalTime abstract operation is called with arguments date, calendar, and * timeZone, the following steps are taken: */ function ToLocalTime(date, calendar, timeZone) { // 1. Apply calendrical calculations on date for the given calendar and time zone to // produce weekday, era, year, month, day, hour, minute, second, and inDST values. // The calculations should use best available information about the specified // calendar and time zone. If the calendar is "gregory", then the calculations must // match the algorithms specified in ES5, 15.9.1, except that calculations are not // bound by the restrictions on the use of best available information on time zones // for local time zone adjustment and daylight saving time adjustment imposed by // ES5, 15.9.1.7 and 15.9.1.8. // ###TODO### var d = new Date(date), m = 'get' + (timeZone || ''); // 2. Return a Record with fields [[weekday]], [[era]], [[year]], [[month]], [[day]], // [[hour]], [[minute]], [[second]], and [[inDST]], each with the corresponding // calculated value. return new Record({ '[[weekday]]': d[m + 'Day'](), '[[era]]': +(d[m + 'FullYear']() >= 0), '[[year]]': d[m + 'FullYear'](), '[[month]]': d[m + 'Month'](), '[[day]]': d[m + 'Date'](), '[[hour]]': d[m + 'Hours'](), '[[minute]]': d[m + 'Minutes'](), '[[second]]': d[m + 'Seconds'](), '[[inDST]]': false // ###TODO### }); } /** * The function returns a new object whose properties and attributes are set as if * constructed by an object literal assigning to each of the following properties the * value of the corresponding internal property of this DateTimeFormat object (see 12.4): * locale, calendar, numberingSystem, timeZone, hour12, weekday, era, year, month, day, * hour, minute, second, and timeZoneName. Properties whose corresponding internal * properties are not present are not assigned. */ /* 12.3.3 */defineProperty(Intl.DateTimeFormat.prototype, 'resolvedOptions', { writable: true, configurable: true, value: function value() { var prop = void 0, descs = new Record(), props = ['locale', 'calendar', 'numberingSystem', 'timeZone', 'hour12', 'weekday', 'era', 'year', 'month', 'day', 'hour', 'minute', 'second', 'timeZoneName'], internal = this !== null && babelHelpers$1["typeof"](this) === 'object' && getInternalProperties(this); // Satisfy test 12.3_b if (!internal || !internal['[[initializedDateTimeFormat]]']) throw new TypeError('`this` value for resolvedOptions() is not an initialized Intl.DateTimeFormat object.'); for (var i = 0, max = props.length; i < max; i++) { if (hop.call(internal, prop = '[[' + props[i] + ']]')) descs[props[i]] = { value: internal[prop], writable: true, configurable: true, enumerable: true }; } return objCreate({}, descs); } }); var ls = Intl.__localeSensitiveProtos = { Number: {}, Date: {} }; /** * When the toLocaleString method is called with optional arguments locales and options, * the following steps are taken: */ /* 13.2.1 */ls.Number.toLocaleString = function () { // Satisfy test 13.2.1_1 if (Object.prototype.toString.call(this) !== '[object Number]') throw new TypeError('`this` value must be a number for Number.prototype.toLocaleString()'); // 1. Let x be this Number value (as defined in ES5, 15.7.4). // 2. If locales is not provided, then let locales be undefined. // 3. If options is not provided, then let options be undefined. // 4. Let numberFormat be the result of creating a new object as if by the // expression new Intl.NumberFormat(locales, options) where // Intl.NumberFormat is the standard built-in constructor defined in 11.1.3. // 5. Return the result of calling the FormatNumber abstract operation // (defined in 11.3.2) with arguments numberFormat and x. return FormatNumber(new NumberFormatConstructor(arguments[0], arguments[1]), this); }; /** * When the toLocaleString method is called with optional arguments locales and options, * the following steps are taken: */ /* 13.3.1 */ls.Date.toLocaleString = function () { // Satisfy test 13.3.0_1 if (Object.prototype.toString.call(this) !== '[object Date]') throw new TypeError('`this` value must be a Date instance for Date.prototype.toLocaleString()'); // 1. Let x be this time value (as defined in ES5, 15.9.5). var x = +this; // 2. If x is NaN, then return "Invalid Date". if (isNaN(x)) return 'Invalid Date'; // 3. If locales is not provided, then let locales be undefined. var locales = arguments[0]; // 4. If options is not provided, then let options be undefined. var options = arguments[1]; // 5. Let options be the result of calling the ToDateTimeOptions abstract // operation (defined in 12.1.1) with arguments options, "any", and "all". options = ToDateTimeOptions(options, 'any', 'all'); // 6. Let dateTimeFormat be the result of creating a new object as if by the // expression new Intl.DateTimeFormat(locales, options) where // Intl.DateTimeFormat is the standard built-in constructor defined in 12.1.3. var dateTimeFormat = new DateTimeFormatConstructor(locales, options); // 7. Return the result of calling the FormatDateTime abstract operation (defined // in 12.3.2) with arguments dateTimeFormat and x. return FormatDateTime(dateTimeFormat, x); }; /** * When the toLocaleDateString method is called with optional arguments locales and * options, the following steps are taken: */ /* 13.3.2 */ls.Date.toLocaleDateString = function () { // Satisfy test 13.3.0_1 if (Object.prototype.toString.call(this) !== '[object Date]') throw new TypeError('`this` value must be a Date instance for Date.prototype.toLocaleDateString()'); // 1. Let x be this time value (as defined in ES5, 15.9.5). var x = +this; // 2. If x is NaN, then return "Invalid Date". if (isNaN(x)) return 'Invalid Date'; // 3. If locales is not provided, then let locales be undefined. var locales = arguments[0], // 4. If options is not provided, then let options be undefined. options = arguments[1]; // 5. Let options be the result of calling the ToDateTimeOptions abstract // operation (defined in 12.1.1) with arguments options, "date", and "date". options = ToDateTimeOptions(options, 'date', 'date'); // 6. Let dateTimeFormat be the result of creating a new object as if by the // expression new Intl.DateTimeFormat(locales, options) where // Intl.DateTimeFormat is the standard built-in constructor defined in 12.1.3. var dateTimeFormat = new DateTimeFormatConstructor(locales, options); // 7. Return the result of calling the FormatDateTime abstract operation (defined // in 12.3.2) with arguments dateTimeFormat and x. return FormatDateTime(dateTimeFormat, x); }; /** * When the toLocaleTimeString method is called with optional arguments locales and * options, the following steps are taken: */ /* 13.3.3 */ls.Date.toLocaleTimeString = function () { // Satisfy test 13.3.0_1 if (Object.prototype.toString.call(this) !== '[object Date]') throw new TypeError('`this` value must be a Date instance for Date.prototype.toLocaleTimeString()'); // 1. Let x be this time value (as defined in ES5, 15.9.5). var x = +this; // 2. If x is NaN, then return "Invalid Date". if (isNaN(x)) return 'Invalid Date'; // 3. If locales is not provided, then let locales be undefined. var locales = arguments[0]; // 4. If options is not provided, then let options be undefined. var options = arguments[1]; // 5. Let options be the result of calling the ToDateTimeOptions abstract // operation (defined in 12.1.1) with arguments options, "time", and "time". options = ToDateTimeOptions(options, 'time', 'time'); // 6. Let dateTimeFormat be the result of creating a new object as if by the // expression new Intl.DateTimeFormat(locales, options) where // Intl.DateTimeFormat is the standard built-in constructor defined in 12.1.3. var dateTimeFormat = new DateTimeFormatConstructor(locales, options); // 7. Return the result of calling the FormatDateTime abstract operation (defined // in 12.3.2) with arguments dateTimeFormat and x. return FormatDateTime(dateTimeFormat, x); }; defineProperty(Intl, '__applyLocaleSensitivePrototypes', { writable: true, configurable: true, value: function value() { defineProperty(Number.prototype, 'toLocaleString', { writable: true, configurable: true, value: ls.Number.toLocaleString }); // Need this here for IE 8, to avoid the _DontEnum_ bug defineProperty(Date.prototype, 'toLocaleString', { writable: true, configurable: true, value: ls.Date.toLocaleString }); for (var k in ls.Date) { if (hop.call(ls.Date, k)) defineProperty(Date.prototype, k, { writable: true, configurable: true, value: ls.Date[k] }); } } }); /** * Can't really ship a single script with data for hundreds of locales, so we provide * this __addLocaleData method as a means for the developer to add the data on an * as-needed basis */ defineProperty(Intl, '__addLocaleData', { value: function value(data) { if (!IsStructurallyValidLanguageTag(data.locale)) throw new Error("Object passed doesn't identify itself with a valid language tag"); addLocaleData(data, data.locale); } }); function addLocaleData(data, tag) { // Both NumberFormat and DateTimeFormat require number data, so throw if it isn't present if (!data.number) throw new Error("Object passed doesn't contain locale data for Intl.NumberFormat"); var locale = void 0, locales = [tag], parts = tag.split('-'); // Create fallbacks for locale data with scripts, e.g. Latn, Hans, Vaii, etc if (parts.length > 2 && parts[1].length === 4) arrPush.call(locales, parts[0] + '-' + parts[2]); while (locale = arrShift.call(locales)) { // Add to NumberFormat internal properties as per 11.2.3 arrPush.call(internals.NumberFormat['[[availableLocales]]'], locale); internals.NumberFormat['[[localeData]]'][locale] = data.number; // ...and DateTimeFormat internal properties as per 12.2.3 if (data.date) { data.date.nu = data.number.nu; arrPush.call(internals.DateTimeFormat['[[availableLocales]]'], locale); internals.DateTimeFormat['[[localeData]]'][locale] = data.date; } } // If this is the first set of locale data added, make it the default if (defaultLocale === undefined) setDefaultLocale(tag); } defineProperty(Intl, '__disableRegExpRestore', { value: function value() { internals.disableRegExpRestore = true; } }); module.exports = Intl; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24))) /***/ }), /* 336 */, /* 337 */, /* 338 */, /* 339 */, /* 340 */, /* 341 */, /* 342 */, /* 343 */, /* 344 */, /* 345 */, /* 346 */, /* 347 */, /* 348 */, /* 349 */, /* 350 */, /* 351 */, /* 352 */, /* 353 */, /* 354 */, /* 355 */, /* 356 */, /* 357 */, /* 358 */, /* 359 */, /* 360 */, /* 361 */, /* 362 */, /* 363 */, /* 364 */, /* 365 */, /* 366 */, /* 367 */, /* 368 */, /* 369 */, /* 370 */, /* 371 */, /* 372 */, /* 373 */, /* 374 */, /* 375 */, /* 376 */, /* 377 */, /* 378 */, /* 379 */, /* 380 */, /* 381 */, /* 382 */, /* 383 */, /* 384 */, /* 385 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ (function (global, factory) { true ? factory() : typeof define === 'function' && define.amd ? define(factory) : (factory()); }(this, (function () { 'use strict'; /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var Zone$1 = (function (global) { var performance = global['performance']; function mark(name) { performance && performance['mark'] && performance['mark'](name); } function performanceMeasure(name, label) { performance && performance['measure'] && performance['measure'](name, label); } mark('Zone'); var checkDuplicate = global[('__zone_symbol__forceDuplicateZoneCheck')] === true; if (global['Zone']) { // if global['Zone'] already exists (maybe zone.js was already loaded or // some other lib also registered a global object named Zone), we may need // to throw an error, but sometimes user may not want this error. // For example, // we have two web pages, page1 includes zone.js, page2 doesn't. // and the 1st time user load page1 and page2, everything work fine, // but when user load page2 again, error occurs because global['Zone'] already exists. // so we add a flag to let user choose whether to throw this error or not. // By default, if existing Zone is from zone.js, we will not throw the error. if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') { throw new Error('Zone already loaded.'); } else { return global['Zone']; } } var Zone = /** @class */ (function () { function Zone(parent, zoneSpec) { this._parent = parent; this._name = zoneSpec ? zoneSpec.name || 'unnamed' : ''; this._properties = zoneSpec && zoneSpec.properties || {}; this._zoneDelegate = new ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec); } Zone.assertZonePatched = function () { if (global['Promise'] !== patches['ZoneAwarePromise']) { throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' + 'has been overwritten.\n' + 'Most likely cause is that a Promise polyfill has been loaded ' + 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' + 'If you must load one, do so before loading zone.js.)'); } }; Object.defineProperty(Zone, "root", { get: function () { var zone = Zone.current; while (zone.parent) { zone = zone.parent; } return zone; }, enumerable: true, configurable: true }); Object.defineProperty(Zone, "current", { get: function () { return _currentZoneFrame.zone; }, enumerable: true, configurable: true }); Object.defineProperty(Zone, "currentTask", { get: function () { return _currentTask; }, enumerable: true, configurable: true }); Zone.__load_patch = function (name, fn) { if (patches.hasOwnProperty(name)) { if (checkDuplicate) { throw Error('Already loaded patch: ' + name); } } else if (!global['__Zone_disable_' + name]) { var perfName = 'Zone:' + name; mark(perfName); patches[name] = fn(global, Zone, _api); performanceMeasure(perfName, perfName); } }; Object.defineProperty(Zone.prototype, "parent", { get: function () { return this._parent; }, enumerable: true, configurable: true }); Object.defineProperty(Zone.prototype, "name", { get: function () { return this._name; }, enumerable: true, configurable: true }); Zone.prototype.get = function (key) { var zone = this.getZoneWith(key); if (zone) return zone._properties[key]; }; Zone.prototype.getZoneWith = function (key) { var current = this; while (current) { if (current._properties.hasOwnProperty(key)) { return current; } current = current._parent; } return null; }; Zone.prototype.fork = function (zoneSpec) { if (!zoneSpec) throw new Error('ZoneSpec required!'); return this._zoneDelegate.fork(this, zoneSpec); }; Zone.prototype.wrap = function (callback, source) { if (typeof callback !== 'function') { throw new Error('Expecting function got: ' + callback); } var _callback = this._zoneDelegate.intercept(this, callback, source); var zone = this; return function () { return zone.runGuarded(_callback, this, arguments, source); }; }; Zone.prototype.run = function (callback, applyThis, applyArgs, source) { _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; try { return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); } finally { _currentZoneFrame = _currentZoneFrame.parent; } }; Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) { if (applyThis === void 0) { applyThis = null; } _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; try { try { return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source); } catch (error) { if (this._zoneDelegate.handleError(this, error)) { throw error; } } } finally { _currentZoneFrame = _currentZoneFrame.parent; } }; Zone.prototype.runTask = function (task, applyThis, applyArgs) { if (task.zone != this) { throw new Error('A task can only be run in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); } // https://github.com/angular/zone.js/issues/778, sometimes eventTask // will run in notScheduled(canceled) state, we should not try to // run such kind of task but just return if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) { return; } var reEntryGuard = task.state != running; reEntryGuard && task._transitionTo(running, scheduled); task.runCount++; var previousTask = _currentTask; _currentTask = task; _currentZoneFrame = { parent: _currentZoneFrame, zone: this }; try { if (task.type == macroTask && task.data && !task.data.isPeriodic) { task.cancelFn = undefined; } try { return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs); } catch (error) { if (this._zoneDelegate.handleError(this, error)) { throw error; } } } finally { // if the task's state is notScheduled or unknown, then it has already been cancelled // we should not reset the state to scheduled if (task.state !== notScheduled && task.state !== unknown) { if (task.type == eventTask || (task.data && task.data.isPeriodic)) { reEntryGuard && task._transitionTo(scheduled, running); } else { task.runCount = 0; this._updateTaskCount(task, -1); reEntryGuard && task._transitionTo(notScheduled, running, notScheduled); } } _currentZoneFrame = _currentZoneFrame.parent; _currentTask = previousTask; } }; Zone.prototype.scheduleTask = function (task) { if (task.zone && task.zone !== this) { // check if the task was rescheduled, the newZone // should not be the children of the original zone var newZone = this; while (newZone) { if (newZone === task.zone) { throw Error("can not reschedule task to " + this.name + " which is descendants of the original zone " + task.zone.name); } newZone = newZone.parent; } } task._transitionTo(scheduling, notScheduled); var zoneDelegates = []; task._zoneDelegates = zoneDelegates; task._zone = this; try { task = this._zoneDelegate.scheduleTask(this, task); } catch (err) { // should set task's state to unknown when scheduleTask throw error // because the err may from reschedule, so the fromState maybe notScheduled task._transitionTo(unknown, scheduling, notScheduled); // TODO: @JiaLiPassion, should we check the result from handleError? this._zoneDelegate.handleError(this, err); throw err; } if (task._zoneDelegates === zoneDelegates) { // we have to check because internally the delegate can reschedule the task. this._updateTaskCount(task, 1); } if (task.state == scheduling) { task._transitionTo(scheduled, scheduling); } return task; }; Zone.prototype.scheduleMicroTask = function (source, callback, data, customSchedule) { return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined)); }; Zone.prototype.scheduleMacroTask = function (source, callback, data, customSchedule, customCancel) { return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel)); }; Zone.prototype.scheduleEventTask = function (source, callback, data, customSchedule, customCancel) { return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel)); }; Zone.prototype.cancelTask = function (task) { if (task.zone != this) throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' + (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')'); task._transitionTo(canceling, scheduled, running); try { this._zoneDelegate.cancelTask(this, task); } catch (err) { // if error occurs when cancelTask, transit the state to unknown task._transitionTo(unknown, canceling); this._zoneDelegate.handleError(this, err); throw err; } this._updateTaskCount(task, -1); task._transitionTo(notScheduled, canceling); task.runCount = 0; return task; }; Zone.prototype._updateTaskCount = function (task, count) { var zoneDelegates = task._zoneDelegates; if (count == -1) { task._zoneDelegates = null; } for (var i = 0; i < zoneDelegates.length; i++) { zoneDelegates[i]._updateTaskCount(task.type, count); } }; Zone.__symbol__ = __symbol__; return Zone; }()); var DELEGATE_ZS = { name: '', onHasTask: function (delegate, _, target, hasTaskState) { return delegate.hasTask(target, hasTaskState); }, onScheduleTask: function (delegate, _, target, task) { return delegate.scheduleTask(target, task); }, onInvokeTask: function (delegate, _, target, task, applyThis, applyArgs) { return delegate.invokeTask(target, task, applyThis, applyArgs); }, onCancelTask: function (delegate, _, target, task) { return delegate.cancelTask(target, task); } }; var ZoneDelegate = /** @class */ (function () { function ZoneDelegate(zone, parentDelegate, zoneSpec) { this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 }; this.zone = zone; this._parentDelegate = parentDelegate; this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS); this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt); this._forkCurrZone = zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate.zone); this._interceptZS = zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS); this._interceptDlgt = zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt); this._interceptCurrZone = zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate.zone); this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS); this._invokeDlgt = zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt); this._invokeCurrZone = zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate.zone); this._handleErrorZS = zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS); this._handleErrorDlgt = zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt); this._handleErrorCurrZone = zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate.zone); this._scheduleTaskZS = zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS); this._scheduleTaskDlgt = zoneSpec && (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt); this._scheduleTaskCurrZone = zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate.zone); this._invokeTaskZS = zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS); this._invokeTaskDlgt = zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt); this._invokeTaskCurrZone = zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate.zone); this._cancelTaskZS = zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS); this._cancelTaskDlgt = zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt); this._cancelTaskCurrZone = zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate.zone); this._hasTaskZS = null; this._hasTaskDlgt = null; this._hasTaskDlgtOwner = null; this._hasTaskCurrZone = null; var zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask; var parentHasTask = parentDelegate && parentDelegate._hasTaskZS; if (zoneSpecHasTask || parentHasTask) { // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such // a case all task related interceptors must go through this ZD. We can't short circuit it. this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS; this._hasTaskDlgt = parentDelegate; this._hasTaskDlgtOwner = this; this._hasTaskCurrZone = zone; if (!zoneSpec.onScheduleTask) { this._scheduleTaskZS = DELEGATE_ZS; this._scheduleTaskDlgt = parentDelegate; this._scheduleTaskCurrZone = this.zone; } if (!zoneSpec.onInvokeTask) { this._invokeTaskZS = DELEGATE_ZS; this._invokeTaskDlgt = parentDelegate; this._invokeTaskCurrZone = this.zone; } if (!zoneSpec.onCancelTask) { this._cancelTaskZS = DELEGATE_ZS; this._cancelTaskDlgt = parentDelegate; this._cancelTaskCurrZone = this.zone; } } } ZoneDelegate.prototype.fork = function (targetZone, zoneSpec) { return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) : new Zone(targetZone, zoneSpec); }; ZoneDelegate.prototype.intercept = function (targetZone, callback, source) { return this._interceptZS ? this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) : callback; }; ZoneDelegate.prototype.invoke = function (targetZone, callback, applyThis, applyArgs, source) { return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) : callback.apply(applyThis, applyArgs); }; ZoneDelegate.prototype.handleError = function (targetZone, error) { return this._handleErrorZS ? this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) : true; }; ZoneDelegate.prototype.scheduleTask = function (targetZone, task) { var returnTask = task; if (this._scheduleTaskZS) { if (this._hasTaskZS) { returnTask._zoneDelegates.push(this._hasTaskDlgtOwner); } returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task); if (!returnTask) returnTask = task; } else { if (task.scheduleFn) { task.scheduleFn(task); } else if (task.type == microTask) { scheduleMicroTask(task); } else { throw new Error('Task is missing scheduleFn.'); } } return returnTask; }; ZoneDelegate.prototype.invokeTask = function (targetZone, task, applyThis, applyArgs) { return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) : task.callback.apply(applyThis, applyArgs); }; ZoneDelegate.prototype.cancelTask = function (targetZone, task) { var value; if (this._cancelTaskZS) { value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task); } else { if (!task.cancelFn) { throw Error('Task is not cancelable'); } value = task.cancelFn(task); } return value; }; ZoneDelegate.prototype.hasTask = function (targetZone, isEmpty) { // hasTask should not throw error so other ZoneDelegate // can still trigger hasTask callback try { this._hasTaskZS && this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty); } catch (err) { this.handleError(targetZone, err); } }; ZoneDelegate.prototype._updateTaskCount = function (type, count) { var counts = this._taskCounts; var prev = counts[type]; var next = counts[type] = prev + count; if (next < 0) { throw new Error('More tasks executed then were scheduled.'); } if (prev == 0 || next == 0) { var isEmpty = { microTask: counts['microTask'] > 0, macroTask: counts['macroTask'] > 0, eventTask: counts['eventTask'] > 0, change: type }; this.hasTask(this.zone, isEmpty); } }; return ZoneDelegate; }()); var ZoneTask = /** @class */ (function () { function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) { this._zone = null; this.runCount = 0; this._zoneDelegates = null; this._state = 'notScheduled'; this.type = type; this.source = source; this.data = options; this.scheduleFn = scheduleFn; this.cancelFn = cancelFn; this.callback = callback; var self = this; // TODO: @JiaLiPassion options should have interface if (type === eventTask && options && options.useG) { this.invoke = ZoneTask.invokeTask; } else { this.invoke = function () { return ZoneTask.invokeTask.call(global, self, this, arguments); }; } } ZoneTask.invokeTask = function (task, target, args) { if (!task) { task = this; } _numberOfNestedTaskFrames++; try { task.runCount++; return task.zone.runTask(task, target, args); } finally { if (_numberOfNestedTaskFrames == 1) { drainMicroTaskQueue(); } _numberOfNestedTaskFrames--; } }; Object.defineProperty(ZoneTask.prototype, "zone", { get: function () { return this._zone; }, enumerable: true, configurable: true }); Object.defineProperty(ZoneTask.prototype, "state", { get: function () { return this._state; }, enumerable: true, configurable: true }); ZoneTask.prototype.cancelScheduleRequest = function () { this._transitionTo(notScheduled, scheduling); }; ZoneTask.prototype._transitionTo = function (toState, fromState1, fromState2) { if (this._state === fromState1 || this._state === fromState2) { this._state = toState; if (toState == notScheduled) { this._zoneDelegates = null; } } else { throw new Error(this.type + " '" + this.source + "': can not transition to '" + toState + "', expecting state '" + fromState1 + "'" + (fromState2 ? ' or \'' + fromState2 + '\'' : '') + ", was '" + this._state + "'."); } }; ZoneTask.prototype.toString = function () { if (this.data && typeof this.data.handleId !== 'undefined') { return this.data.handleId.toString(); } else { return Object.prototype.toString.call(this); } }; // add toJSON method to prevent cyclic error when // call JSON.stringify(zoneTask) ZoneTask.prototype.toJSON = function () { return { type: this.type, state: this.state, source: this.source, zone: this.zone.name, runCount: this.runCount }; }; return ZoneTask; }()); ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// /// MICROTASK QUEUE ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// var symbolSetTimeout = __symbol__('setTimeout'); var symbolPromise = __symbol__('Promise'); var symbolThen = __symbol__('then'); var _microTaskQueue = []; var _isDrainingMicrotaskQueue = false; var nativeMicroTaskQueuePromise; function scheduleMicroTask(task) { // if we are not running in any task, and there has not been anything scheduled // we must bootstrap the initial task creation by manually scheduling the drain if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) { // We are not running in Task, so we need to kickstart the microtask queue. if (!nativeMicroTaskQueuePromise) { if (global[symbolPromise]) { nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0); } } if (nativeMicroTaskQueuePromise) { var nativeThen = nativeMicroTaskQueuePromise[symbolThen]; if (!nativeThen) { // native Promise is not patchable, we need to use `then` directly // issue 1078 nativeThen = nativeMicroTaskQueuePromise['then']; } nativeThen.call(nativeMicroTaskQueuePromise, drainMicroTaskQueue); } else { global[symbolSetTimeout](drainMicroTaskQueue, 0); } } task && _microTaskQueue.push(task); } function drainMicroTaskQueue() { if (!_isDrainingMicrotaskQueue) { _isDrainingMicrotaskQueue = true; while (_microTaskQueue.length) { var queue = _microTaskQueue; _microTaskQueue = []; for (var i = 0; i < queue.length; i++) { var task = queue[i]; try { task.zone.runTask(task, null, null); } catch (error) { _api.onUnhandledError(error); } } } _api.microtaskDrainDone(); _isDrainingMicrotaskQueue = false; } } ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// /// BOOTSTRAP ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// var NO_ZONE = { name: 'NO ZONE' }; var notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown'; var microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask'; var patches = {}; var _api = { symbol: __symbol__, currentZoneFrame: function () { return _currentZoneFrame; }, onUnhandledError: noop, microtaskDrainDone: noop, scheduleMicroTask: scheduleMicroTask, showUncaughtError: function () { return !Zone[__symbol__('ignoreConsoleErrorUncaughtError')]; }, patchEventTarget: function () { return []; }, patchOnProperties: noop, patchMethod: function () { return noop; }, bindArguments: function () { return []; }, patchThen: function () { return noop; }, setNativePromise: function (NativePromise) { // sometimes NativePromise.resolve static function // is not ready yet, (such as core-js/es6.promise) // so we need to check here. if (NativePromise && typeof NativePromise.resolve === 'function') { nativeMicroTaskQueuePromise = NativePromise.resolve(0); } }, }; var _currentZoneFrame = { parent: null, zone: new Zone(null, null) }; var _currentTask = null; var _numberOfNestedTaskFrames = 0; function noop() { } function __symbol__(name) { return '__zone_symbol__' + name; } performanceMeasure('Zone', 'Zone'); return global['Zone'] = Zone; })(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global); var __values = (undefined && undefined.__values) || function (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 }; } }; }; Zone.__load_patch('ZoneAwarePromise', function (global, Zone, api) { var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; var ObjectDefineProperty = Object.defineProperty; function readableObjectToString(obj) { if (obj && obj.toString === Object.prototype.toString) { var className = obj.constructor && obj.constructor.name; return (className ? className : '') + ': ' + JSON.stringify(obj); } return obj ? obj.toString() : Object.prototype.toString.call(obj); } var __symbol__ = api.symbol; var _uncaughtPromiseErrors = []; var symbolPromise = __symbol__('Promise'); var symbolThen = __symbol__('then'); var creationTrace = '__creationTrace__'; api.onUnhandledError = function (e) { if (api.showUncaughtError()) { var rejection = e && e.rejection; if (rejection) { console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined); } else { console.error(e); } } }; api.microtaskDrainDone = function () { while (_uncaughtPromiseErrors.length) { var _loop_1 = function () { var uncaughtPromiseError = _uncaughtPromiseErrors.shift(); try { uncaughtPromiseError.zone.runGuarded(function () { throw uncaughtPromiseError; }); } catch (error) { handleUnhandledRejection(error); } }; while (_uncaughtPromiseErrors.length) { _loop_1(); } } }; var UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler'); function handleUnhandledRejection(e) { api.onUnhandledError(e); try { var handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL]; if (handler && typeof handler === 'function') { handler.call(this, e); } } catch (err) { } } function isThenable(value) { return value && value.then; } function forwardResolution(value) { return value; } function forwardRejection(rejection) { return ZoneAwarePromise.reject(rejection); } var symbolState = __symbol__('state'); var symbolValue = __symbol__('value'); var symbolFinally = __symbol__('finally'); var symbolParentPromiseValue = __symbol__('parentPromiseValue'); var symbolParentPromiseState = __symbol__('parentPromiseState'); var source = 'Promise.then'; var UNRESOLVED = null; var RESOLVED = true; var REJECTED = false; var REJECTED_NO_CATCH = 0; function makeResolver(promise, state) { return function (v) { try { resolvePromise(promise, state, v); } catch (err) { resolvePromise(promise, false, err); } // Do not return value or you will break the Promise spec. }; } var once = function () { var wasCalled = false; return function wrapper(wrappedFunction) { return function () { if (wasCalled) { return; } wasCalled = true; wrappedFunction.apply(null, arguments); }; }; }; var TYPE_ERROR = 'Promise resolved with itself'; var CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace'); // Promise Resolution function resolvePromise(promise, state, value) { var onceWrapper = once(); if (promise === value) { throw new TypeError(TYPE_ERROR); } if (promise[symbolState] === UNRESOLVED) { // should only get value.then once based on promise spec. var then = null; try { if (typeof value === 'object' || typeof value === 'function') { then = value && value.then; } } catch (err) { onceWrapper(function () { resolvePromise(promise, false, err); })(); return promise; } // if (value instanceof ZoneAwarePromise) { if (state !== REJECTED && value instanceof ZoneAwarePromise && value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) && value[symbolState] !== UNRESOLVED) { clearRejectedNoCatch(value); resolvePromise(promise, value[symbolState], value[symbolValue]); } else if (state !== REJECTED && typeof then === 'function') { try { then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false))); } catch (err) { onceWrapper(function () { resolvePromise(promise, false, err); })(); } } else { promise[symbolState] = state; var queue = promise[symbolValue]; promise[symbolValue] = value; if (promise[symbolFinally] === symbolFinally) { // the promise is generated by Promise.prototype.finally if (state === RESOLVED) { // the state is resolved, should ignore the value // and use parent promise value promise[symbolState] = promise[symbolParentPromiseState]; promise[symbolValue] = promise[symbolParentPromiseValue]; } } // record task information in value when error occurs, so we can // do some additional work such as render longStackTrace if (state === REJECTED && value instanceof Error) { // check if longStackTraceZone is here var trace = Zone.currentTask && Zone.currentTask.data && Zone.currentTask.data[creationTrace]; if (trace) { // only keep the long stack trace into error when in longStackTraceZone ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace }); } } for (var i = 0; i < queue.length;) { scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]); } if (queue.length == 0 && state == REJECTED) { promise[symbolState] = REJECTED_NO_CATCH; try { // try to print more readable error log throw new Error('Uncaught (in promise): ' + readableObjectToString(value) + (value && value.stack ? '\n' + value.stack : '')); } catch (err) { var error_1 = err; error_1.rejection = value; error_1.promise = promise; error_1.zone = Zone.current; error_1.task = Zone.currentTask; _uncaughtPromiseErrors.push(error_1); api.scheduleMicroTask(); // to make sure that it is running } } } } // Resolving an already resolved promise is a noop. return promise; } var REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler'); function clearRejectedNoCatch(promise) { if (promise[symbolState] === REJECTED_NO_CATCH) { // if the promise is rejected no catch status // and queue.length > 0, means there is a error handler // here to handle the rejected promise, we should trigger // windows.rejectionhandled eventHandler or nodejs rejectionHandled // eventHandler try { var handler = Zone[REJECTION_HANDLED_HANDLER]; if (handler && typeof handler === 'function') { handler.call(this, { rejection: promise[symbolValue], promise: promise }); } } catch (err) { } promise[symbolState] = REJECTED; for (var i = 0; i < _uncaughtPromiseErrors.length; i++) { if (promise === _uncaughtPromiseErrors[i].promise) { _uncaughtPromiseErrors.splice(i, 1); } } } } function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) { clearRejectedNoCatch(promise); var promiseState = promise[symbolState]; var delegate = promiseState ? (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution : (typeof onRejected === 'function') ? onRejected : forwardRejection; zone.scheduleMicroTask(source, function () { try { var parentPromiseValue = promise[symbolValue]; var isFinallyPromise = chainPromise && symbolFinally === chainPromise[symbolFinally]; if (isFinallyPromise) { // if the promise is generated from finally call, keep parent promise's state and value chainPromise[symbolParentPromiseValue] = parentPromiseValue; chainPromise[symbolParentPromiseState] = promiseState; } // should not pass value to finally callback var value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ? [] : [parentPromiseValue]); resolvePromise(chainPromise, true, value); } catch (error) { // if error occurs, should always return this error resolvePromise(chainPromise, false, error); } }, chainPromise); } var ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }'; var ZoneAwarePromise = /** @class */ (function () { function ZoneAwarePromise(executor) { var promise = this; if (!(promise instanceof ZoneAwarePromise)) { throw new Error('Must be an instanceof Promise.'); } promise[symbolState] = UNRESOLVED; promise[symbolValue] = []; // queue; try { executor && executor(makeResolver(promise, RESOLVED), makeResolver(promise, REJECTED)); } catch (error) { resolvePromise(promise, false, error); } } ZoneAwarePromise.toString = function () { return ZONE_AWARE_PROMISE_TO_STRING; }; ZoneAwarePromise.resolve = function (value) { return resolvePromise(new this(null), RESOLVED, value); }; ZoneAwarePromise.reject = function (error) { return resolvePromise(new this(null), REJECTED, error); }; ZoneAwarePromise.race = function (values) { var e_1, _a; var resolve; var reject; var promise = new this(function (res, rej) { resolve = res; reject = rej; }); function onResolve(value) { promise && (promise = null || resolve(value)); } function onReject(error) { promise && (promise = null || reject(error)); } try { for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) { var value = values_1_1.value; if (!isThenable(value)) { value = this.resolve(value); } value.then(onResolve, onReject); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1); } finally { if (e_1) throw e_1.error; } } return promise; }; ZoneAwarePromise.all = function (values) { var e_2, _a; var resolve; var reject; var promise = new this(function (res, rej) { resolve = res; reject = rej; }); // Start at 2 to prevent prematurely resolving if .then is called immediately. var unresolvedCount = 2; var valueIndex = 0; var resolvedValues = []; var _loop_2 = function (value) { if (!isThenable(value)) { value = this_1.resolve(value); } var curValueIndex = valueIndex; value.then(function (value) { resolvedValues[curValueIndex] = value; unresolvedCount--; if (unresolvedCount === 0) { resolve(resolvedValues); } }, reject); unresolvedCount++; valueIndex++; }; var this_1 = this; try { for (var values_2 = __values(values), values_2_1 = values_2.next(); !values_2_1.done; values_2_1 = values_2.next()) { var value = values_2_1.value; _loop_2(value); } } catch (e_2_1) { e_2 = { error: e_2_1 }; } finally { try { if (values_2_1 && !values_2_1.done && (_a = values_2.return)) _a.call(values_2); } finally { if (e_2) throw e_2.error; } } // Make the unresolvedCount zero-based again. unresolvedCount -= 2; if (unresolvedCount === 0) { resolve(resolvedValues); } return promise; }; ZoneAwarePromise.prototype.then = function (onFulfilled, onRejected) { var chainPromise = new this.constructor(null); var zone = Zone.current; if (this[symbolState] == UNRESOLVED) { this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected); } else { scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected); } return chainPromise; }; ZoneAwarePromise.prototype.catch = function (onRejected) { return this.then(null, onRejected); }; ZoneAwarePromise.prototype.finally = function (onFinally) { var chainPromise = new this.constructor(null); chainPromise[symbolFinally] = symbolFinally; var zone = Zone.current; if (this[symbolState] == UNRESOLVED) { this[symbolValue].push(zone, chainPromise, onFinally, onFinally); } else { scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally); } return chainPromise; }; return ZoneAwarePromise; }()); // Protect against aggressive optimizers dropping seemingly unused properties. // E.g. Closure Compiler in advanced mode. ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve; ZoneAwarePromise['reject'] = ZoneAwarePromise.reject; ZoneAwarePromise['race'] = ZoneAwarePromise.race; ZoneAwarePromise['all'] = ZoneAwarePromise.all; var NativePromise = global[symbolPromise] = global['Promise']; var ZONE_AWARE_PROMISE = Zone.__symbol__('ZoneAwarePromise'); var desc = ObjectGetOwnPropertyDescriptor(global, 'Promise'); if (!desc || desc.configurable) { desc && delete desc.writable; desc && delete desc.value; if (!desc) { desc = { configurable: true, enumerable: true }; } desc.get = function () { // if we already set ZoneAwarePromise, use patched one // otherwise return native one. return global[ZONE_AWARE_PROMISE] ? global[ZONE_AWARE_PROMISE] : global[symbolPromise]; }; desc.set = function (NewNativePromise) { if (NewNativePromise === ZoneAwarePromise) { // if the NewNativePromise is ZoneAwarePromise // save to global global[ZONE_AWARE_PROMISE] = NewNativePromise; } else { // if the NewNativePromise is not ZoneAwarePromise // for example: after load zone.js, some library just // set es6-promise to global, if we set it to global // directly, assertZonePatched will fail and angular // will not loaded, so we just set the NewNativePromise // to global[symbolPromise], so the result is just like // we load ES6 Promise before zone.js global[symbolPromise] = NewNativePromise; if (!NewNativePromise.prototype[symbolThen]) { patchThen(NewNativePromise); } api.setNativePromise(NewNativePromise); } }; ObjectDefineProperty(global, 'Promise', desc); } global['Promise'] = ZoneAwarePromise; var symbolThenPatched = __symbol__('thenPatched'); function patchThen(Ctor) { var proto = Ctor.prototype; var prop = ObjectGetOwnPropertyDescriptor(proto, 'then'); if (prop && (prop.writable === false || !prop.configurable)) { // check Ctor.prototype.then propertyDescriptor is writable or not // in meteor env, writable is false, we should ignore such case return; } var originalThen = proto.then; // Keep a reference to the original method. proto[symbolThen] = originalThen; Ctor.prototype.then = function (onResolve, onReject) { var _this = this; var wrapped = new ZoneAwarePromise(function (resolve, reject) { originalThen.call(_this, resolve, reject); }); return wrapped.then(onResolve, onReject); }; Ctor[symbolThenPatched] = true; } api.patchThen = patchThen; if (NativePromise) { patchThen(NativePromise); } // This is not part of public API, but it is useful for tests, so we expose it. Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors; return ZoneAwarePromise; }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ Zone.__load_patch('fetch', function (global, Zone, api) { var fetch = global['fetch']; var ZoneAwarePromise = global.Promise; var symbolThenPatched = api.symbol('thenPatched'); var fetchTaskScheduling = api.symbol('fetchTaskScheduling'); var fetchTaskAborting = api.symbol('fetchTaskAborting'); if (typeof fetch !== 'function') { return; } var OriginalAbortController = global['AbortController']; var supportAbort = typeof OriginalAbortController === 'function'; var abortNative = null; if (supportAbort) { global['AbortController'] = function () { var abortController = new OriginalAbortController(); var signal = abortController.signal; signal.abortController = abortController; return abortController; }; abortNative = api.patchMethod(OriginalAbortController.prototype, 'abort', function (delegate) { return function (self, args) { if (self.task) { return self.task.zone.cancelTask(self.task); } return delegate.apply(self, args); }; }); } var placeholder = function () { }; global['fetch'] = function () { var _this = this; var args = Array.prototype.slice.call(arguments); var options = args.length > 1 ? args[1] : null; var signal = options && options.signal; return new Promise(function (res, rej) { var task = Zone.current.scheduleMacroTask('fetch', placeholder, args, function () { var fetchPromise; var zone = Zone.current; try { zone[fetchTaskScheduling] = true; fetchPromise = fetch.apply(_this, args); } catch (error) { rej(error); return; } finally { zone[fetchTaskScheduling] = false; } if (!(fetchPromise instanceof ZoneAwarePromise)) { var ctor = fetchPromise.constructor; if (!ctor[symbolThenPatched]) { api.patchThen(ctor); } } fetchPromise.then(function (resource) { if (task.state !== 'notScheduled') { task.invoke(); } res(resource); }, function (error) { if (task.state !== 'notScheduled') { task.invoke(); } rej(error); }); }, function () { if (!supportAbort) { rej('No AbortController supported, can not cancel fetch'); return; } if (signal && signal.abortController && !signal.aborted && typeof signal.abortController.abort === 'function' && abortNative) { try { Zone.current[fetchTaskAborting] = true; abortNative.call(signal.abortController); } finally { Zone.current[fetchTaskAborting] = false; } } else { rej('cancel fetch need a AbortController.signal'); } }); if (signal && signal.abortController) { signal.abortController.task = task; } }); }; }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * Suppress closure compiler errors about unknown 'Zone' variable * @fileoverview * @suppress {undefinedVars,globalThis,missingRequire} */ // issue #989, to reduce bundle size, use short name /** Object.getOwnPropertyDescriptor */ var ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; /** Object.defineProperty */ var ObjectDefineProperty = Object.defineProperty; /** Object.getPrototypeOf */ var ObjectGetPrototypeOf = Object.getPrototypeOf; /** Object.create */ var ObjectCreate = Object.create; /** Array.prototype.slice */ var ArraySlice = Array.prototype.slice; /** addEventListener string const */ var ADD_EVENT_LISTENER_STR = 'addEventListener'; /** removeEventListener string const */ var REMOVE_EVENT_LISTENER_STR = 'removeEventListener'; /** zoneSymbol addEventListener */ var ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR); /** zoneSymbol removeEventListener */ var ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR); /** true string const */ var TRUE_STR = 'true'; /** false string const */ var FALSE_STR = 'false'; /** __zone_symbol__ string const */ var ZONE_SYMBOL_PREFIX = '__zone_symbol__'; function wrapWithCurrentZone(callback, source) { return Zone.current.wrap(callback, source); } function scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) { return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel); } var zoneSymbol = Zone.__symbol__; var isWindowExists = typeof window !== 'undefined'; var internalWindow = isWindowExists ? window : undefined; var _global = isWindowExists && internalWindow || typeof self === 'object' && self || global; var REMOVE_ATTRIBUTE = 'removeAttribute'; var NULL_ON_PROP_VALUE = [null]; function bindArguments(args, source) { for (var i = args.length - 1; i >= 0; i--) { if (typeof args[i] === 'function') { args[i] = wrapWithCurrentZone(args[i], source + '_' + i); } } return args; } function patchPrototype(prototype, fnNames) { var source = prototype.constructor['name']; var _loop_1 = function (i) { var name_1 = fnNames[i]; var delegate = prototype[name_1]; if (delegate) { var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name_1); if (!isPropertyWritable(prototypeDesc)) { return "continue"; } prototype[name_1] = (function (delegate) { var patched = function () { return delegate.apply(this, bindArguments(arguments, source + '.' + name_1)); }; attachOriginToPatched(patched, delegate); return patched; })(delegate); } }; for (var i = 0; i < fnNames.length; i++) { _loop_1(i); } } function isPropertyWritable(propertyDesc) { if (!propertyDesc) { return true; } if (propertyDesc.writable === false) { return false; } return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined'); } var isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope); // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify // this code. var isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' && {}.toString.call(_global.process) === '[object process]'); var isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); // we are in electron of nw, so we are both browser and nodejs // Make sure to access `process` through `_global` so that WebPack does not accidentally browserify // this code. var isMix = typeof _global.process !== 'undefined' && {}.toString.call(_global.process) === '[object process]' && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); var zoneSymbolEventNames = {}; var wrapFn = function (event) { // https://github.com/angular/zone.js/issues/911, in IE, sometimes // event will be undefined, so we need to use window.event event = event || _global.event; if (!event) { return; } var eventNameSymbol = zoneSymbolEventNames[event.type]; if (!eventNameSymbol) { eventNameSymbol = zoneSymbolEventNames[event.type] = zoneSymbol('ON_PROPERTY' + event.type); } var target = this || event.target || _global; var listener = target[eventNameSymbol]; var result; if (isBrowser && target === internalWindow && event.type === 'error') { // window.onerror have different signiture // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror // and onerror callback will prevent default when callback return true var errorEvent = event; result = listener && listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error); if (result === true) { event.preventDefault(); } } else { result = listener && listener.apply(this, arguments); if (result != undefined && !result) { event.preventDefault(); } } return result; }; function patchProperty(obj, prop, prototype) { var desc = ObjectGetOwnPropertyDescriptor(obj, prop); if (!desc && prototype) { // when patch window object, use prototype to check prop exist or not var prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop); if (prototypeDesc) { desc = { enumerable: true, configurable: true }; } } // if the descriptor not exists or is not configurable // just return if (!desc || !desc.configurable) { return; } var onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched'); if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) { return; } // A property descriptor cannot have getter/setter and be writable // deleting the writable and value properties avoids this error: // // TypeError: property descriptors must not specify a value or be writable when a // getter or setter has been specified delete desc.writable; delete desc.value; var originalDescGet = desc.get; var originalDescSet = desc.set; // substr(2) cuz 'onclick' -> 'click', etc var eventName = prop.substr(2); var eventNameSymbol = zoneSymbolEventNames[eventName]; if (!eventNameSymbol) { eventNameSymbol = zoneSymbolEventNames[eventName] = zoneSymbol('ON_PROPERTY' + eventName); } desc.set = function (newValue) { // in some of windows's onproperty callback, this is undefined // so we need to check it var target = this; if (!target && obj === _global) { target = _global; } if (!target) { return; } var previousValue = target[eventNameSymbol]; if (previousValue) { target.removeEventListener(eventName, wrapFn); } // issue #978, when onload handler was added before loading zone.js // we should remove it with originalDescSet if (originalDescSet) { originalDescSet.apply(target, NULL_ON_PROP_VALUE); } if (typeof newValue === 'function') { target[eventNameSymbol] = newValue; target.addEventListener(eventName, wrapFn, false); } else { target[eventNameSymbol] = null; } }; // The getter would return undefined for unassigned properties but the default value of an // unassigned property is null desc.get = function () { // in some of windows's onproperty callback, this is undefined // so we need to check it var target = this; if (!target && obj === _global) { target = _global; } if (!target) { return null; } var listener = target[eventNameSymbol]; if (listener) { return listener; } else if (originalDescGet) { // result will be null when use inline event attribute, // such as // because the onclick function is internal raw uncompiled handler // the onclick will be evaluated when first time event was triggered or // the property is accessed, https://github.com/angular/zone.js/issues/525 // so we should use original native get to retrieve the handler var value = originalDescGet && originalDescGet.call(this); if (value) { desc.set.call(this, value); if (typeof target[REMOVE_ATTRIBUTE] === 'function') { target.removeAttribute(prop); } return value; } } return null; }; ObjectDefineProperty(obj, prop, desc); obj[onPropPatchedSymbol] = true; } function patchOnProperties(obj, properties, prototype) { if (properties) { for (var i = 0; i < properties.length; i++) { patchProperty(obj, 'on' + properties[i], prototype); } } else { var onProperties = []; for (var prop in obj) { if (prop.substr(0, 2) == 'on') { onProperties.push(prop); } } for (var j = 0; j < onProperties.length; j++) { patchProperty(obj, onProperties[j], prototype); } } } var originalInstanceKey = zoneSymbol('originalInstance'); // wrap some native API on `window` function patchClass(className) { var OriginalClass = _global[className]; if (!OriginalClass) return; // keep original class in global _global[zoneSymbol(className)] = OriginalClass; _global[className] = function () { var a = bindArguments(arguments, className); switch (a.length) { case 0: this[originalInstanceKey] = new OriginalClass(); break; case 1: this[originalInstanceKey] = new OriginalClass(a[0]); break; case 2: this[originalInstanceKey] = new OriginalClass(a[0], a[1]); break; case 3: this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]); break; case 4: this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]); break; default: throw new Error('Arg list too long.'); } }; // attach original delegate to patched function attachOriginToPatched(_global[className], OriginalClass); var instance = new OriginalClass(function () { }); var prop; for (prop in instance) { // https://bugs.webkit.org/show_bug.cgi?id=44721 if (className === 'XMLHttpRequest' && prop === 'responseBlob') continue; (function (prop) { if (typeof instance[prop] === 'function') { _global[className].prototype[prop] = function () { return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments); }; } else { ObjectDefineProperty(_global[className].prototype, prop, { set: function (fn) { if (typeof fn === 'function') { this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop); // keep callback in wrapped function so we can // use it in Function.prototype.toString to return // the native one. attachOriginToPatched(this[originalInstanceKey][prop], fn); } else { this[originalInstanceKey][prop] = fn; } }, get: function () { return this[originalInstanceKey][prop]; } }); } }(prop)); } for (prop in OriginalClass) { if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) { _global[className][prop] = OriginalClass[prop]; } } } function copySymbolProperties(src, dest) { if (typeof Object.getOwnPropertySymbols !== 'function') { return; } var symbols = Object.getOwnPropertySymbols(src); symbols.forEach(function (symbol) { var desc = Object.getOwnPropertyDescriptor(src, symbol); Object.defineProperty(dest, symbol, { get: function () { return src[symbol]; }, set: function (value) { if (desc && (!desc.writable || typeof desc.set !== 'function')) { // if src[symbol] is not writable or not have a setter, just return return; } src[symbol] = value; }, enumerable: desc ? desc.enumerable : true, configurable: desc ? desc.configurable : true }); }); } var shouldCopySymbolProperties = false; function patchMethod(target, name, patchFn) { var proto = target; while (proto && !proto.hasOwnProperty(name)) { proto = ObjectGetPrototypeOf(proto); } if (!proto && target[name]) { // somehow we did not find it, but we can see it. This happens on IE for Window properties. proto = target; } var delegateName = zoneSymbol(name); var delegate = null; if (proto && !(delegate = proto[delegateName])) { delegate = proto[delegateName] = proto[name]; // check whether proto[name] is writable // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob var desc = proto && ObjectGetOwnPropertyDescriptor(proto, name); if (isPropertyWritable(desc)) { var patchDelegate_1 = patchFn(delegate, delegateName, name); proto[name] = function () { return patchDelegate_1(this, arguments); }; attachOriginToPatched(proto[name], delegate); if (shouldCopySymbolProperties) { copySymbolProperties(delegate, proto[name]); } } } return delegate; } // TODO: @JiaLiPassion, support cancel task later if necessary function patchMacroTask(obj, funcName, metaCreator) { var setNative = null; function scheduleTask(task) { var data = task.data; data.args[data.cbIdx] = function () { task.invoke.apply(this, arguments); }; setNative.apply(data.target, data.args); return task; } setNative = patchMethod(obj, funcName, function (delegate) { return function (self, args) { var meta = metaCreator(self, args); if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') { return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask); } else { // cause an error by calling it directly. return delegate.apply(self, args); } }; }); } function attachOriginToPatched(patched, original) { patched[zoneSymbol('OriginalDelegate')] = original; } var isDetectedIEOrEdge = false; var ieOrEdge = false; function isIE() { try { var ua = internalWindow.navigator.userAgent; if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) { return true; } } catch (error) { } return false; } function isIEOrEdge() { if (isDetectedIEOrEdge) { return ieOrEdge; } isDetectedIEOrEdge = true; try { var ua = internalWindow.navigator.userAgent; if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) { ieOrEdge = true; } return ieOrEdge; } catch (error) { } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ // override Function.prototype.toString to make zone.js patched function // look like native function Zone.__load_patch('toString', function (global) { // patch Func.prototype.toString to let them look like native var originalFunctionToString = Function.prototype.toString; var ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate'); var PROMISE_SYMBOL = zoneSymbol('Promise'); var ERROR_SYMBOL = zoneSymbol('Error'); var newFunctionToString = function toString() { if (typeof this === 'function') { var originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL]; if (originalDelegate) { if (typeof originalDelegate === 'function') { return originalFunctionToString.apply(this[ORIGINAL_DELEGATE_SYMBOL], arguments); } else { return Object.prototype.toString.call(originalDelegate); } } if (this === Promise) { var nativePromise = global[PROMISE_SYMBOL]; if (nativePromise) { return originalFunctionToString.apply(nativePromise, arguments); } } if (this === Error) { var nativeError = global[ERROR_SYMBOL]; if (nativeError) { return originalFunctionToString.apply(nativeError, arguments); } } } return originalFunctionToString.apply(this, arguments); }; newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString; Function.prototype.toString = newFunctionToString; // patch Object.prototype.toString to let them look like native var originalObjectToString = Object.prototype.toString; var PROMISE_OBJECT_TO_STRING = '[object Promise]'; Object.prototype.toString = function () { if (this instanceof Promise) { return PROMISE_OBJECT_TO_STRING; } return originalObjectToString.apply(this, arguments); }; }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview * @suppress {missingRequire} */ var passiveSupported = false; if (typeof window !== 'undefined') { try { var options = Object.defineProperty({}, 'passive', { get: function () { passiveSupported = true; } }); window.addEventListener('test', options, options); window.removeEventListener('test', options, options); } catch (err) { passiveSupported = false; } } // an identifier to tell ZoneTask do not create a new invoke closure var OPTIMIZED_ZONE_EVENT_TASK_DATA = { useG: true }; var zoneSymbolEventNames$1 = {}; var globalSources = {}; var EVENT_NAME_SYMBOL_REGX = /^__zone_symbol__(\w+)(true|false)$/; var IMMEDIATE_PROPAGATION_SYMBOL = ('__zone_symbol__propagationStopped'); function patchEventTarget(_global, apis, patchOptions) { var ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR; var REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR; var LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners'; var REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners'; var zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER); var ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':'; var PREPEND_EVENT_LISTENER = 'prependListener'; var PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':'; var invokeTask = function (task, target, event) { // for better performance, check isRemoved which is set // by removeEventListener if (task.isRemoved) { return; } var delegate = task.callback; if (typeof delegate === 'object' && delegate.handleEvent) { // create the bind version of handleEvent when invoke task.callback = function (event) { return delegate.handleEvent(event); }; task.originalDelegate = delegate; } // invoke static task.invoke task.invoke(task, target, [event]); var options = task.options; if (options && typeof options === 'object' && options.once) { // if options.once is true, after invoke once remove listener here // only browser need to do this, nodejs eventEmitter will cal removeListener // inside EventEmitter.once var delegate_1 = task.originalDelegate ? task.originalDelegate : task.callback; target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate_1, options); } }; // global shared zoneAwareCallback to handle all event callback with capture = false var globalZoneAwareCallback = function (event) { // https://github.com/angular/zone.js/issues/911, in IE, sometimes // event will be undefined, so we need to use window.event event = event || _global.event; if (!event) { return; } // event.target is needed for Samsung TV and SourceBuffer // || global is needed https://github.com/angular/zone.js/issues/190 var target = this || event.target || _global; var tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]]; if (tasks) { // invoke all tasks which attached to current target with given event.type and capture = false // for performance concern, if task.length === 1, just invoke if (tasks.length === 1) { invokeTask(tasks[0], target, event); } else { // https://github.com/angular/zone.js/issues/836 // copy the tasks array before invoke, to avoid // the callback will remove itself or other listener var copyTasks = tasks.slice(); for (var i = 0; i < copyTasks.length; i++) { if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { break; } invokeTask(copyTasks[i], target, event); } } } }; // global shared zoneAwareCallback to handle all event callback with capture = true var globalZoneAwareCaptureCallback = function (event) { // https://github.com/angular/zone.js/issues/911, in IE, sometimes // event will be undefined, so we need to use window.event event = event || _global.event; if (!event) { return; } // event.target is needed for Samsung TV and SourceBuffer // || global is needed https://github.com/angular/zone.js/issues/190 var target = this || event.target || _global; var tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]]; if (tasks) { // invoke all tasks which attached to current target with given event.type and capture = false // for performance concern, if task.length === 1, just invoke if (tasks.length === 1) { invokeTask(tasks[0], target, event); } else { // https://github.com/angular/zone.js/issues/836 // copy the tasks array before invoke, to avoid // the callback will remove itself or other listener var copyTasks = tasks.slice(); for (var i = 0; i < copyTasks.length; i++) { if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) { break; } invokeTask(copyTasks[i], target, event); } } } }; function patchEventTargetMethods(obj, patchOptions) { if (!obj) { return false; } var useGlobalCallback = true; if (patchOptions && patchOptions.useG !== undefined) { useGlobalCallback = patchOptions.useG; } var validateHandler = patchOptions && patchOptions.vh; var checkDuplicate = true; if (patchOptions && patchOptions.chkDup !== undefined) { checkDuplicate = patchOptions.chkDup; } var returnTarget = false; if (patchOptions && patchOptions.rt !== undefined) { returnTarget = patchOptions.rt; } var proto = obj; while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) { proto = ObjectGetPrototypeOf(proto); } if (!proto && obj[ADD_EVENT_LISTENER]) { // somehow we did not find it, but we can see it. This happens on IE for Window properties. proto = obj; } if (!proto) { return false; } if (proto[zoneSymbolAddEventListener]) { return false; } var eventNameToString = patchOptions && patchOptions.eventNameToString; // a shared global taskData to pass data for scheduleEventTask // so we do not need to create a new object just for pass some data var taskData = {}; var nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER]; var nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] = proto[REMOVE_EVENT_LISTENER]; var nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] = proto[LISTENERS_EVENT_LISTENER]; var nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] = proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER]; var nativePrependEventListener; if (patchOptions && patchOptions.prepend) { nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] = proto[patchOptions.prepend]; } function checkIsPassive(task) { if (!passiveSupported && typeof taskData.options !== 'boolean' && typeof taskData.options !== 'undefined' && taskData.options !== null) { // options is a non-null non-undefined object // passive is not supported // don't pass options as object // just pass capture as a boolean task.options = !!taskData.options.capture; taskData.options = task.options; } } var customScheduleGlobal = function (task) { // if there is already a task for the eventName + capture, // just return, because we use the shared globalZoneAwareCallback here. if (taskData.isExisting) { return; } checkIsPassive(task); return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options); }; var customCancelGlobal = function (task) { // if task is not marked as isRemoved, this call is directly // from Zone.prototype.cancelTask, we should remove the task // from tasksList of target first if (!task.isRemoved) { var symbolEventNames = zoneSymbolEventNames$1[task.eventName]; var symbolEventName = void 0; if (symbolEventNames) { symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR]; } var existingTasks = symbolEventName && task.target[symbolEventName]; if (existingTasks) { for (var i = 0; i < existingTasks.length; i++) { var existingTask = existingTasks[i]; if (existingTask === task) { existingTasks.splice(i, 1); // set isRemoved to data for faster invokeTask check task.isRemoved = true; if (existingTasks.length === 0) { // all tasks for the eventName + capture have gone, // remove globalZoneAwareCallback and remove the task cache from target task.allRemoved = true; task.target[symbolEventName] = null; } break; } } } } // if all tasks for the eventName + capture have gone, // we will really remove the global event callback, // if not, return if (!task.allRemoved) { return; } return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options); }; var customScheduleNonGlobal = function (task) { checkIsPassive(task); return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); }; var customSchedulePrepend = function (task) { return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options); }; var customCancelNonGlobal = function (task) { return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options); }; var customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal; var customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal; var compareTaskCallbackVsDelegate = function (task, delegate) { var typeOfDelegate = typeof delegate; return (typeOfDelegate === 'function' && task.callback === delegate) || (typeOfDelegate === 'object' && task.originalDelegate === delegate); }; var compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate; var blackListedEvents = Zone[Zone.__symbol__('BLACK_LISTED_EVENTS')]; var makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget, prepend) { if (returnTarget === void 0) { returnTarget = false; } if (prepend === void 0) { prepend = false; } return function () { var target = this || _global; var eventName = arguments[0]; var delegate = arguments[1]; if (!delegate) { return nativeListener.apply(this, arguments); } if (isNode && eventName === 'uncaughtException') { // don't patch uncaughtException of nodejs to prevent endless loop return nativeListener.apply(this, arguments); } // don't create the bind delegate function for handleEvent // case here to improve addEventListener performance // we will create the bind delegate when invoke var isHandleEvent = false; if (typeof delegate !== 'function') { if (!delegate.handleEvent) { return nativeListener.apply(this, arguments); } isHandleEvent = true; } if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) { return; } var options = arguments[2]; if (blackListedEvents) { // check black list for (var i = 0; i < blackListedEvents.length; i++) { if (eventName === blackListedEvents[i]) { return nativeListener.apply(this, arguments); } } } var capture; var once = false; if (options === undefined) { capture = false; } else if (options === true) { capture = true; } else if (options === false) { capture = false; } else { capture = options ? !!options.capture : false; once = options ? !!options.once : false; } var zone = Zone.current; var symbolEventNames = zoneSymbolEventNames$1[eventName]; var symbolEventName; if (!symbolEventNames) { // the code is duplicate, but I just want to get some better performance var falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR; var trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; var symbol = ZONE_SYMBOL_PREFIX + falseEventName; var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; zoneSymbolEventNames$1[eventName] = {}; zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; symbolEventName = capture ? symbolCapture : symbol; } else { symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; } var existingTasks = target[symbolEventName]; var isExisting = false; if (existingTasks) { // already have task registered isExisting = true; if (checkDuplicate) { for (var i = 0; i < existingTasks.length; i++) { if (compare(existingTasks[i], delegate)) { // same callback, same capture, same event name, just return return; } } } } else { existingTasks = target[symbolEventName] = []; } var source; var constructorName = target.constructor['name']; var targetSource = globalSources[constructorName]; if (targetSource) { source = targetSource[eventName]; } if (!source) { source = constructorName + addSource + (eventNameToString ? eventNameToString(eventName) : eventName); } // do not create a new object as task.data to pass those things // just use the global shared one taskData.options = options; if (once) { // if addEventListener with once options, we don't pass it to // native addEventListener, instead we keep the once setting // and handle ourselves. taskData.options.once = false; } taskData.target = target; taskData.capture = capture; taskData.eventName = eventName; taskData.isExisting = isExisting; var data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined; // keep taskData into data to allow onScheduleEventTask to access the task information if (data) { data.taskData = taskData; } var task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn); // should clear taskData.target to avoid memory leak // issue, https://github.com/angular/angular/issues/20442 taskData.target = null; // need to clear up taskData because it is a global object if (data) { data.taskData = null; } // have to save those information to task in case // application may call task.zone.cancelTask() directly if (once) { options.once = true; } if (!(!passiveSupported && typeof task.options === 'boolean')) { // if not support passive, and we pass an option object // to addEventListener, we should save the options to task task.options = options; } task.target = target; task.capture = capture; task.eventName = eventName; if (isHandleEvent) { // save original delegate for compare to check duplicate task.originalDelegate = delegate; } if (!prepend) { existingTasks.push(task); } else { existingTasks.unshift(task); } if (returnTarget) { return target; } }; }; proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget); if (nativePrependEventListener) { proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true); } proto[REMOVE_EVENT_LISTENER] = function () { var target = this || _global; var eventName = arguments[0]; var options = arguments[2]; var capture; if (options === undefined) { capture = false; } else if (options === true) { capture = true; } else if (options === false) { capture = false; } else { capture = options ? !!options.capture : false; } var delegate = arguments[1]; if (!delegate) { return nativeRemoveEventListener.apply(this, arguments); } if (validateHandler && !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) { return; } var symbolEventNames = zoneSymbolEventNames$1[eventName]; var symbolEventName; if (symbolEventNames) { symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR]; } var existingTasks = symbolEventName && target[symbolEventName]; if (existingTasks) { for (var i = 0; i < existingTasks.length; i++) { var existingTask = existingTasks[i]; if (compare(existingTask, delegate)) { existingTasks.splice(i, 1); // set isRemoved to data for faster invokeTask check existingTask.isRemoved = true; if (existingTasks.length === 0) { // all tasks for the eventName + capture have gone, // remove globalZoneAwareCallback and remove the task cache from target existingTask.allRemoved = true; target[symbolEventName] = null; } existingTask.zone.cancelTask(existingTask); if (returnTarget) { return target; } return; } } } // issue 930, didn't find the event name or callback // from zone kept existingTasks, the callback maybe // added outside of zone, we need to call native removeEventListener // to try to remove it. return nativeRemoveEventListener.apply(this, arguments); }; proto[LISTENERS_EVENT_LISTENER] = function () { var target = this || _global; var eventName = arguments[0]; var listeners = []; var tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName); for (var i = 0; i < tasks.length; i++) { var task = tasks[i]; var delegate = task.originalDelegate ? task.originalDelegate : task.callback; listeners.push(delegate); } return listeners; }; proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () { var target = this || _global; var eventName = arguments[0]; if (!eventName) { var keys = Object.keys(target); for (var i = 0; i < keys.length; i++) { var prop = keys[i]; var match = EVENT_NAME_SYMBOL_REGX.exec(prop); var evtName = match && match[1]; // in nodejs EventEmitter, removeListener event is // used for monitoring the removeListener call, // so just keep removeListener eventListener until // all other eventListeners are removed if (evtName && evtName !== 'removeListener') { this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName); } } // remove removeListener listener finally this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener'); } else { var symbolEventNames = zoneSymbolEventNames$1[eventName]; if (symbolEventNames) { var symbolEventName = symbolEventNames[FALSE_STR]; var symbolCaptureEventName = symbolEventNames[TRUE_STR]; var tasks = target[symbolEventName]; var captureTasks = target[symbolCaptureEventName]; if (tasks) { var removeTasks = tasks.slice(); for (var i = 0; i < removeTasks.length; i++) { var task = removeTasks[i]; var delegate = task.originalDelegate ? task.originalDelegate : task.callback; this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); } } if (captureTasks) { var removeTasks = captureTasks.slice(); for (var i = 0; i < removeTasks.length; i++) { var task = removeTasks[i]; var delegate = task.originalDelegate ? task.originalDelegate : task.callback; this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options); } } } } if (returnTarget) { return this; } }; // for native toString patch attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener); attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener); if (nativeRemoveAllListeners) { attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners); } if (nativeListeners) { attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners); } return true; } var results = []; for (var i = 0; i < apis.length; i++) { results[i] = patchEventTargetMethods(apis[i], patchOptions); } return results; } function findEventTasks(target, eventName) { var foundTasks = []; for (var prop in target) { var match = EVENT_NAME_SYMBOL_REGX.exec(prop); var evtName = match && match[1]; if (evtName && (!eventName || evtName === eventName)) { var tasks = target[prop]; if (tasks) { for (var i = 0; i < tasks.length; i++) { foundTasks.push(tasks[i]); } } } } return foundTasks; } function patchEventPrototype(global, api) { var Event = global['Event']; if (Event && Event.prototype) { api.patchMethod(Event.prototype, 'stopImmediatePropagation', function (delegate) { return function (self, args) { self[IMMEDIATE_PROPAGATION_SYMBOL] = true; // we need to call the native stopImmediatePropagation // in case in some hybrid application, some part of // application will be controlled by zone, some are not delegate && delegate.apply(self, args); }; }); } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview * @suppress {missingRequire} */ var taskSymbol = zoneSymbol('zoneTask'); function patchTimer(window, setName, cancelName, nameSuffix) { var setNative = null; var clearNative = null; setName += nameSuffix; cancelName += nameSuffix; var tasksByHandleId = {}; function scheduleTask(task) { var data = task.data; function timer() { try { task.invoke.apply(this, arguments); } finally { // issue-934, task will be cancelled // even it is a periodic task such as // setInterval if (!(task.data && task.data.isPeriodic)) { if (typeof data.handleId === 'number') { // in non-nodejs env, we remove timerId // from local cache delete tasksByHandleId[data.handleId]; } else if (data.handleId) { // Node returns complex objects as handleIds // we remove task reference from timer object data.handleId[taskSymbol] = null; } } } } data.args[0] = timer; data.handleId = setNative.apply(window, data.args); return task; } function clearTask(task) { return clearNative(task.data.handleId); } setNative = patchMethod(window, setName, function (delegate) { return function (self, args) { if (typeof args[0] === 'function') { var options = { isPeriodic: nameSuffix === 'Interval', delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 : undefined, args: args }; var task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask); if (!task) { return task; } // Node.js must additionally support the ref and unref functions. var handle = task.data.handleId; if (typeof handle === 'number') { // for non nodejs env, we save handleId: task // mapping in local cache for clearTimeout tasksByHandleId[handle] = task; } else if (handle) { // for nodejs env, we save task // reference in timerId Object for clearTimeout handle[taskSymbol] = task; } // check whether handle is null, because some polyfill or browser // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' && typeof handle.unref === 'function') { task.ref = handle.ref.bind(handle); task.unref = handle.unref.bind(handle); } if (typeof handle === 'number' || handle) { return handle; } return task; } else { // cause an error by calling it directly. return delegate.apply(window, args); } }; }); clearNative = patchMethod(window, cancelName, function (delegate) { return function (self, args) { var id = args[0]; var task; if (typeof id === 'number') { // non nodejs env. task = tasksByHandleId[id]; } else { // nodejs env. task = id && id[taskSymbol]; // other environments. if (!task) { task = id; } } if (task && typeof task.type === 'string') { if (task.state !== 'notScheduled' && (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) { if (typeof id === 'number') { delete tasksByHandleId[id]; } else if (id) { id[taskSymbol] = null; } // Do not cancel already canceled functions task.zone.cancelTask(task); } } else { // cause an error by calling it directly. delegate.apply(window, args); } }; }); } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /* * This is necessary for Chrome and Chrome mobile, to enable * things like redefining `createdCallback` on an element. */ var _defineProperty = Object[zoneSymbol('defineProperty')] = Object.defineProperty; var _getOwnPropertyDescriptor = Object[zoneSymbol('getOwnPropertyDescriptor')] = Object.getOwnPropertyDescriptor; var _create = Object.create; var unconfigurablesKey = zoneSymbol('unconfigurables'); function propertyPatch() { Object.defineProperty = function (obj, prop, desc) { if (isUnconfigurable(obj, prop)) { throw new TypeError('Cannot assign to read only property \'' + prop + '\' of ' + obj); } var originalConfigurableFlag = desc.configurable; if (prop !== 'prototype') { desc = rewriteDescriptor(obj, prop, desc); } return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); }; Object.defineProperties = function (obj, props) { Object.keys(props).forEach(function (prop) { Object.defineProperty(obj, prop, props[prop]); }); return obj; }; Object.create = function (obj, proto) { if (typeof proto === 'object' && !Object.isFrozen(proto)) { Object.keys(proto).forEach(function (prop) { proto[prop] = rewriteDescriptor(obj, prop, proto[prop]); }); } return _create(obj, proto); }; Object.getOwnPropertyDescriptor = function (obj, prop) { var desc = _getOwnPropertyDescriptor(obj, prop); if (desc && isUnconfigurable(obj, prop)) { desc.configurable = false; } return desc; }; } function _redefineProperty(obj, prop, desc) { var originalConfigurableFlag = desc.configurable; desc = rewriteDescriptor(obj, prop, desc); return _tryDefineProperty(obj, prop, desc, originalConfigurableFlag); } function isUnconfigurable(obj, prop) { return obj && obj[unconfigurablesKey] && obj[unconfigurablesKey][prop]; } function rewriteDescriptor(obj, prop, desc) { // issue-927, if the desc is frozen, don't try to change the desc if (!Object.isFrozen(desc)) { desc.configurable = true; } if (!desc.configurable) { // issue-927, if the obj is frozen, don't try to set the desc to obj if (!obj[unconfigurablesKey] && !Object.isFrozen(obj)) { _defineProperty(obj, unconfigurablesKey, { writable: true, value: {} }); } if (obj[unconfigurablesKey]) { obj[unconfigurablesKey][prop] = true; } } return desc; } function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) { try { return _defineProperty(obj, prop, desc); } catch (error) { if (desc.configurable) { // In case of errors, when the configurable flag was likely set by rewriteDescriptor(), let's // retry with the original flag value if (typeof originalConfigurableFlag == 'undefined') { delete desc.configurable; } else { desc.configurable = originalConfigurableFlag; } try { return _defineProperty(obj, prop, desc); } catch (error) { var descJson = null; try { descJson = JSON.stringify(desc); } catch (error) { descJson = desc.toString(); } console.log("Attempting to configure '" + prop + "' with descriptor '" + descJson + "' on object '" + obj + "' and got error, giving up: " + error); } } else { throw error; } } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ // we have to patch the instance since the proto is non-configurable function apply(api, _global) { var WS = _global.WebSocket; // On Safari window.EventTarget doesn't exist so need to patch WS add/removeEventListener // On older Chrome, no need since EventTarget was already patched if (!_global.EventTarget) { patchEventTarget(_global, [WS.prototype]); } _global.WebSocket = function (x, y) { var socket = arguments.length > 1 ? new WS(x, y) : new WS(x); var proxySocket; var proxySocketProto; // Safari 7.0 has non-configurable own 'onmessage' and friends properties on the socket instance var onmessageDesc = ObjectGetOwnPropertyDescriptor(socket, 'onmessage'); if (onmessageDesc && onmessageDesc.configurable === false) { proxySocket = ObjectCreate(socket); // socket have own property descriptor 'onopen', 'onmessage', 'onclose', 'onerror' // but proxySocket not, so we will keep socket as prototype and pass it to // patchOnProperties method proxySocketProto = socket; [ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, 'send', 'close'].forEach(function (propName) { proxySocket[propName] = function () { var args = ArraySlice.call(arguments); if (propName === ADD_EVENT_LISTENER_STR || propName === REMOVE_EVENT_LISTENER_STR) { var eventName = args.length > 0 ? args[0] : undefined; if (eventName) { var propertySymbol = Zone.__symbol__('ON_PROPERTY' + eventName); socket[propertySymbol] = proxySocket[propertySymbol]; } } return socket[propName].apply(socket, args); }; }); } else { // we can patch the real socket proxySocket = socket; } patchOnProperties(proxySocket, ['close', 'error', 'message', 'open'], proxySocketProto); return proxySocket; }; var globalWebSocket = _global['WebSocket']; for (var prop in WS) { globalWebSocket[prop] = WS[prop]; } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview * @suppress {globalThis} */ var globalEventHandlersEventNames = [ 'abort', 'animationcancel', 'animationend', 'animationiteration', 'auxclick', 'beforeinput', 'blur', 'cancel', 'canplay', 'canplaythrough', 'change', 'compositionstart', 'compositionupdate', 'compositionend', 'cuechange', 'click', 'close', 'contextmenu', 'curechange', 'dblclick', 'drag', 'dragend', 'dragenter', 'dragexit', 'dragleave', 'dragover', 'drop', 'durationchange', 'emptied', 'ended', 'error', 'focus', 'focusin', 'focusout', 'gotpointercapture', 'input', 'invalid', 'keydown', 'keypress', 'keyup', 'load', 'loadstart', 'loadeddata', 'loadedmetadata', 'lostpointercapture', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'mousewheel', 'orientationchange', 'pause', 'play', 'playing', 'pointercancel', 'pointerdown', 'pointerenter', 'pointerleave', 'pointerlockchange', 'mozpointerlockchange', 'webkitpointerlockerchange', 'pointerlockerror', 'mozpointerlockerror', 'webkitpointerlockerror', 'pointermove', 'pointout', 'pointerover', 'pointerup', 'progress', 'ratechange', 'reset', 'resize', 'scroll', 'seeked', 'seeking', 'select', 'selectionchange', 'selectstart', 'show', 'sort', 'stalled', 'submit', 'suspend', 'timeupdate', 'volumechange', 'touchcancel', 'touchmove', 'touchstart', 'touchend', 'transitioncancel', 'transitionend', 'waiting', 'wheel' ]; var documentEventNames = [ 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange', 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror', 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange', 'visibilitychange', 'resume' ]; var windowEventNames = [ 'absolutedeviceorientation', 'afterinput', 'afterprint', 'appinstalled', 'beforeinstallprompt', 'beforeprint', 'beforeunload', 'devicelight', 'devicemotion', 'deviceorientation', 'deviceorientationabsolute', 'deviceproximity', 'hashchange', 'languagechange', 'message', 'mozbeforepaint', 'offline', 'online', 'paint', 'pageshow', 'pagehide', 'popstate', 'rejectionhandled', 'storage', 'unhandledrejection', 'unload', 'userproximity', 'vrdisplyconnected', 'vrdisplaydisconnected', 'vrdisplaypresentchange' ]; var htmlElementEventNames = [ 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend', 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend', 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend' ]; var mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend']; var ieElementEventNames = [ 'activate', 'afterupdate', 'ariarequest', 'beforeactivate', 'beforedeactivate', 'beforeeditfocus', 'beforeupdate', 'cellchange', 'controlselect', 'dataavailable', 'datasetchanged', 'datasetcomplete', 'errorupdate', 'filterchange', 'layoutcomplete', 'losecapture', 'move', 'moveend', 'movestart', 'propertychange', 'resizeend', 'resizestart', 'rowenter', 'rowexit', 'rowsdelete', 'rowsinserted', 'command', 'compassneedscalibration', 'deactivate', 'help', 'mscontentzoom', 'msmanipulationstatechanged', 'msgesturechange', 'msgesturedoubletap', 'msgestureend', 'msgesturehold', 'msgesturestart', 'msgesturetap', 'msgotpointercapture', 'msinertiastart', 'mslostpointercapture', 'mspointercancel', 'mspointerdown', 'mspointerenter', 'mspointerhover', 'mspointerleave', 'mspointermove', 'mspointerout', 'mspointerover', 'mspointerup', 'pointerout', 'mssitemodejumplistitemremoved', 'msthumbnailclick', 'stop', 'storagecommit' ]; var webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror']; var formEventNames = ['autocomplete', 'autocompleteerror']; var detailEventNames = ['toggle']; var frameEventNames = ['load']; var frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror']; var marqueeEventNames = ['bounce', 'finish', 'start']; var XMLHttpRequestEventNames = [ 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend', 'readystatechange' ]; var IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close']; var websocketEventNames = ['close', 'error', 'open', 'message']; var workerEventNames = ['error', 'message']; var eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames); function filterProperties(target, onProperties, ignoreProperties) { if (!ignoreProperties || ignoreProperties.length === 0) { return onProperties; } var tip = ignoreProperties.filter(function (ip) { return ip.target === target; }); if (!tip || tip.length === 0) { return onProperties; } var targetIgnoreProperties = tip[0].ignoreProperties; return onProperties.filter(function (op) { return targetIgnoreProperties.indexOf(op) === -1; }); } function patchFilteredProperties(target, onProperties, ignoreProperties, prototype) { // check whether target is available, sometimes target will be undefined // because different browser or some 3rd party plugin. if (!target) { return; } var filteredProperties = filterProperties(target, onProperties, ignoreProperties); patchOnProperties(target, filteredProperties, prototype); } function propertyDescriptorPatch(api, _global) { if (isNode && !isMix) { return; } var supportsWebSocket = typeof WebSocket !== 'undefined'; if (canPatchViaPropertyDescriptor()) { var ignoreProperties = _global['__Zone_ignore_on_properties']; // for browsers that we can patch the descriptor: Chrome & Firefox if (isBrowser) { var internalWindow = window; var ignoreErrorProperties = isIE ? [{ target: internalWindow, ignoreProperties: ['error'] }] : []; // in IE/Edge, onProp not exist in window object, but in WindowPrototype // so we need to pass WindowPrototype to check onProp exist or not patchFilteredProperties(internalWindow, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow)); patchFilteredProperties(Document.prototype, eventNames, ignoreProperties); if (typeof internalWindow['SVGElement'] !== 'undefined') { patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties); } patchFilteredProperties(Element.prototype, eventNames, ignoreProperties); patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties); patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties); patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties); patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties); patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties); var HTMLMarqueeElement_1 = internalWindow['HTMLMarqueeElement']; if (HTMLMarqueeElement_1) { patchFilteredProperties(HTMLMarqueeElement_1.prototype, marqueeEventNames, ignoreProperties); } var Worker_1 = internalWindow['Worker']; if (Worker_1) { patchFilteredProperties(Worker_1.prototype, workerEventNames, ignoreProperties); } } patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties); var XMLHttpRequestEventTarget_1 = _global['XMLHttpRequestEventTarget']; if (XMLHttpRequestEventTarget_1) { patchFilteredProperties(XMLHttpRequestEventTarget_1 && XMLHttpRequestEventTarget_1.prototype, XMLHttpRequestEventNames, ignoreProperties); } if (typeof IDBIndex !== 'undefined') { patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties); patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties); patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties); patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties); patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties); patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties); } if (supportsWebSocket) { patchFilteredProperties(WebSocket.prototype, websocketEventNames, ignoreProperties); } } else { // Safari, Android browsers (Jelly Bean) patchViaCapturingAllTheEvents(); patchClass('XMLHttpRequest'); if (supportsWebSocket) { apply(api, _global); } } } function canPatchViaPropertyDescriptor() { if ((isBrowser || isMix) && !ObjectGetOwnPropertyDescriptor(HTMLElement.prototype, 'onclick') && typeof Element !== 'undefined') { // WebKit https://bugs.webkit.org/show_bug.cgi?id=134364 // IDL interface attributes are not configurable var desc = ObjectGetOwnPropertyDescriptor(Element.prototype, 'onclick'); if (desc && !desc.configurable) return false; } var ON_READY_STATE_CHANGE = 'onreadystatechange'; var XMLHttpRequestPrototype = XMLHttpRequest.prototype; var xhrDesc = ObjectGetOwnPropertyDescriptor(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE); // add enumerable and configurable here because in opera // by default XMLHttpRequest.prototype.onreadystatechange is undefined // without adding enumerable and configurable will cause onreadystatechange // non-configurable // and if XMLHttpRequest.prototype.onreadystatechange is undefined, // we should set a real desc instead a fake one if (xhrDesc) { ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return true; } }); var req = new XMLHttpRequest(); var result = !!req.onreadystatechange; // restore original desc ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, xhrDesc || {}); return result; } else { var SYMBOL_FAKE_ONREADYSTATECHANGE_1 = zoneSymbol('fake'); ObjectDefineProperty(XMLHttpRequestPrototype, ON_READY_STATE_CHANGE, { enumerable: true, configurable: true, get: function () { return this[SYMBOL_FAKE_ONREADYSTATECHANGE_1]; }, set: function (value) { this[SYMBOL_FAKE_ONREADYSTATECHANGE_1] = value; } }); var req = new XMLHttpRequest(); var detectFunc = function () { }; req.onreadystatechange = detectFunc; var result = req[SYMBOL_FAKE_ONREADYSTATECHANGE_1] === detectFunc; req.onreadystatechange = null; return result; } } var unboundKey = zoneSymbol('unbound'); // Whenever any eventListener fires, we check the eventListener target and all parents // for `onwhatever` properties and replace them with zone-bound functions // - Chrome (for now) function patchViaCapturingAllTheEvents() { var _loop_1 = function (i) { var property = eventNames[i]; var onproperty = 'on' + property; self.addEventListener(property, function (event) { var elt = event.target, bound, source; if (elt) { source = elt.constructor['name'] + '.' + onproperty; } else { source = 'unknown.' + onproperty; } while (elt) { if (elt[onproperty] && !elt[onproperty][unboundKey]) { bound = wrapWithCurrentZone(elt[onproperty], source); bound[unboundKey] = elt[onproperty]; elt[onproperty] = bound; } elt = elt.parentElement; } }, true); }; for (var i = 0; i < eventNames.length; i++) { _loop_1(i); } } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function eventTargetPatch(_global, api) { var WTF_ISSUE_555 = 'Anchor,Area,Audio,BR,Base,BaseFont,Body,Button,Canvas,Content,DList,Directory,Div,Embed,FieldSet,Font,Form,Frame,FrameSet,HR,Head,Heading,Html,IFrame,Image,Input,Keygen,LI,Label,Legend,Link,Map,Marquee,Media,Menu,Meta,Meter,Mod,OList,Object,OptGroup,Option,Output,Paragraph,Pre,Progress,Quote,Script,Select,Source,Span,Style,TableCaption,TableCell,TableCol,Table,TableRow,TableSection,TextArea,Title,Track,UList,Unknown,Video'; var NO_EVENT_TARGET = 'ApplicationCache,EventSource,FileReader,InputMethodContext,MediaController,MessagePort,Node,Performance,SVGElementInstance,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebKitNamedFlow,Window,Worker,WorkerGlobalScope,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload,IDBRequest,IDBOpenDBRequest,IDBDatabase,IDBTransaction,IDBCursor,DBIndex,WebSocket' .split(','); var EVENT_TARGET = 'EventTarget'; var apis = []; var isWtf = _global['wtf']; var WTF_ISSUE_555_ARRAY = WTF_ISSUE_555.split(','); if (isWtf) { // Workaround for: https://github.com/google/tracing-framework/issues/555 apis = WTF_ISSUE_555_ARRAY.map(function (v) { return 'HTML' + v + 'Element'; }).concat(NO_EVENT_TARGET); } else if (_global[EVENT_TARGET]) { apis.push(EVENT_TARGET); } else { // Note: EventTarget is not available in all browsers, // if it's not available, we instead patch the APIs in the IDL that inherit from EventTarget apis = NO_EVENT_TARGET; } var isDisableIECheck = _global['__Zone_disable_IE_check'] || false; var isEnableCrossContextCheck = _global['__Zone_enable_cross_context_check'] || false; var ieOrEdge = isIEOrEdge(); var ADD_EVENT_LISTENER_SOURCE = '.addEventListener:'; var FUNCTION_WRAPPER = '[object FunctionWrapper]'; var BROWSER_TOOLS = 'function __BROWSERTOOLS_CONSOLE_SAFEFUNC() { [native code] }'; // predefine all __zone_symbol__ + eventName + true/false string for (var i = 0; i < eventNames.length; i++) { var eventName = eventNames[i]; var falseEventName = eventName + FALSE_STR; var trueEventName = eventName + TRUE_STR; var symbol = ZONE_SYMBOL_PREFIX + falseEventName; var symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; zoneSymbolEventNames$1[eventName] = {}; zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol; zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture; } // predefine all task.source string for (var i = 0; i < WTF_ISSUE_555.length; i++) { var target = WTF_ISSUE_555_ARRAY[i]; var targets = globalSources[target] = {}; for (var j = 0; j < eventNames.length; j++) { var eventName = eventNames[j]; targets[eventName] = target + ADD_EVENT_LISTENER_SOURCE + eventName; } } var checkIEAndCrossContext = function (nativeDelegate, delegate, target, args) { if (!isDisableIECheck && ieOrEdge) { if (isEnableCrossContextCheck) { try { var testString = delegate.toString(); if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) { nativeDelegate.apply(target, args); return false; } } catch (error) { nativeDelegate.apply(target, args); return false; } } else { var testString = delegate.toString(); if ((testString === FUNCTION_WRAPPER || testString == BROWSER_TOOLS)) { nativeDelegate.apply(target, args); return false; } } } else if (isEnableCrossContextCheck) { try { delegate.toString(); } catch (error) { nativeDelegate.apply(target, args); return false; } } return true; }; var apiTypes = []; for (var i = 0; i < apis.length; i++) { var type = _global[apis[i]]; apiTypes.push(type && type.prototype); } // vh is validateHandler to check event handler // is valid or not(for security check) patchEventTarget(_global, apiTypes, { vh: checkIEAndCrossContext }); api.patchEventTarget = patchEventTarget; return true; } function patchEvent(global, api) { patchEventPrototype(global, api); } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ function patchCallbacks(target, targetName, method, callbacks) { var symbol = Zone.__symbol__(method); if (target[symbol]) { return; } var nativeDelegate = target[symbol] = target[method]; target[method] = function (name, opts, options) { if (opts && opts.prototype) { callbacks.forEach(function (callback) { var source = targetName + "." + method + "::" + callback; var prototype = opts.prototype; if (prototype.hasOwnProperty(callback)) { var descriptor = ObjectGetOwnPropertyDescriptor(prototype, callback); if (descriptor && descriptor.value) { descriptor.value = wrapWithCurrentZone(descriptor.value, source); _redefineProperty(opts.prototype, callback, descriptor); } else if (prototype[callback]) { prototype[callback] = wrapWithCurrentZone(prototype[callback], source); } } else if (prototype[callback]) { prototype[callback] = wrapWithCurrentZone(prototype[callback], source); } }); } return nativeDelegate.call(target, name, opts, options); }; attachOriginToPatched(target[method], nativeDelegate); } function registerElementPatch(_global) { if ((!isBrowser && !isMix) || !('registerElement' in _global.document)) { return; } var callbacks = ['createdCallback', 'attachedCallback', 'detachedCallback', 'attributeChangedCallback']; patchCallbacks(document, 'Document', 'registerElement', callbacks); } function patchCustomElements(_global) { if ((!isBrowser && !isMix) || !('customElements' in _global)) { return; } var callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback']; patchCallbacks(_global.customElements, 'customElements', 'define', callbacks); } /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @fileoverview * @suppress {missingRequire} */ Zone.__load_patch('util', function (global, Zone, api) { api.patchOnProperties = patchOnProperties; api.patchMethod = patchMethod; api.bindArguments = bindArguments; }); Zone.__load_patch('timers', function (global) { var set = 'set'; var clear = 'clear'; patchTimer(global, set, clear, 'Timeout'); patchTimer(global, set, clear, 'Interval'); patchTimer(global, set, clear, 'Immediate'); }); Zone.__load_patch('requestAnimationFrame', function (global) { patchTimer(global, 'request', 'cancel', 'AnimationFrame'); patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame'); patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame'); }); Zone.__load_patch('blocking', function (global, Zone) { var blockingMethods = ['alert', 'prompt', 'confirm']; for (var i = 0; i < blockingMethods.length; i++) { var name_1 = blockingMethods[i]; patchMethod(global, name_1, function (delegate, symbol, name) { return function (s, args) { return Zone.current.run(delegate, global, args, name); }; }); } }); Zone.__load_patch('EventTarget', function (global, Zone, api) { // load blackListEvents from global var SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); if (global[SYMBOL_BLACK_LISTED_EVENTS]) { Zone[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; } patchEvent(global, api); eventTargetPatch(global, api); // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener var XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget']; if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) { api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]); } patchClass('MutationObserver'); patchClass('WebKitMutationObserver'); patchClass('IntersectionObserver'); patchClass('FileReader'); }); Zone.__load_patch('on_property', function (global, Zone, api) { propertyDescriptorPatch(api, global); propertyPatch(); }); Zone.__load_patch('customElements', function (global, Zone, api) { registerElementPatch(global); patchCustomElements(global); }); Zone.__load_patch('canvas', function (global) { var HTMLCanvasElement = global['HTMLCanvasElement']; if (typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement.prototype && HTMLCanvasElement.prototype.toBlob) { patchMacroTask(HTMLCanvasElement.prototype, 'toBlob', function (self, args) { return { name: 'HTMLCanvasElement.toBlob', target: self, cbIdx: 0, args: args }; }); } }); Zone.__load_patch('XHR', function (global, Zone) { // Treat XMLHttpRequest as a macrotask. patchXHR(global); var XHR_TASK = zoneSymbol('xhrTask'); var XHR_SYNC = zoneSymbol('xhrSync'); var XHR_LISTENER = zoneSymbol('xhrListener'); var XHR_SCHEDULED = zoneSymbol('xhrScheduled'); var XHR_URL = zoneSymbol('xhrURL'); var XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled'); function patchXHR(window) { var XMLHttpRequestPrototype = XMLHttpRequest.prototype; function findPendingTask(target) { return target[XHR_TASK]; } var oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; var oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; if (!oriAddListener) { var XMLHttpRequestEventTarget_1 = window['XMLHttpRequestEventTarget']; if (XMLHttpRequestEventTarget_1) { var XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget_1.prototype; oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER]; oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; } } var READY_STATE_CHANGE = 'readystatechange'; var SCHEDULED = 'scheduled'; function scheduleTask(task) { var data = task.data; var target = data.target; target[XHR_SCHEDULED] = false; target[XHR_ERROR_BEFORE_SCHEDULED] = false; // remove existing event listener var listener = target[XHR_LISTENER]; if (!oriAddListener) { oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER]; oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER]; } if (listener) { oriRemoveListener.call(target, READY_STATE_CHANGE, listener); } var newListener = target[XHR_LISTENER] = function () { if (target.readyState === target.DONE) { // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with // readyState=4 multiple times, so we need to check task state here if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) { // check whether the xhr has registered onload listener // if that is the case, the task should invoke after all // onload listeners finish. var loadTasks = target['__zone_symbol__loadfalse']; if (loadTasks && loadTasks.length > 0) { var oriInvoke_1 = task.invoke; task.invoke = function () { // need to load the tasks again, because in other // load listener, they may remove themselves var loadTasks = target['__zone_symbol__loadfalse']; for (var i = 0; i < loadTasks.length; i++) { if (loadTasks[i] === task) { loadTasks.splice(i, 1); } } if (!data.aborted && task.state === SCHEDULED) { oriInvoke_1.call(task); } }; loadTasks.push(task); } else { task.invoke(); } } else if (!data.aborted && target[XHR_SCHEDULED] === false) { // error occurs when xhr.send() target[XHR_ERROR_BEFORE_SCHEDULED] = true; } } }; oriAddListener.call(target, READY_STATE_CHANGE, newListener); var storedTask = target[XHR_TASK]; if (!storedTask) { target[XHR_TASK] = task; } sendNative.apply(target, data.args); target[XHR_SCHEDULED] = true; return task; } function placeholderCallback() { } function clearTask(task) { var data = task.data; // Note - ideally, we would call data.target.removeEventListener here, but it's too late // to prevent it from firing. So instead, we store info for the event listener. data.aborted = true; return abortNative.apply(data.target, data.args); } var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () { return function (self, args) { self[XHR_SYNC] = args[2] == false; self[XHR_URL] = args[1]; return openNative.apply(self, args); }; }); var XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send'; var fetchTaskAborting = zoneSymbol('fetchTaskAborting'); var fetchTaskScheduling = zoneSymbol('fetchTaskScheduling'); var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () { return function (self, args) { if (Zone.current[fetchTaskScheduling] === true) { // a fetch is scheduling, so we are using xhr to polyfill fetch // and because we already schedule macroTask for fetch, we should // not schedule a macroTask for xhr again return sendNative.apply(self, args); } if (self[XHR_SYNC]) { // if the XHR is sync there is no task to schedule, just execute the code. return sendNative.apply(self, args); } else { var options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false }; var task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask); if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted && task.state === SCHEDULED) { // xhr request throw error when send // we should invoke task instead of leaving a scheduled // pending macroTask task.invoke(); } } }; }); var abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', function () { return function (self, args) { var task = findPendingTask(self); if (task && typeof task.type == 'string') { // If the XHR has already completed, do nothing. // If the XHR has already been aborted, do nothing. // Fix #569, call abort multiple times before done will cause // macroTask task count be negative number if (task.cancelFn == null || (task.data && task.data.aborted)) { return; } task.zone.cancelTask(task); } else if (Zone.current[fetchTaskAborting] === true) { // the abort is called from fetch polyfill, we need to call native abort of XHR. return abortNative.apply(self, args); } // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no // task // to cancel. Do nothing. }; }); } }); Zone.__load_patch('geolocation', function (global) { /// GEO_LOCATION if (global['navigator'] && global['navigator'].geolocation) { patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']); } }); Zone.__load_patch('PromiseRejectionEvent', function (global, Zone) { // handle unhandled promise rejection function findPromiseRejectionHandler(evtName) { return function (e) { var eventTasks = findEventTasks(global, evtName); eventTasks.forEach(function (eventTask) { // windows has added unhandledrejection event listener // trigger the event listener var PromiseRejectionEvent = global['PromiseRejectionEvent']; if (PromiseRejectionEvent) { var evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection }); eventTask.invoke(evt); } }); }; } if (global['PromiseRejectionEvent']) { Zone[zoneSymbol('unhandledPromiseRejectionHandler')] = findPromiseRejectionHandler('unhandledrejection'); Zone[zoneSymbol('rejectionHandledHandler')] = findPromiseRejectionHandler('rejectionhandled'); } }); /** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ }))); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(24))) /***/ }), /* 386 */ /***/ (function(module, exports) { /* (ignored) */ /***/ }), /* 387 */, /* 388 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(164); /***/ }) ],[388]); //# sourceMappingURL=polyfills.bundle.js.map