bootstrap-table-rails 1.19.1 → 1.20.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bootstrap-table-rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/.DS_Store +0 -0
  4. data/vendor/assets/javascripts/bootstrap-table/.DS_Store +0 -0
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +906 -337
  6. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.esm.js +816 -382
  7. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.js +817 -383
  8. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +2 -1
  9. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +2787 -2003
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +1003 -429
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +536 -240
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +1381 -923
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +546 -250
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/custom-view/bootstrap-table-custom-view.js +547 -249
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +471 -186
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +883 -525
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +852 -449
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.css +9 -1
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +2649 -1097
  20. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/utils.js +1276 -710
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +566 -272
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +861 -414
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +16 -8
  24. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +652 -351
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +572 -249
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +782 -370
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +532 -237
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +538 -246
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +744 -294
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +572 -258
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +510 -200
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +471 -186
  33. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +539 -244
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +864 -531
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +526 -235
  36. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +457 -180
  37. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +457 -180
  38. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-bg-BG.js +465 -188
  39. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +457 -180
  40. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +477 -200
  41. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +457 -180
  42. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +457 -180
  43. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +457 -180
  44. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +457 -180
  45. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +457 -180
  46. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +457 -180
  47. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +457 -180
  48. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +457 -180
  49. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +457 -180
  50. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +457 -180
  51. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +457 -180
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +457 -180
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +457 -180
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +457 -180
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +457 -180
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +457 -180
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +457 -180
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +457 -180
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +460 -182
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +457 -180
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hi-IN.js +1083 -0
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +457 -180
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +457 -180
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +457 -180
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +457 -180
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +457 -180
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +457 -180
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +482 -204
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-lb-LU.js +1083 -0
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +457 -180
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +457 -180
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +496 -180
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +496 -180
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +457 -180
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +457 -180
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +457 -180
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +457 -180
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +457 -180
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +457 -180
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.js +457 -180
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.js +457 -180
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +457 -180
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +457 -180
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +457 -180
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +457 -180
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +457 -180
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +457 -180
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +457 -180
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +457 -180
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +457 -180
  91. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.css +1 -0
  92. data/vendor/assets/javascripts/bootstrap-table/themes/bootstrap-table/bootstrap-table.js +547 -255
  93. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +1 -0
  94. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +543 -235
  95. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +1 -0
  96. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +547 -239
  97. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +1 -0
  98. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +545 -252
  99. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +1 -0
  100. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +541 -233
  101. metadata +5 -3
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.BootstrapTable = {}, global.jQuery));
5
- }(this, (function (exports, $) { 'use strict';
5
+ })(this, (function (exports, $) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -11,17 +11,11 @@
11
11
  function _typeof(obj) {
12
12
  "@babel/helpers - typeof";
13
13
 
14
- if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
15
- _typeof = function (obj) {
16
- return typeof obj;
17
- };
18
- } else {
19
- _typeof = function (obj) {
20
- return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
21
- };
22
- }
23
-
24
- return _typeof(obj);
14
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
15
+ return typeof obj;
16
+ } : function (obj) {
17
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
18
+ }, _typeof(obj);
25
19
  }
26
20
 
27
21
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
@@ -59,6 +53,18 @@
59
53
  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;
60
54
  });
61
55
 
56
+ var functionBindNative = !fails(function () {
57
+ var test = (function () { /* empty */ }).bind();
58
+ // eslint-disable-next-line no-prototype-builtins -- safe
59
+ return typeof test != 'function' || test.hasOwnProperty('prototype');
60
+ });
61
+
62
+ var call$2 = Function.prototype.call;
63
+
64
+ var functionCall = functionBindNative ? call$2.bind(call$2) : function () {
65
+ return call$2.apply(call$2, arguments);
66
+ };
67
+
62
68
  var $propertyIsEnumerable = {}.propertyIsEnumerable;
63
69
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
64
70
  var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
@@ -68,13 +74,13 @@
68
74
 
69
75
  // `Object.prototype.propertyIsEnumerable` method implementation
70
76
  // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
71
- var f$4 = NASHORN_BUG ? function propertyIsEnumerable(V) {
77
+ var f$5 = NASHORN_BUG ? function propertyIsEnumerable(V) {
72
78
  var descriptor = getOwnPropertyDescriptor$1(this, V);
73
79
  return !!descriptor && descriptor.enumerable;
74
80
  } : $propertyIsEnumerable;
75
81
 
76
82
  var objectPropertyIsEnumerable = {
77
- f: f$4
83
+ f: f$5
78
84
  };
79
85
 
80
86
  var createPropertyDescriptor = function (bitmap, value) {
@@ -86,27 +92,44 @@
86
92
  };
87
93
  };
88
94
 
89
- var toString = {}.toString;
95
+ var FunctionPrototype$2 = Function.prototype;
96
+ var bind$1 = FunctionPrototype$2.bind;
97
+ var call$1 = FunctionPrototype$2.call;
98
+ var uncurryThis = functionBindNative && bind$1.bind(call$1, call$1);
99
+
100
+ var functionUncurryThis = functionBindNative ? function (fn) {
101
+ return fn && uncurryThis(fn);
102
+ } : function (fn) {
103
+ return fn && function () {
104
+ return call$1.apply(fn, arguments);
105
+ };
106
+ };
107
+
108
+ var toString$1 = functionUncurryThis({}.toString);
109
+ var stringSlice$5 = functionUncurryThis(''.slice);
90
110
 
91
111
  var classofRaw = function (it) {
92
- return toString.call(it).slice(8, -1);
112
+ return stringSlice$5(toString$1(it), 8, -1);
93
113
  };
94
114
 
95
- var split = ''.split;
115
+ var Object$4 = global_1.Object;
116
+ var split = functionUncurryThis(''.split);
96
117
 
97
118
  // fallback for non-array-like ES3 and non-enumerable old V8 strings
98
119
  var indexedObject = fails(function () {
99
120
  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
100
121
  // eslint-disable-next-line no-prototype-builtins -- safe
101
- return !Object('z').propertyIsEnumerable(0);
122
+ return !Object$4('z').propertyIsEnumerable(0);
102
123
  }) ? function (it) {
103
- return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
104
- } : Object;
124
+ return classofRaw(it) == 'String' ? split(it, '') : Object$4(it);
125
+ } : Object$4;
126
+
127
+ var TypeError$a = global_1.TypeError;
105
128
 
106
129
  // `RequireObjectCoercible` abstract operation
107
130
  // https://tc39.es/ecma262/#sec-requireobjectcoercible
108
131
  var requireObjectCoercible = function (it) {
109
- if (it == undefined) throw TypeError("Can't call method on " + it);
132
+ if (it == undefined) throw TypeError$a("Can't call method on " + it);
110
133
  return it;
111
134
  };
112
135
 
@@ -118,88 +141,309 @@
118
141
  return indexedObject(requireObjectCoercible(it));
119
142
  };
120
143
 
144
+ // `IsCallable` abstract operation
145
+ // https://tc39.es/ecma262/#sec-iscallable
146
+ var isCallable = function (argument) {
147
+ return typeof argument == 'function';
148
+ };
149
+
121
150
  var isObject = function (it) {
122
- return typeof it === 'object' ? it !== null : typeof it === 'function';
151
+ return typeof it == 'object' ? it !== null : isCallable(it);
123
152
  };
124
153
 
125
- // `ToPrimitive` abstract operation
126
- // https://tc39.es/ecma262/#sec-toprimitive
127
- // instead of the ES6 spec version, we didn't implement @@toPrimitive case
128
- // and the second argument - flag - preferred type is a string
129
- var toPrimitive = function (input, PREFERRED_STRING) {
130
- if (!isObject(input)) return input;
154
+ var aFunction = function (argument) {
155
+ return isCallable(argument) ? argument : undefined;
156
+ };
157
+
158
+ var getBuiltIn = function (namespace, method) {
159
+ return arguments.length < 2 ? aFunction(global_1[namespace]) : global_1[namespace] && global_1[namespace][method];
160
+ };
161
+
162
+ var objectIsPrototypeOf = functionUncurryThis({}.isPrototypeOf);
163
+
164
+ var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';
165
+
166
+ var process = global_1.process;
167
+ var Deno = global_1.Deno;
168
+ var versions = process && process.versions || Deno && Deno.version;
169
+ var v8 = versions && versions.v8;
170
+ var match, version;
171
+
172
+ if (v8) {
173
+ match = v8.split('.');
174
+ // in old Chrome, versions of V8 isn't V8 = Chrome / 10
175
+ // but their correct versions are not interesting for us
176
+ version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
177
+ }
178
+
179
+ // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
180
+ // so check `userAgent` even if `.v8` exists, but 0
181
+ if (!version && engineUserAgent) {
182
+ match = engineUserAgent.match(/Edge\/(\d+)/);
183
+ if (!match || match[1] >= 74) {
184
+ match = engineUserAgent.match(/Chrome\/(\d+)/);
185
+ if (match) version = +match[1];
186
+ }
187
+ }
188
+
189
+ var engineV8Version = version;
190
+
191
+ /* eslint-disable es/no-symbol -- required for testing */
192
+
193
+
194
+
195
+ // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
196
+ var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
197
+ var symbol = Symbol();
198
+ // Chrome 38 Symbol has incorrect toString conversion
199
+ // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
200
+ return !String(symbol) || !(Object(symbol) instanceof Symbol) ||
201
+ // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
202
+ !Symbol.sham && engineV8Version && engineV8Version < 41;
203
+ });
204
+
205
+ /* eslint-disable es/no-symbol -- required for testing */
206
+
207
+
208
+ var useSymbolAsUid = nativeSymbol
209
+ && !Symbol.sham
210
+ && typeof Symbol.iterator == 'symbol';
211
+
212
+ var Object$3 = global_1.Object;
213
+
214
+ var isSymbol = useSymbolAsUid ? function (it) {
215
+ return typeof it == 'symbol';
216
+ } : function (it) {
217
+ var $Symbol = getBuiltIn('Symbol');
218
+ return isCallable($Symbol) && objectIsPrototypeOf($Symbol.prototype, Object$3(it));
219
+ };
220
+
221
+ var String$3 = global_1.String;
222
+
223
+ var tryToString = function (argument) {
224
+ try {
225
+ return String$3(argument);
226
+ } catch (error) {
227
+ return 'Object';
228
+ }
229
+ };
230
+
231
+ var TypeError$9 = global_1.TypeError;
232
+
233
+ // `Assert: IsCallable(argument) is true`
234
+ var aCallable = function (argument) {
235
+ if (isCallable(argument)) return argument;
236
+ throw TypeError$9(tryToString(argument) + ' is not a function');
237
+ };
238
+
239
+ // `GetMethod` abstract operation
240
+ // https://tc39.es/ecma262/#sec-getmethod
241
+ var getMethod = function (V, P) {
242
+ var func = V[P];
243
+ return func == null ? undefined : aCallable(func);
244
+ };
245
+
246
+ var TypeError$8 = global_1.TypeError;
247
+
248
+ // `OrdinaryToPrimitive` abstract operation
249
+ // https://tc39.es/ecma262/#sec-ordinarytoprimitive
250
+ var ordinaryToPrimitive = function (input, pref) {
131
251
  var fn, val;
132
- if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
133
- if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
134
- if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
135
- throw TypeError("Can't convert object to primitive value");
252
+ if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = functionCall(fn, input))) return val;
253
+ if (isCallable(fn = input.valueOf) && !isObject(val = functionCall(fn, input))) return val;
254
+ if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = functionCall(fn, input))) return val;
255
+ throw TypeError$8("Can't convert object to primitive value");
136
256
  };
137
257
 
138
- var hasOwnProperty = {}.hasOwnProperty;
258
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
259
+ var defineProperty = Object.defineProperty;
139
260
 
140
- var has$1 = function (it, key) {
141
- return hasOwnProperty.call(it, key);
261
+ var setGlobal = function (key, value) {
262
+ try {
263
+ defineProperty(global_1, key, { value: value, configurable: true, writable: true });
264
+ } catch (error) {
265
+ global_1[key] = value;
266
+ } return value;
267
+ };
268
+
269
+ var SHARED = '__core-js_shared__';
270
+ var store$1 = global_1[SHARED] || setGlobal(SHARED, {});
271
+
272
+ var sharedStore = store$1;
273
+
274
+ var shared = createCommonjsModule(function (module) {
275
+ (module.exports = function (key, value) {
276
+ return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
277
+ })('versions', []).push({
278
+ version: '3.21.1',
279
+ mode: 'global',
280
+ copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',
281
+ license: 'https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE',
282
+ source: 'https://github.com/zloirock/core-js'
283
+ });
284
+ });
285
+
286
+ var Object$2 = global_1.Object;
287
+
288
+ // `ToObject` abstract operation
289
+ // https://tc39.es/ecma262/#sec-toobject
290
+ var toObject = function (argument) {
291
+ return Object$2(requireObjectCoercible(argument));
292
+ };
293
+
294
+ var hasOwnProperty = functionUncurryThis({}.hasOwnProperty);
295
+
296
+ // `HasOwnProperty` abstract operation
297
+ // https://tc39.es/ecma262/#sec-hasownproperty
298
+ var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) {
299
+ return hasOwnProperty(toObject(it), key);
300
+ };
301
+
302
+ var id = 0;
303
+ var postfix = Math.random();
304
+ var toString = functionUncurryThis(1.0.toString);
305
+
306
+ var uid = function (key) {
307
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
308
+ };
309
+
310
+ var WellKnownSymbolsStore = shared('wks');
311
+ var Symbol$1 = global_1.Symbol;
312
+ var symbolFor = Symbol$1 && Symbol$1['for'];
313
+ var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;
314
+
315
+ var wellKnownSymbol = function (name) {
316
+ if (!hasOwnProperty_1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) {
317
+ var description = 'Symbol.' + name;
318
+ if (nativeSymbol && hasOwnProperty_1(Symbol$1, name)) {
319
+ WellKnownSymbolsStore[name] = Symbol$1[name];
320
+ } else if (useSymbolAsUid && symbolFor) {
321
+ WellKnownSymbolsStore[name] = symbolFor(description);
322
+ } else {
323
+ WellKnownSymbolsStore[name] = createWellKnownSymbol(description);
324
+ }
325
+ } return WellKnownSymbolsStore[name];
326
+ };
327
+
328
+ var TypeError$7 = global_1.TypeError;
329
+ var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
330
+
331
+ // `ToPrimitive` abstract operation
332
+ // https://tc39.es/ecma262/#sec-toprimitive
333
+ var toPrimitive = function (input, pref) {
334
+ if (!isObject(input) || isSymbol(input)) return input;
335
+ var exoticToPrim = getMethod(input, TO_PRIMITIVE);
336
+ var result;
337
+ if (exoticToPrim) {
338
+ if (pref === undefined) pref = 'default';
339
+ result = functionCall(exoticToPrim, input, pref);
340
+ if (!isObject(result) || isSymbol(result)) return result;
341
+ throw TypeError$7("Can't convert object to primitive value");
342
+ }
343
+ if (pref === undefined) pref = 'number';
344
+ return ordinaryToPrimitive(input, pref);
345
+ };
346
+
347
+ // `ToPropertyKey` abstract operation
348
+ // https://tc39.es/ecma262/#sec-topropertykey
349
+ var toPropertyKey = function (argument) {
350
+ var key = toPrimitive(argument, 'string');
351
+ return isSymbol(key) ? key : key + '';
142
352
  };
143
353
 
144
354
  var document$1 = global_1.document;
145
355
  // typeof document.createElement is 'object' in old IE
146
- var EXISTS = isObject(document$1) && isObject(document$1.createElement);
356
+ var EXISTS$1 = isObject(document$1) && isObject(document$1.createElement);
147
357
 
148
358
  var documentCreateElement = function (it) {
149
- return EXISTS ? document$1.createElement(it) : {};
359
+ return EXISTS$1 ? document$1.createElement(it) : {};
150
360
  };
151
361
 
152
- // Thank's IE8 for his funny defineProperty
362
+ // Thanks to IE8 for its funny defineProperty
153
363
  var ie8DomDefine = !descriptors && !fails(function () {
154
- // eslint-disable-next-line es/no-object-defineproperty -- requied for testing
364
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
155
365
  return Object.defineProperty(documentCreateElement('div'), 'a', {
156
366
  get: function () { return 7; }
157
367
  }).a != 7;
158
368
  });
159
369
 
160
370
  // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
161
- var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
371
+ var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
162
372
 
163
373
  // `Object.getOwnPropertyDescriptor` method
164
374
  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
165
- var f$3 = descriptors ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
375
+ var f$4 = descriptors ? $getOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {
166
376
  O = toIndexedObject(O);
167
- P = toPrimitive(P, true);
377
+ P = toPropertyKey(P);
168
378
  if (ie8DomDefine) try {
169
- return $getOwnPropertyDescriptor(O, P);
379
+ return $getOwnPropertyDescriptor$1(O, P);
170
380
  } catch (error) { /* empty */ }
171
- if (has$1(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
381
+ if (hasOwnProperty_1(O, P)) return createPropertyDescriptor(!functionCall(objectPropertyIsEnumerable.f, O, P), O[P]);
172
382
  };
173
383
 
174
384
  var objectGetOwnPropertyDescriptor = {
175
- f: f$3
385
+ f: f$4
176
386
  };
177
387
 
178
- var anObject = function (it) {
179
- if (!isObject(it)) {
180
- throw TypeError(String(it) + ' is not an object');
181
- } return it;
388
+ // V8 ~ Chrome 36-
389
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3334
390
+ var v8PrototypeDefineBug = descriptors && fails(function () {
391
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
392
+ return Object.defineProperty(function () { /* empty */ }, 'prototype', {
393
+ value: 42,
394
+ writable: false
395
+ }).prototype != 42;
396
+ });
397
+
398
+ var String$2 = global_1.String;
399
+ var TypeError$6 = global_1.TypeError;
400
+
401
+ // `Assert: Type(argument) is Object`
402
+ var anObject = function (argument) {
403
+ if (isObject(argument)) return argument;
404
+ throw TypeError$6(String$2(argument) + ' is not an object');
182
405
  };
183
406
 
407
+ var TypeError$5 = global_1.TypeError;
184
408
  // eslint-disable-next-line es/no-object-defineproperty -- safe
185
409
  var $defineProperty = Object.defineProperty;
410
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
411
+ var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
412
+ var ENUMERABLE = 'enumerable';
413
+ var CONFIGURABLE$1 = 'configurable';
414
+ var WRITABLE = 'writable';
186
415
 
187
416
  // `Object.defineProperty` method
188
417
  // https://tc39.es/ecma262/#sec-object.defineproperty
189
- var f$2 = descriptors ? $defineProperty : function defineProperty(O, P, Attributes) {
418
+ var f$3 = descriptors ? v8PrototypeDefineBug ? function defineProperty(O, P, Attributes) {
190
419
  anObject(O);
191
- P = toPrimitive(P, true);
420
+ P = toPropertyKey(P);
421
+ anObject(Attributes);
422
+ if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
423
+ var current = $getOwnPropertyDescriptor(O, P);
424
+ if (current && current[WRITABLE]) {
425
+ O[P] = Attributes.value;
426
+ Attributes = {
427
+ configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1],
428
+ enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
429
+ writable: false
430
+ };
431
+ }
432
+ } return $defineProperty(O, P, Attributes);
433
+ } : $defineProperty : function defineProperty(O, P, Attributes) {
434
+ anObject(O);
435
+ P = toPropertyKey(P);
192
436
  anObject(Attributes);
193
437
  if (ie8DomDefine) try {
194
438
  return $defineProperty(O, P, Attributes);
195
439
  } catch (error) { /* empty */ }
196
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
440
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError$5('Accessors not supported');
197
441
  if ('value' in Attributes) O[P] = Attributes.value;
198
442
  return O;
199
443
  };
200
444
 
201
445
  var objectDefineProperty = {
202
- f: f$2
446
+ f: f$3
203
447
  };
204
448
 
205
449
  var createNonEnumerableProperty = descriptors ? function (object, key, value) {
@@ -209,25 +453,12 @@
209
453
  return object;
210
454
  };
211
455
 
212
- var setGlobal = function (key, value) {
213
- try {
214
- createNonEnumerableProperty(global_1, key, value);
215
- } catch (error) {
216
- global_1[key] = value;
217
- } return value;
218
- };
219
-
220
- var SHARED = '__core-js_shared__';
221
- var store$1 = global_1[SHARED] || setGlobal(SHARED, {});
222
-
223
- var sharedStore = store$1;
224
-
225
- var functionToString = Function.toString;
456
+ var functionToString = functionUncurryThis(Function.toString);
226
457
 
227
- // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
228
- if (typeof sharedStore.inspectSource != 'function') {
458
+ // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
459
+ if (!isCallable(sharedStore.inspectSource)) {
229
460
  sharedStore.inspectSource = function (it) {
230
- return functionToString.call(it);
461
+ return functionToString(it);
231
462
  };
232
463
  }
233
464
 
@@ -235,24 +466,7 @@
235
466
 
236
467
  var WeakMap$1 = global_1.WeakMap;
237
468
 
238
- var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource(WeakMap$1));
239
-
240
- var shared = createCommonjsModule(function (module) {
241
- (module.exports = function (key, value) {
242
- return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
243
- })('versions', []).push({
244
- version: '3.10.1',
245
- mode: 'global',
246
- copyright: '© 2021 Denis Pushkarev (zloirock.ru)'
247
- });
248
- });
249
-
250
- var id = 0;
251
- var postfix = Math.random();
252
-
253
- var uid = function (key) {
254
- return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
255
- };
469
+ var nativeWeakMap = isCallable(WeakMap$1) && /native code/.test(inspectSource(WeakMap$1));
256
470
 
257
471
  var keys = shared('keys');
258
472
 
@@ -262,6 +476,8 @@
262
476
 
263
477
  var hiddenKeys$1 = {};
264
478
 
479
+ var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
480
+ var TypeError$4 = global_1.TypeError;
265
481
  var WeakMap = global_1.WeakMap;
266
482
  var set, get, has;
267
483
 
@@ -273,40 +489,42 @@
273
489
  return function (it) {
274
490
  var state;
275
491
  if (!isObject(it) || (state = get(it)).type !== TYPE) {
276
- throw TypeError('Incompatible receiver, ' + TYPE + ' required');
492
+ throw TypeError$4('Incompatible receiver, ' + TYPE + ' required');
277
493
  } return state;
278
494
  };
279
495
  };
280
496
 
281
- if (nativeWeakMap) {
497
+ if (nativeWeakMap || sharedStore.state) {
282
498
  var store = sharedStore.state || (sharedStore.state = new WeakMap());
283
- var wmget = store.get;
284
- var wmhas = store.has;
285
- var wmset = store.set;
499
+ var wmget = functionUncurryThis(store.get);
500
+ var wmhas = functionUncurryThis(store.has);
501
+ var wmset = functionUncurryThis(store.set);
286
502
  set = function (it, metadata) {
503
+ if (wmhas(store, it)) throw new TypeError$4(OBJECT_ALREADY_INITIALIZED);
287
504
  metadata.facade = it;
288
- wmset.call(store, it, metadata);
505
+ wmset(store, it, metadata);
289
506
  return metadata;
290
507
  };
291
508
  get = function (it) {
292
- return wmget.call(store, it) || {};
509
+ return wmget(store, it) || {};
293
510
  };
294
511
  has = function (it) {
295
- return wmhas.call(store, it);
512
+ return wmhas(store, it);
296
513
  };
297
514
  } else {
298
515
  var STATE = sharedKey('state');
299
516
  hiddenKeys$1[STATE] = true;
300
517
  set = function (it, metadata) {
518
+ if (hasOwnProperty_1(it, STATE)) throw new TypeError$4(OBJECT_ALREADY_INITIALIZED);
301
519
  metadata.facade = it;
302
520
  createNonEnumerableProperty(it, STATE, metadata);
303
521
  return metadata;
304
522
  };
305
523
  get = function (it) {
306
- return has$1(it, STATE) ? it[STATE] : {};
524
+ return hasOwnProperty_1(it, STATE) ? it[STATE] : {};
307
525
  };
308
526
  has = function (it) {
309
- return has$1(it, STATE);
527
+ return hasOwnProperty_1(it, STATE);
310
528
  };
311
529
  }
312
530
 
@@ -318,7 +536,24 @@
318
536
  getterFor: getterFor
319
537
  };
320
538
 
539
+ var FunctionPrototype$1 = Function.prototype;
540
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
541
+ var getDescriptor = descriptors && Object.getOwnPropertyDescriptor;
542
+
543
+ var EXISTS = hasOwnProperty_1(FunctionPrototype$1, 'name');
544
+ // additional protection from minified / mangled / dropped function names
545
+ var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';
546
+ var CONFIGURABLE = EXISTS && (!descriptors || (descriptors && getDescriptor(FunctionPrototype$1, 'name').configurable));
547
+
548
+ var functionName = {
549
+ EXISTS: EXISTS,
550
+ PROPER: PROPER,
551
+ CONFIGURABLE: CONFIGURABLE
552
+ };
553
+
321
554
  var redefine = createCommonjsModule(function (module) {
555
+ var CONFIGURABLE_FUNCTION_NAME = functionName.CONFIGURABLE;
556
+
322
557
  var getInternalState = internalState.get;
323
558
  var enforceInternalState = internalState.enforce;
324
559
  var TEMPLATE = String(String).split('String');
@@ -327,14 +562,18 @@
327
562
  var unsafe = options ? !!options.unsafe : false;
328
563
  var simple = options ? !!options.enumerable : false;
329
564
  var noTargetGet = options ? !!options.noTargetGet : false;
565
+ var name = options && options.name !== undefined ? options.name : key;
330
566
  var state;
331
- if (typeof value == 'function') {
332
- if (typeof key == 'string' && !has$1(value, 'name')) {
333
- createNonEnumerableProperty(value, 'name', key);
567
+ if (isCallable(value)) {
568
+ if (String(name).slice(0, 7) === 'Symbol(') {
569
+ name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']';
570
+ }
571
+ if (!hasOwnProperty_1(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
572
+ createNonEnumerableProperty(value, 'name', name);
334
573
  }
335
574
  state = enforceInternalState(value);
336
575
  if (!state.source) {
337
- state.source = TEMPLATE.join(typeof key == 'string' ? key : '');
576
+ state.source = TEMPLATE.join(typeof name == 'string' ? name : '');
338
577
  }
339
578
  }
340
579
  if (O === global_1) {
@@ -350,54 +589,51 @@
350
589
  else createNonEnumerableProperty(O, key, value);
351
590
  // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
352
591
  })(Function.prototype, 'toString', function toString() {
353
- return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
592
+ return isCallable(this) && getInternalState(this).source || inspectSource(this);
354
593
  });
355
594
  });
356
595
 
357
- var path = global_1;
358
-
359
- var aFunction$1 = function (variable) {
360
- return typeof variable == 'function' ? variable : undefined;
361
- };
596
+ var ceil = Math.ceil;
597
+ var floor$2 = Math.floor;
362
598
 
363
- var getBuiltIn = function (namespace, method) {
364
- return arguments.length < 2 ? aFunction$1(path[namespace]) || aFunction$1(global_1[namespace])
365
- : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
599
+ // `ToIntegerOrInfinity` abstract operation
600
+ // https://tc39.es/ecma262/#sec-tointegerorinfinity
601
+ var toIntegerOrInfinity = function (argument) {
602
+ var number = +argument;
603
+ // eslint-disable-next-line no-self-compare -- safe
604
+ return number !== number || number === 0 ? 0 : (number > 0 ? floor$2 : ceil)(number);
366
605
  };
367
606
 
368
- var ceil = Math.ceil;
369
- var floor$1 = Math.floor;
607
+ var max$2 = Math.max;
608
+ var min$3 = Math.min;
370
609
 
371
- // `ToInteger` abstract operation
372
- // https://tc39.es/ecma262/#sec-tointeger
373
- var toInteger = function (argument) {
374
- return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor$1 : ceil)(argument);
610
+ // Helper for a popular repeating case of the spec:
611
+ // Let integer be ? ToInteger(index).
612
+ // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
613
+ var toAbsoluteIndex = function (index, length) {
614
+ var integer = toIntegerOrInfinity(index);
615
+ return integer < 0 ? max$2(integer + length, 0) : min$3(integer, length);
375
616
  };
376
617
 
377
- var min$3 = Math.min;
618
+ var min$2 = Math.min;
378
619
 
379
620
  // `ToLength` abstract operation
380
621
  // https://tc39.es/ecma262/#sec-tolength
381
622
  var toLength = function (argument) {
382
- return argument > 0 ? min$3(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
623
+ return argument > 0 ? min$2(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
383
624
  };
384
625
 
385
- var max$1 = Math.max;
386
- var min$2 = Math.min;
387
-
388
- // Helper for a popular repeating case of the spec:
389
- // Let integer be ? ToInteger(index).
390
- // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
391
- var toAbsoluteIndex = function (index, length) {
392
- var integer = toInteger(index);
393
- return integer < 0 ? max$1(integer + length, 0) : min$2(integer, length);
626
+ // `LengthOfArrayLike` abstract operation
627
+ // https://tc39.es/ecma262/#sec-lengthofarraylike
628
+ var lengthOfArrayLike = function (obj) {
629
+ return toLength(obj.length);
394
630
  };
395
631
 
396
632
  // `Array.prototype.{ indexOf, includes }` methods implementation
397
633
  var createMethod$3 = function (IS_INCLUDES) {
398
634
  return function ($this, el, fromIndex) {
399
635
  var O = toIndexedObject($this);
400
- var length = toLength(O.length);
636
+ var length = lengthOfArrayLike(O);
401
637
  var index = toAbsoluteIndex(fromIndex, length);
402
638
  var value;
403
639
  // Array#includes uses SameValueZero equality algorithm
@@ -422,18 +658,20 @@
422
658
  indexOf: createMethod$3(false)
423
659
  };
424
660
 
425
- var indexOf = arrayIncludes.indexOf;
661
+ var indexOf$1 = arrayIncludes.indexOf;
662
+
426
663
 
664
+ var push$4 = functionUncurryThis([].push);
427
665
 
428
666
  var objectKeysInternal = function (object, names) {
429
667
  var O = toIndexedObject(object);
430
668
  var i = 0;
431
669
  var result = [];
432
670
  var key;
433
- for (key in O) !has$1(hiddenKeys$1, key) && has$1(O, key) && result.push(key);
671
+ for (key in O) !hasOwnProperty_1(hiddenKeys$1, key) && hasOwnProperty_1(O, key) && push$4(result, key);
434
672
  // Don't enum bug & hidden keys
435
- while (names.length > i) if (has$1(O, key = names[i++])) {
436
- ~indexOf(result, key) || result.push(key);
673
+ while (names.length > i) if (hasOwnProperty_1(O, key = names[i++])) {
674
+ ~indexOf$1(result, key) || push$4(result, key);
437
675
  }
438
676
  return result;
439
677
  };
@@ -454,35 +692,39 @@
454
692
  // `Object.getOwnPropertyNames` method
455
693
  // https://tc39.es/ecma262/#sec-object.getownpropertynames
456
694
  // eslint-disable-next-line es/no-object-getownpropertynames -- safe
457
- var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
695
+ var f$2 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
458
696
  return objectKeysInternal(O, hiddenKeys);
459
697
  };
460
698
 
461
699
  var objectGetOwnPropertyNames = {
462
- f: f$1
700
+ f: f$2
463
701
  };
464
702
 
465
703
  // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
466
- var f = Object.getOwnPropertySymbols;
704
+ var f$1 = Object.getOwnPropertySymbols;
467
705
 
468
706
  var objectGetOwnPropertySymbols = {
469
- f: f
707
+ f: f$1
470
708
  };
471
709
 
710
+ var concat$1 = functionUncurryThis([].concat);
711
+
472
712
  // all object keys, includes non-enumerable and symbols
473
713
  var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
474
714
  var keys = objectGetOwnPropertyNames.f(anObject(it));
475
715
  var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
476
- return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
716
+ return getOwnPropertySymbols ? concat$1(keys, getOwnPropertySymbols(it)) : keys;
477
717
  };
478
718
 
479
- var copyConstructorProperties = function (target, source) {
719
+ var copyConstructorProperties = function (target, source, exceptions) {
480
720
  var keys = ownKeys(source);
481
721
  var defineProperty = objectDefineProperty.f;
482
722
  var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
483
723
  for (var i = 0; i < keys.length; i++) {
484
724
  var key = keys[i];
485
- if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
725
+ if (!hasOwnProperty_1(target, key) && !(exceptions && hasOwnProperty_1(exceptions, key))) {
726
+ defineProperty(target, key, getOwnPropertyDescriptor(source, key));
727
+ }
486
728
  }
487
729
  };
488
730
 
@@ -492,7 +734,7 @@
492
734
  var value = data[normalize(feature)];
493
735
  return value == POLYFILL ? true
494
736
  : value == NATIVE ? false
495
- : typeof detection == 'function' ? fails(detection)
737
+ : isCallable(detection) ? fails(detection)
496
738
  : !!detection;
497
739
  };
498
740
 
@@ -526,6 +768,7 @@
526
768
  options.sham - add a flag to not completely full polyfills
527
769
  options.enumerable - export as enumerable property
528
770
  options.noTargetGet - prevent calling a getter on target
771
+ options.name - the .name of the function if it does not match the key
529
772
  */
530
773
  var _export = function (options, source) {
531
774
  var TARGET = options.target;
@@ -548,7 +791,7 @@
548
791
  FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
549
792
  // contained in target
550
793
  if (!FORCED && targetProperty !== undefined) {
551
- if (typeof sourceProperty === typeof targetProperty) continue;
794
+ if (typeof sourceProperty == typeof targetProperty) continue;
552
795
  copyConstructorProperties(sourceProperty, targetProperty);
553
796
  }
554
797
  // add a flag to not completely full polyfills
@@ -560,136 +803,144 @@
560
803
  }
561
804
  };
562
805
 
563
- var aFunction = function (it) {
564
- if (typeof it != 'function') {
565
- throw TypeError(String(it) + ' is not a function');
566
- } return it;
567
- };
806
+ var bind = functionUncurryThis(functionUncurryThis.bind);
568
807
 
569
808
  // optional / simple context binding
570
- var functionBindContext = function (fn, that, length) {
571
- aFunction(fn);
572
- if (that === undefined) return fn;
573
- switch (length) {
574
- case 0: return function () {
575
- return fn.call(that);
576
- };
577
- case 1: return function (a) {
578
- return fn.call(that, a);
579
- };
580
- case 2: return function (a, b) {
581
- return fn.call(that, a, b);
582
- };
583
- case 3: return function (a, b, c) {
584
- return fn.call(that, a, b, c);
585
- };
586
- }
587
- return function (/* ...args */) {
809
+ var functionBindContext = function (fn, that) {
810
+ aCallable(fn);
811
+ return that === undefined ? fn : functionBindNative ? bind(fn, that) : function (/* ...args */) {
588
812
  return fn.apply(that, arguments);
589
813
  };
590
814
  };
591
815
 
592
- // `ToObject` abstract operation
593
- // https://tc39.es/ecma262/#sec-toobject
594
- var toObject = function (argument) {
595
- return Object(requireObjectCoercible(argument));
596
- };
597
-
598
816
  // `IsArray` abstract operation
599
817
  // https://tc39.es/ecma262/#sec-isarray
600
818
  // eslint-disable-next-line es/no-array-isarray -- safe
601
- var isArray = Array.isArray || function isArray(arg) {
602
- return classofRaw(arg) == 'Array';
819
+ var isArray = Array.isArray || function isArray(argument) {
820
+ return classofRaw(argument) == 'Array';
603
821
  };
604
822
 
605
- var engineIsNode = classofRaw(global_1.process) == 'process';
606
-
607
- var engineUserAgent = getBuiltIn('navigator', 'userAgent') || '';
823
+ var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');
824
+ var test$1 = {};
608
825
 
609
- var process = global_1.process;
610
- var versions = process && process.versions;
611
- var v8 = versions && versions.v8;
612
- var match, version;
826
+ test$1[TO_STRING_TAG$1] = 'z';
613
827
 
614
- if (v8) {
615
- match = v8.split('.');
616
- version = match[0] + match[1];
617
- } else if (engineUserAgent) {
618
- match = engineUserAgent.match(/Edge\/(\d+)/);
619
- if (!match || match[1] >= 74) {
620
- match = engineUserAgent.match(/Chrome\/(\d+)/);
621
- if (match) version = match[1];
622
- }
623
- }
828
+ var toStringTagSupport = String(test$1) === '[object z]';
624
829
 
625
- var engineV8Version = version && +version;
830
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
831
+ var Object$1 = global_1.Object;
626
832
 
627
- // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
628
- var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
629
- // eslint-disable-next-line es/no-symbol -- required for testing
630
- return !Symbol.sham &&
631
- // Chrome 38 Symbol has incorrect toString conversion
632
- // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
633
- (engineIsNode ? engineV8Version === 38 : engineV8Version > 37 && engineV8Version < 41);
634
- });
833
+ // ES3 wrong here
834
+ var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
635
835
 
636
- /* eslint-disable es/no-symbol -- required for testing */
836
+ // fallback for IE11 Script Access Denied error
837
+ var tryGet = function (it, key) {
838
+ try {
839
+ return it[key];
840
+ } catch (error) { /* empty */ }
841
+ };
637
842
 
843
+ // getting tag from ES6+ `Object.prototype.toString`
844
+ var classof = toStringTagSupport ? classofRaw : function (it) {
845
+ var O, tag, result;
846
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
847
+ // @@toStringTag case
848
+ : typeof (tag = tryGet(O = Object$1(it), TO_STRING_TAG)) == 'string' ? tag
849
+ // builtinTag case
850
+ : CORRECT_ARGUMENTS ? classofRaw(O)
851
+ // ES3 arguments fallback
852
+ : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;
853
+ };
638
854
 
639
- var useSymbolAsUid = nativeSymbol
640
- && !Symbol.sham
641
- && typeof Symbol.iterator == 'symbol';
855
+ var noop = function () { /* empty */ };
856
+ var empty = [];
857
+ var construct = getBuiltIn('Reflect', 'construct');
858
+ var constructorRegExp = /^\s*(?:class|function)\b/;
859
+ var exec$1 = functionUncurryThis(constructorRegExp.exec);
860
+ var INCORRECT_TO_STRING = !constructorRegExp.exec(noop);
642
861
 
643
- var WellKnownSymbolsStore = shared('wks');
644
- var Symbol$1 = global_1.Symbol;
645
- var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid;
862
+ var isConstructorModern = function isConstructor(argument) {
863
+ if (!isCallable(argument)) return false;
864
+ try {
865
+ construct(noop, empty, argument);
866
+ return true;
867
+ } catch (error) {
868
+ return false;
869
+ }
870
+ };
646
871
 
647
- var wellKnownSymbol = function (name) {
648
- if (!has$1(WellKnownSymbolsStore, name) || !(nativeSymbol || typeof WellKnownSymbolsStore[name] == 'string')) {
649
- if (nativeSymbol && has$1(Symbol$1, name)) {
650
- WellKnownSymbolsStore[name] = Symbol$1[name];
651
- } else {
652
- WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
653
- }
654
- } return WellKnownSymbolsStore[name];
872
+ var isConstructorLegacy = function isConstructor(argument) {
873
+ if (!isCallable(argument)) return false;
874
+ switch (classof(argument)) {
875
+ case 'AsyncFunction':
876
+ case 'GeneratorFunction':
877
+ case 'AsyncGeneratorFunction': return false;
878
+ }
879
+ try {
880
+ // we can't check .prototype since constructors produced by .bind haven't it
881
+ // `Function#toString` throws on some built-it function in some legacy engines
882
+ // (for example, `DOMQuad` and similar in FF41-)
883
+ return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource(argument));
884
+ } catch (error) {
885
+ return true;
886
+ }
655
887
  };
656
888
 
889
+ isConstructorLegacy.sham = true;
890
+
891
+ // `IsConstructor` abstract operation
892
+ // https://tc39.es/ecma262/#sec-isconstructor
893
+ var isConstructor = !construct || fails(function () {
894
+ var called;
895
+ return isConstructorModern(isConstructorModern.call)
896
+ || !isConstructorModern(Object)
897
+ || !isConstructorModern(function () { called = true; })
898
+ || called;
899
+ }) ? isConstructorLegacy : isConstructorModern;
900
+
657
901
  var SPECIES$3 = wellKnownSymbol('species');
902
+ var Array$2 = global_1.Array;
658
903
 
659
- // `ArraySpeciesCreate` abstract operation
904
+ // a part of `ArraySpeciesCreate` abstract operation
660
905
  // https://tc39.es/ecma262/#sec-arrayspeciescreate
661
- var arraySpeciesCreate = function (originalArray, length) {
906
+ var arraySpeciesConstructor = function (originalArray) {
662
907
  var C;
663
908
  if (isArray(originalArray)) {
664
909
  C = originalArray.constructor;
665
910
  // cross-realm fallback
666
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
911
+ if (isConstructor(C) && (C === Array$2 || isArray(C.prototype))) C = undefined;
667
912
  else if (isObject(C)) {
668
913
  C = C[SPECIES$3];
669
914
  if (C === null) C = undefined;
670
915
  }
671
- } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
916
+ } return C === undefined ? Array$2 : C;
672
917
  };
673
918
 
674
- var push = [].push;
919
+ // `ArraySpeciesCreate` abstract operation
920
+ // https://tc39.es/ecma262/#sec-arrayspeciescreate
921
+ var arraySpeciesCreate = function (originalArray, length) {
922
+ return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
923
+ };
924
+
925
+ var push$3 = functionUncurryThis([].push);
675
926
 
676
- // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation
927
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation
677
928
  var createMethod$2 = function (TYPE) {
678
929
  var IS_MAP = TYPE == 1;
679
930
  var IS_FILTER = TYPE == 2;
680
931
  var IS_SOME = TYPE == 3;
681
932
  var IS_EVERY = TYPE == 4;
682
933
  var IS_FIND_INDEX = TYPE == 6;
683
- var IS_FILTER_OUT = TYPE == 7;
934
+ var IS_FILTER_REJECT = TYPE == 7;
684
935
  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
685
936
  return function ($this, callbackfn, that, specificCreate) {
686
937
  var O = toObject($this);
687
938
  var self = indexedObject(O);
688
- var boundFunction = functionBindContext(callbackfn, that, 3);
689
- var length = toLength(self.length);
939
+ var boundFunction = functionBindContext(callbackfn, that);
940
+ var length = lengthOfArrayLike(self);
690
941
  var index = 0;
691
942
  var create = specificCreate || arraySpeciesCreate;
692
- var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;
943
+ var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
693
944
  var value, result;
694
945
  for (;length > index; index++) if (NO_HOLES || index in self) {
695
946
  value = self[index];
@@ -700,10 +951,10 @@
700
951
  case 3: return true; // some
701
952
  case 5: return value; // find
702
953
  case 6: return index; // findIndex
703
- case 2: push.call(target, value); // filter
954
+ case 2: push$3(target, value); // filter
704
955
  } else switch (TYPE) {
705
956
  case 4: return false; // every
706
- case 7: push.call(target, value); // filterOut
957
+ case 7: push$3(target, value); // filterReject
707
958
  }
708
959
  }
709
960
  }
@@ -733,9 +984,9 @@
733
984
  // `Array.prototype.findIndex` method
734
985
  // https://tc39.es/ecma262/#sec-array.prototype.findIndex
735
986
  findIndex: createMethod$2(6),
736
- // `Array.prototype.filterOut` method
987
+ // `Array.prototype.filterReject` method
737
988
  // https://github.com/tc39/proposal-array-filtering
738
- filterOut: createMethod$2(7)
989
+ filterReject: createMethod$2(7)
739
990
  };
740
991
 
741
992
  // `Object.keys` method
@@ -748,18 +999,32 @@
748
999
  // `Object.defineProperties` method
749
1000
  // https://tc39.es/ecma262/#sec-object.defineproperties
750
1001
  // eslint-disable-next-line es/no-object-defineproperties -- safe
751
- var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
1002
+ var f = descriptors && !v8PrototypeDefineBug ? Object.defineProperties : function defineProperties(O, Properties) {
752
1003
  anObject(O);
1004
+ var props = toIndexedObject(Properties);
753
1005
  var keys = objectKeys(Properties);
754
1006
  var length = keys.length;
755
1007
  var index = 0;
756
1008
  var key;
757
- while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
1009
+ while (length > index) objectDefineProperty.f(O, key = keys[index++], props[key]);
758
1010
  return O;
759
1011
  };
760
1012
 
1013
+ var objectDefineProperties = {
1014
+ f: f
1015
+ };
1016
+
761
1017
  var html = getBuiltIn('document', 'documentElement');
762
1018
 
1019
+ /* global ActiveXObject -- old IE, WSH */
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
763
1028
  var GT = '>';
764
1029
  var LT = '<';
765
1030
  var PROTOTYPE = 'prototype';
@@ -806,10 +1071,13 @@
806
1071
  var activeXDocument;
807
1072
  var NullProtoObject = function () {
808
1073
  try {
809
- /* global ActiveXObject -- old IE */
810
- activeXDocument = document.domain && new ActiveXObject('htmlfile');
1074
+ activeXDocument = new ActiveXObject('htmlfile');
811
1075
  } catch (error) { /* ignore */ }
812
- NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
1076
+ NullProtoObject = typeof document != 'undefined'
1077
+ ? document.domain && activeXDocument
1078
+ ? NullProtoObjectViaActiveX(activeXDocument) // old IE
1079
+ : NullProtoObjectViaIFrame()
1080
+ : NullProtoObjectViaActiveX(activeXDocument); // WSH
813
1081
  var length = enumBugKeys.length;
814
1082
  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
815
1083
  return NullProtoObject();
@@ -828,7 +1096,7 @@
828
1096
  // add "__proto__" for Object.getPrototypeOf polyfill
829
1097
  result[IE_PROTO] = O;
830
1098
  } else result = NullProtoObject();
831
- return Properties === undefined ? result : objectDefineProperties(result, Properties);
1099
+ return Properties === undefined ? result : objectDefineProperties.f(result, Properties);
832
1100
  };
833
1101
 
834
1102
  var UNSCOPABLES = wellKnownSymbol('unscopables');
@@ -868,10 +1136,30 @@
868
1136
  // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
869
1137
  addToUnscopables(FIND);
870
1138
 
1139
+ // `Object.prototype.toString` method implementation
1140
+ // https://tc39.es/ecma262/#sec-object.prototype.tostring
1141
+ var objectToString = toStringTagSupport ? {}.toString : function toString() {
1142
+ return '[object ' + classof(this) + ']';
1143
+ };
1144
+
1145
+ // `Object.prototype.toString` method
1146
+ // https://tc39.es/ecma262/#sec-object.prototype.tostring
1147
+ if (!toStringTagSupport) {
1148
+ redefine(Object.prototype, 'toString', objectToString, { unsafe: true });
1149
+ }
1150
+
1151
+ var String$1 = global_1.String;
1152
+
1153
+ var toString_1 = function (argument) {
1154
+ if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');
1155
+ return String$1(argument);
1156
+ };
1157
+
871
1158
  // a string of all valid unicode whitespaces
872
1159
  var whitespaces = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
873
1160
  '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
874
1161
 
1162
+ var replace$2 = functionUncurryThis(''.replace);
875
1163
  var whitespace = '[' + whitespaces + ']';
876
1164
  var ltrim = RegExp('^' + whitespace + whitespace + '*');
877
1165
  var rtrim = RegExp(whitespace + whitespace + '*$');
@@ -879,9 +1167,9 @@
879
1167
  // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
880
1168
  var createMethod$1 = function (TYPE) {
881
1169
  return function ($this) {
882
- var string = String(requireObjectCoercible($this));
883
- if (TYPE & 1) string = string.replace(ltrim, '');
884
- if (TYPE & 2) string = string.replace(rtrim, '');
1170
+ var string = toString_1(requireObjectCoercible($this));
1171
+ if (TYPE & 1) string = replace$2(string, ltrim, '');
1172
+ if (TYPE & 2) string = replace$2(string, rtrim, '');
885
1173
  return string;
886
1174
  };
887
1175
  };
@@ -898,13 +1186,19 @@
898
1186
  trim: createMethod$1(3)
899
1187
  };
900
1188
 
1189
+ var PROPER_FUNCTION_NAME$1 = functionName.PROPER;
1190
+
1191
+
1192
+
901
1193
  var non = '\u200B\u0085\u180E';
902
1194
 
903
1195
  // check that a method works with the correct list
904
1196
  // of whitespaces and has a correct name
905
1197
  var stringTrimForced = function (METHOD_NAME) {
906
1198
  return fails(function () {
907
- return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
1199
+ return !!whitespaces[METHOD_NAME]()
1200
+ || non[METHOD_NAME]() !== non
1201
+ || (PROPER_FUNCTION_NAME$1 && whitespaces[METHOD_NAME].name !== METHOD_NAME);
908
1202
  });
909
1203
  };
910
1204
 
@@ -919,48 +1213,6 @@
919
1213
  }
920
1214
  });
921
1215
 
922
- var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');
923
- var test$1 = {};
924
-
925
- test$1[TO_STRING_TAG$1] = 'z';
926
-
927
- var toStringTagSupport = String(test$1) === '[object z]';
928
-
929
- var TO_STRING_TAG = wellKnownSymbol('toStringTag');
930
- // ES3 wrong here
931
- var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
932
-
933
- // fallback for IE11 Script Access Denied error
934
- var tryGet = function (it, key) {
935
- try {
936
- return it[key];
937
- } catch (error) { /* empty */ }
938
- };
939
-
940
- // getting tag from ES6+ `Object.prototype.toString`
941
- var classof = toStringTagSupport ? classofRaw : function (it) {
942
- var O, tag, result;
943
- return it === undefined ? 'Undefined' : it === null ? 'Null'
944
- // @@toStringTag case
945
- : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
946
- // builtinTag case
947
- : CORRECT_ARGUMENTS ? classofRaw(O)
948
- // ES3 arguments fallback
949
- : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
950
- };
951
-
952
- // `Object.prototype.toString` method implementation
953
- // https://tc39.es/ecma262/#sec-object.prototype.tostring
954
- var objectToString = toStringTagSupport ? {}.toString : function toString() {
955
- return '[object ' + classof(this) + ']';
956
- };
957
-
958
- // `Object.prototype.toString` method
959
- // https://tc39.es/ecma262/#sec-object.prototype.tostring
960
- if (!toStringTagSupport) {
961
- redefine(Object.prototype, 'toString', objectToString, { unsafe: true });
962
- }
963
-
964
1216
  // `RegExp.prototype.flags` getter implementation
965
1217
  // https://tc39.es/ecma262/#sec-get-regexp.prototype.flags
966
1218
  var regexpFlags = function () {
@@ -975,107 +1227,118 @@
975
1227
  return result;
976
1228
  };
977
1229
 
1230
+ var PROPER_FUNCTION_NAME = functionName.PROPER;
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
978
1238
  var TO_STRING = 'toString';
979
- var RegExpPrototype = RegExp.prototype;
980
- var nativeToString = RegExpPrototype[TO_STRING];
1239
+ var RegExpPrototype$1 = RegExp.prototype;
1240
+ var n$ToString = RegExpPrototype$1[TO_STRING];
1241
+ var getFlags = functionUncurryThis(regexpFlags);
981
1242
 
982
- var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
1243
+ var NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
983
1244
  // FF44- RegExp#toString has a wrong name
984
- var INCORRECT_NAME = nativeToString.name != TO_STRING;
1245
+ var INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;
985
1246
 
986
1247
  // `RegExp.prototype.toString` method
987
1248
  // https://tc39.es/ecma262/#sec-regexp.prototype.tostring
988
1249
  if (NOT_GENERIC || INCORRECT_NAME) {
989
1250
  redefine(RegExp.prototype, TO_STRING, function toString() {
990
1251
  var R = anObject(this);
991
- var p = String(R.source);
1252
+ var p = toString_1(R.source);
992
1253
  var rf = R.flags;
993
- var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf);
1254
+ var f = toString_1(rf === undefined && objectIsPrototypeOf(RegExpPrototype$1, R) && !('flags' in RegExpPrototype$1) ? getFlags(R) : rf);
994
1255
  return '/' + p + '/' + f;
995
1256
  }, { unsafe: true });
996
1257
  }
997
1258
 
998
1259
  var createProperty = function (object, key, value) {
999
- var propertyKey = toPrimitive(key);
1260
+ var propertyKey = toPropertyKey(key);
1000
1261
  if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
1001
1262
  else object[propertyKey] = value;
1002
1263
  };
1003
1264
 
1004
- var SPECIES$2 = wellKnownSymbol('species');
1265
+ var Array$1 = global_1.Array;
1266
+ var max$1 = Math.max;
1005
1267
 
1006
- var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
1007
- // We can't use this feature detection in V8 since it causes
1008
- // deoptimization and serious performance degradation
1009
- // https://github.com/zloirock/core-js/issues/677
1010
- return engineV8Version >= 51 || !fails(function () {
1011
- var array = [];
1012
- var constructor = array.constructor = {};
1013
- constructor[SPECIES$2] = function () {
1014
- return { foo: 1 };
1015
- };
1016
- return array[METHOD_NAME](Boolean).foo !== 1;
1017
- });
1268
+ var arraySliceSimple = function (O, start, end) {
1269
+ var length = lengthOfArrayLike(O);
1270
+ var k = toAbsoluteIndex(start, length);
1271
+ var fin = toAbsoluteIndex(end === undefined ? length : end, length);
1272
+ var result = Array$1(max$1(fin - k, 0));
1273
+ for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);
1274
+ result.length = n;
1275
+ return result;
1018
1276
  };
1019
1277
 
1020
- var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
1021
- var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
1022
- var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
1278
+ var floor$1 = Math.floor;
1023
1279
 
1024
- // We can't use this feature detection in V8 since it causes
1025
- // deoptimization and serious performance degradation
1026
- // https://github.com/zloirock/core-js/issues/679
1027
- var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () {
1028
- var array = [];
1029
- array[IS_CONCAT_SPREADABLE] = false;
1030
- return array.concat()[0] !== array;
1031
- });
1280
+ var mergeSort = function (array, comparefn) {
1281
+ var length = array.length;
1282
+ var middle = floor$1(length / 2);
1283
+ return length < 8 ? insertionSort(array, comparefn) : merge(
1284
+ array,
1285
+ mergeSort(arraySliceSimple(array, 0, middle), comparefn),
1286
+ mergeSort(arraySliceSimple(array, middle), comparefn),
1287
+ comparefn
1288
+ );
1289
+ };
1290
+
1291
+ var insertionSort = function (array, comparefn) {
1292
+ var length = array.length;
1293
+ var i = 1;
1294
+ var element, j;
1295
+
1296
+ while (i < length) {
1297
+ j = i;
1298
+ element = array[i];
1299
+ while (j && comparefn(array[j - 1], element) > 0) {
1300
+ array[j] = array[--j];
1301
+ }
1302
+ if (j !== i++) array[j] = element;
1303
+ } return array;
1304
+ };
1032
1305
 
1033
- var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
1306
+ var merge = function (array, left, right, comparefn) {
1307
+ var llength = left.length;
1308
+ var rlength = right.length;
1309
+ var lindex = 0;
1310
+ var rindex = 0;
1034
1311
 
1035
- var isConcatSpreadable = function (O) {
1036
- if (!isObject(O)) return false;
1037
- var spreadable = O[IS_CONCAT_SPREADABLE];
1038
- return spreadable !== undefined ? !!spreadable : isArray(O);
1312
+ while (lindex < llength || rindex < rlength) {
1313
+ array[lindex + rindex] = (lindex < llength && rindex < rlength)
1314
+ ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]
1315
+ : lindex < llength ? left[lindex++] : right[rindex++];
1316
+ } return array;
1039
1317
  };
1040
1318
 
1041
- var FORCED$1 = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
1042
-
1043
- // `Array.prototype.concat` method
1044
- // https://tc39.es/ecma262/#sec-array.prototype.concat
1045
- // with adding support of @@isConcatSpreadable and @@species
1046
- _export({ target: 'Array', proto: true, forced: FORCED$1 }, {
1047
- // eslint-disable-next-line no-unused-vars -- required for `.length`
1048
- concat: function concat(arg) {
1049
- var O = toObject(this);
1050
- var A = arraySpeciesCreate(O, 0);
1051
- var n = 0;
1052
- var i, k, length, len, E;
1053
- for (i = -1, length = arguments.length; i < length; i++) {
1054
- E = i === -1 ? O : arguments[i];
1055
- if (isConcatSpreadable(E)) {
1056
- len = toLength(E.length);
1057
- if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1058
- for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
1059
- } else {
1060
- if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1061
- createProperty(A, n++, E);
1062
- }
1063
- }
1064
- A.length = n;
1065
- return A;
1066
- }
1067
- });
1319
+ var arraySort = mergeSort;
1068
1320
 
1069
1321
  var arrayMethodIsStrict = function (METHOD_NAME, argument) {
1070
1322
  var method = [][METHOD_NAME];
1071
1323
  return !!method && fails(function () {
1072
- // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing
1073
- method.call(null, argument || function () { throw 1; }, 1);
1324
+ // eslint-disable-next-line no-useless-call -- required for testing
1325
+ method.call(null, argument || function () { return 1; }, 1);
1074
1326
  });
1075
1327
  };
1076
1328
 
1329
+ var firefox = engineUserAgent.match(/firefox\/(\d+)/i);
1330
+
1331
+ var engineFfVersion = !!firefox && +firefox[1];
1332
+
1333
+ var engineIsIeOrEdge = /MSIE|Trident/.test(engineUserAgent);
1334
+
1335
+ var webkit = engineUserAgent.match(/AppleWebKit\/(\d+)\./);
1336
+
1337
+ var engineWebkitVersion = !!webkit && +webkit[1];
1338
+
1077
1339
  var test = [];
1078
- var nativeSort = test.sort;
1340
+ var un$Sort = functionUncurryThis(test.sort);
1341
+ var push$2 = functionUncurryThis(test.push);
1079
1342
 
1080
1343
  // IE8-
1081
1344
  var FAILS_ON_UNDEFINED = fails(function () {
@@ -1088,83 +1351,194 @@
1088
1351
  // Old WebKit
1089
1352
  var STRICT_METHOD$3 = arrayMethodIsStrict('sort');
1090
1353
 
1091
- var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD$3;
1354
+ var STABLE_SORT = !fails(function () {
1355
+ // feature detection can be too slow, so check engines versions
1356
+ if (engineV8Version) return engineV8Version < 70;
1357
+ if (engineFfVersion && engineFfVersion > 3) return;
1358
+ if (engineIsIeOrEdge) return true;
1359
+ if (engineWebkitVersion) return engineWebkitVersion < 603;
1360
+
1361
+ var result = '';
1362
+ var code, chr, value, index;
1363
+
1364
+ // generate an array with more 512 elements (Chakra and old V8 fails only in this case)
1365
+ for (code = 65; code < 76; code++) {
1366
+ chr = String.fromCharCode(code);
1367
+
1368
+ switch (code) {
1369
+ case 66: case 69: case 70: case 72: value = 3; break;
1370
+ case 68: case 71: value = 4; break;
1371
+ default: value = 2;
1372
+ }
1373
+
1374
+ for (index = 0; index < 47; index++) {
1375
+ test.push({ k: chr + index, v: value });
1376
+ }
1377
+ }
1378
+
1379
+ test.sort(function (a, b) { return b.v - a.v; });
1380
+
1381
+ for (index = 0; index < test.length; index++) {
1382
+ chr = test[index].k.charAt(0);
1383
+ if (result.charAt(result.length - 1) !== chr) result += chr;
1384
+ }
1385
+
1386
+ return result !== 'DGBEFHACIJK';
1387
+ });
1388
+
1389
+ var FORCED$1 = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD$3 || !STABLE_SORT;
1390
+
1391
+ var getSortCompare = function (comparefn) {
1392
+ return function (x, y) {
1393
+ if (y === undefined) return -1;
1394
+ if (x === undefined) return 1;
1395
+ if (comparefn !== undefined) return +comparefn(x, y) || 0;
1396
+ return toString_1(x) > toString_1(y) ? 1 : -1;
1397
+ };
1398
+ };
1092
1399
 
1093
1400
  // `Array.prototype.sort` method
1094
1401
  // https://tc39.es/ecma262/#sec-array.prototype.sort
1095
- _export({ target: 'Array', proto: true, forced: FORCED }, {
1402
+ _export({ target: 'Array', proto: true, forced: FORCED$1 }, {
1096
1403
  sort: function sort(comparefn) {
1097
- return comparefn === undefined
1098
- ? nativeSort.call(toObject(this))
1099
- : nativeSort.call(toObject(this), aFunction(comparefn));
1404
+ if (comparefn !== undefined) aCallable(comparefn);
1405
+
1406
+ var array = toObject(this);
1407
+
1408
+ if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);
1409
+
1410
+ var items = [];
1411
+ var arrayLength = lengthOfArrayLike(array);
1412
+ var itemsLength, index;
1413
+
1414
+ for (index = 0; index < arrayLength; index++) {
1415
+ if (index in array) push$2(items, array[index]);
1416
+ }
1417
+
1418
+ arraySort(items, getSortCompare(comparefn));
1419
+
1420
+ itemsLength = items.length;
1421
+ index = 0;
1422
+
1423
+ while (index < itemsLength) array[index] = items[index++];
1424
+ while (index < arrayLength) delete array[index++];
1425
+
1426
+ return array;
1100
1427
  }
1101
1428
  });
1102
1429
 
1103
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,
1104
- // so we use an intermediate function.
1105
- function RE(s, f) {
1106
- return RegExp(s, f);
1107
- }
1430
+ // babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
1431
+ var $RegExp$2 = global_1.RegExp;
1108
1432
 
1109
1433
  var UNSUPPORTED_Y$2 = fails(function () {
1110
- // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError
1111
- var re = RE('a', 'y');
1434
+ var re = $RegExp$2('a', 'y');
1112
1435
  re.lastIndex = 2;
1113
1436
  return re.exec('abcd') != null;
1114
1437
  });
1115
1438
 
1116
- var BROKEN_CARET = fails(function () {
1439
+ // UC Browser bug
1440
+ // https://github.com/zloirock/core-js/issues/1008
1441
+ var MISSED_STICKY = UNSUPPORTED_Y$2 || fails(function () {
1442
+ return !$RegExp$2('a', 'y').sticky;
1443
+ });
1444
+
1445
+ var BROKEN_CARET = UNSUPPORTED_Y$2 || fails(function () {
1117
1446
  // https://bugzilla.mozilla.org/show_bug.cgi?id=773687
1118
- var re = RE('^r', 'gy');
1447
+ var re = $RegExp$2('^r', 'gy');
1119
1448
  re.lastIndex = 2;
1120
1449
  return re.exec('str') != null;
1121
1450
  });
1122
1451
 
1123
- var regexpStickyHelpers = {
1124
- UNSUPPORTED_Y: UNSUPPORTED_Y$2,
1125
- BROKEN_CARET: BROKEN_CARET
1126
- };
1452
+ var regexpStickyHelpers = {
1453
+ BROKEN_CARET: BROKEN_CARET,
1454
+ MISSED_STICKY: MISSED_STICKY,
1455
+ UNSUPPORTED_Y: UNSUPPORTED_Y$2
1456
+ };
1457
+
1458
+ // babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError
1459
+ var $RegExp$1 = global_1.RegExp;
1460
+
1461
+ var regexpUnsupportedDotAll = fails(function () {
1462
+ var re = $RegExp$1('.', 's');
1463
+ return !(re.dotAll && re.exec('\n') && re.flags === 's');
1464
+ });
1465
+
1466
+ // babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError
1467
+ var $RegExp = global_1.RegExp;
1468
+
1469
+ var regexpUnsupportedNcg = fails(function () {
1470
+ var re = $RegExp('(?<a>b)', 'g');
1471
+ return re.exec('b').groups.a !== 'b' ||
1472
+ 'b'.replace(re, '$<a>c') !== 'bc';
1473
+ });
1474
+
1475
+ /* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */
1476
+ /* eslint-disable regexp/no-useless-quantifier -- testing */
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+ var getInternalState = internalState.get;
1485
+
1127
1486
 
1128
- var nativeExec = RegExp.prototype.exec;
1129
- var nativeReplace = shared('native-string-replace', String.prototype.replace);
1130
1487
 
1488
+ var nativeReplace = shared('native-string-replace', String.prototype.replace);
1489
+ var nativeExec = RegExp.prototype.exec;
1131
1490
  var patchedExec = nativeExec;
1491
+ var charAt$3 = functionUncurryThis(''.charAt);
1492
+ var indexOf = functionUncurryThis(''.indexOf);
1493
+ var replace$1 = functionUncurryThis(''.replace);
1494
+ var stringSlice$4 = functionUncurryThis(''.slice);
1132
1495
 
1133
1496
  var UPDATES_LAST_INDEX_WRONG = (function () {
1134
1497
  var re1 = /a/;
1135
1498
  var re2 = /b*/g;
1136
- nativeExec.call(re1, 'a');
1137
- nativeExec.call(re2, 'a');
1499
+ functionCall(nativeExec, re1, 'a');
1500
+ functionCall(nativeExec, re2, 'a');
1138
1501
  return re1.lastIndex !== 0 || re2.lastIndex !== 0;
1139
1502
  })();
1140
1503
 
1141
- var UNSUPPORTED_Y$1 = regexpStickyHelpers.UNSUPPORTED_Y || regexpStickyHelpers.BROKEN_CARET;
1504
+ var UNSUPPORTED_Y$1 = regexpStickyHelpers.BROKEN_CARET;
1142
1505
 
1143
1506
  // nonparticipating capturing group, copied from es5-shim's String#split patch.
1144
- // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
1145
1507
  var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
1146
1508
 
1147
- var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1;
1509
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y$1 || regexpUnsupportedDotAll || regexpUnsupportedNcg;
1148
1510
 
1149
1511
  if (PATCH) {
1150
- patchedExec = function exec(str) {
1512
+ patchedExec = function exec(string) {
1151
1513
  var re = this;
1152
- var lastIndex, reCopy, match, i;
1514
+ var state = getInternalState(re);
1515
+ var str = toString_1(string);
1516
+ var raw = state.raw;
1517
+ var result, reCopy, lastIndex, match, i, object, group;
1518
+
1519
+ if (raw) {
1520
+ raw.lastIndex = re.lastIndex;
1521
+ result = functionCall(patchedExec, raw, str);
1522
+ re.lastIndex = raw.lastIndex;
1523
+ return result;
1524
+ }
1525
+
1526
+ var groups = state.groups;
1153
1527
  var sticky = UNSUPPORTED_Y$1 && re.sticky;
1154
- var flags = regexpFlags.call(re);
1528
+ var flags = functionCall(regexpFlags, re);
1155
1529
  var source = re.source;
1156
1530
  var charsAdded = 0;
1157
1531
  var strCopy = str;
1158
1532
 
1159
1533
  if (sticky) {
1160
- flags = flags.replace('y', '');
1161
- if (flags.indexOf('g') === -1) {
1534
+ flags = replace$1(flags, 'y', '');
1535
+ if (indexOf(flags, 'g') === -1) {
1162
1536
  flags += 'g';
1163
1537
  }
1164
1538
 
1165
- strCopy = String(str).slice(re.lastIndex);
1539
+ strCopy = stringSlice$4(str, re.lastIndex);
1166
1540
  // Support anchored sticky behavior.
1167
- if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\n')) {
1541
+ if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt$3(str, re.lastIndex - 1) !== '\n')) {
1168
1542
  source = '(?: ' + source + ')';
1169
1543
  strCopy = ' ' + strCopy;
1170
1544
  charsAdded++;
@@ -1179,12 +1553,12 @@
1179
1553
  }
1180
1554
  if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
1181
1555
 
1182
- match = nativeExec.call(sticky ? reCopy : re, strCopy);
1556
+ match = functionCall(nativeExec, sticky ? reCopy : re, strCopy);
1183
1557
 
1184
1558
  if (sticky) {
1185
1559
  if (match) {
1186
- match.input = match.input.slice(charsAdded);
1187
- match[0] = match[0].slice(charsAdded);
1560
+ match.input = stringSlice$4(match.input, charsAdded);
1561
+ match[0] = stringSlice$4(match[0], charsAdded);
1188
1562
  match.index = re.lastIndex;
1189
1563
  re.lastIndex += match[0].length;
1190
1564
  } else re.lastIndex = 0;
@@ -1194,13 +1568,21 @@
1194
1568
  if (NPCG_INCLUDED && match && match.length > 1) {
1195
1569
  // Fix browsers whose `exec` methods don't consistently return `undefined`
1196
1570
  // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1197
- nativeReplace.call(match[0], reCopy, function () {
1571
+ functionCall(nativeReplace, match[0], reCopy, function () {
1198
1572
  for (i = 1; i < arguments.length - 2; i++) {
1199
1573
  if (arguments[i] === undefined) match[i] = undefined;
1200
1574
  }
1201
1575
  });
1202
1576
  }
1203
1577
 
1578
+ if (match && groups) {
1579
+ match.groups = object = objectCreate(null);
1580
+ for (i = 0; i < groups.length; i++) {
1581
+ group = groups[i];
1582
+ object[group[0]] = match[group[1]];
1583
+ }
1584
+ }
1585
+
1204
1586
  return match;
1205
1587
  };
1206
1588
  }
@@ -1213,56 +1595,28 @@
1213
1595
  exec: regexpExec
1214
1596
  });
1215
1597
 
1216
- // TODO: Remove from `core-js@4` since it's moved to entry points
1598
+ var FunctionPrototype = Function.prototype;
1599
+ var apply = FunctionPrototype.apply;
1600
+ var call = FunctionPrototype.call;
1217
1601
 
1602
+ // eslint-disable-next-line es/no-reflect -- safe
1603
+ var functionApply = typeof Reflect == 'object' && Reflect.apply || (functionBindNative ? call.bind(apply) : function () {
1604
+ return call.apply(apply, arguments);
1605
+ });
1218
1606
 
1607
+ // TODO: Remove from `core-js@4` since it's moved to entry points
1219
1608
 
1220
1609
 
1221
1610
 
1222
1611
 
1223
- var SPECIES$1 = wellKnownSymbol('species');
1224
1612
 
1225
- var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1226
- // #replace needs built-in support for named groups.
1227
- // #match works fine because it just return the exec results, even if it has
1228
- // a "grops" property.
1229
- var re = /./;
1230
- re.exec = function () {
1231
- var result = [];
1232
- result.groups = { a: '7' };
1233
- return result;
1234
- };
1235
- return ''.replace(re, '$<a>') !== '7';
1236
- });
1237
1613
 
1238
- // IE <= 11 replaces $0 with the whole match, as if it was $&
1239
- // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
1240
- var REPLACE_KEEPS_$0 = (function () {
1241
- // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
1242
- return 'a'.replace(/./, '$0') === '$0';
1243
- })();
1244
1614
 
1245
- var REPLACE = wellKnownSymbol('replace');
1246
- // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
1247
- var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
1248
- if (/./[REPLACE]) {
1249
- return /./[REPLACE]('a', '$0') === '';
1250
- }
1251
- return false;
1252
- })();
1253
1615
 
1254
- // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
1255
- // Weex JS has frozen built-in prototypes, so use try / catch wrapper
1256
- var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
1257
- // eslint-disable-next-line regexp/no-empty-group -- required for testing
1258
- var re = /(?:)/;
1259
- var originalExec = re.exec;
1260
- re.exec = function () { return originalExec.apply(this, arguments); };
1261
- var result = 'ab'.split(re);
1262
- return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
1263
- });
1616
+ var SPECIES$2 = wellKnownSymbol('species');
1617
+ var RegExpPrototype = RegExp.prototype;
1264
1618
 
1265
- var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
1619
+ var fixRegexpWellKnownSymbolLogic = function (KEY, exec, FORCED, SHAM) {
1266
1620
  var SYMBOL = wellKnownSymbol(KEY);
1267
1621
 
1268
1622
  var DELEGATES_TO_SYMBOL = !fails(function () {
@@ -1285,7 +1639,7 @@
1285
1639
  // RegExp[@@split] doesn't call the regex's exec method, but first creates
1286
1640
  // a new one. We need to return the patched regex when creating the new one.
1287
1641
  re.constructor = {};
1288
- re.constructor[SPECIES$1] = function () { return re; };
1642
+ re.constructor[SPECIES$2] = function () { return re; };
1289
1643
  re.flags = '';
1290
1644
  re[SYMBOL] = /./[SYMBOL];
1291
1645
  }
@@ -1299,59 +1653,51 @@
1299
1653
  if (
1300
1654
  !DELEGATES_TO_SYMBOL ||
1301
1655
  !DELEGATES_TO_EXEC ||
1302
- (KEY === 'replace' && !(
1303
- REPLACE_SUPPORTS_NAMED_GROUPS &&
1304
- REPLACE_KEEPS_$0 &&
1305
- !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
1306
- )) ||
1307
- (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1656
+ FORCED
1308
1657
  ) {
1309
- var nativeRegExpMethod = /./[SYMBOL];
1658
+ var uncurriedNativeRegExpMethod = functionUncurryThis(/./[SYMBOL]);
1310
1659
  var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
1311
- if (regexp.exec === RegExp.prototype.exec) {
1660
+ var uncurriedNativeMethod = functionUncurryThis(nativeMethod);
1661
+ var $exec = regexp.exec;
1662
+ if ($exec === regexpExec || $exec === RegExpPrototype.exec) {
1312
1663
  if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1313
1664
  // The native String method already delegates to @@method (this
1314
1665
  // polyfilled function), leasing to infinite recursion.
1315
1666
  // We avoid it by directly calling the native @@method method.
1316
- return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1667
+ return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };
1317
1668
  }
1318
- return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1669
+ return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };
1319
1670
  }
1320
1671
  return { done: false };
1321
- }, {
1322
- REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,
1323
- REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE
1324
1672
  });
1325
- var stringMethod = methods[0];
1326
- var regexMethod = methods[1];
1327
-
1328
- redefine(String.prototype, KEY, stringMethod);
1329
- redefine(RegExp.prototype, SYMBOL, length == 2
1330
- // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
1331
- // 21.2.5.11 RegExp.prototype[@@split](string, limit)
1332
- ? function (string, arg) { return regexMethod.call(string, this, arg); }
1333
- // 21.2.5.6 RegExp.prototype[@@match](string)
1334
- // 21.2.5.9 RegExp.prototype[@@search](string)
1335
- : function (string) { return regexMethod.call(string, this); }
1336
- );
1673
+
1674
+ redefine(String.prototype, KEY, methods[0]);
1675
+ redefine(RegExpPrototype, SYMBOL, methods[1]);
1337
1676
  }
1338
1677
 
1339
- if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);
1678
+ if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);
1340
1679
  };
1341
1680
 
1342
- // `String.prototype.{ codePointAt, at }` methods implementation
1681
+ var charAt$2 = functionUncurryThis(''.charAt);
1682
+ var charCodeAt = functionUncurryThis(''.charCodeAt);
1683
+ var stringSlice$3 = functionUncurryThis(''.slice);
1684
+
1343
1685
  var createMethod = function (CONVERT_TO_STRING) {
1344
1686
  return function ($this, pos) {
1345
- var S = String(requireObjectCoercible($this));
1346
- var position = toInteger(pos);
1687
+ var S = toString_1(requireObjectCoercible($this));
1688
+ var position = toIntegerOrInfinity(pos);
1347
1689
  var size = S.length;
1348
1690
  var first, second;
1349
1691
  if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1350
- first = S.charCodeAt(position);
1692
+ first = charCodeAt(S, position);
1351
1693
  return first < 0xD800 || first > 0xDBFF || position + 1 === size
1352
- || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1353
- ? CONVERT_TO_STRING ? S.charAt(position) : first
1354
- : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1694
+ || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF
1695
+ ? CONVERT_TO_STRING
1696
+ ? charAt$2(S, position)
1697
+ : first
1698
+ : CONVERT_TO_STRING
1699
+ ? stringSlice$3(S, position, position + 2)
1700
+ : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1355
1701
  };
1356
1702
  };
1357
1703
 
@@ -1364,19 +1710,22 @@
1364
1710
  charAt: createMethod(true)
1365
1711
  };
1366
1712
 
1367
- var charAt = stringMultibyte.charAt;
1713
+ var charAt$1 = stringMultibyte.charAt;
1368
1714
 
1369
1715
  // `AdvanceStringIndex` abstract operation
1370
1716
  // https://tc39.es/ecma262/#sec-advancestringindex
1371
1717
  var advanceStringIndex = function (S, index, unicode) {
1372
- return index + (unicode ? charAt(S, index).length : 1);
1718
+ return index + (unicode ? charAt$1(S, index).length : 1);
1373
1719
  };
1374
1720
 
1375
1721
  var floor = Math.floor;
1376
- var replace = ''.replace;
1722
+ var charAt = functionUncurryThis(''.charAt);
1723
+ var replace = functionUncurryThis(''.replace);
1724
+ var stringSlice$2 = functionUncurryThis(''.slice);
1377
1725
  var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d{1,2}|<[^>]*>)/g;
1378
1726
  var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d{1,2})/g;
1379
1727
 
1728
+ // `GetSubstitution` abstract operation
1380
1729
  // https://tc39.es/ecma262/#sec-getsubstitution
1381
1730
  var getSubstitution = function (matched, str, position, captures, namedCaptures, replacement) {
1382
1731
  var tailPos = position + matched.length;
@@ -1386,15 +1735,15 @@
1386
1735
  namedCaptures = toObject(namedCaptures);
1387
1736
  symbols = SUBSTITUTION_SYMBOLS;
1388
1737
  }
1389
- return replace.call(replacement, symbols, function (match, ch) {
1738
+ return replace(replacement, symbols, function (match, ch) {
1390
1739
  var capture;
1391
- switch (ch.charAt(0)) {
1740
+ switch (charAt(ch, 0)) {
1392
1741
  case '$': return '$';
1393
1742
  case '&': return matched;
1394
- case '`': return str.slice(0, position);
1395
- case "'": return str.slice(tailPos);
1743
+ case '`': return stringSlice$2(str, 0, position);
1744
+ case "'": return stringSlice$2(str, tailPos);
1396
1745
  case '<':
1397
- capture = namedCaptures[ch.slice(1, -1)];
1746
+ capture = namedCaptures[stringSlice$2(ch, 1, -1)];
1398
1747
  break;
1399
1748
  default: // \d\d?
1400
1749
  var n = +ch;
@@ -1402,7 +1751,7 @@
1402
1751
  if (n > m) {
1403
1752
  var f = floor(n / 10);
1404
1753
  if (f === 0) return match;
1405
- if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
1754
+ if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);
1406
1755
  return match;
1407
1756
  }
1408
1757
  capture = captures[n - 1];
@@ -1411,36 +1760,61 @@
1411
1760
  });
1412
1761
  };
1413
1762
 
1763
+ var TypeError$3 = global_1.TypeError;
1764
+
1414
1765
  // `RegExpExec` abstract operation
1415
1766
  // https://tc39.es/ecma262/#sec-regexpexec
1416
1767
  var regexpExecAbstract = function (R, S) {
1417
1768
  var exec = R.exec;
1418
- if (typeof exec === 'function') {
1419
- var result = exec.call(R, S);
1420
- if (typeof result !== 'object') {
1421
- throw TypeError('RegExp exec method returned something other than an Object or null');
1422
- }
1769
+ if (isCallable(exec)) {
1770
+ var result = functionCall(exec, R, S);
1771
+ if (result !== null) anObject(result);
1423
1772
  return result;
1424
1773
  }
1425
-
1426
- if (classofRaw(R) !== 'RegExp') {
1427
- throw TypeError('RegExp#exec called on incompatible receiver');
1428
- }
1429
-
1430
- return regexpExec.call(R, S);
1774
+ if (classofRaw(R) === 'RegExp') return functionCall(regexpExec, R, S);
1775
+ throw TypeError$3('RegExp#exec called on incompatible receiver');
1431
1776
  };
1432
1777
 
1778
+ var REPLACE = wellKnownSymbol('replace');
1433
1779
  var max = Math.max;
1434
1780
  var min$1 = Math.min;
1781
+ var concat = functionUncurryThis([].concat);
1782
+ var push$1 = functionUncurryThis([].push);
1783
+ var stringIndexOf = functionUncurryThis(''.indexOf);
1784
+ var stringSlice$1 = functionUncurryThis(''.slice);
1435
1785
 
1436
1786
  var maybeToString = function (it) {
1437
1787
  return it === undefined ? it : String(it);
1438
1788
  };
1439
1789
 
1790
+ // IE <= 11 replaces $0 with the whole match, as if it was $&
1791
+ // https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0
1792
+ var REPLACE_KEEPS_$0 = (function () {
1793
+ // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing
1794
+ return 'a'.replace(/./, '$0') === '$0';
1795
+ })();
1796
+
1797
+ // Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string
1798
+ var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {
1799
+ if (/./[REPLACE]) {
1800
+ return /./[REPLACE]('a', '$0') === '';
1801
+ }
1802
+ return false;
1803
+ })();
1804
+
1805
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1806
+ var re = /./;
1807
+ re.exec = function () {
1808
+ var result = [];
1809
+ result.groups = { a: '7' };
1810
+ return result;
1811
+ };
1812
+ // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive
1813
+ return ''.replace(re, '$<a>') !== '7';
1814
+ });
1815
+
1440
1816
  // @@replace logic
1441
- fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {
1442
- var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;
1443
- var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;
1817
+ fixRegexpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {
1444
1818
  var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';
1445
1819
 
1446
1820
  return [
@@ -1448,27 +1822,28 @@
1448
1822
  // https://tc39.es/ecma262/#sec-string.prototype.replace
1449
1823
  function replace(searchValue, replaceValue) {
1450
1824
  var O = requireObjectCoercible(this);
1451
- var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
1452
- return replacer !== undefined
1453
- ? replacer.call(searchValue, O, replaceValue)
1454
- : nativeReplace.call(String(O), searchValue, replaceValue);
1825
+ var replacer = searchValue == undefined ? undefined : getMethod(searchValue, REPLACE);
1826
+ return replacer
1827
+ ? functionCall(replacer, searchValue, O, replaceValue)
1828
+ : functionCall(nativeReplace, toString_1(O), searchValue, replaceValue);
1455
1829
  },
1456
1830
  // `RegExp.prototype[@@replace]` method
1457
1831
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace
1458
- function (regexp, replaceValue) {
1832
+ function (string, replaceValue) {
1833
+ var rx = anObject(this);
1834
+ var S = toString_1(string);
1835
+
1459
1836
  if (
1460
- (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||
1461
- (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)
1837
+ typeof replaceValue == 'string' &&
1838
+ stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&
1839
+ stringIndexOf(replaceValue, '$<') === -1
1462
1840
  ) {
1463
- var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1841
+ var res = maybeCallNative(nativeReplace, rx, S, replaceValue);
1464
1842
  if (res.done) return res.value;
1465
1843
  }
1466
1844
 
1467
- var rx = anObject(regexp);
1468
- var S = String(this);
1469
-
1470
- var functionalReplace = typeof replaceValue === 'function';
1471
- if (!functionalReplace) replaceValue = String(replaceValue);
1845
+ var functionalReplace = isCallable(replaceValue);
1846
+ if (!functionalReplace) replaceValue = toString_1(replaceValue);
1472
1847
 
1473
1848
  var global = rx.global;
1474
1849
  if (global) {
@@ -1480,10 +1855,10 @@
1480
1855
  var result = regexpExecAbstract(rx, S);
1481
1856
  if (result === null) break;
1482
1857
 
1483
- results.push(result);
1858
+ push$1(results, result);
1484
1859
  if (!global) break;
1485
1860
 
1486
- var matchStr = String(result[0]);
1861
+ var matchStr = toString_1(result[0]);
1487
1862
  if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1488
1863
  }
1489
1864
 
@@ -1492,31 +1867,97 @@
1492
1867
  for (var i = 0; i < results.length; i++) {
1493
1868
  result = results[i];
1494
1869
 
1495
- var matched = String(result[0]);
1496
- var position = max(min$1(toInteger(result.index), S.length), 0);
1870
+ var matched = toString_1(result[0]);
1871
+ var position = max(min$1(toIntegerOrInfinity(result.index), S.length), 0);
1497
1872
  var captures = [];
1498
1873
  // NOTE: This is equivalent to
1499
1874
  // captures = result.slice(1).map(maybeToString)
1500
1875
  // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
1501
1876
  // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
1502
1877
  // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
1503
- for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
1878
+ for (var j = 1; j < result.length; j++) push$1(captures, maybeToString(result[j]));
1504
1879
  var namedCaptures = result.groups;
1505
1880
  if (functionalReplace) {
1506
- var replacerArgs = [matched].concat(captures, position, S);
1507
- if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
1508
- var replacement = String(replaceValue.apply(undefined, replacerArgs));
1881
+ var replacerArgs = concat([matched], captures, position, S);
1882
+ if (namedCaptures !== undefined) push$1(replacerArgs, namedCaptures);
1883
+ var replacement = toString_1(functionApply(replaceValue, undefined, replacerArgs));
1509
1884
  } else {
1510
1885
  replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
1511
1886
  }
1512
1887
  if (position >= nextSourcePosition) {
1513
- accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
1888
+ accumulatedResult += stringSlice$1(S, nextSourcePosition, position) + replacement;
1514
1889
  nextSourcePosition = position + matched.length;
1515
1890
  }
1516
1891
  }
1517
- return accumulatedResult + S.slice(nextSourcePosition);
1892
+ return accumulatedResult + stringSlice$1(S, nextSourcePosition);
1518
1893
  }
1519
1894
  ];
1895
+ }, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);
1896
+
1897
+ var SPECIES$1 = wellKnownSymbol('species');
1898
+
1899
+ var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
1900
+ // We can't use this feature detection in V8 since it causes
1901
+ // deoptimization and serious performance degradation
1902
+ // https://github.com/zloirock/core-js/issues/677
1903
+ return engineV8Version >= 51 || !fails(function () {
1904
+ var array = [];
1905
+ var constructor = array.constructor = {};
1906
+ constructor[SPECIES$1] = function () {
1907
+ return { foo: 1 };
1908
+ };
1909
+ return array[METHOD_NAME](Boolean).foo !== 1;
1910
+ });
1911
+ };
1912
+
1913
+ var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
1914
+ var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
1915
+ var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
1916
+ var TypeError$2 = global_1.TypeError;
1917
+
1918
+ // We can't use this feature detection in V8 since it causes
1919
+ // deoptimization and serious performance degradation
1920
+ // https://github.com/zloirock/core-js/issues/679
1921
+ var IS_CONCAT_SPREADABLE_SUPPORT = engineV8Version >= 51 || !fails(function () {
1922
+ var array = [];
1923
+ array[IS_CONCAT_SPREADABLE] = false;
1924
+ return array.concat()[0] !== array;
1925
+ });
1926
+
1927
+ var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
1928
+
1929
+ var isConcatSpreadable = function (O) {
1930
+ if (!isObject(O)) return false;
1931
+ var spreadable = O[IS_CONCAT_SPREADABLE];
1932
+ return spreadable !== undefined ? !!spreadable : isArray(O);
1933
+ };
1934
+
1935
+ var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
1936
+
1937
+ // `Array.prototype.concat` method
1938
+ // https://tc39.es/ecma262/#sec-array.prototype.concat
1939
+ // with adding support of @@isConcatSpreadable and @@species
1940
+ _export({ target: 'Array', proto: true, forced: FORCED }, {
1941
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
1942
+ concat: function concat(arg) {
1943
+ var O = toObject(this);
1944
+ var A = arraySpeciesCreate(O, 0);
1945
+ var n = 0;
1946
+ var i, k, length, len, E;
1947
+ for (i = -1, length = arguments.length; i < length; i++) {
1948
+ E = i === -1 ? O : arguments[i];
1949
+ if (isConcatSpreadable(E)) {
1950
+ len = lengthOfArrayLike(E);
1951
+ if (n + len > MAX_SAFE_INTEGER) throw TypeError$2(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1952
+ for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);
1953
+ } else {
1954
+ if (n >= MAX_SAFE_INTEGER) throw TypeError$2(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
1955
+ createProperty(A, n++, E);
1956
+ }
1957
+ }
1958
+ A.length = n;
1959
+ return A;
1960
+ }
1520
1961
  });
1521
1962
 
1522
1963
  var $filter = arrayIteration.filter;
@@ -1534,23 +1975,23 @@
1534
1975
  });
1535
1976
 
1536
1977
  // @@match logic
1537
- fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
1978
+ fixRegexpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {
1538
1979
  return [
1539
1980
  // `String.prototype.match` method
1540
1981
  // https://tc39.es/ecma262/#sec-string.prototype.match
1541
1982
  function match(regexp) {
1542
1983
  var O = requireObjectCoercible(this);
1543
- var matcher = regexp == undefined ? undefined : regexp[MATCH];
1544
- return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
1984
+ var matcher = regexp == undefined ? undefined : getMethod(regexp, MATCH);
1985
+ return matcher ? functionCall(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString_1(O));
1545
1986
  },
1546
1987
  // `RegExp.prototype[@@match]` method
1547
1988
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@match
1548
- function (regexp) {
1549
- var res = maybeCallNative(nativeMatch, regexp, this);
1550
- if (res.done) return res.value;
1989
+ function (string) {
1990
+ var rx = anObject(this);
1991
+ var S = toString_1(string);
1992
+ var res = maybeCallNative(nativeMatch, rx, S);
1551
1993
 
1552
- var rx = anObject(regexp);
1553
- var S = String(this);
1994
+ if (res.done) return res.value;
1554
1995
 
1555
1996
  if (!rx.global) return regexpExecAbstract(rx, S);
1556
1997
 
@@ -1560,7 +2001,7 @@
1560
2001
  var n = 0;
1561
2002
  var result;
1562
2003
  while ((result = regexpExecAbstract(rx, S)) !== null) {
1563
- var matchStr = String(result[0]);
2004
+ var matchStr = toString_1(result[0]);
1564
2005
  A[n] = matchStr;
1565
2006
  if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1566
2007
  n++;
@@ -1579,6 +2020,14 @@
1579
2020
  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp');
1580
2021
  };
1581
2022
 
2023
+ var TypeError$1 = global_1.TypeError;
2024
+
2025
+ // `Assert: IsConstructor(argument) is true`
2026
+ var aConstructor = function (argument) {
2027
+ if (isConstructor(argument)) return argument;
2028
+ throw TypeError$1(tryToString(argument) + ' is not a constructor');
2029
+ };
2030
+
1582
2031
  var SPECIES = wellKnownSymbol('species');
1583
2032
 
1584
2033
  // `SpeciesConstructor` abstract operation
@@ -1586,16 +2035,30 @@
1586
2035
  var speciesConstructor = function (O, defaultConstructor) {
1587
2036
  var C = anObject(O).constructor;
1588
2037
  var S;
1589
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
2038
+ return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);
1590
2039
  };
1591
2040
 
1592
2041
  var UNSUPPORTED_Y = regexpStickyHelpers.UNSUPPORTED_Y;
1593
- var arrayPush = [].push;
1594
- var min = Math.min;
1595
2042
  var MAX_UINT32 = 0xFFFFFFFF;
2043
+ var min = Math.min;
2044
+ var $push = [].push;
2045
+ var exec = functionUncurryThis(/./.exec);
2046
+ var push = functionUncurryThis($push);
2047
+ var stringSlice = functionUncurryThis(''.slice);
2048
+
2049
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
2050
+ // Weex JS has frozen built-in prototypes, so use try / catch wrapper
2051
+ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
2052
+ // eslint-disable-next-line regexp/no-empty-group -- required for testing
2053
+ var re = /(?:)/;
2054
+ var originalExec = re.exec;
2055
+ re.exec = function () { return originalExec.apply(this, arguments); };
2056
+ var result = 'ab'.split(re);
2057
+ return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
2058
+ });
1596
2059
 
1597
2060
  // @@split logic
1598
- fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
2061
+ fixRegexpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {
1599
2062
  var internalSplit;
1600
2063
  if (
1601
2064
  'abbc'.split(/(b)*/)[1] == 'c' ||
@@ -1603,19 +2066,19 @@
1603
2066
  'test'.split(/(?:)/, -1).length != 4 ||
1604
2067
  'ab'.split(/(?:ab)*/).length != 2 ||
1605
2068
  '.'.split(/(.?)(.?)/).length != 4 ||
1606
- // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing
2069
+ // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing
1607
2070
  '.'.split(/()()/).length > 1 ||
1608
2071
  ''.split(/.?/).length
1609
2072
  ) {
1610
2073
  // based on es5-shim implementation, need to rework it
1611
2074
  internalSplit = function (separator, limit) {
1612
- var string = String(requireObjectCoercible(this));
2075
+ var string = toString_1(requireObjectCoercible(this));
1613
2076
  var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1614
2077
  if (lim === 0) return [];
1615
2078
  if (separator === undefined) return [string];
1616
2079
  // If `separator` is not a regex, use native split
1617
2080
  if (!isRegexp(separator)) {
1618
- return nativeSplit.call(string, separator, lim);
2081
+ return functionCall(nativeSplit, string, separator, lim);
1619
2082
  }
1620
2083
  var output = [];
1621
2084
  var flags = (separator.ignoreCase ? 'i' : '') +
@@ -1626,11 +2089,11 @@
1626
2089
  // Make `global` and avoid `lastIndex` issues by working with a copy
1627
2090
  var separatorCopy = new RegExp(separator.source, flags + 'g');
1628
2091
  var match, lastIndex, lastLength;
1629
- while (match = regexpExec.call(separatorCopy, string)) {
2092
+ while (match = functionCall(regexpExec, separatorCopy, string)) {
1630
2093
  lastIndex = separatorCopy.lastIndex;
1631
2094
  if (lastIndex > lastLastIndex) {
1632
- output.push(string.slice(lastLastIndex, match.index));
1633
- if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
2095
+ push(output, stringSlice(string, lastLastIndex, match.index));
2096
+ if (match.length > 1 && match.index < string.length) functionApply($push, output, arraySliceSimple(match, 1));
1634
2097
  lastLength = match[0].length;
1635
2098
  lastLastIndex = lastIndex;
1636
2099
  if (output.length >= lim) break;
@@ -1638,14 +2101,14 @@
1638
2101
  if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
1639
2102
  }
1640
2103
  if (lastLastIndex === string.length) {
1641
- if (lastLength || !separatorCopy.test('')) output.push('');
1642
- } else output.push(string.slice(lastLastIndex));
1643
- return output.length > lim ? output.slice(0, lim) : output;
2104
+ if (lastLength || !exec(separatorCopy, '')) push(output, '');
2105
+ } else push(output, stringSlice(string, lastLastIndex));
2106
+ return output.length > lim ? arraySliceSimple(output, 0, lim) : output;
1644
2107
  };
1645
2108
  // Chakra, V8
1646
2109
  } else if ('0'.split(undefined, 0).length) {
1647
2110
  internalSplit = function (separator, limit) {
1648
- return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
2111
+ return separator === undefined && limit === 0 ? [] : functionCall(nativeSplit, this, separator, limit);
1649
2112
  };
1650
2113
  } else internalSplit = nativeSplit;
1651
2114
 
@@ -1654,22 +2117,23 @@
1654
2117
  // https://tc39.es/ecma262/#sec-string.prototype.split
1655
2118
  function split(separator, limit) {
1656
2119
  var O = requireObjectCoercible(this);
1657
- var splitter = separator == undefined ? undefined : separator[SPLIT];
1658
- return splitter !== undefined
1659
- ? splitter.call(separator, O, limit)
1660
- : internalSplit.call(String(O), separator, limit);
2120
+ var splitter = separator == undefined ? undefined : getMethod(separator, SPLIT);
2121
+ return splitter
2122
+ ? functionCall(splitter, separator, O, limit)
2123
+ : functionCall(internalSplit, toString_1(O), separator, limit);
1661
2124
  },
1662
2125
  // `RegExp.prototype[@@split]` method
1663
2126
  // https://tc39.es/ecma262/#sec-regexp.prototype-@@split
1664
2127
  //
1665
2128
  // NOTE: This cannot be properly polyfilled in engines that don't support
1666
2129
  // the 'y' flag.
1667
- function (regexp, limit) {
1668
- var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
2130
+ function (string, limit) {
2131
+ var rx = anObject(this);
2132
+ var S = toString_1(string);
2133
+ var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);
2134
+
1669
2135
  if (res.done) return res.value;
1670
2136
 
1671
- var rx = anObject(regexp);
1672
- var S = String(this);
1673
2137
  var C = speciesConstructor(rx, RegExp);
1674
2138
 
1675
2139
  var unicodeMatching = rx.unicode;
@@ -1689,7 +2153,7 @@
1689
2153
  var A = [];
1690
2154
  while (q < S.length) {
1691
2155
  splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;
1692
- var z = regexpExecAbstract(splitter, UNSUPPORTED_Y ? S.slice(q) : S);
2156
+ var z = regexpExecAbstract(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);
1693
2157
  var e;
1694
2158
  if (
1695
2159
  z === null ||
@@ -1697,20 +2161,20 @@
1697
2161
  ) {
1698
2162
  q = advanceStringIndex(S, q, unicodeMatching);
1699
2163
  } else {
1700
- A.push(S.slice(p, q));
2164
+ push(A, stringSlice(S, p, q));
1701
2165
  if (A.length === lim) return A;
1702
2166
  for (var i = 1; i <= z.length - 1; i++) {
1703
- A.push(z[i]);
2167
+ push(A, z[i]);
1704
2168
  if (A.length === lim) return A;
1705
2169
  }
1706
2170
  q = p = e;
1707
2171
  }
1708
2172
  }
1709
- A.push(S.slice(p));
2173
+ push(A, stringSlice(S, p));
1710
2174
  return A;
1711
2175
  }
1712
2176
  ];
1713
- }, UNSUPPORTED_Y);
2177
+ }, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);
1714
2178
 
1715
2179
  var $includes = arrayIncludes.includes;
1716
2180
 
@@ -1762,6 +2226,14 @@
1762
2226
  TouchList: 0
1763
2227
  };
1764
2228
 
2229
+ // in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`
2230
+
2231
+
2232
+ var classList = documentCreateElement('span').classList;
2233
+ var DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;
2234
+
2235
+ var domTokenListPrototype = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;
2236
+
1765
2237
  var $forEach = arrayIteration.forEach;
1766
2238
 
1767
2239
 
@@ -1774,17 +2246,23 @@
1774
2246
  // eslint-disable-next-line es/no-array-prototype-foreach -- safe
1775
2247
  } : [].forEach;
1776
2248
 
1777
- for (var COLLECTION_NAME in domIterables) {
1778
- var Collection = global_1[COLLECTION_NAME];
1779
- var CollectionPrototype = Collection && Collection.prototype;
2249
+ var handlePrototype = function (CollectionPrototype) {
1780
2250
  // some Chrome versions have non-configurable methods on DOMTokenList
1781
2251
  if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {
1782
2252
  createNonEnumerableProperty(CollectionPrototype, 'forEach', arrayForEach);
1783
2253
  } catch (error) {
1784
2254
  CollectionPrototype.forEach = arrayForEach;
1785
2255
  }
2256
+ };
2257
+
2258
+ for (var COLLECTION_NAME in domIterables) {
2259
+ if (domIterables[COLLECTION_NAME]) {
2260
+ handlePrototype(global_1[COLLECTION_NAME] && global_1[COLLECTION_NAME].prototype);
2261
+ }
1786
2262
  }
1787
2263
 
2264
+ handlePrototype(domTokenListPrototype);
2265
+
1788
2266
  var FAILS_ON_PRIMITIVES = fails(function () { objectKeys(1); });
1789
2267
 
1790
2268
  // `Object.keys` method
@@ -1795,7 +2273,7 @@
1795
2273
  }
1796
2274
  });
1797
2275
 
1798
- var nativeJoin = [].join;
2276
+ var un$Join = functionUncurryThis([].join);
1799
2277
 
1800
2278
  var ES3_STRINGS = indexedObject != Object;
1801
2279
  var STRICT_METHOD$1 = arrayMethodIsStrict('join', ',');
@@ -1804,43 +2282,59 @@
1804
2282
  // https://tc39.es/ecma262/#sec-array.prototype.join
1805
2283
  _export({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD$1 }, {
1806
2284
  join: function join(separator) {
1807
- return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
2285
+ return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);
1808
2286
  }
1809
2287
  });
1810
2288
 
1811
2289
  /* eslint-disable es/no-array-prototype-indexof -- required for testing */
1812
2290
 
1813
- var $indexOf = arrayIncludes.indexOf;
2291
+
2292
+ var $IndexOf = arrayIncludes.indexOf;
1814
2293
 
1815
2294
 
1816
- var nativeIndexOf = [].indexOf;
2295
+ var un$IndexOf = functionUncurryThis([].indexOf);
1817
2296
 
1818
- var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
2297
+ var NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;
1819
2298
  var STRICT_METHOD = arrayMethodIsStrict('indexOf');
1820
2299
 
1821
2300
  // `Array.prototype.indexOf` method
1822
2301
  // https://tc39.es/ecma262/#sec-array.prototype.indexof
1823
2302
  _export({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {
1824
2303
  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
2304
+ var fromIndex = arguments.length > 1 ? arguments[1] : undefined;
1825
2305
  return NEGATIVE_ZERO
1826
2306
  // convert -0 to +0
1827
- ? nativeIndexOf.apply(this, arguments) || 0
1828
- : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
2307
+ ? un$IndexOf(this, searchElement, fromIndex) || 0
2308
+ : $IndexOf(this, searchElement, fromIndex);
1829
2309
  }
1830
2310
  });
1831
2311
 
1832
- var Utils = $__default['default'].fn.bootstrapTable.utils;
2312
+ /* eslint-disable no-use-before-define */
2313
+
2314
+ var Utils = $__default["default"].fn.bootstrapTable.utils;
1833
2315
  var searchControls = 'select, input:not([type="checkbox"]):not([type="radio"])';
2316
+ function getInputClass(that) {
2317
+ var isSelect = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
2318
+ var formControlClass = isSelect ? that.constants.classes.select : that.constants.classes.input;
2319
+ return that.options.iconSize ? Utils.sprintf('%s-%s', formControlClass, that.options.iconSize) : formControlClass;
2320
+ }
1834
2321
  function getOptionsFromSelectControl(selectControl) {
1835
- return selectControl.get(selectControl.length - 1).options;
2322
+ return selectControl[0].options;
1836
2323
  }
1837
2324
  function getControlContainer(that) {
1838
2325
  if (that.options.filterControlContainer) {
1839
- return $__default['default']("".concat(that.options.filterControlContainer));
2326
+ return $__default["default"]("".concat(that.options.filterControlContainer));
2327
+ }
2328
+
2329
+ if (that.options.height && that._initialized) {
2330
+ return $__default["default"]('.fixed-table-header table thead');
1840
2331
  }
1841
2332
 
1842
2333
  return that.$header;
1843
2334
  }
2335
+ function isKeyAllowed(keyCode) {
2336
+ return $__default["default"].inArray(keyCode, [37, 38, 39, 40]) > -1;
2337
+ }
1844
2338
  function getSearchControls(that) {
1845
2339
  return getControlContainer(that).find(searchControls);
1846
2340
  }
@@ -1870,78 +2364,90 @@
1870
2364
 
1871
2365
  return false;
1872
2366
  }
1873
- function addOptionToSelectControl(selectControl, _value, text, selected) {
2367
+ function addOptionToSelectControl(selectControl, _value, text, selected, shouldCompareText) {
1874
2368
  var value = _value === undefined || _value === null ? '' : _value.toString().trim();
1875
- var $selectControl = $__default['default'](selectControl.get(selectControl.length - 1));
1876
-
1877
- if (!existOptionInSelectControl(selectControl, value)) {
1878
- var option = $__default['default']("<option value=\"".concat(value, "\">").concat(text, "</option>"));
1879
-
1880
- if (value === selected) {
1881
- option.attr('selected', true);
1882
- }
2369
+ value = Utils.removeHTML(value);
2370
+ text = Utils.removeHTML(text);
1883
2371
 
1884
- $selectControl.append(option);
2372
+ if (existOptionInSelectControl(selectControl, value)) {
2373
+ return;
1885
2374
  }
2375
+
2376
+ var isSelected = shouldCompareText ? value === selected || text === selected : value === selected;
2377
+ var option = new Option(text, value, false, isSelected);
2378
+ selectControl.get(0).add(option);
1886
2379
  }
1887
2380
  function sortSelectControl(selectControl, orderBy) {
1888
- var $selectControl = $__default['default'](selectControl.get(selectControl.length - 1));
1889
- var $opts = $selectControl.find('option:gt(0)');
2381
+ var $selectControl = selectControl.get(0);
1890
2382
 
1891
- if (orderBy !== 'server') {
1892
- $opts.sort(function (a, b) {
1893
- return Utils.sort(a.textContent, b.textContent, orderBy === 'desc' ? -1 : 1);
1894
- });
2383
+ if (orderBy === 'server') {
2384
+ return;
2385
+ }
2386
+
2387
+ var tmpAry = new Array();
2388
+
2389
+ for (var i = 0; i < $selectControl.options.length; i++) {
2390
+ tmpAry[i] = new Array();
2391
+ tmpAry[i][0] = $selectControl.options[i].text;
2392
+ tmpAry[i][1] = $selectControl.options[i].value;
2393
+ tmpAry[i][2] = $selectControl.options[i].selected;
2394
+ }
2395
+
2396
+ tmpAry.sort(function (a, b) {
2397
+ return Utils.sort(a[0], b[0], orderBy === 'desc' ? -1 : 1);
2398
+ });
2399
+
2400
+ while ($selectControl.options.length > 0) {
2401
+ $selectControl.options[0] = null;
1895
2402
  }
1896
2403
 
1897
- $selectControl.find('option:gt(0)').remove();
1898
- $selectControl.append($opts);
2404
+ for (var _i = 0; _i < tmpAry.length; _i++) {
2405
+ var op = new Option(tmpAry[_i][0], tmpAry[_i][1], false, tmpAry[_i][2]);
2406
+ $selectControl.add(op);
2407
+ }
1899
2408
  }
1900
2409
  function fixHeaderCSS(_ref) {
1901
2410
  var $tableHeader = _ref.$tableHeader;
1902
- $tableHeader.css('height', '89px');
2411
+ $tableHeader.css('height', $tableHeader.find('table').outerHeight(true));
1903
2412
  }
1904
2413
  function getElementClass($element) {
1905
2414
  return $element.attr('class').replace('form-control', '').replace('focus-temp', '').replace('search-input', '').trim();
1906
2415
  }
1907
2416
  function getCursorPosition(el) {
1908
- if (Utils.isIEBrowser()) {
1909
- if ($__default['default'](el).is('input[type=text]')) {
1910
- var pos = 0;
1911
-
1912
- if ('selectionStart' in el) {
1913
- pos = el.selectionStart;
1914
- } else if ('selection' in document) {
1915
- el.focus();
1916
- var Sel = document.selection.createRange();
1917
- var SelLength = document.selection.createRange().text.length;
1918
- Sel.moveStart('character', -el.value.length);
1919
- pos = Sel.text.length - SelLength;
1920
- }
1921
-
1922
- return pos;
2417
+ if ($__default["default"](el).is('input[type=search]')) {
2418
+ var pos = 0;
2419
+
2420
+ if ('selectionStart' in el) {
2421
+ pos = el.selectionStart;
2422
+ } else if ('selection' in document) {
2423
+ el.focus();
2424
+ var Sel = document.selection.createRange();
2425
+ var SelLength = document.selection.createRange().text.length;
2426
+ Sel.moveStart('character', -el.value.length);
2427
+ pos = Sel.text.length - SelLength;
1923
2428
  }
1924
2429
 
1925
- return -1;
2430
+ return pos;
1926
2431
  }
1927
2432
 
1928
2433
  return -1;
1929
2434
  }
1930
- function setCursorPosition(el) {
1931
- $__default['default'](el).val(el.value);
1932
- }
1933
- function copyValues(that) {
2435
+ function cacheValues(that) {
1934
2436
  var searchControls = getSearchControls(that);
1935
- that.options.valuesFilterControl = [];
2437
+ that._valuesFilterControl = [];
1936
2438
  searchControls.each(function () {
1937
- var $field = $__default['default'](this);
2439
+ var $field = $__default["default"](this);
2440
+ var fieldClass = getElementClass($field);
1938
2441
 
1939
- if (that.options.height) {
1940
- var fieldClass = getElementClass($field);
1941
- $field = $__default['default'](".fixed-table-header .".concat(fieldClass));
2442
+ if (that.options.height && !that.options.filterControlContainer) {
2443
+ $field = $__default["default"](".fixed-table-header .".concat(fieldClass));
2444
+ } else if (that.options.filterControlContainer) {
2445
+ $field = $__default["default"]("".concat(that.options.filterControlContainer, " .").concat(fieldClass));
2446
+ } else {
2447
+ $field = $__default["default"](".".concat(fieldClass));
1942
2448
  }
1943
2449
 
1944
- that.options.valuesFilterControl.push({
2450
+ that._valuesFilterControl.push({
1945
2451
  field: $field.closest('[data-field]').data('field'),
1946
2452
  value: $field.val(),
1947
2453
  position: getCursorPosition($field.get(0)),
@@ -1949,45 +2455,68 @@
1949
2455
  });
1950
2456
  });
1951
2457
  }
2458
+ function setCaretPosition(elem, caretPos) {
2459
+ try {
2460
+ if (elem) {
2461
+ if (elem.createTextRange) {
2462
+ var range = elem.createTextRange();
2463
+ range.move('character', caretPos);
2464
+ range.select();
2465
+ } else {
2466
+ elem.setSelectionRange(caretPos, caretPos);
2467
+ }
2468
+ }
2469
+ } catch (ex) {// ignored
2470
+ }
2471
+ }
1952
2472
  function setValues(that) {
1953
2473
  var field = null;
1954
2474
  var result = [];
1955
2475
  var searchControls = getSearchControls(that);
1956
2476
 
1957
- if (that.options.valuesFilterControl.length > 0) {
2477
+ if (that._valuesFilterControl.length > 0) {
1958
2478
  // Callback to apply after settings fields values
1959
- var fieldToFocusCallback = null;
2479
+ var callbacks = [];
1960
2480
  searchControls.each(function (i, el) {
1961
- var $this = $__default['default'](el);
2481
+ var $this = $__default["default"](el);
1962
2482
  field = $this.closest('[data-field]').data('field');
1963
- result = that.options.valuesFilterControl.filter(function (valueObj) {
2483
+ result = that._valuesFilterControl.filter(function (valueObj) {
1964
2484
  return valueObj.field === field;
1965
2485
  });
1966
2486
 
1967
2487
  if (result.length > 0) {
1968
- if ($this.is('[type=radio]')) {
1969
- return;
1970
- }
1971
-
1972
- $this.val(result[0].value);
1973
-
1974
- if (result[0].hasFocus && result[0].value !== '') {
1975
- // set callback if the field had the focus.
1976
- fieldToFocusCallback = function (fieldToFocus, carretPosition) {
1977
- // Closure here to capture the field and cursor position
2488
+ if (result[0].hasFocus || result[0].value) {
2489
+ var fieldToFocusCallback = function (element, cacheElementInfo) {
2490
+ // Closure here to capture the field information
1978
2491
  var closedCallback = function closedCallback() {
1979
- fieldToFocus.focus();
1980
- setCursorPosition(fieldToFocus);
2492
+ if (cacheElementInfo.hasFocus) {
2493
+ element.focus();
2494
+ }
2495
+
2496
+ if (Array.isArray(cacheElementInfo.value)) {
2497
+ var $element = $__default["default"](element);
2498
+ $__default["default"].each(cacheElementInfo.value, function (i, e) {
2499
+ $element.find(Utils.sprintf('option[value=\'%s\']', e)).prop('selected', true);
2500
+ });
2501
+ } else {
2502
+ element.value = cacheElementInfo.value;
2503
+ }
2504
+
2505
+ setCaretPosition(element, cacheElementInfo.position);
1981
2506
  };
1982
2507
 
1983
2508
  return closedCallback;
1984
- }($this.get(0), result[0].position);
2509
+ }($this.get(0), result[0]);
2510
+
2511
+ callbacks.push(fieldToFocusCallback);
1985
2512
  }
1986
2513
  }
1987
2514
  }); // Callback call.
1988
2515
 
1989
- if (fieldToFocusCallback !== null) {
1990
- fieldToFocusCallback();
2516
+ if (callbacks.length > 0) {
2517
+ callbacks.forEach(function (callback) {
2518
+ return callback();
2519
+ });
1991
2520
  }
1992
2521
  }
1993
2522
  }
@@ -1997,14 +2526,14 @@
1997
2526
  var foundLocalStorage = localStorage;
1998
2527
 
1999
2528
  if (foundCookies) {
2000
- $__default['default'].each(foundCookies, function (i, _cookie) {
2529
+ $__default["default"].each(foundCookies, function (i, _cookie) {
2001
2530
  var cookie = _cookie;
2002
2531
 
2003
2532
  if (/./.test(cookie)) {
2004
2533
  cookie = cookie.split('.').pop();
2005
2534
  }
2006
2535
 
2007
- if ($__default['default'].inArray(cookie, cookies) === -1) {
2536
+ if ($__default["default"].inArray(cookie, cookies) === -1) {
2008
2537
  cookies.push(cookie);
2009
2538
  }
2010
2539
  });
@@ -2043,26 +2572,30 @@
2043
2572
  return selectControl && selectControl.length > 0;
2044
2573
  }
2045
2574
  function initFilterSelectControls(that) {
2046
- var data = that.data;
2047
- var z = that.options.pagination ? that.options.sidePagination === 'server' ? that.pageTo : that.options.totalRows : that.pageTo;
2048
- $__default['default'].each(that.header.fields, function (j, field) {
2575
+ var data = that.options.data;
2576
+ $__default["default"].each(that.header.fields, function (j, field) {
2049
2577
  var column = that.columns[that.fieldsColumnsIndex[field]];
2050
2578
  var selectControl = getControlContainer(that).find("select.bootstrap-table-filter-control-".concat(escapeID(column.field)));
2051
2579
 
2052
2580
  if (isColumnSearchableViaSelect(column) && isFilterDataNotGiven(column) && hasSelectControlElement(selectControl)) {
2053
- if (selectControl.get(selectControl.length - 1).options.length === 0) {
2581
+ if (!selectControl[0].multiple && selectControl.get(selectControl.length - 1).options.length === 0) {
2054
2582
  // Added the default option, must use a non-breaking space(&nbsp;) to pass the W3C validator
2055
- addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder || '&nbsp;', column.filterDefault);
2583
+ addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder || ' ', column.filterDefault);
2056
2584
  }
2057
2585
 
2058
2586
  var uniqueValues = {};
2059
2587
 
2060
- for (var i = 0; i < z; i++) {
2588
+ for (var i = 0; i < data.length; i++) {
2061
2589
  // Added a new value
2062
2590
  var fieldValue = Utils.getItemField(data[i], field, false);
2063
2591
  var formatter = that.options.editable && column.editable ? column._formatter : that.header.formatters[j];
2064
2592
  var formattedValue = Utils.calculateObjectValue(that.header, formatter, [fieldValue, data[i], i], fieldValue);
2065
2593
 
2594
+ if (!fieldValue) {
2595
+ fieldValue = formattedValue;
2596
+ column._forceFormatter = true;
2597
+ }
2598
+
2066
2599
  if (column.filterDataCollector) {
2067
2600
  formattedValue = Utils.calculateObjectValue(that.header, column.filterDataCollector, [fieldValue, data[i], formattedValue], formattedValue);
2068
2601
  }
@@ -2078,18 +2611,12 @@
2078
2611
  addOptionToSelectControl(selectControl, value, value, column.filterDefault);
2079
2612
  });
2080
2613
  continue;
2081
- } // eslint-disable-next-line guard-for-in
2082
-
2083
-
2084
- for (var key in uniqueValues) {
2085
- addOptionToSelectControl(selectControl, uniqueValues[key], key, column.filterDefault);
2086
2614
  }
2087
- }
2615
+ } // eslint-disable-next-line guard-for-in
2088
2616
 
2089
- sortSelectControl(selectControl, column.filterOrderBy);
2090
2617
 
2091
- if (that.options.hideUnusedSelectOptions) {
2092
- hideUnusedSelectOptions(selectControl, uniqueValues);
2618
+ for (var key in uniqueValues) {
2619
+ addOptionToSelectControl(selectControl, uniqueValues[key], key, column.filterDefault);
2093
2620
  }
2094
2621
  }
2095
2622
  });
@@ -2108,7 +2635,7 @@
2108
2635
  function createControls(that, header) {
2109
2636
  var addedFilterControl = false;
2110
2637
  var html;
2111
- $__default['default'].each(that.columns, function (_, column) {
2638
+ $__default["default"].each(that.columns, function (_, column) {
2112
2639
  html = [];
2113
2640
 
2114
2641
  if (!column.visible) {
@@ -2118,12 +2645,13 @@
2118
2645
  if (!column.filterControl && !that.options.filterControlContainer) {
2119
2646
  html.push('<div class="no-filter-control"></div>');
2120
2647
  } else if (that.options.filterControlContainer) {
2121
- var $filterControls = $__default['default'](".bootstrap-table-filter-control-".concat(column.field));
2122
- $__default['default'].each($filterControls, function (_, filterControl) {
2123
- var $filterControl = $__default['default'](filterControl);
2648
+ // Use a filter control container instead of th
2649
+ var $filterControls = $__default["default"](".bootstrap-table-filter-control-".concat(column.field));
2650
+ $__default["default"].each($filterControls, function (_, filterControl) {
2651
+ var $filterControl = $__default["default"](filterControl);
2124
2652
 
2125
2653
  if (!$filterControl.is('[type=radio]')) {
2126
- var placeholder = column.filterControlPlaceholder ? column.filterControlPlaceholder : '';
2654
+ var placeholder = column.filterControlPlaceholder || '';
2127
2655
  $filterControl.attr('placeholder', placeholder).val(column.filterDefault);
2128
2656
  }
2129
2657
 
@@ -2131,25 +2659,27 @@
2131
2659
  });
2132
2660
  addedFilterControl = true;
2133
2661
  } else {
2662
+ // Create the control based on the html defined in the filterTemplate array.
2134
2663
  var nameControl = column.filterControl.toLowerCase();
2135
2664
  html.push('<div class="filter-control">');
2136
2665
  addedFilterControl = true;
2137
2666
 
2138
2667
  if (column.searchable && that.options.filterTemplate[nameControl]) {
2139
- html.push(that.options.filterTemplate[nameControl](that, column.field, column.filterControlPlaceholder ? column.filterControlPlaceholder : '', column.filterDefault));
2668
+ html.push(that.options.filterTemplate[nameControl](that, column, column.filterControlPlaceholder ? column.filterControlPlaceholder : '', column.filterDefault));
2140
2669
  }
2141
- }
2670
+ } // Filtering by default when it is set.
2671
+
2142
2672
 
2143
- if (!column.filterControl && '' !== column.filterDefault && 'undefined' !== typeof column.filterDefault) {
2144
- if ($__default['default'].isEmptyObject(that.filterColumnsPartial)) {
2673
+ if (column.filterControl && '' !== column.filterDefault && 'undefined' !== typeof column.filterDefault) {
2674
+ if ($__default["default"].isEmptyObject(that.filterColumnsPartial)) {
2145
2675
  that.filterColumnsPartial = {};
2146
2676
  }
2147
2677
 
2148
2678
  that.filterColumnsPartial[column.field] = column.filterDefault;
2149
2679
  }
2150
2680
 
2151
- $__default['default'].each(header.find('th'), function (i, th) {
2152
- var $th = $__default['default'](th);
2681
+ $__default["default"].each(header.find('th'), function (_, th) {
2682
+ var $th = $__default["default"](th);
2153
2683
 
2154
2684
  if ($th.data('field') === column.field) {
2155
2685
  $th.find('.filter-control').remove();
@@ -2159,17 +2689,15 @@
2159
2689
  });
2160
2690
 
2161
2691
  if (column.filterData && column.filterData.toLowerCase() !== 'column') {
2162
- var filterDataType = getFilterDataMethod(
2163
- /* eslint-disable no-use-before-define */
2164
- filterDataMethods, column.filterData.substring(0, column.filterData.indexOf(':')));
2692
+ var filterDataType = getFilterDataMethod(filterDataMethods, column.filterData.substring(0, column.filterData.indexOf(':')));
2165
2693
  var filterDataSource;
2166
2694
  var selectControl;
2167
2695
 
2168
2696
  if (filterDataType) {
2169
2697
  filterDataSource = column.filterData.substring(column.filterData.indexOf(':') + 1, column.filterData.length);
2170
2698
  selectControl = header.find(".bootstrap-table-filter-control-".concat(escapeID(column.field)));
2171
- addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder, column.filterDefault);
2172
- filterDataType(filterDataSource, selectControl, that.options.filterOrderBy, column.filterDefault);
2699
+ addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder, column.filterDefault, true);
2700
+ filterDataType(that, filterDataSource, selectControl, that.options.filterOrderBy, column.filterDefault);
2173
2701
  } else {
2174
2702
  throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, obj, json, url, func.' + ' Use like this: var: {key: "value"}');
2175
2703
  }
@@ -2180,19 +2708,17 @@
2180
2708
  header.off('keyup', 'input').on('keyup', 'input', function (_ref4, obj) {
2181
2709
  var currentTarget = _ref4.currentTarget,
2182
2710
  keyCode = _ref4.keyCode;
2183
- syncControls(that); // Simulate enter key action from clear button
2184
-
2185
2711
  keyCode = obj ? obj.keyCode : keyCode;
2186
2712
 
2187
2713
  if (that.options.searchOnEnterKey && keyCode !== 13) {
2188
2714
  return;
2189
2715
  }
2190
2716
 
2191
- if ($__default['default'].inArray(keyCode, [37, 38, 39, 40]) > -1) {
2717
+ if (isKeyAllowed(keyCode)) {
2192
2718
  return;
2193
2719
  }
2194
2720
 
2195
- var $currentTarget = $__default['default'](currentTarget);
2721
+ var $currentTarget = $__default["default"](currentTarget);
2196
2722
 
2197
2723
  if ($currentTarget.is(':checkbox') || $currentTarget.is(':radio')) {
2198
2724
  return;
@@ -2206,18 +2732,23 @@
2206
2732
  });
2207
2733
  }, that.options.searchTimeOut);
2208
2734
  });
2209
- header.off('change', 'select:not(".ms-offscreen")').on('change', 'select:not(".ms-offscreen")', function (_ref5) {
2735
+ header.off('change', 'select', '.fc-multipleselect').on('change', 'select', '.fc-multipleselect', function (_ref5) {
2210
2736
  var currentTarget = _ref5.currentTarget,
2211
2737
  keyCode = _ref5.keyCode;
2212
- syncControls(that);
2213
- var $select = $__default['default'](currentTarget);
2214
- var value = $select.val();
2738
+ var $selectControl = $__default["default"](currentTarget);
2739
+ var value = $selectControl.val();
2215
2740
 
2216
- if (value && value.length > 0 && value.trim()) {
2217
- $select.find('option[selected]').removeAttr('selected');
2218
- $select.find("option[value=\"".concat(value, "\"]")).attr('selected', true);
2741
+ if (Array.isArray(value)) {
2742
+ for (var i = 0; i < value.length; i++) {
2743
+ if (value[i] && value[i].length > 0 && value[i].trim()) {
2744
+ $selectControl.find("option[value=\"".concat(value[i], "\"]")).attr('selected', true);
2745
+ }
2746
+ }
2747
+ } else if (value && value.length > 0 && value.trim()) {
2748
+ $selectControl.find('option[selected]').removeAttr('selected');
2749
+ $selectControl.find("option[value=\"".concat(value, "\"]")).attr('selected', true);
2219
2750
  } else {
2220
- $select.find('option[selected]').removeAttr('selected');
2751
+ $selectControl.find('option[selected]').removeAttr('selected');
2221
2752
  }
2222
2753
 
2223
2754
  clearTimeout(currentTarget.timeoutId || 0);
@@ -2231,7 +2762,7 @@
2231
2762
  header.off('mouseup', 'input:not([type=radio])').on('mouseup', 'input:not([type=radio])', function (_ref6) {
2232
2763
  var currentTarget = _ref6.currentTarget,
2233
2764
  keyCode = _ref6.keyCode;
2234
- var $input = $__default['default'](currentTarget);
2765
+ var $input = $__default["default"](currentTarget);
2235
2766
  var oldValue = $input.val();
2236
2767
 
2237
2768
  if (oldValue === '') {
@@ -2239,7 +2770,6 @@
2239
2770
  }
2240
2771
 
2241
2772
  setTimeout(function () {
2242
- syncControls(that);
2243
2773
  var newValue = $input.val();
2244
2774
 
2245
2775
  if (newValue === '') {
@@ -2258,16 +2788,15 @@
2258
2788
  keyCode = _ref7.keyCode;
2259
2789
  clearTimeout(currentTarget.timeoutId || 0);
2260
2790
  currentTarget.timeoutId = setTimeout(function () {
2261
- syncControls(that);
2262
2791
  that.onColumnSearch({
2263
2792
  currentTarget: currentTarget,
2264
2793
  keyCode: keyCode
2265
2794
  });
2266
2795
  }, that.options.searchTimeOut);
2267
- });
2796
+ }); // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date
2268
2797
 
2269
2798
  if (header.find('.date-filter-control').length > 0) {
2270
- $__default['default'].each(that.columns, function (i, _ref8) {
2799
+ $__default["default"].each(that.columns, function (i, _ref8) {
2271
2800
  var filterDefault = _ref8.filterDefault,
2272
2801
  filterControl = _ref8.filterControl,
2273
2802
  field = _ref8.field,
@@ -2275,21 +2804,33 @@
2275
2804
 
2276
2805
  if (filterControl !== undefined && filterControl.toLowerCase() === 'datepicker') {
2277
2806
  var $datepicker = header.find(".date-filter-control.bootstrap-table-filter-control-".concat(field));
2278
- $datepicker.datepicker(filterDatepickerOptions);
2279
2807
 
2280
2808
  if (filterDefault) {
2281
- $datepicker.datepicker('setDate', filterDefault);
2809
+ $datepicker.value(filterDefault);
2282
2810
  }
2283
2811
 
2284
- $datepicker.on('changeDate', function (_ref9) {
2285
- var currentTarget = _ref9.currentTarget,
2286
- keyCode = _ref9.keyCode;
2812
+ if (filterDatepickerOptions.min) {
2813
+ $datepicker.attr('min', filterDatepickerOptions.min);
2814
+ }
2815
+
2816
+ if (filterDatepickerOptions.max) {
2817
+ $datepicker.attr('max', filterDatepickerOptions.max);
2818
+ }
2819
+
2820
+ if (filterDatepickerOptions.step) {
2821
+ $datepicker.attr('step', filterDatepickerOptions.step);
2822
+ }
2823
+
2824
+ if (filterDatepickerOptions.pattern) {
2825
+ $datepicker.attr('pattern', filterDatepickerOptions.pattern);
2826
+ }
2827
+
2828
+ $datepicker.on('change', function (_ref9) {
2829
+ var currentTarget = _ref9.currentTarget;
2287
2830
  clearTimeout(currentTarget.timeoutId || 0);
2288
2831
  currentTarget.timeoutId = setTimeout(function () {
2289
- syncControls(that);
2290
2832
  that.onColumnSearch({
2291
- currentTarget: currentTarget,
2292
- keyCode: keyCode
2833
+ currentTarget: currentTarget
2293
2834
  });
2294
2835
  }, that.options.searchTimeOut);
2295
2836
  });
@@ -2297,7 +2838,7 @@
2297
2838
  });
2298
2839
  }
2299
2840
 
2300
- if (that.options.sidePagination !== 'server' && !that.options.height) {
2841
+ if (that.options.sidePagination !== 'server') {
2301
2842
  that.triggerSearch();
2302
2843
  }
2303
2844
 
@@ -2327,41 +2868,48 @@
2327
2868
  return 'ltr';
2328
2869
  }
2329
2870
  }
2330
- function syncControls(that) {
2331
- if (that.options.height) {
2332
- var controlsTableHeader = that.$tableHeader.find(searchControls);
2333
- that.$header.find(searchControls).each(function (_, control) {
2334
- var $control = $__default['default'](control);
2335
- var controlClass = getElementClass($control);
2336
- var foundControl = controlsTableHeader.filter(function (_, ele) {
2337
- var eleClass = getElementClass($__default['default'](ele));
2338
- return controlClass === eleClass;
2339
- });
2871
+ function syncHeaders(that) {
2872
+ if (!that.options.height) {
2873
+ return;
2874
+ }
2340
2875
 
2341
- if (foundControl.length === 0) {
2342
- return;
2343
- }
2876
+ var fixedHeader = $__default["default"]('.fixed-table-header table thead');
2344
2877
 
2345
- if ($control.is('select')) {
2346
- $control.find('option:selected').removeAttr('selected');
2347
- $control.find("option[value='".concat(foundControl.val(), "']")).attr('selected', true);
2348
- } else {
2349
- $control.val(foundControl.val());
2350
- }
2351
- });
2878
+ if (fixedHeader.length === 0) {
2879
+ return;
2352
2880
  }
2881
+
2882
+ that.$header.children().find('th[data-field]').each(function (_, element) {
2883
+ if (element.classList[0] !== 'bs-checkbox') {
2884
+ var $element = $__default["default"](element);
2885
+ var $field = $element.data('field');
2886
+ var $fixedField = $__default["default"]("th[data-field='".concat($field, "']")).not($element);
2887
+ var input = $element.find('input');
2888
+ var fixedInput = $fixedField.find('input');
2889
+
2890
+ if (input.length > 0 && fixedInput.length > 0) {
2891
+ if (input.val() !== fixedInput.val()) {
2892
+ input.val(fixedInput.val());
2893
+ }
2894
+ }
2895
+ }
2896
+ });
2353
2897
  }
2354
2898
  var filterDataMethods = {
2355
- func: function func(filterDataSource, selectControl, filterOrderBy, selected) {
2899
+ func: function func(that, filterDataSource, selectControl, filterOrderBy, selected) {
2356
2900
  var variableValues = window[filterDataSource].apply(); // eslint-disable-next-line guard-for-in
2357
2901
 
2358
2902
  for (var key in variableValues) {
2359
2903
  addOptionToSelectControl(selectControl, key, variableValues[key], selected);
2360
2904
  }
2361
2905
 
2362
- sortSelectControl(selectControl, filterOrderBy);
2906
+ if (that.options.sortSelectOptions) {
2907
+ sortSelectControl(selectControl, filterOrderBy);
2908
+ }
2909
+
2910
+ setValues(that);
2363
2911
  },
2364
- obj: function obj(filterDataSource, selectControl, filterOrderBy, selected) {
2912
+ obj: function obj(that, filterDataSource, selectControl, filterOrderBy, selected) {
2365
2913
  var objectKeys = filterDataSource.split('.');
2366
2914
  var variableName = objectKeys.shift();
2367
2915
  var variableValues = window[variableName];
@@ -2377,24 +2925,32 @@
2377
2925
  addOptionToSelectControl(selectControl, key, variableValues[key], selected);
2378
2926
  }
2379
2927
 
2380
- sortSelectControl(selectControl, filterOrderBy);
2928
+ if (that.options.sortSelectOptions) {
2929
+ sortSelectControl(selectControl, filterOrderBy);
2930
+ }
2931
+
2932
+ setValues(that);
2381
2933
  },
2382
- var: function _var(filterDataSource, selectControl, filterOrderBy, selected) {
2934
+ var: function _var(that, filterDataSource, selectControl, filterOrderBy, selected) {
2383
2935
  var variableValues = window[filterDataSource];
2384
2936
  var isArray = Array.isArray(variableValues);
2385
2937
 
2386
2938
  for (var key in variableValues) {
2387
2939
  if (isArray) {
2388
- addOptionToSelectControl(selectControl, variableValues[key], variableValues[key], selected);
2940
+ addOptionToSelectControl(selectControl, variableValues[key], variableValues[key], selected, true);
2389
2941
  } else {
2390
- addOptionToSelectControl(selectControl, key, variableValues[key], selected);
2942
+ addOptionToSelectControl(selectControl, key, variableValues[key], selected, true);
2391
2943
  }
2392
2944
  }
2393
2945
 
2394
- sortSelectControl(selectControl, filterOrderBy);
2946
+ if (that.options.sortSelectOptions) {
2947
+ sortSelectControl(selectControl, filterOrderBy);
2948
+ }
2949
+
2950
+ setValues(that);
2395
2951
  },
2396
- url: function url(filterDataSource, selectControl, filterOrderBy, selected) {
2397
- $__default['default'].ajax({
2952
+ url: function url(that, filterDataSource, selectControl, filterOrderBy, selected) {
2953
+ $__default["default"].ajax({
2398
2954
  url: filterDataSource,
2399
2955
  dataType: 'json',
2400
2956
  success: function success(data) {
@@ -2403,24 +2959,32 @@
2403
2959
  addOptionToSelectControl(selectControl, key, data[key], selected);
2404
2960
  }
2405
2961
 
2406
- sortSelectControl(selectControl, filterOrderBy);
2962
+ if (that.options.sortSelectOptions) {
2963
+ sortSelectControl(selectControl, filterOrderBy);
2964
+ }
2965
+
2966
+ setValues(that);
2407
2967
  }
2408
2968
  });
2409
2969
  },
2410
- json: function json(filterDataSource, selectControl, filterOrderBy, selected) {
2970
+ json: function json(that, filterDataSource, selectControl, filterOrderBy, selected) {
2411
2971
  var variableValues = JSON.parse(filterDataSource); // eslint-disable-next-line guard-for-in
2412
2972
 
2413
2973
  for (var key in variableValues) {
2414
2974
  addOptionToSelectControl(selectControl, key, variableValues[key], selected);
2415
2975
  }
2416
2976
 
2417
- sortSelectControl(selectControl, filterOrderBy);
2977
+ if (that.options.sortSelectOptions) {
2978
+ sortSelectControl(selectControl, filterOrderBy);
2979
+ }
2980
+
2981
+ setValues(that);
2418
2982
  }
2419
2983
  };
2420
2984
 
2421
2985
  exports.addOptionToSelectControl = addOptionToSelectControl;
2986
+ exports.cacheValues = cacheValues;
2422
2987
  exports.collectBootstrapTableFilterCookies = collectBootstrapTableFilterCookies;
2423
- exports.copyValues = copyValues;
2424
2988
  exports.createControls = createControls;
2425
2989
  exports.escapeID = escapeID;
2426
2990
  exports.existOptionInSelectControl = existOptionInSelectControl;
@@ -2430,6 +2994,7 @@
2430
2994
  exports.getDirectionOfSelectOptions = getDirectionOfSelectOptions;
2431
2995
  exports.getElementClass = getElementClass;
2432
2996
  exports.getFilterDataMethod = getFilterDataMethod;
2997
+ exports.getInputClass = getInputClass;
2433
2998
  exports.getOptionsFromSelectControl = getOptionsFromSelectControl;
2434
2999
  exports.getSearchControls = getSearchControls;
2435
3000
  exports.hasSelectControlElement = hasSelectControlElement;
@@ -2437,11 +3002,12 @@
2437
3002
  exports.initFilterSelectControls = initFilterSelectControls;
2438
3003
  exports.isColumnSearchableViaSelect = isColumnSearchableViaSelect;
2439
3004
  exports.isFilterDataNotGiven = isFilterDataNotGiven;
2440
- exports.setCursorPosition = setCursorPosition;
3005
+ exports.isKeyAllowed = isKeyAllowed;
3006
+ exports.setCaretPosition = setCaretPosition;
2441
3007
  exports.setValues = setValues;
2442
3008
  exports.sortSelectControl = sortSelectControl;
2443
- exports.syncControls = syncControls;
3009
+ exports.syncHeaders = syncHeaders;
2444
3010
 
2445
3011
  Object.defineProperty(exports, '__esModule', { value: true });
2446
3012
 
2447
- })));
3013
+ }));