bootstrap-table-rails 1.12.2 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +83 -77
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +5420 -2066
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.esm.js +2279 -0
  6. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.js +2287 -0
  7. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +238 -204
  8. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +7212 -3295
  9. data/vendor/assets/javascripts/bootstrap-table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js +2647 -182
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +1631 -0
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +1092 -84
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.css +12 -0
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.js +2248 -0
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +2226 -413
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +1114 -102
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +820 -32
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +1619 -146
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +2668 -179
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.css +4 -4
  20. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +2831 -744
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css +25 -0
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +1501 -0
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +2 -6
  24. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +1874 -226
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +120 -30
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +1387 -80
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +1239 -136
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +2113 -412
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.css +11 -0
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +1043 -0
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +1173 -0
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +2055 -149
  33. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +1401 -181
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css +10 -10
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +986 -118
  36. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +716 -75
  37. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css +13 -14
  38. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +1151 -118
  39. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +2547 -211
  40. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +1910 -109
  41. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +762 -40
  42. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +763 -40
  43. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +763 -44
  44. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +763 -44
  45. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +762 -37
  46. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +762 -52
  47. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +762 -28
  48. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +762 -49
  49. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +763 -31
  50. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +763 -44
  51. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +762 -40
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +762 -43
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +764 -51
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +762 -40
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +762 -40
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +762 -43
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +762 -43
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +762 -43
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +762 -0
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +763 -28
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +762 -0
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +764 -95
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +762 -0
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +762 -43
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +763 -44
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +762 -43
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +762 -49
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +764 -52
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +762 -43
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +762 -40
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +762 -37
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +762 -43
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +762 -37
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +762 -0
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +763 -52
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +762 -37
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +764 -41
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +762 -43
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +762 -43
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +762 -72
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +762 -49
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.js +762 -0
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.js +762 -0
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +762 -37
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +762 -37
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +763 -41
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +762 -73
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +762 -37
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +762 -49
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +762 -28
  91. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +762 -46
  92. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +762 -40
  93. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +421 -0
  94. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +989 -0
  95. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +395 -0
  96. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +999 -0
  97. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +391 -0
  98. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +992 -0
  99. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +403 -0
  100. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +966 -0
  101. metadata +30 -25
  102. data/vendor/assets/javascripts/bootstrap-table/extensions/angular/bootstrap-table-angular.js +0 -107
  103. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.css +0 -3
  104. data/vendor/assets/javascripts/bootstrap-table/extensions/click-edit-row/bootstrap-table-click-edit-row.css +0 -21
  105. data/vendor/assets/javascripts/bootstrap-table/extensions/click-edit-row/bootstrap-table-click-edit-row.js +0 -142
  106. data/vendor/assets/javascripts/bootstrap-table/extensions/filter/bootstrap-table-filter.js +0 -67
  107. data/vendor/assets/javascripts/bootstrap-table/extensions/flat-json/bootstrap-table-flat-json.js +0 -62
  108. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by/bootstrap-table-group-by.css +0 -53
  109. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by/bootstrap-table-group-by.js +0 -243
  110. data/vendor/assets/javascripts/bootstrap-table/extensions/multi-column-toggle/bootstrap-table-multi-toggle.js +0 -88
  111. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-search/bootstrap-table-multiple-search.js +0 -71
  112. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-selection-row/bootstrap-table-multiple-selection-row.css +0 -17
  113. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-selection-row/bootstrap-table-multiple-selection-row.js +0 -127
  114. data/vendor/assets/javascripts/bootstrap-table/extensions/natural-sorting/bootstrap-table-natural-sorting.js +0 -67
  115. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jumpto/bootstrap-table-jumpto.css +0 -8
  116. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jumpto/bootstrap-table-jumpto.js +0 -50
  117. data/vendor/assets/javascripts/bootstrap-table/extensions/select2-filter/bootstrap-table-select2-filter.js +0 -332
  118. data/vendor/assets/javascripts/bootstrap-table/extensions/tree-column/bootstrap-table-tree-column.css +0 -1
  119. data/vendor/assets/javascripts/bootstrap-table/extensions/tree-column/bootstrap-table-tree-column.js +0 -130
@@ -0,0 +1,1173 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
3
+ typeof define === 'function' && define.amd ? define(['jquery'], factory) :
4
+ (global = global || self, factory(global.jQuery));
5
+ }(this, (function ($) { 'use strict';
6
+
7
+ $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
8
+
9
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
10
+
11
+ function createCommonjsModule(fn, module) {
12
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
13
+ }
14
+
15
+ var check = function (it) {
16
+ return it && it.Math == Math && it;
17
+ };
18
+
19
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
20
+ var global_1 =
21
+ // eslint-disable-next-line no-undef
22
+ check(typeof globalThis == 'object' && globalThis) ||
23
+ check(typeof window == 'object' && window) ||
24
+ check(typeof self == 'object' && self) ||
25
+ check(typeof commonjsGlobal == 'object' && commonjsGlobal) ||
26
+ // eslint-disable-next-line no-new-func
27
+ Function('return this')();
28
+
29
+ var fails = function (exec) {
30
+ try {
31
+ return !!exec();
32
+ } catch (error) {
33
+ return true;
34
+ }
35
+ };
36
+
37
+ // Thank's IE8 for his funny defineProperty
38
+ var descriptors = !fails(function () {
39
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
40
+ });
41
+
42
+ var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
43
+ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
44
+
45
+ // Nashorn ~ JDK8 bug
46
+ var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
47
+
48
+ // `Object.prototype.propertyIsEnumerable` method implementation
49
+ // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
50
+ var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
51
+ var descriptor = getOwnPropertyDescriptor(this, V);
52
+ return !!descriptor && descriptor.enumerable;
53
+ } : nativePropertyIsEnumerable;
54
+
55
+ var objectPropertyIsEnumerable = {
56
+ f: f
57
+ };
58
+
59
+ var createPropertyDescriptor = function (bitmap, value) {
60
+ return {
61
+ enumerable: !(bitmap & 1),
62
+ configurable: !(bitmap & 2),
63
+ writable: !(bitmap & 4),
64
+ value: value
65
+ };
66
+ };
67
+
68
+ var toString = {}.toString;
69
+
70
+ var classofRaw = function (it) {
71
+ return toString.call(it).slice(8, -1);
72
+ };
73
+
74
+ var split = ''.split;
75
+
76
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
77
+ var indexedObject = fails(function () {
78
+ // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
79
+ // eslint-disable-next-line no-prototype-builtins
80
+ return !Object('z').propertyIsEnumerable(0);
81
+ }) ? function (it) {
82
+ return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
83
+ } : Object;
84
+
85
+ // `RequireObjectCoercible` abstract operation
86
+ // https://tc39.github.io/ecma262/#sec-requireobjectcoercible
87
+ var requireObjectCoercible = function (it) {
88
+ if (it == undefined) throw TypeError("Can't call method on " + it);
89
+ return it;
90
+ };
91
+
92
+ // toObject with fallback for non-array-like ES3 strings
93
+
94
+
95
+
96
+ var toIndexedObject = function (it) {
97
+ return indexedObject(requireObjectCoercible(it));
98
+ };
99
+
100
+ var isObject = function (it) {
101
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
102
+ };
103
+
104
+ // `ToPrimitive` abstract operation
105
+ // https://tc39.github.io/ecma262/#sec-toprimitive
106
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
107
+ // and the second argument - flag - preferred type is a string
108
+ var toPrimitive = function (input, PREFERRED_STRING) {
109
+ if (!isObject(input)) return input;
110
+ var fn, val;
111
+ if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
112
+ if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
113
+ if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
114
+ throw TypeError("Can't convert object to primitive value");
115
+ };
116
+
117
+ var hasOwnProperty = {}.hasOwnProperty;
118
+
119
+ var has = function (it, key) {
120
+ return hasOwnProperty.call(it, key);
121
+ };
122
+
123
+ var document = global_1.document;
124
+ // typeof document.createElement is 'object' in old IE
125
+ var EXISTS = isObject(document) && isObject(document.createElement);
126
+
127
+ var documentCreateElement = function (it) {
128
+ return EXISTS ? document.createElement(it) : {};
129
+ };
130
+
131
+ // Thank's IE8 for his funny defineProperty
132
+ var ie8DomDefine = !descriptors && !fails(function () {
133
+ return Object.defineProperty(documentCreateElement('div'), 'a', {
134
+ get: function () { return 7; }
135
+ }).a != 7;
136
+ });
137
+
138
+ var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
139
+
140
+ // `Object.getOwnPropertyDescriptor` method
141
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
142
+ var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
143
+ O = toIndexedObject(O);
144
+ P = toPrimitive(P, true);
145
+ if (ie8DomDefine) try {
146
+ return nativeGetOwnPropertyDescriptor(O, P);
147
+ } catch (error) { /* empty */ }
148
+ if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
149
+ };
150
+
151
+ var objectGetOwnPropertyDescriptor = {
152
+ f: f$1
153
+ };
154
+
155
+ var anObject = function (it) {
156
+ if (!isObject(it)) {
157
+ throw TypeError(String(it) + ' is not an object');
158
+ } return it;
159
+ };
160
+
161
+ var nativeDefineProperty = Object.defineProperty;
162
+
163
+ // `Object.defineProperty` method
164
+ // https://tc39.github.io/ecma262/#sec-object.defineproperty
165
+ var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
166
+ anObject(O);
167
+ P = toPrimitive(P, true);
168
+ anObject(Attributes);
169
+ if (ie8DomDefine) try {
170
+ return nativeDefineProperty(O, P, Attributes);
171
+ } catch (error) { /* empty */ }
172
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
173
+ if ('value' in Attributes) O[P] = Attributes.value;
174
+ return O;
175
+ };
176
+
177
+ var objectDefineProperty = {
178
+ f: f$2
179
+ };
180
+
181
+ var createNonEnumerableProperty = descriptors ? function (object, key, value) {
182
+ return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
183
+ } : function (object, key, value) {
184
+ object[key] = value;
185
+ return object;
186
+ };
187
+
188
+ var setGlobal = function (key, value) {
189
+ try {
190
+ createNonEnumerableProperty(global_1, key, value);
191
+ } catch (error) {
192
+ global_1[key] = value;
193
+ } return value;
194
+ };
195
+
196
+ var SHARED = '__core-js_shared__';
197
+ var store = global_1[SHARED] || setGlobal(SHARED, {});
198
+
199
+ var sharedStore = store;
200
+
201
+ var functionToString = Function.toString;
202
+
203
+ // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper
204
+ if (typeof sharedStore.inspectSource != 'function') {
205
+ sharedStore.inspectSource = function (it) {
206
+ return functionToString.call(it);
207
+ };
208
+ }
209
+
210
+ var inspectSource = sharedStore.inspectSource;
211
+
212
+ var WeakMap = global_1.WeakMap;
213
+
214
+ var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
215
+
216
+ var shared = createCommonjsModule(function (module) {
217
+ (module.exports = function (key, value) {
218
+ return sharedStore[key] || (sharedStore[key] = value !== undefined ? value : {});
219
+ })('versions', []).push({
220
+ version: '3.6.0',
221
+ mode: 'global',
222
+ copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
223
+ });
224
+ });
225
+
226
+ var id = 0;
227
+ var postfix = Math.random();
228
+
229
+ var uid = function (key) {
230
+ return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
231
+ };
232
+
233
+ var keys = shared('keys');
234
+
235
+ var sharedKey = function (key) {
236
+ return keys[key] || (keys[key] = uid(key));
237
+ };
238
+
239
+ var hiddenKeys = {};
240
+
241
+ var WeakMap$1 = global_1.WeakMap;
242
+ var set, get, has$1;
243
+
244
+ var enforce = function (it) {
245
+ return has$1(it) ? get(it) : set(it, {});
246
+ };
247
+
248
+ var getterFor = function (TYPE) {
249
+ return function (it) {
250
+ var state;
251
+ if (!isObject(it) || (state = get(it)).type !== TYPE) {
252
+ throw TypeError('Incompatible receiver, ' + TYPE + ' required');
253
+ } return state;
254
+ };
255
+ };
256
+
257
+ if (nativeWeakMap) {
258
+ var store$1 = new WeakMap$1();
259
+ var wmget = store$1.get;
260
+ var wmhas = store$1.has;
261
+ var wmset = store$1.set;
262
+ set = function (it, metadata) {
263
+ wmset.call(store$1, it, metadata);
264
+ return metadata;
265
+ };
266
+ get = function (it) {
267
+ return wmget.call(store$1, it) || {};
268
+ };
269
+ has$1 = function (it) {
270
+ return wmhas.call(store$1, it);
271
+ };
272
+ } else {
273
+ var STATE = sharedKey('state');
274
+ hiddenKeys[STATE] = true;
275
+ set = function (it, metadata) {
276
+ createNonEnumerableProperty(it, STATE, metadata);
277
+ return metadata;
278
+ };
279
+ get = function (it) {
280
+ return has(it, STATE) ? it[STATE] : {};
281
+ };
282
+ has$1 = function (it) {
283
+ return has(it, STATE);
284
+ };
285
+ }
286
+
287
+ var internalState = {
288
+ set: set,
289
+ get: get,
290
+ has: has$1,
291
+ enforce: enforce,
292
+ getterFor: getterFor
293
+ };
294
+
295
+ var redefine = createCommonjsModule(function (module) {
296
+ var getInternalState = internalState.get;
297
+ var enforceInternalState = internalState.enforce;
298
+ var TEMPLATE = String(String).split('String');
299
+
300
+ (module.exports = function (O, key, value, options) {
301
+ var unsafe = options ? !!options.unsafe : false;
302
+ var simple = options ? !!options.enumerable : false;
303
+ var noTargetGet = options ? !!options.noTargetGet : false;
304
+ if (typeof value == 'function') {
305
+ if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);
306
+ enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
307
+ }
308
+ if (O === global_1) {
309
+ if (simple) O[key] = value;
310
+ else setGlobal(key, value);
311
+ return;
312
+ } else if (!unsafe) {
313
+ delete O[key];
314
+ } else if (!noTargetGet && O[key]) {
315
+ simple = true;
316
+ }
317
+ if (simple) O[key] = value;
318
+ else createNonEnumerableProperty(O, key, value);
319
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
320
+ })(Function.prototype, 'toString', function toString() {
321
+ return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
322
+ });
323
+ });
324
+
325
+ var path = global_1;
326
+
327
+ var aFunction = function (variable) {
328
+ return typeof variable == 'function' ? variable : undefined;
329
+ };
330
+
331
+ var getBuiltIn = function (namespace, method) {
332
+ return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
333
+ : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
334
+ };
335
+
336
+ var ceil = Math.ceil;
337
+ var floor = Math.floor;
338
+
339
+ // `ToInteger` abstract operation
340
+ // https://tc39.github.io/ecma262/#sec-tointeger
341
+ var toInteger = function (argument) {
342
+ return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
343
+ };
344
+
345
+ var min = Math.min;
346
+
347
+ // `ToLength` abstract operation
348
+ // https://tc39.github.io/ecma262/#sec-tolength
349
+ var toLength = function (argument) {
350
+ return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
351
+ };
352
+
353
+ var max = Math.max;
354
+ var min$1 = Math.min;
355
+
356
+ // Helper for a popular repeating case of the spec:
357
+ // Let integer be ? ToInteger(index).
358
+ // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
359
+ var toAbsoluteIndex = function (index, length) {
360
+ var integer = toInteger(index);
361
+ return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
362
+ };
363
+
364
+ // `Array.prototype.{ indexOf, includes }` methods implementation
365
+ var createMethod = function (IS_INCLUDES) {
366
+ return function ($this, el, fromIndex) {
367
+ var O = toIndexedObject($this);
368
+ var length = toLength(O.length);
369
+ var index = toAbsoluteIndex(fromIndex, length);
370
+ var value;
371
+ // Array#includes uses SameValueZero equality algorithm
372
+ // eslint-disable-next-line no-self-compare
373
+ if (IS_INCLUDES && el != el) while (length > index) {
374
+ value = O[index++];
375
+ // eslint-disable-next-line no-self-compare
376
+ if (value != value) return true;
377
+ // Array#indexOf ignores holes, Array#includes - not
378
+ } else for (;length > index; index++) {
379
+ if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
380
+ } return !IS_INCLUDES && -1;
381
+ };
382
+ };
383
+
384
+ var arrayIncludes = {
385
+ // `Array.prototype.includes` method
386
+ // https://tc39.github.io/ecma262/#sec-array.prototype.includes
387
+ includes: createMethod(true),
388
+ // `Array.prototype.indexOf` method
389
+ // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
390
+ indexOf: createMethod(false)
391
+ };
392
+
393
+ var indexOf = arrayIncludes.indexOf;
394
+
395
+
396
+ var objectKeysInternal = function (object, names) {
397
+ var O = toIndexedObject(object);
398
+ var i = 0;
399
+ var result = [];
400
+ var key;
401
+ for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
402
+ // Don't enum bug & hidden keys
403
+ while (names.length > i) if (has(O, key = names[i++])) {
404
+ ~indexOf(result, key) || result.push(key);
405
+ }
406
+ return result;
407
+ };
408
+
409
+ // IE8- don't enum bug keys
410
+ var enumBugKeys = [
411
+ 'constructor',
412
+ 'hasOwnProperty',
413
+ 'isPrototypeOf',
414
+ 'propertyIsEnumerable',
415
+ 'toLocaleString',
416
+ 'toString',
417
+ 'valueOf'
418
+ ];
419
+
420
+ var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
421
+
422
+ // `Object.getOwnPropertyNames` method
423
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
424
+ var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
425
+ return objectKeysInternal(O, hiddenKeys$1);
426
+ };
427
+
428
+ var objectGetOwnPropertyNames = {
429
+ f: f$3
430
+ };
431
+
432
+ var f$4 = Object.getOwnPropertySymbols;
433
+
434
+ var objectGetOwnPropertySymbols = {
435
+ f: f$4
436
+ };
437
+
438
+ // all object keys, includes non-enumerable and symbols
439
+ var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
440
+ var keys = objectGetOwnPropertyNames.f(anObject(it));
441
+ var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
442
+ return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
443
+ };
444
+
445
+ var copyConstructorProperties = function (target, source) {
446
+ var keys = ownKeys(source);
447
+ var defineProperty = objectDefineProperty.f;
448
+ var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
449
+ for (var i = 0; i < keys.length; i++) {
450
+ var key = keys[i];
451
+ if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
452
+ }
453
+ };
454
+
455
+ var replacement = /#|\.prototype\./;
456
+
457
+ var isForced = function (feature, detection) {
458
+ var value = data[normalize(feature)];
459
+ return value == POLYFILL ? true
460
+ : value == NATIVE ? false
461
+ : typeof detection == 'function' ? fails(detection)
462
+ : !!detection;
463
+ };
464
+
465
+ var normalize = isForced.normalize = function (string) {
466
+ return String(string).replace(replacement, '.').toLowerCase();
467
+ };
468
+
469
+ var data = isForced.data = {};
470
+ var NATIVE = isForced.NATIVE = 'N';
471
+ var POLYFILL = isForced.POLYFILL = 'P';
472
+
473
+ var isForced_1 = isForced;
474
+
475
+ var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
476
+
477
+
478
+
479
+
480
+
481
+
482
+ /*
483
+ options.target - name of the target object
484
+ options.global - target is the global object
485
+ options.stat - export as static methods of target
486
+ options.proto - export as prototype methods of target
487
+ options.real - real prototype method for the `pure` version
488
+ options.forced - export even if the native feature is available
489
+ options.bind - bind methods to the target, required for the `pure` version
490
+ options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
491
+ options.unsafe - use the simple assignment of property instead of delete + defineProperty
492
+ options.sham - add a flag to not completely full polyfills
493
+ options.enumerable - export as enumerable property
494
+ options.noTargetGet - prevent calling a getter on target
495
+ */
496
+ var _export = function (options, source) {
497
+ var TARGET = options.target;
498
+ var GLOBAL = options.global;
499
+ var STATIC = options.stat;
500
+ var FORCED, target, key, targetProperty, sourceProperty, descriptor;
501
+ if (GLOBAL) {
502
+ target = global_1;
503
+ } else if (STATIC) {
504
+ target = global_1[TARGET] || setGlobal(TARGET, {});
505
+ } else {
506
+ target = (global_1[TARGET] || {}).prototype;
507
+ }
508
+ if (target) for (key in source) {
509
+ sourceProperty = source[key];
510
+ if (options.noTargetGet) {
511
+ descriptor = getOwnPropertyDescriptor$1(target, key);
512
+ targetProperty = descriptor && descriptor.value;
513
+ } else targetProperty = target[key];
514
+ FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
515
+ // contained in target
516
+ if (!FORCED && targetProperty !== undefined) {
517
+ if (typeof sourceProperty === typeof targetProperty) continue;
518
+ copyConstructorProperties(sourceProperty, targetProperty);
519
+ }
520
+ // add a flag to not completely full polyfills
521
+ if (options.sham || (targetProperty && targetProperty.sham)) {
522
+ createNonEnumerableProperty(sourceProperty, 'sham', true);
523
+ }
524
+ // extend global
525
+ redefine(target, key, sourceProperty, options);
526
+ }
527
+ };
528
+
529
+ var aFunction$1 = function (it) {
530
+ if (typeof it != 'function') {
531
+ throw TypeError(String(it) + ' is not a function');
532
+ } return it;
533
+ };
534
+
535
+ // optional / simple context binding
536
+ var bindContext = function (fn, that, length) {
537
+ aFunction$1(fn);
538
+ if (that === undefined) return fn;
539
+ switch (length) {
540
+ case 0: return function () {
541
+ return fn.call(that);
542
+ };
543
+ case 1: return function (a) {
544
+ return fn.call(that, a);
545
+ };
546
+ case 2: return function (a, b) {
547
+ return fn.call(that, a, b);
548
+ };
549
+ case 3: return function (a, b, c) {
550
+ return fn.call(that, a, b, c);
551
+ };
552
+ }
553
+ return function (/* ...args */) {
554
+ return fn.apply(that, arguments);
555
+ };
556
+ };
557
+
558
+ // `ToObject` abstract operation
559
+ // https://tc39.github.io/ecma262/#sec-toobject
560
+ var toObject = function (argument) {
561
+ return Object(requireObjectCoercible(argument));
562
+ };
563
+
564
+ // `IsArray` abstract operation
565
+ // https://tc39.github.io/ecma262/#sec-isarray
566
+ var isArray = Array.isArray || function isArray(arg) {
567
+ return classofRaw(arg) == 'Array';
568
+ };
569
+
570
+ var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
571
+ // Chrome 38 Symbol has incorrect toString conversion
572
+ // eslint-disable-next-line no-undef
573
+ return !String(Symbol());
574
+ });
575
+
576
+ var useSymbolAsUid = nativeSymbol
577
+ // eslint-disable-next-line no-undef
578
+ && !Symbol.sham
579
+ // eslint-disable-next-line no-undef
580
+ && typeof Symbol() == 'symbol';
581
+
582
+ var WellKnownSymbolsStore = shared('wks');
583
+ var Symbol$1 = global_1.Symbol;
584
+ var createWellKnownSymbol = useSymbolAsUid ? Symbol$1 : uid;
585
+
586
+ var wellKnownSymbol = function (name) {
587
+ if (!has(WellKnownSymbolsStore, name)) {
588
+ if (nativeSymbol && has(Symbol$1, name)) WellKnownSymbolsStore[name] = Symbol$1[name];
589
+ else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
590
+ } return WellKnownSymbolsStore[name];
591
+ };
592
+
593
+ var SPECIES = wellKnownSymbol('species');
594
+
595
+ // `ArraySpeciesCreate` abstract operation
596
+ // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
597
+ var arraySpeciesCreate = function (originalArray, length) {
598
+ var C;
599
+ if (isArray(originalArray)) {
600
+ C = originalArray.constructor;
601
+ // cross-realm fallback
602
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
603
+ else if (isObject(C)) {
604
+ C = C[SPECIES];
605
+ if (C === null) C = undefined;
606
+ }
607
+ } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
608
+ };
609
+
610
+ var push = [].push;
611
+
612
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
613
+ var createMethod$1 = function (TYPE) {
614
+ var IS_MAP = TYPE == 1;
615
+ var IS_FILTER = TYPE == 2;
616
+ var IS_SOME = TYPE == 3;
617
+ var IS_EVERY = TYPE == 4;
618
+ var IS_FIND_INDEX = TYPE == 6;
619
+ var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
620
+ return function ($this, callbackfn, that, specificCreate) {
621
+ var O = toObject($this);
622
+ var self = indexedObject(O);
623
+ var boundFunction = bindContext(callbackfn, that, 3);
624
+ var length = toLength(self.length);
625
+ var index = 0;
626
+ var create = specificCreate || arraySpeciesCreate;
627
+ var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
628
+ var value, result;
629
+ for (;length > index; index++) if (NO_HOLES || index in self) {
630
+ value = self[index];
631
+ result = boundFunction(value, index, O);
632
+ if (TYPE) {
633
+ if (IS_MAP) target[index] = result; // map
634
+ else if (result) switch (TYPE) {
635
+ case 3: return true; // some
636
+ case 5: return value; // find
637
+ case 6: return index; // findIndex
638
+ case 2: push.call(target, value); // filter
639
+ } else if (IS_EVERY) return false; // every
640
+ }
641
+ }
642
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
643
+ };
644
+ };
645
+
646
+ var arrayIteration = {
647
+ // `Array.prototype.forEach` method
648
+ // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
649
+ forEach: createMethod$1(0),
650
+ // `Array.prototype.map` method
651
+ // https://tc39.github.io/ecma262/#sec-array.prototype.map
652
+ map: createMethod$1(1),
653
+ // `Array.prototype.filter` method
654
+ // https://tc39.github.io/ecma262/#sec-array.prototype.filter
655
+ filter: createMethod$1(2),
656
+ // `Array.prototype.some` method
657
+ // https://tc39.github.io/ecma262/#sec-array.prototype.some
658
+ some: createMethod$1(3),
659
+ // `Array.prototype.every` method
660
+ // https://tc39.github.io/ecma262/#sec-array.prototype.every
661
+ every: createMethod$1(4),
662
+ // `Array.prototype.find` method
663
+ // https://tc39.github.io/ecma262/#sec-array.prototype.find
664
+ find: createMethod$1(5),
665
+ // `Array.prototype.findIndex` method
666
+ // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
667
+ findIndex: createMethod$1(6)
668
+ };
669
+
670
+ var userAgent = getBuiltIn('navigator', 'userAgent') || '';
671
+
672
+ var process = global_1.process;
673
+ var versions = process && process.versions;
674
+ var v8 = versions && versions.v8;
675
+ var match, version;
676
+
677
+ if (v8) {
678
+ match = v8.split('.');
679
+ version = match[0] + match[1];
680
+ } else if (userAgent) {
681
+ match = userAgent.match(/Edge\/(\d+)/);
682
+ if (!match || match[1] >= 74) {
683
+ match = userAgent.match(/Chrome\/(\d+)/);
684
+ if (match) version = match[1];
685
+ }
686
+ }
687
+
688
+ var v8Version = version && +version;
689
+
690
+ var SPECIES$1 = wellKnownSymbol('species');
691
+
692
+ var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
693
+ // We can't use this feature detection in V8 since it causes
694
+ // deoptimization and serious performance degradation
695
+ // https://github.com/zloirock/core-js/issues/677
696
+ return v8Version >= 51 || !fails(function () {
697
+ var array = [];
698
+ var constructor = array.constructor = {};
699
+ constructor[SPECIES$1] = function () {
700
+ return { foo: 1 };
701
+ };
702
+ return array[METHOD_NAME](Boolean).foo !== 1;
703
+ });
704
+ };
705
+
706
+ var $filter = arrayIteration.filter;
707
+
708
+
709
+
710
+ var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');
711
+ // Edge 14- issue
712
+ var USES_TO_LENGTH = HAS_SPECIES_SUPPORT && !fails(function () {
713
+ [].filter.call({ length: -1, 0: 1 }, function (it) { throw it; });
714
+ });
715
+
716
+ // `Array.prototype.filter` method
717
+ // https://tc39.github.io/ecma262/#sec-array.prototype.filter
718
+ // with adding support of @@species
719
+ _export({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {
720
+ filter: function filter(callbackfn /* , thisArg */) {
721
+ return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
722
+ }
723
+ });
724
+
725
+ var sloppyArrayMethod = function (METHOD_NAME, argument) {
726
+ var method = [][METHOD_NAME];
727
+ return !method || !fails(function () {
728
+ // eslint-disable-next-line no-useless-call,no-throw-literal
729
+ method.call(null, argument || function () { throw 1; }, 1);
730
+ });
731
+ };
732
+
733
+ var $indexOf = arrayIncludes.indexOf;
734
+
735
+
736
+ var nativeIndexOf = [].indexOf;
737
+
738
+ var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
739
+ var SLOPPY_METHOD = sloppyArrayMethod('indexOf');
740
+
741
+ // `Array.prototype.indexOf` method
742
+ // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
743
+ _export({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || SLOPPY_METHOD }, {
744
+ indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
745
+ return NEGATIVE_ZERO
746
+ // convert -0 to +0
747
+ ? nativeIndexOf.apply(this, arguments) || 0
748
+ : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
749
+ }
750
+ });
751
+
752
+ var createProperty = function (object, key, value) {
753
+ var propertyKey = toPrimitive(key);
754
+ if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
755
+ else object[propertyKey] = value;
756
+ };
757
+
758
+ var SPECIES$2 = wellKnownSymbol('species');
759
+ var nativeSlice = [].slice;
760
+ var max$1 = Math.max;
761
+
762
+ // `Array.prototype.slice` method
763
+ // https://tc39.github.io/ecma262/#sec-array.prototype.slice
764
+ // fallback for not array-like ES3 strings and DOM objects
765
+ _export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('slice') }, {
766
+ slice: function slice(start, end) {
767
+ var O = toIndexedObject(this);
768
+ var length = toLength(O.length);
769
+ var k = toAbsoluteIndex(start, length);
770
+ var fin = toAbsoluteIndex(end === undefined ? length : end, length);
771
+ // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
772
+ var Constructor, result, n;
773
+ if (isArray(O)) {
774
+ Constructor = O.constructor;
775
+ // cross-realm fallback
776
+ if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
777
+ Constructor = undefined;
778
+ } else if (isObject(Constructor)) {
779
+ Constructor = Constructor[SPECIES$2];
780
+ if (Constructor === null) Constructor = undefined;
781
+ }
782
+ if (Constructor === Array || Constructor === undefined) {
783
+ return nativeSlice.call(O, k, fin);
784
+ }
785
+ }
786
+ result = new (Constructor === undefined ? Array : Constructor)(max$1(fin - k, 0));
787
+ for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
788
+ result.length = n;
789
+ return result;
790
+ }
791
+ });
792
+
793
+ // a string of all valid unicode whitespaces
794
+ // eslint-disable-next-line max-len
795
+ var whitespaces = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
796
+
797
+ var whitespace = '[' + whitespaces + ']';
798
+ var ltrim = RegExp('^' + whitespace + whitespace + '*');
799
+ var rtrim = RegExp(whitespace + whitespace + '*$');
800
+
801
+ // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
802
+ var createMethod$2 = function (TYPE) {
803
+ return function ($this) {
804
+ var string = String(requireObjectCoercible($this));
805
+ if (TYPE & 1) string = string.replace(ltrim, '');
806
+ if (TYPE & 2) string = string.replace(rtrim, '');
807
+ return string;
808
+ };
809
+ };
810
+
811
+ var stringTrim = {
812
+ // `String.prototype.{ trimLeft, trimStart }` methods
813
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
814
+ start: createMethod$2(1),
815
+ // `String.prototype.{ trimRight, trimEnd }` methods
816
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trimend
817
+ end: createMethod$2(2),
818
+ // `String.prototype.trim` method
819
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trim
820
+ trim: createMethod$2(3)
821
+ };
822
+
823
+ var trim = stringTrim.trim;
824
+
825
+
826
+ var nativeParseInt = global_1.parseInt;
827
+ var hex = /^[+-]?0[Xx]/;
828
+ var FORCED = nativeParseInt(whitespaces + '08') !== 8 || nativeParseInt(whitespaces + '0x16') !== 22;
829
+
830
+ // `parseInt` method
831
+ // https://tc39.github.io/ecma262/#sec-parseint-string-radix
832
+ var _parseInt = FORCED ? function parseInt(string, radix) {
833
+ var S = trim(String(string));
834
+ return nativeParseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));
835
+ } : nativeParseInt;
836
+
837
+ // `parseInt` method
838
+ // https://tc39.github.io/ecma262/#sec-parseint-string-radix
839
+ _export({ global: true, forced: parseInt != _parseInt }, {
840
+ parseInt: _parseInt
841
+ });
842
+
843
+ /**
844
+ * @author doug-the-guy
845
+ * @version v1.0.0
846
+ *
847
+ * Bootstrap Table Pipeline
848
+ * -----------------------
849
+ *
850
+ * This plugin enables client side data caching for server side requests which will
851
+ * eliminate the need to issue a new request every page change. This will allow
852
+ * for a performance balance for a large data set between returning all data at once
853
+ * (client side paging) and a new server side request (server side paging).
854
+ *
855
+ * There are two new options:
856
+ * - usePipeline: enables this feature
857
+ * - pipelineSize: the size of each cache window
858
+ *
859
+ * The size of the pipeline must be evenly divisible by the current page size. This is
860
+ * assured by rounding up to the nearest evenly divisible value. For example, if
861
+ * the pipeline size is 4990 and the current page size is 25, then pipeline size will
862
+ * be dynamically set to 5000.
863
+ *
864
+ * The cache windows are computed based on the pipeline size and the total number of rows
865
+ * returned by the server side query. For example, with pipeline size 500 and total rows
866
+ * 1300, the cache windows will be:
867
+ *
868
+ * [{'lower': 0, 'upper': 499}, {'lower': 500, 'upper': 999}, {'lower': 1000, 'upper': 1499}]
869
+ *
870
+ * Using the limit (i.e. the pipelineSize) and offset parameters, the server side request
871
+ * **MUST** return only the data in the requested cache window **AND** the total number of rows.
872
+ * To wit, the server side code must use the offset and limit parameters to prepare the response
873
+ * data.
874
+ *
875
+ * On a page change, the new offset is checked if it is within the current cache window. If so,
876
+ * the requested page data is returned from the cached data set. Otherwise, a new server side
877
+ * request will be issued for the new cache window.
878
+ *
879
+ * The current cached data is only invalidated on these events:
880
+ * * sorting
881
+ * * searching
882
+ * * page size change
883
+ * * page change moves into a new cache window
884
+ *
885
+ * There are two new events:
886
+ * - cached-data-hit.bs.table: issued when cached data is used on a page change
887
+ * - cached-data-reset.bs.table: issued when the cached data is invalidated and a
888
+ * new server side request is issued
889
+ *
890
+ **/
891
+
892
+ var Utils = $.fn.bootstrapTable.utils;
893
+ $.extend($.fn.bootstrapTable.defaults, {
894
+ usePipeline: false,
895
+ pipelineSize: 1000,
896
+ onCachedDataHit: function onCachedDataHit(data) {
897
+ return false;
898
+ },
899
+ onCachedDataReset: function onCachedDataReset(data) {
900
+ return false;
901
+ }
902
+ });
903
+ $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
904
+ 'cached-data-hit.bs.table': 'onCachedDataHit',
905
+ 'cached-data-reset.bs.table': 'onCachedDataReset'
906
+ });
907
+ var BootstrapTable = $.fn.bootstrapTable.Constructor;
908
+ var _init = BootstrapTable.prototype.init;
909
+ var _initServer = BootstrapTable.prototype.initServer;
910
+ var _onSearch = BootstrapTable.prototype.onSearch;
911
+ var _onSort = BootstrapTable.prototype.onSort;
912
+ var _onPageListChange = BootstrapTable.prototype.onPageListChange;
913
+
914
+ BootstrapTable.prototype.init = function () {
915
+ // needs to be called before initServer()
916
+ this.initPipeline();
917
+
918
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
919
+ args[_key] = arguments[_key];
920
+ }
921
+
922
+ _init.apply(this, Array.prototype.slice.apply(args));
923
+ };
924
+
925
+ BootstrapTable.prototype.initPipeline = function () {
926
+ this.cacheRequestJSON = {};
927
+ this.cacheWindows = [];
928
+ this.currWindow = 0;
929
+ this.resetCache = true;
930
+ };
931
+
932
+ BootstrapTable.prototype.onSearch = function (event) {
933
+ /* force a cache reset on search */
934
+ if (this.options.usePipeline) {
935
+ this.resetCache = true;
936
+ }
937
+
938
+ _onSearch.apply(this, Array.prototype.slice.apply(arguments));
939
+ };
940
+
941
+ BootstrapTable.prototype.onSort = function (event) {
942
+ /* force a cache reset on sort */
943
+ if (this.options.usePipeline) {
944
+ this.resetCache = true;
945
+ }
946
+
947
+ _onSort.apply(this, Array.prototype.slice.apply(arguments));
948
+ };
949
+
950
+ BootstrapTable.prototype.onPageListChange = function (event) {
951
+ /* rebuild cache window on page size change */
952
+ var target = $(event.currentTarget);
953
+ var newPageSize = parseInt(target.text());
954
+ this.options.pipelineSize = this.calculatePipelineSize(this.options.pipelineSize, newPageSize);
955
+ this.resetCache = true;
956
+
957
+ _onPageListChange.apply(this, Array.prototype.slice.apply(arguments));
958
+ };
959
+
960
+ BootstrapTable.prototype.calculatePipelineSize = function (pipelineSize, pageSize) {
961
+ /* calculate pipeline size by rounding up to the nearest value evenly divisible
962
+ * by the pageSize */
963
+ if (pageSize === 0) return 0;
964
+ return Math.ceil(pipelineSize / pageSize) * pageSize;
965
+ };
966
+
967
+ BootstrapTable.prototype.setCacheWindows = function () {
968
+ /* set cache windows based on the total number of rows returned by server side
969
+ * request and the pipelineSize */
970
+ this.cacheWindows = [];
971
+ var numWindows = this.options.totalRows / this.options.pipelineSize;
972
+
973
+ for (var i = 0; i <= numWindows; i++) {
974
+ var b = i * this.options.pipelineSize;
975
+ this.cacheWindows[i] = {
976
+ 'lower': b,
977
+ 'upper': b + this.options.pipelineSize - 1
978
+ };
979
+ }
980
+ };
981
+
982
+ BootstrapTable.prototype.setCurrWindow = function (offset) {
983
+ /* set the current cache window index, based on where the current offset falls */
984
+ this.currWindow = 0;
985
+
986
+ for (var i = 0; i < this.cacheWindows.length; i++) {
987
+ if (this.cacheWindows[i].lower <= offset && offset <= this.cacheWindows[i].upper) {
988
+ this.currWindow = i;
989
+ break;
990
+ }
991
+ }
992
+ };
993
+
994
+ BootstrapTable.prototype.drawFromCache = function (offset, limit) {
995
+ /* draw rows from the cache using offset and limit */
996
+ var res = $.extend(true, {}, this.cacheRequestJSON);
997
+ var drawStart = offset - this.cacheWindows[this.currWindow].lower;
998
+ var drawEnd = drawStart + limit;
999
+ res.rows = res.rows.slice(drawStart, drawEnd);
1000
+ return res;
1001
+ };
1002
+
1003
+ BootstrapTable.prototype.initServer = function (silent, query, url) {
1004
+ /* determine if requested data is in cache (on paging) or if
1005
+ * a new ajax request needs to be issued (sorting, searching, paging
1006
+ * moving outside of cached data, page size change)
1007
+ * initial version of this extension will entirely override base initServer
1008
+ **/
1009
+ var data = {};
1010
+ var index = this.header.fields.indexOf(this.options.sortName);
1011
+ var params = {
1012
+ searchText: this.searchText,
1013
+ sortName: this.options.sortName,
1014
+ sortOrder: this.options.sortOrder
1015
+ };
1016
+ var request = null;
1017
+
1018
+ if (this.header.sortNames[index]) {
1019
+ params.sortName = this.header.sortNames[index];
1020
+ }
1021
+
1022
+ if (this.options.pagination && this.options.sidePagination === 'server') {
1023
+ params.pageSize = this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows : this.options.pageSize;
1024
+ params.pageNumber = this.options.pageNumber;
1025
+ }
1026
+
1027
+ if (!(url || this.options.url) && !this.options.ajax) {
1028
+ return;
1029
+ }
1030
+
1031
+ var useAjax = true;
1032
+
1033
+ if (this.options.queryParamsType === 'limit') {
1034
+ params = {
1035
+ searchText: params.searchText,
1036
+ sortName: params.sortName,
1037
+ sortOrder: params.sortOrder
1038
+ };
1039
+
1040
+ if (this.options.pagination && this.options.sidePagination === 'server') {
1041
+ params.limit = this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows : this.options.pageSize;
1042
+ params.offset = (this.options.pageSize === this.options.formatAllRows() ? this.options.totalRows : this.options.pageSize) * (this.options.pageNumber - 1);
1043
+
1044
+ if (this.options.usePipeline) {
1045
+ // if cacheWindows is empty, this is the initial request
1046
+ if (!this.cacheWindows.length) {
1047
+ useAjax = true;
1048
+ params.drawOffset = params.offset; // cache exists: determine if the page request is entirely within the current cached window
1049
+ } else {
1050
+ var w = this.cacheWindows[this.currWindow]; // case 1: reset cache but stay within current window (e.g. column sort)
1051
+ // case 2: move outside of the current window (e.g. search or paging)
1052
+ // since each cache window is aligned with the current page size
1053
+ // checking if params.offset is outside the current window is sufficient.
1054
+ // need to requery for preceding or succeeding cache window
1055
+ // also handle case
1056
+
1057
+ if (this.resetCache || params.offset < w.lower || params.offset > w.upper) {
1058
+ useAjax = true;
1059
+ this.setCurrWindow(params.offset); // store the relative offset for drawing the page data afterwards
1060
+
1061
+ params.drawOffset = params.offset; // now set params.offset to the lower bound of the new cache window
1062
+ // the server will return that whole cache window
1063
+
1064
+ params.offset = this.cacheWindows[this.currWindow].lower; // within current cache window
1065
+ } else {
1066
+ useAjax = false;
1067
+ }
1068
+ }
1069
+ } else {
1070
+ if (params.limit === 0) {
1071
+ delete params.limit;
1072
+ }
1073
+ }
1074
+ }
1075
+ } // force an ajax call - this is on search, sort or page size change
1076
+
1077
+
1078
+ if (this.resetCache) {
1079
+ useAjax = true;
1080
+ this.resetCache = false;
1081
+ }
1082
+
1083
+ if (this.options.usePipeline && useAjax) {
1084
+ /* in this scenario limit is used on the server to get the cache window
1085
+ * and drawLimit is used to get the page data afterwards */
1086
+ params.drawLimit = params.limit;
1087
+ params.limit = this.options.pipelineSize;
1088
+ } // cached results can be used
1089
+
1090
+
1091
+ if (!useAjax) {
1092
+ var res = this.drawFromCache(params.offset, params.limit);
1093
+ this.load(res);
1094
+ this.trigger('load-success', res);
1095
+ this.trigger('cached-data-hit', res);
1096
+ return;
1097
+ } // cached results can't be used
1098
+ // continue base initServer code
1099
+
1100
+
1101
+ if (!$.isEmptyObject(this.filterColumnsPartial)) {
1102
+ params.filter = JSON.stringify(this.filterColumnsPartial, null);
1103
+ }
1104
+
1105
+ data = Utils.calculateObjectValue(this.options, this.options.queryParams, [params], data);
1106
+ $.extend(data, query || {}); // false to stop request
1107
+
1108
+ if (data === false) {
1109
+ return;
1110
+ }
1111
+
1112
+ if (!silent) {
1113
+ this.$tableLoading.show();
1114
+ }
1115
+
1116
+ var self = this;
1117
+ request = $.extend({}, Utils.calculateObjectValue(null, this.options.ajaxOptions), {
1118
+ type: this.options.method,
1119
+ url: url || this.options.url,
1120
+ data: this.options.contentType === 'application/json' && this.options.method === 'post' ? JSON.stringify(data) : data,
1121
+ cache: this.options.cache,
1122
+ contentType: this.options.contentType,
1123
+ dataType: this.options.dataType,
1124
+ success: function success(res) {
1125
+ res = Utils.calculateObjectValue(self.options, self.options.responseHandler, [res], res); // cache results if using pipelining
1126
+
1127
+ if (self.options.usePipeline) {
1128
+ // store entire request in cache
1129
+ self.cacheRequestJSON = $.extend(true, {}, res); // this gets set in load() also but needs to be set before
1130
+ // setting cacheWindows
1131
+
1132
+ self.options.totalRows = res[self.options.totalField]; // if this is a search, potentially less results will be returned
1133
+ // so cache windows need to be rebuilt. Otherwise it
1134
+ // will come out the same
1135
+
1136
+ self.setCacheWindows();
1137
+ self.setCurrWindow(params.drawOffset); // just load data for the page
1138
+
1139
+ res = self.drawFromCache(params.drawOffset, params.drawLimit);
1140
+ self.trigger('cached-data-reset', res);
1141
+ }
1142
+
1143
+ self.load(res);
1144
+ self.trigger('load-success', res);
1145
+ if (!silent) self.$tableLoading.hide();
1146
+ },
1147
+ error: function error(res) {
1148
+ var data = [];
1149
+
1150
+ if (self.options.sidePagination === 'server') {
1151
+ data = {};
1152
+ data[self.options.totalField] = 0;
1153
+ data[self.options.dataField] = [];
1154
+ }
1155
+
1156
+ self.load(data);
1157
+ self.trigger('load-error', res.status, res);
1158
+ if (!silent) self.$tableLoading.hide();
1159
+ }
1160
+ });
1161
+
1162
+ if (this.options.ajax) {
1163
+ Utils.calculateObjectValue(this, this.options.ajax, [request], null);
1164
+ } else {
1165
+ if (this._xhr && this._xhr.readyState !== 4) {
1166
+ this._xhr.abort();
1167
+ }
1168
+
1169
+ this._xhr = $.ajax(request);
1170
+ }
1171
+ };
1172
+
1173
+ })));