bootstrap-table-rails 1.11.1.1 → 1.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +152 -98
  3. data/lib/bootstrap-table-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-locale-all.js +5196 -0
  5. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.esm.js +1809 -0
  6. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table-vue.js +1817 -0
  7. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.css +296 -0
  8. data/vendor/assets/javascripts/bootstrap-table/bootstrap-table.js +6924 -0
  9. data/vendor/assets/javascripts/bootstrap-table/extensions/accent-neutralise/bootstrap-table-accent-neutralise.js +1757 -0
  10. data/vendor/assets/javascripts/bootstrap-table/extensions/addrbar/bootstrap-table-addrbar.js +1485 -0
  11. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.css +3 -0
  12. data/vendor/assets/javascripts/bootstrap-table/extensions/auto-refresh/bootstrap-table-auto-refresh.js +1020 -0
  13. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.css +12 -0
  14. data/vendor/assets/javascripts/bootstrap-table/extensions/cell-input/bootstrap-table-cell-input.js +2087 -0
  15. data/vendor/assets/javascripts/bootstrap-table/extensions/cookie/bootstrap-table-cookie.js +1934 -0
  16. data/vendor/assets/javascripts/bootstrap-table/extensions/copy-rows/bootstrap-table-copy-rows.js +1042 -0
  17. data/vendor/assets/javascripts/bootstrap-table/extensions/defer-url/bootstrap-table-defer-url.js +779 -0
  18. data/vendor/assets/javascripts/bootstrap-table/extensions/editable/bootstrap-table-editable.js +1451 -0
  19. data/vendor/assets/javascripts/bootstrap-table/extensions/export/bootstrap-table-export.js +2494 -0
  20. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/filter-control}/bootstrap-table-filter-control.css +3 -3
  21. data/vendor/assets/javascripts/bootstrap-table/extensions/filter-control/bootstrap-table-filter-control.js +2502 -0
  22. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.css +27 -0
  23. data/vendor/assets/javascripts/bootstrap-table/extensions/fixed-columns/bootstrap-table-fixed-columns.js +1378 -0
  24. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/group-by}/bootstrap-table-group-by.css +0 -0
  25. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by/bootstrap-table-group-by.js +257 -0
  26. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.css +7 -0
  27. data/vendor/assets/javascripts/bootstrap-table/extensions/group-by-v2/bootstrap-table-group-by.js +1478 -0
  28. data/vendor/assets/javascripts/bootstrap-table/extensions/i18n-enhance/bootstrap-table-i18n-enhance.js +125 -0
  29. data/vendor/assets/javascripts/bootstrap-table/extensions/key-events/bootstrap-table-key-events.js +1243 -0
  30. data/vendor/assets/javascripts/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js +1162 -0
  31. data/vendor/assets/javascripts/bootstrap-table/extensions/multi-column-toggle/bootstrap-table-multi-toggle.js +105 -0
  32. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-search/bootstrap-table-multiple-search.js +85 -0
  33. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/multiple-selection-row}/bootstrap-table-multiple-selection-row.css +0 -0
  34. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-selection-row/bootstrap-table-multiple-selection-row.js +143 -0
  35. data/vendor/assets/javascripts/bootstrap-table/extensions/multiple-sort/bootstrap-table-multiple-sort.js +1905 -0
  36. data/vendor/assets/javascripts/bootstrap-table/extensions/natural-sorting/bootstrap-table-natural-sorting.js +1265 -0
  37. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.css +11 -0
  38. data/vendor/assets/javascripts/bootstrap-table/extensions/page-jump-to/bootstrap-table-page-jump-to.js +971 -0
  39. data/vendor/assets/javascripts/bootstrap-table/extensions/pipeline/bootstrap-table-pipeline.js +1128 -0
  40. data/vendor/assets/javascripts/bootstrap-table/extensions/print/bootstrap-table-print.js +1960 -0
  41. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-columns/bootstrap-table-reorder-columns.js +1015 -0
  42. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.css +14 -0
  43. data/vendor/assets/javascripts/bootstrap-table/extensions/reorder-rows/bootstrap-table-reorder-rows.js +774 -0
  44. data/vendor/assets/javascripts/bootstrap-table/extensions/resizable/bootstrap-table-resizable.js +676 -0
  45. data/vendor/assets/javascripts/bootstrap-table/extensions/select2-filter/bootstrap-table-select2-filter.js +341 -0
  46. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.css +22 -0
  47. data/vendor/assets/javascripts/bootstrap-table/extensions/sticky-header/bootstrap-table-sticky-header.js +1019 -0
  48. data/vendor/assets/javascripts/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js +2297 -0
  49. data/vendor/assets/{stylesheets/extensions → javascripts/bootstrap-table/extensions/tree-column}/bootstrap-table-tree-column.css +0 -0
  50. data/vendor/assets/javascripts/bootstrap-table/extensions/tree-column/bootstrap-table-tree-column.js +142 -0
  51. data/vendor/assets/javascripts/bootstrap-table/extensions/treegrid/bootstrap-table-treegrid.js +1817 -0
  52. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-af-ZA.js +721 -0
  53. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ar-SA.js +722 -0
  54. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ca-ES.js +722 -0
  55. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-cs-CZ.js +722 -0
  56. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-da-DK.js +721 -0
  57. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-de-DE.js +721 -0
  58. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-el-GR.js +721 -0
  59. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-en-US.js +721 -0
  60. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-AR.js +721 -0
  61. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CL.js +722 -0
  62. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-CR.js +721 -0
  63. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-ES.js +721 -0
  64. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-MX.js +723 -0
  65. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-NI.js +721 -0
  66. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-es-SP.js +721 -0
  67. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-et-EE.js +721 -0
  68. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-eu-EU.js +721 -0
  69. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fa-IR.js +721 -0
  70. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fi-FI.js +721 -0
  71. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-BE.js +722 -0
  72. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-CH.js +721 -0
  73. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-FR.js +723 -0
  74. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-fr-LU.js +721 -0
  75. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-he-IL.js +721 -0
  76. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hr-HR.js +722 -0
  77. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-hu-HU.js +721 -0
  78. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-id-ID.js +721 -0
  79. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-it-IT.js +723 -0
  80. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ja-JP.js +721 -0
  81. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ka-GE.js +721 -0
  82. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ko-KR.js +721 -0
  83. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ms-MY.js +721 -0
  84. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nb-NO.js +721 -0
  85. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-BE.js +721 -0
  86. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-nl-NL.js +722 -0
  87. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pl-PL.js +721 -0
  88. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-BR.js +723 -0
  89. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-pt-PT.js +721 -0
  90. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ro-RO.js +721 -0
  91. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ru-RU.js +721 -0
  92. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sk-SK.js +721 -0
  93. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-sv-SE.js +721 -0
  94. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-th-TH.js +721 -0
  95. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-tr-TR.js +722 -0
  96. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uk-UA.js +721 -0
  97. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-ur-PK.js +721 -0
  98. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.js +721 -0
  99. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-vi-VN.js +721 -0
  100. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-CN.js +721 -0
  101. data/vendor/assets/javascripts/bootstrap-table/locale/bootstrap-table-zh-TW.js +721 -0
  102. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.css +352 -0
  103. data/vendor/assets/javascripts/bootstrap-table/themes/bulma/bootstrap-table-bulma.js +943 -0
  104. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.css +329 -0
  105. data/vendor/assets/javascripts/bootstrap-table/themes/foundation/bootstrap-table-foundation.js +950 -0
  106. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.css +326 -0
  107. data/vendor/assets/javascripts/bootstrap-table/themes/materialize/bootstrap-table-materialize.js +946 -0
  108. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.css +336 -0
  109. data/vendor/assets/javascripts/bootstrap-table/themes/semantic/bootstrap-table-semantic.js +920 -0
  110. metadata +112 -96
  111. data/vendor/assets/images/icon.png +0 -0
  112. data/vendor/assets/javascripts/bootstrap-table-locale-all.js +0 -1698
  113. data/vendor/assets/javascripts/bootstrap-table.js +0 -3094
  114. data/vendor/assets/javascripts/extensions/bootstrap-table-accent-neutralise.js +0 -182
  115. data/vendor/assets/javascripts/extensions/bootstrap-table-angular.js +0 -107
  116. data/vendor/assets/javascripts/extensions/bootstrap-table-auto-refresh.js +0 -84
  117. data/vendor/assets/javascripts/extensions/bootstrap-table-click-edit-row.js +0 -142
  118. data/vendor/assets/javascripts/extensions/bootstrap-table-cookie.js +0 -434
  119. data/vendor/assets/javascripts/extensions/bootstrap-table-copy-rows.js +0 -102
  120. data/vendor/assets/javascripts/extensions/bootstrap-table-editable.js +0 -146
  121. data/vendor/assets/javascripts/extensions/bootstrap-table-export.js +0 -131
  122. data/vendor/assets/javascripts/extensions/bootstrap-table-filter-control.js +0 -697
  123. data/vendor/assets/javascripts/extensions/bootstrap-table-filter.js +0 -67
  124. data/vendor/assets/javascripts/extensions/bootstrap-table-flat-json.js +0 -62
  125. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by-v2.js +0 -226
  126. data/vendor/assets/javascripts/extensions/bootstrap-table-group-by.js +0 -243
  127. data/vendor/assets/javascripts/extensions/bootstrap-table-i18n-enhance.js +0 -34
  128. data/vendor/assets/javascripts/extensions/bootstrap-table-key-events.js +0 -80
  129. data/vendor/assets/javascripts/extensions/bootstrap-table-mobile.js +0 -136
  130. data/vendor/assets/javascripts/extensions/bootstrap-table-multi-toggle.js +0 -88
  131. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-search.js +0 -71
  132. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-selection-row.js +0 -127
  133. data/vendor/assets/javascripts/extensions/bootstrap-table-multiple-sort.js +0 -393
  134. data/vendor/assets/javascripts/extensions/bootstrap-table-natural-sorting.js +0 -67
  135. data/vendor/assets/javascripts/extensions/bootstrap-table-print.js +0 -133
  136. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-columns.js +0 -181
  137. data/vendor/assets/javascripts/extensions/bootstrap-table-reorder-rows.js +0 -118
  138. data/vendor/assets/javascripts/extensions/bootstrap-table-resizable.js +0 -74
  139. data/vendor/assets/javascripts/extensions/bootstrap-table-select2-filter.js +0 -303
  140. data/vendor/assets/javascripts/extensions/bootstrap-table-sticky-header.js +0 -111
  141. data/vendor/assets/javascripts/extensions/bootstrap-table-toolbar.js +0 -211
  142. data/vendor/assets/javascripts/extensions/bootstrap-table-tree-column.js +0 -130
  143. data/vendor/assets/javascripts/locale/README.md +0 -179
  144. data/vendor/assets/javascripts/locale/bootstrap-table-af-ZA.js +0 -40
  145. data/vendor/assets/javascripts/locale/bootstrap-table-ar-SA.js +0 -40
  146. data/vendor/assets/javascripts/locale/bootstrap-table-ca-ES.js +0 -44
  147. data/vendor/assets/javascripts/locale/bootstrap-table-cs-CZ.js +0 -44
  148. data/vendor/assets/javascripts/locale/bootstrap-table-da-DK.js +0 -37
  149. data/vendor/assets/javascripts/locale/bootstrap-table-de-DE.js +0 -43
  150. data/vendor/assets/javascripts/locale/bootstrap-table-el-GR.js +0 -28
  151. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js +0 -49
  152. data/vendor/assets/javascripts/locale/bootstrap-table-en-US.js.template +0 -49
  153. data/vendor/assets/javascripts/locale/bootstrap-table-es-AR.js +0 -31
  154. data/vendor/assets/javascripts/locale/bootstrap-table-es-CL.js +0 -44
  155. data/vendor/assets/javascripts/locale/bootstrap-table-es-CR.js +0 -40
  156. data/vendor/assets/javascripts/locale/bootstrap-table-es-ES.js +0 -43
  157. data/vendor/assets/javascripts/locale/bootstrap-table-es-MX.js +0 -32
  158. data/vendor/assets/javascripts/locale/bootstrap-table-es-NI.js +0 -40
  159. data/vendor/assets/javascripts/locale/bootstrap-table-es-SP.js +0 -40
  160. data/vendor/assets/javascripts/locale/bootstrap-table-et-EE.js +0 -43
  161. data/vendor/assets/javascripts/locale/bootstrap-table-fa-IR.js +0 -43
  162. data/vendor/assets/javascripts/locale/bootstrap-table-fr-BE.js +0 -28
  163. data/vendor/assets/javascripts/locale/bootstrap-table-fr-FR.js +0 -41
  164. data/vendor/assets/javascripts/locale/bootstrap-table-he-IL.js +0 -43
  165. data/vendor/assets/javascripts/locale/bootstrap-table-hr-HR.js +0 -44
  166. data/vendor/assets/javascripts/locale/bootstrap-table-hu-HU.js +0 -43
  167. data/vendor/assets/javascripts/locale/bootstrap-table-id-ID.js +0 -49
  168. data/vendor/assets/javascripts/locale/bootstrap-table-it-IT.js +0 -52
  169. data/vendor/assets/javascripts/locale/bootstrap-table-ja-JP.js +0 -43
  170. data/vendor/assets/javascripts/locale/bootstrap-table-ka-GE.js +0 -40
  171. data/vendor/assets/javascripts/locale/bootstrap-table-ko-KR.js +0 -37
  172. data/vendor/assets/javascripts/locale/bootstrap-table-ms-MY.js +0 -43
  173. data/vendor/assets/javascripts/locale/bootstrap-table-nb-NO.js +0 -37
  174. data/vendor/assets/javascripts/locale/bootstrap-table-nl-NL.js +0 -52
  175. data/vendor/assets/javascripts/locale/bootstrap-table-pl-PL.js +0 -37
  176. data/vendor/assets/javascripts/locale/bootstrap-table-pt-BR.js +0 -41
  177. data/vendor/assets/javascripts/locale/bootstrap-table-pt-PT.js +0 -43
  178. data/vendor/assets/javascripts/locale/bootstrap-table-ro-RO.js +0 -43
  179. data/vendor/assets/javascripts/locale/bootstrap-table-ru-RU.js +0 -72
  180. data/vendor/assets/javascripts/locale/bootstrap-table-sk-SK.js +0 -37
  181. data/vendor/assets/javascripts/locale/bootstrap-table-sv-SE.js +0 -37
  182. data/vendor/assets/javascripts/locale/bootstrap-table-th-TH.js +0 -37
  183. data/vendor/assets/javascripts/locale/bootstrap-table-tr-TR.js +0 -41
  184. data/vendor/assets/javascripts/locale/bootstrap-table-uk-UA.js +0 -73
  185. data/vendor/assets/javascripts/locale/bootstrap-table-ur-PK.js +0 -37
  186. data/vendor/assets/javascripts/locale/bootstrap-table-uz-Latn-UZ.js +0 -49
  187. data/vendor/assets/javascripts/locale/bootstrap-table-vi-VN.js +0 -28
  188. data/vendor/assets/javascripts/locale/bootstrap-table-zh-CN.js +0 -46
  189. data/vendor/assets/javascripts/locale/bootstrap-table-zh-TW.js +0 -40
  190. data/vendor/assets/stylesheets/bootstrap-table.css +0 -313
  191. data/vendor/assets/stylesheets/extensions/bootstrap-table-auto-refresh.css +0 -3
  192. data/vendor/assets/stylesheets/extensions/bootstrap-table-click-edit-row.css +0 -21
  193. data/vendor/assets/stylesheets/extensions/bootstrap-table-group-by-v2.css +0 -7
  194. data/vendor/assets/stylesheets/extensions/bootstrap-table-reorder-rows.css +0 -14
  195. data/vendor/assets/stylesheets/extensions/bootstrap-table-sticky-header.css +0 -22
@@ -5,9 +5,9 @@
5
5
  */
6
6
 
7
7
  .no-filter-control {
8
- height: 34px;
8
+ height: 34px;
9
9
  }
10
10
 
11
11
  .filter-control {
12
- margin: 0 2px 2px 2px;
13
- }
12
+ margin: 0 2px 2px 2px;
13
+ }
@@ -0,0 +1,2502 @@
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 O = 'object';
16
+ var check = function (it) {
17
+ return it && it.Math == Math && it;
18
+ };
19
+
20
+ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
21
+ var global_1 =
22
+ // eslint-disable-next-line no-undef
23
+ check(typeof globalThis == O && globalThis) ||
24
+ check(typeof window == O && window) ||
25
+ check(typeof self == O && self) ||
26
+ check(typeof commonjsGlobal == O && commonjsGlobal) ||
27
+ // eslint-disable-next-line no-new-func
28
+ Function('return this')();
29
+
30
+ var fails = function (exec) {
31
+ try {
32
+ return !!exec();
33
+ } catch (error) {
34
+ return true;
35
+ }
36
+ };
37
+
38
+ // Thank's IE8 for his funny defineProperty
39
+ var descriptors = !fails(function () {
40
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
41
+ });
42
+
43
+ var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
44
+ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
45
+
46
+ // Nashorn ~ JDK8 bug
47
+ var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
48
+
49
+ // `Object.prototype.propertyIsEnumerable` method implementation
50
+ // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable
51
+ var f = NASHORN_BUG ? function propertyIsEnumerable(V) {
52
+ var descriptor = getOwnPropertyDescriptor(this, V);
53
+ return !!descriptor && descriptor.enumerable;
54
+ } : nativePropertyIsEnumerable;
55
+
56
+ var objectPropertyIsEnumerable = {
57
+ f: f
58
+ };
59
+
60
+ var createPropertyDescriptor = function (bitmap, value) {
61
+ return {
62
+ enumerable: !(bitmap & 1),
63
+ configurable: !(bitmap & 2),
64
+ writable: !(bitmap & 4),
65
+ value: value
66
+ };
67
+ };
68
+
69
+ var toString = {}.toString;
70
+
71
+ var classofRaw = function (it) {
72
+ return toString.call(it).slice(8, -1);
73
+ };
74
+
75
+ var split = ''.split;
76
+
77
+ // fallback for non-array-like ES3 and non-enumerable old V8 strings
78
+ var indexedObject = fails(function () {
79
+ // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
80
+ // eslint-disable-next-line no-prototype-builtins
81
+ return !Object('z').propertyIsEnumerable(0);
82
+ }) ? function (it) {
83
+ return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
84
+ } : Object;
85
+
86
+ // `RequireObjectCoercible` abstract operation
87
+ // https://tc39.github.io/ecma262/#sec-requireobjectcoercible
88
+ var requireObjectCoercible = function (it) {
89
+ if (it == undefined) throw TypeError("Can't call method on " + it);
90
+ return it;
91
+ };
92
+
93
+ // toObject with fallback for non-array-like ES3 strings
94
+
95
+
96
+
97
+ var toIndexedObject = function (it) {
98
+ return indexedObject(requireObjectCoercible(it));
99
+ };
100
+
101
+ var isObject = function (it) {
102
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
103
+ };
104
+
105
+ // `ToPrimitive` abstract operation
106
+ // https://tc39.github.io/ecma262/#sec-toprimitive
107
+ // instead of the ES6 spec version, we didn't implement @@toPrimitive case
108
+ // and the second argument - flag - preferred type is a string
109
+ var toPrimitive = function (input, PREFERRED_STRING) {
110
+ if (!isObject(input)) return input;
111
+ var fn, val;
112
+ if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
113
+ if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;
114
+ if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;
115
+ throw TypeError("Can't convert object to primitive value");
116
+ };
117
+
118
+ var hasOwnProperty = {}.hasOwnProperty;
119
+
120
+ var has = function (it, key) {
121
+ return hasOwnProperty.call(it, key);
122
+ };
123
+
124
+ var document$1 = global_1.document;
125
+ // typeof document.createElement is 'object' in old IE
126
+ var EXISTS = isObject(document$1) && isObject(document$1.createElement);
127
+
128
+ var documentCreateElement = function (it) {
129
+ return EXISTS ? document$1.createElement(it) : {};
130
+ };
131
+
132
+ // Thank's IE8 for his funny defineProperty
133
+ var ie8DomDefine = !descriptors && !fails(function () {
134
+ return Object.defineProperty(documentCreateElement('div'), 'a', {
135
+ get: function () { return 7; }
136
+ }).a != 7;
137
+ });
138
+
139
+ var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
140
+
141
+ // `Object.getOwnPropertyDescriptor` method
142
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor
143
+ var f$1 = descriptors ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
144
+ O = toIndexedObject(O);
145
+ P = toPrimitive(P, true);
146
+ if (ie8DomDefine) try {
147
+ return nativeGetOwnPropertyDescriptor(O, P);
148
+ } catch (error) { /* empty */ }
149
+ if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
150
+ };
151
+
152
+ var objectGetOwnPropertyDescriptor = {
153
+ f: f$1
154
+ };
155
+
156
+ var anObject = function (it) {
157
+ if (!isObject(it)) {
158
+ throw TypeError(String(it) + ' is not an object');
159
+ } return it;
160
+ };
161
+
162
+ var nativeDefineProperty = Object.defineProperty;
163
+
164
+ // `Object.defineProperty` method
165
+ // https://tc39.github.io/ecma262/#sec-object.defineproperty
166
+ var f$2 = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
167
+ anObject(O);
168
+ P = toPrimitive(P, true);
169
+ anObject(Attributes);
170
+ if (ie8DomDefine) try {
171
+ return nativeDefineProperty(O, P, Attributes);
172
+ } catch (error) { /* empty */ }
173
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
174
+ if ('value' in Attributes) O[P] = Attributes.value;
175
+ return O;
176
+ };
177
+
178
+ var objectDefineProperty = {
179
+ f: f$2
180
+ };
181
+
182
+ var hide = descriptors ? function (object, key, value) {
183
+ return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
184
+ } : function (object, key, value) {
185
+ object[key] = value;
186
+ return object;
187
+ };
188
+
189
+ var setGlobal = function (key, value) {
190
+ try {
191
+ hide(global_1, key, value);
192
+ } catch (error) {
193
+ global_1[key] = value;
194
+ } return value;
195
+ };
196
+
197
+ var shared = createCommonjsModule(function (module) {
198
+ var SHARED = '__core-js_shared__';
199
+ var store = global_1[SHARED] || setGlobal(SHARED, {});
200
+
201
+ (module.exports = function (key, value) {
202
+ return store[key] || (store[key] = value !== undefined ? value : {});
203
+ })('versions', []).push({
204
+ version: '3.1.3',
205
+ mode: 'global',
206
+ copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
207
+ });
208
+ });
209
+
210
+ var functionToString = shared('native-function-to-string', Function.toString);
211
+
212
+ var WeakMap = global_1.WeakMap;
213
+
214
+ var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
215
+
216
+ var id = 0;
217
+ var postfix = Math.random();
218
+
219
+ var uid = function (key) {
220
+ return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
221
+ };
222
+
223
+ var keys = shared('keys');
224
+
225
+ var sharedKey = function (key) {
226
+ return keys[key] || (keys[key] = uid(key));
227
+ };
228
+
229
+ var hiddenKeys = {};
230
+
231
+ var WeakMap$1 = global_1.WeakMap;
232
+ var set, get, has$1;
233
+
234
+ var enforce = function (it) {
235
+ return has$1(it) ? get(it) : set(it, {});
236
+ };
237
+
238
+ var getterFor = function (TYPE) {
239
+ return function (it) {
240
+ var state;
241
+ if (!isObject(it) || (state = get(it)).type !== TYPE) {
242
+ throw TypeError('Incompatible receiver, ' + TYPE + ' required');
243
+ } return state;
244
+ };
245
+ };
246
+
247
+ if (nativeWeakMap) {
248
+ var store = new WeakMap$1();
249
+ var wmget = store.get;
250
+ var wmhas = store.has;
251
+ var wmset = store.set;
252
+ set = function (it, metadata) {
253
+ wmset.call(store, it, metadata);
254
+ return metadata;
255
+ };
256
+ get = function (it) {
257
+ return wmget.call(store, it) || {};
258
+ };
259
+ has$1 = function (it) {
260
+ return wmhas.call(store, it);
261
+ };
262
+ } else {
263
+ var STATE = sharedKey('state');
264
+ hiddenKeys[STATE] = true;
265
+ set = function (it, metadata) {
266
+ hide(it, STATE, metadata);
267
+ return metadata;
268
+ };
269
+ get = function (it) {
270
+ return has(it, STATE) ? it[STATE] : {};
271
+ };
272
+ has$1 = function (it) {
273
+ return has(it, STATE);
274
+ };
275
+ }
276
+
277
+ var internalState = {
278
+ set: set,
279
+ get: get,
280
+ has: has$1,
281
+ enforce: enforce,
282
+ getterFor: getterFor
283
+ };
284
+
285
+ var redefine = createCommonjsModule(function (module) {
286
+ var getInternalState = internalState.get;
287
+ var enforceInternalState = internalState.enforce;
288
+ var TEMPLATE = String(functionToString).split('toString');
289
+
290
+ shared('inspectSource', function (it) {
291
+ return functionToString.call(it);
292
+ });
293
+
294
+ (module.exports = function (O, key, value, options) {
295
+ var unsafe = options ? !!options.unsafe : false;
296
+ var simple = options ? !!options.enumerable : false;
297
+ var noTargetGet = options ? !!options.noTargetGet : false;
298
+ if (typeof value == 'function') {
299
+ if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
300
+ enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
301
+ }
302
+ if (O === global_1) {
303
+ if (simple) O[key] = value;
304
+ else setGlobal(key, value);
305
+ return;
306
+ } else if (!unsafe) {
307
+ delete O[key];
308
+ } else if (!noTargetGet && O[key]) {
309
+ simple = true;
310
+ }
311
+ if (simple) O[key] = value;
312
+ else hide(O, key, value);
313
+ // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
314
+ })(Function.prototype, 'toString', function toString() {
315
+ return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
316
+ });
317
+ });
318
+
319
+ var path = global_1;
320
+
321
+ var aFunction = function (variable) {
322
+ return typeof variable == 'function' ? variable : undefined;
323
+ };
324
+
325
+ var getBuiltIn = function (namespace, method) {
326
+ return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global_1[namespace])
327
+ : path[namespace] && path[namespace][method] || global_1[namespace] && global_1[namespace][method];
328
+ };
329
+
330
+ var ceil = Math.ceil;
331
+ var floor = Math.floor;
332
+
333
+ // `ToInteger` abstract operation
334
+ // https://tc39.github.io/ecma262/#sec-tointeger
335
+ var toInteger = function (argument) {
336
+ return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
337
+ };
338
+
339
+ var min = Math.min;
340
+
341
+ // `ToLength` abstract operation
342
+ // https://tc39.github.io/ecma262/#sec-tolength
343
+ var toLength = function (argument) {
344
+ return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
345
+ };
346
+
347
+ var max = Math.max;
348
+ var min$1 = Math.min;
349
+
350
+ // Helper for a popular repeating case of the spec:
351
+ // Let integer be ? ToInteger(index).
352
+ // If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
353
+ var toAbsoluteIndex = function (index, length) {
354
+ var integer = toInteger(index);
355
+ return integer < 0 ? max(integer + length, 0) : min$1(integer, length);
356
+ };
357
+
358
+ // `Array.prototype.{ indexOf, includes }` methods implementation
359
+ var createMethod = function (IS_INCLUDES) {
360
+ return function ($this, el, fromIndex) {
361
+ var O = toIndexedObject($this);
362
+ var length = toLength(O.length);
363
+ var index = toAbsoluteIndex(fromIndex, length);
364
+ var value;
365
+ // Array#includes uses SameValueZero equality algorithm
366
+ // eslint-disable-next-line no-self-compare
367
+ if (IS_INCLUDES && el != el) while (length > index) {
368
+ value = O[index++];
369
+ // eslint-disable-next-line no-self-compare
370
+ if (value != value) return true;
371
+ // Array#indexOf ignores holes, Array#includes - not
372
+ } else for (;length > index; index++) {
373
+ if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
374
+ } return !IS_INCLUDES && -1;
375
+ };
376
+ };
377
+
378
+ var arrayIncludes = {
379
+ // `Array.prototype.includes` method
380
+ // https://tc39.github.io/ecma262/#sec-array.prototype.includes
381
+ includes: createMethod(true),
382
+ // `Array.prototype.indexOf` method
383
+ // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
384
+ indexOf: createMethod(false)
385
+ };
386
+
387
+ var indexOf = arrayIncludes.indexOf;
388
+
389
+
390
+ var objectKeysInternal = function (object, names) {
391
+ var O = toIndexedObject(object);
392
+ var i = 0;
393
+ var result = [];
394
+ var key;
395
+ for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
396
+ // Don't enum bug & hidden keys
397
+ while (names.length > i) if (has(O, key = names[i++])) {
398
+ ~indexOf(result, key) || result.push(key);
399
+ }
400
+ return result;
401
+ };
402
+
403
+ // IE8- don't enum bug keys
404
+ var enumBugKeys = [
405
+ 'constructor',
406
+ 'hasOwnProperty',
407
+ 'isPrototypeOf',
408
+ 'propertyIsEnumerable',
409
+ 'toLocaleString',
410
+ 'toString',
411
+ 'valueOf'
412
+ ];
413
+
414
+ var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
415
+
416
+ // `Object.getOwnPropertyNames` method
417
+ // https://tc39.github.io/ecma262/#sec-object.getownpropertynames
418
+ var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
419
+ return objectKeysInternal(O, hiddenKeys$1);
420
+ };
421
+
422
+ var objectGetOwnPropertyNames = {
423
+ f: f$3
424
+ };
425
+
426
+ var f$4 = Object.getOwnPropertySymbols;
427
+
428
+ var objectGetOwnPropertySymbols = {
429
+ f: f$4
430
+ };
431
+
432
+ // all object keys, includes non-enumerable and symbols
433
+ var ownKeys = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
434
+ var keys = objectGetOwnPropertyNames.f(anObject(it));
435
+ var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
436
+ return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
437
+ };
438
+
439
+ var copyConstructorProperties = function (target, source) {
440
+ var keys = ownKeys(source);
441
+ var defineProperty = objectDefineProperty.f;
442
+ var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
443
+ for (var i = 0; i < keys.length; i++) {
444
+ var key = keys[i];
445
+ if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
446
+ }
447
+ };
448
+
449
+ var replacement = /#|\.prototype\./;
450
+
451
+ var isForced = function (feature, detection) {
452
+ var value = data[normalize(feature)];
453
+ return value == POLYFILL ? true
454
+ : value == NATIVE ? false
455
+ : typeof detection == 'function' ? fails(detection)
456
+ : !!detection;
457
+ };
458
+
459
+ var normalize = isForced.normalize = function (string) {
460
+ return String(string).replace(replacement, '.').toLowerCase();
461
+ };
462
+
463
+ var data = isForced.data = {};
464
+ var NATIVE = isForced.NATIVE = 'N';
465
+ var POLYFILL = isForced.POLYFILL = 'P';
466
+
467
+ var isForced_1 = isForced;
468
+
469
+ var getOwnPropertyDescriptor$1 = objectGetOwnPropertyDescriptor.f;
470
+
471
+
472
+
473
+
474
+
475
+
476
+ /*
477
+ options.target - name of the target object
478
+ options.global - target is the global object
479
+ options.stat - export as static methods of target
480
+ options.proto - export as prototype methods of target
481
+ options.real - real prototype method for the `pure` version
482
+ options.forced - export even if the native feature is available
483
+ options.bind - bind methods to the target, required for the `pure` version
484
+ options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
485
+ options.unsafe - use the simple assignment of property instead of delete + defineProperty
486
+ options.sham - add a flag to not completely full polyfills
487
+ options.enumerable - export as enumerable property
488
+ options.noTargetGet - prevent calling a getter on target
489
+ */
490
+ var _export = function (options, source) {
491
+ var TARGET = options.target;
492
+ var GLOBAL = options.global;
493
+ var STATIC = options.stat;
494
+ var FORCED, target, key, targetProperty, sourceProperty, descriptor;
495
+ if (GLOBAL) {
496
+ target = global_1;
497
+ } else if (STATIC) {
498
+ target = global_1[TARGET] || setGlobal(TARGET, {});
499
+ } else {
500
+ target = (global_1[TARGET] || {}).prototype;
501
+ }
502
+ if (target) for (key in source) {
503
+ sourceProperty = source[key];
504
+ if (options.noTargetGet) {
505
+ descriptor = getOwnPropertyDescriptor$1(target, key);
506
+ targetProperty = descriptor && descriptor.value;
507
+ } else targetProperty = target[key];
508
+ FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
509
+ // contained in target
510
+ if (!FORCED && targetProperty !== undefined) {
511
+ if (typeof sourceProperty === typeof targetProperty) continue;
512
+ copyConstructorProperties(sourceProperty, targetProperty);
513
+ }
514
+ // add a flag to not completely full polyfills
515
+ if (options.sham || (targetProperty && targetProperty.sham)) {
516
+ hide(sourceProperty, 'sham', true);
517
+ }
518
+ // extend global
519
+ redefine(target, key, sourceProperty, options);
520
+ }
521
+ };
522
+
523
+ var aFunction$1 = function (it) {
524
+ if (typeof it != 'function') {
525
+ throw TypeError(String(it) + ' is not a function');
526
+ } return it;
527
+ };
528
+
529
+ // optional / simple context binding
530
+ var bindContext = function (fn, that, length) {
531
+ aFunction$1(fn);
532
+ if (that === undefined) return fn;
533
+ switch (length) {
534
+ case 0: return function () {
535
+ return fn.call(that);
536
+ };
537
+ case 1: return function (a) {
538
+ return fn.call(that, a);
539
+ };
540
+ case 2: return function (a, b) {
541
+ return fn.call(that, a, b);
542
+ };
543
+ case 3: return function (a, b, c) {
544
+ return fn.call(that, a, b, c);
545
+ };
546
+ }
547
+ return function (/* ...args */) {
548
+ return fn.apply(that, arguments);
549
+ };
550
+ };
551
+
552
+ // `ToObject` abstract operation
553
+ // https://tc39.github.io/ecma262/#sec-toobject
554
+ var toObject = function (argument) {
555
+ return Object(requireObjectCoercible(argument));
556
+ };
557
+
558
+ // `IsArray` abstract operation
559
+ // https://tc39.github.io/ecma262/#sec-isarray
560
+ var isArray = Array.isArray || function isArray(arg) {
561
+ return classofRaw(arg) == 'Array';
562
+ };
563
+
564
+ var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () {
565
+ // Chrome 38 Symbol has incorrect toString conversion
566
+ // eslint-disable-next-line no-undef
567
+ return !String(Symbol());
568
+ });
569
+
570
+ var Symbol$1 = global_1.Symbol;
571
+ var store$1 = shared('wks');
572
+
573
+ var wellKnownSymbol = function (name) {
574
+ return store$1[name] || (store$1[name] = nativeSymbol && Symbol$1[name]
575
+ || (nativeSymbol ? Symbol$1 : uid)('Symbol.' + name));
576
+ };
577
+
578
+ var SPECIES = wellKnownSymbol('species');
579
+
580
+ // `ArraySpeciesCreate` abstract operation
581
+ // https://tc39.github.io/ecma262/#sec-arrayspeciescreate
582
+ var arraySpeciesCreate = function (originalArray, length) {
583
+ var C;
584
+ if (isArray(originalArray)) {
585
+ C = originalArray.constructor;
586
+ // cross-realm fallback
587
+ if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
588
+ else if (isObject(C)) {
589
+ C = C[SPECIES];
590
+ if (C === null) C = undefined;
591
+ }
592
+ } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
593
+ };
594
+
595
+ var push = [].push;
596
+
597
+ // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation
598
+ var createMethod$1 = function (TYPE) {
599
+ var IS_MAP = TYPE == 1;
600
+ var IS_FILTER = TYPE == 2;
601
+ var IS_SOME = TYPE == 3;
602
+ var IS_EVERY = TYPE == 4;
603
+ var IS_FIND_INDEX = TYPE == 6;
604
+ var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
605
+ return function ($this, callbackfn, that, specificCreate) {
606
+ var O = toObject($this);
607
+ var self = indexedObject(O);
608
+ var boundFunction = bindContext(callbackfn, that, 3);
609
+ var length = toLength(self.length);
610
+ var index = 0;
611
+ var create = specificCreate || arraySpeciesCreate;
612
+ var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
613
+ var value, result;
614
+ for (;length > index; index++) if (NO_HOLES || index in self) {
615
+ value = self[index];
616
+ result = boundFunction(value, index, O);
617
+ if (TYPE) {
618
+ if (IS_MAP) target[index] = result; // map
619
+ else if (result) switch (TYPE) {
620
+ case 3: return true; // some
621
+ case 5: return value; // find
622
+ case 6: return index; // findIndex
623
+ case 2: push.call(target, value); // filter
624
+ } else if (IS_EVERY) return false; // every
625
+ }
626
+ }
627
+ return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
628
+ };
629
+ };
630
+
631
+ var arrayIteration = {
632
+ // `Array.prototype.forEach` method
633
+ // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
634
+ forEach: createMethod$1(0),
635
+ // `Array.prototype.map` method
636
+ // https://tc39.github.io/ecma262/#sec-array.prototype.map
637
+ map: createMethod$1(1),
638
+ // `Array.prototype.filter` method
639
+ // https://tc39.github.io/ecma262/#sec-array.prototype.filter
640
+ filter: createMethod$1(2),
641
+ // `Array.prototype.some` method
642
+ // https://tc39.github.io/ecma262/#sec-array.prototype.some
643
+ some: createMethod$1(3),
644
+ // `Array.prototype.every` method
645
+ // https://tc39.github.io/ecma262/#sec-array.prototype.every
646
+ every: createMethod$1(4),
647
+ // `Array.prototype.find` method
648
+ // https://tc39.github.io/ecma262/#sec-array.prototype.find
649
+ find: createMethod$1(5),
650
+ // `Array.prototype.findIndex` method
651
+ // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
652
+ findIndex: createMethod$1(6)
653
+ };
654
+
655
+ var SPECIES$1 = wellKnownSymbol('species');
656
+
657
+ var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
658
+ return !fails(function () {
659
+ var array = [];
660
+ var constructor = array.constructor = {};
661
+ constructor[SPECIES$1] = function () {
662
+ return { foo: 1 };
663
+ };
664
+ return array[METHOD_NAME](Boolean).foo !== 1;
665
+ });
666
+ };
667
+
668
+ var $filter = arrayIteration.filter;
669
+
670
+
671
+ // `Array.prototype.filter` method
672
+ // https://tc39.github.io/ecma262/#sec-array.prototype.filter
673
+ // with adding support of @@species
674
+ _export({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('filter') }, {
675
+ filter: function filter(callbackfn /* , thisArg */) {
676
+ return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
677
+ }
678
+ });
679
+
680
+ // `Object.keys` method
681
+ // https://tc39.github.io/ecma262/#sec-object.keys
682
+ var objectKeys = Object.keys || function keys(O) {
683
+ return objectKeysInternal(O, enumBugKeys);
684
+ };
685
+
686
+ // `Object.defineProperties` method
687
+ // https://tc39.github.io/ecma262/#sec-object.defineproperties
688
+ var objectDefineProperties = descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
689
+ anObject(O);
690
+ var keys = objectKeys(Properties);
691
+ var length = keys.length;
692
+ var index = 0;
693
+ var key;
694
+ while (length > index) objectDefineProperty.f(O, key = keys[index++], Properties[key]);
695
+ return O;
696
+ };
697
+
698
+ var html = getBuiltIn('document', 'documentElement');
699
+
700
+ var IE_PROTO = sharedKey('IE_PROTO');
701
+
702
+ var PROTOTYPE = 'prototype';
703
+ var Empty = function () { /* empty */ };
704
+
705
+ // Create object with fake `null` prototype: use iframe Object with cleared prototype
706
+ var createDict = function () {
707
+ // Thrash, waste and sodomy: IE GC bug
708
+ var iframe = documentCreateElement('iframe');
709
+ var length = enumBugKeys.length;
710
+ var lt = '<';
711
+ var script = 'script';
712
+ var gt = '>';
713
+ var js = 'java' + script + ':';
714
+ var iframeDocument;
715
+ iframe.style.display = 'none';
716
+ html.appendChild(iframe);
717
+ iframe.src = String(js);
718
+ iframeDocument = iframe.contentWindow.document;
719
+ iframeDocument.open();
720
+ iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);
721
+ iframeDocument.close();
722
+ createDict = iframeDocument.F;
723
+ while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];
724
+ return createDict();
725
+ };
726
+
727
+ // `Object.create` method
728
+ // https://tc39.github.io/ecma262/#sec-object.create
729
+ var objectCreate = Object.create || function create(O, Properties) {
730
+ var result;
731
+ if (O !== null) {
732
+ Empty[PROTOTYPE] = anObject(O);
733
+ result = new Empty();
734
+ Empty[PROTOTYPE] = null;
735
+ // add "__proto__" for Object.getPrototypeOf polyfill
736
+ result[IE_PROTO] = O;
737
+ } else result = createDict();
738
+ return Properties === undefined ? result : objectDefineProperties(result, Properties);
739
+ };
740
+
741
+ hiddenKeys[IE_PROTO] = true;
742
+
743
+ var UNSCOPABLES = wellKnownSymbol('unscopables');
744
+ var ArrayPrototype = Array.prototype;
745
+
746
+ // Array.prototype[@@unscopables]
747
+ // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
748
+ if (ArrayPrototype[UNSCOPABLES] == undefined) {
749
+ hide(ArrayPrototype, UNSCOPABLES, objectCreate(null));
750
+ }
751
+
752
+ // add a key to Array.prototype[@@unscopables]
753
+ var addToUnscopables = function (key) {
754
+ ArrayPrototype[UNSCOPABLES][key] = true;
755
+ };
756
+
757
+ var $find = arrayIteration.find;
758
+
759
+
760
+ var FIND = 'find';
761
+ var SKIPS_HOLES = true;
762
+
763
+ // Shouldn't skip holes
764
+ if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });
765
+
766
+ // `Array.prototype.find` method
767
+ // https://tc39.github.io/ecma262/#sec-array.prototype.find
768
+ _export({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {
769
+ find: function find(callbackfn /* , that = undefined */) {
770
+ return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
771
+ }
772
+ });
773
+
774
+ // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
775
+ addToUnscopables(FIND);
776
+
777
+ var $includes = arrayIncludes.includes;
778
+
779
+
780
+ // `Array.prototype.includes` method
781
+ // https://tc39.github.io/ecma262/#sec-array.prototype.includes
782
+ _export({ target: 'Array', proto: true }, {
783
+ includes: function includes(el /* , fromIndex = 0 */) {
784
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
785
+ }
786
+ });
787
+
788
+ // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables
789
+ addToUnscopables('includes');
790
+
791
+ var sloppyArrayMethod = function (METHOD_NAME, argument) {
792
+ var method = [][METHOD_NAME];
793
+ return !method || !fails(function () {
794
+ // eslint-disable-next-line no-useless-call,no-throw-literal
795
+ method.call(null, argument || function () { throw 1; }, 1);
796
+ });
797
+ };
798
+
799
+ var $indexOf = arrayIncludes.indexOf;
800
+
801
+
802
+ var nativeIndexOf = [].indexOf;
803
+
804
+ var NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;
805
+ var SLOPPY_METHOD = sloppyArrayMethod('indexOf');
806
+
807
+ // `Array.prototype.indexOf` method
808
+ // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
809
+ _export({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || SLOPPY_METHOD }, {
810
+ indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
811
+ return NEGATIVE_ZERO
812
+ // convert -0 to +0
813
+ ? nativeIndexOf.apply(this, arguments) || 0
814
+ : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);
815
+ }
816
+ });
817
+
818
+ var nativeJoin = [].join;
819
+
820
+ var ES3_STRINGS = indexedObject != Object;
821
+ var SLOPPY_METHOD$1 = sloppyArrayMethod('join', ',');
822
+
823
+ // `Array.prototype.join` method
824
+ // https://tc39.github.io/ecma262/#sec-array.prototype.join
825
+ _export({ target: 'Array', proto: true, forced: ES3_STRINGS || SLOPPY_METHOD$1 }, {
826
+ join: function join(separator) {
827
+ return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);
828
+ }
829
+ });
830
+
831
+ var nativeSort = [].sort;
832
+ var test = [1, 2, 3];
833
+
834
+ // IE8-
835
+ var FAILS_ON_UNDEFINED = fails(function () {
836
+ test.sort(undefined);
837
+ });
838
+ // V8 bug
839
+ var FAILS_ON_NULL = fails(function () {
840
+ test.sort(null);
841
+ });
842
+ // Old WebKit
843
+ var SLOPPY_METHOD$2 = sloppyArrayMethod('sort');
844
+
845
+ var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || SLOPPY_METHOD$2;
846
+
847
+ // `Array.prototype.sort` method
848
+ // https://tc39.github.io/ecma262/#sec-array.prototype.sort
849
+ _export({ target: 'Array', proto: true, forced: FORCED }, {
850
+ sort: function sort(comparefn) {
851
+ return comparefn === undefined
852
+ ? nativeSort.call(toObject(this))
853
+ : nativeSort.call(toObject(this), aFunction$1(comparefn));
854
+ }
855
+ });
856
+
857
+ var FAILS_ON_PRIMITIVES = fails(function () { objectKeys(1); });
858
+
859
+ // `Object.keys` method
860
+ // https://tc39.github.io/ecma262/#sec-object.keys
861
+ _export({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {
862
+ keys: function keys(it) {
863
+ return objectKeys(toObject(it));
864
+ }
865
+ });
866
+
867
+ var TO_STRING_TAG = wellKnownSymbol('toStringTag');
868
+ // ES3 wrong here
869
+ var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';
870
+
871
+ // fallback for IE11 Script Access Denied error
872
+ var tryGet = function (it, key) {
873
+ try {
874
+ return it[key];
875
+ } catch (error) { /* empty */ }
876
+ };
877
+
878
+ // getting tag from ES6+ `Object.prototype.toString`
879
+ var classof = function (it) {
880
+ var O, tag, result;
881
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
882
+ // @@toStringTag case
883
+ : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag
884
+ // builtinTag case
885
+ : CORRECT_ARGUMENTS ? classofRaw(O)
886
+ // ES3 arguments fallback
887
+ : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
888
+ };
889
+
890
+ var TO_STRING_TAG$1 = wellKnownSymbol('toStringTag');
891
+ var test$1 = {};
892
+
893
+ test$1[TO_STRING_TAG$1] = 'z';
894
+
895
+ // `Object.prototype.toString` method implementation
896
+ // https://tc39.github.io/ecma262/#sec-object.prototype.tostring
897
+ var objectToString = String(test$1) !== '[object z]' ? function toString() {
898
+ return '[object ' + classof(this) + ']';
899
+ } : test$1.toString;
900
+
901
+ var ObjectPrototype = Object.prototype;
902
+
903
+ // `Object.prototype.toString` method
904
+ // https://tc39.github.io/ecma262/#sec-object.prototype.tostring
905
+ if (objectToString !== ObjectPrototype.toString) {
906
+ redefine(ObjectPrototype, 'toString', objectToString, { unsafe: true });
907
+ }
908
+
909
+ // `RegExp.prototype.flags` getter implementation
910
+ // https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags
911
+ var regexpFlags = function () {
912
+ var that = anObject(this);
913
+ var result = '';
914
+ if (that.global) result += 'g';
915
+ if (that.ignoreCase) result += 'i';
916
+ if (that.multiline) result += 'm';
917
+ if (that.dotAll) result += 's';
918
+ if (that.unicode) result += 'u';
919
+ if (that.sticky) result += 'y';
920
+ return result;
921
+ };
922
+
923
+ var TO_STRING = 'toString';
924
+ var RegExpPrototype = RegExp.prototype;
925
+ var nativeToString = RegExpPrototype[TO_STRING];
926
+
927
+ var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });
928
+ // FF44- RegExp#toString has a wrong name
929
+ var INCORRECT_NAME = nativeToString.name != TO_STRING;
930
+
931
+ // `RegExp.prototype.toString` method
932
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring
933
+ if (NOT_GENERIC || INCORRECT_NAME) {
934
+ redefine(RegExp.prototype, TO_STRING, function toString() {
935
+ var R = anObject(this);
936
+ var p = String(R.source);
937
+ var rf = R.flags;
938
+ var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? regexpFlags.call(R) : rf);
939
+ return '/' + p + '/' + f;
940
+ }, { unsafe: true });
941
+ }
942
+
943
+ var MATCH = wellKnownSymbol('match');
944
+
945
+ // `IsRegExp` abstract operation
946
+ // https://tc39.github.io/ecma262/#sec-isregexp
947
+ var isRegexp = function (it) {
948
+ var isRegExp;
949
+ return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classofRaw(it) == 'RegExp');
950
+ };
951
+
952
+ var notARegexp = function (it) {
953
+ if (isRegexp(it)) {
954
+ throw TypeError("The method doesn't accept regular expressions");
955
+ } return it;
956
+ };
957
+
958
+ var MATCH$1 = wellKnownSymbol('match');
959
+
960
+ var correctIsRegexpLogic = function (METHOD_NAME) {
961
+ var regexp = /./;
962
+ try {
963
+ '/./'[METHOD_NAME](regexp);
964
+ } catch (e) {
965
+ try {
966
+ regexp[MATCH$1] = false;
967
+ return '/./'[METHOD_NAME](regexp);
968
+ } catch (f) { /* empty */ }
969
+ } return false;
970
+ };
971
+
972
+ // `String.prototype.includes` method
973
+ // https://tc39.github.io/ecma262/#sec-string.prototype.includes
974
+ _export({ target: 'String', proto: true, forced: !correctIsRegexpLogic('includes') }, {
975
+ includes: function includes(searchString /* , position = 0 */) {
976
+ return !!~String(requireObjectCoercible(this))
977
+ .indexOf(notARegexp(searchString), arguments.length > 1 ? arguments[1] : undefined);
978
+ }
979
+ });
980
+
981
+ var nativeExec = RegExp.prototype.exec;
982
+ // This always refers to the native implementation, because the
983
+ // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
984
+ // which loads this file before patching the method.
985
+ var nativeReplace = String.prototype.replace;
986
+
987
+ var patchedExec = nativeExec;
988
+
989
+ var UPDATES_LAST_INDEX_WRONG = (function () {
990
+ var re1 = /a/;
991
+ var re2 = /b*/g;
992
+ nativeExec.call(re1, 'a');
993
+ nativeExec.call(re2, 'a');
994
+ return re1.lastIndex !== 0 || re2.lastIndex !== 0;
995
+ })();
996
+
997
+ // nonparticipating capturing group, copied from es5-shim's String#split patch.
998
+ var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
999
+
1000
+ var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
1001
+
1002
+ if (PATCH) {
1003
+ patchedExec = function exec(str) {
1004
+ var re = this;
1005
+ var lastIndex, reCopy, match, i;
1006
+
1007
+ if (NPCG_INCLUDED) {
1008
+ reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re));
1009
+ }
1010
+ if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;
1011
+
1012
+ match = nativeExec.call(re, str);
1013
+
1014
+ if (UPDATES_LAST_INDEX_WRONG && match) {
1015
+ re.lastIndex = re.global ? match.index + match[0].length : lastIndex;
1016
+ }
1017
+ if (NPCG_INCLUDED && match && match.length > 1) {
1018
+ // Fix browsers whose `exec` methods don't consistently return `undefined`
1019
+ // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
1020
+ nativeReplace.call(match[0], reCopy, function () {
1021
+ for (i = 1; i < arguments.length - 2; i++) {
1022
+ if (arguments[i] === undefined) match[i] = undefined;
1023
+ }
1024
+ });
1025
+ }
1026
+
1027
+ return match;
1028
+ };
1029
+ }
1030
+
1031
+ var regexpExec = patchedExec;
1032
+
1033
+ var SPECIES$2 = wellKnownSymbol('species');
1034
+
1035
+ var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {
1036
+ // #replace needs built-in support for named groups.
1037
+ // #match works fine because it just return the exec results, even if it has
1038
+ // a "grops" property.
1039
+ var re = /./;
1040
+ re.exec = function () {
1041
+ var result = [];
1042
+ result.groups = { a: '7' };
1043
+ return result;
1044
+ };
1045
+ return ''.replace(re, '$<a>') !== '7';
1046
+ });
1047
+
1048
+ // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
1049
+ // Weex JS has frozen built-in prototypes, so use try / catch wrapper
1050
+ var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {
1051
+ var re = /(?:)/;
1052
+ var originalExec = re.exec;
1053
+ re.exec = function () { return originalExec.apply(this, arguments); };
1054
+ var result = 'ab'.split(re);
1055
+ return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';
1056
+ });
1057
+
1058
+ var fixRegexpWellKnownSymbolLogic = function (KEY, length, exec, sham) {
1059
+ var SYMBOL = wellKnownSymbol(KEY);
1060
+
1061
+ var DELEGATES_TO_SYMBOL = !fails(function () {
1062
+ // String methods call symbol-named RegEp methods
1063
+ var O = {};
1064
+ O[SYMBOL] = function () { return 7; };
1065
+ return ''[KEY](O) != 7;
1066
+ });
1067
+
1068
+ var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {
1069
+ // Symbol-named RegExp methods call .exec
1070
+ var execCalled = false;
1071
+ var re = /a/;
1072
+ re.exec = function () { execCalled = true; return null; };
1073
+
1074
+ if (KEY === 'split') {
1075
+ // RegExp[@@split] doesn't call the regex's exec method, but first creates
1076
+ // a new one. We need to return the patched regex when creating the new one.
1077
+ re.constructor = {};
1078
+ re.constructor[SPECIES$2] = function () { return re; };
1079
+ }
1080
+
1081
+ re[SYMBOL]('');
1082
+ return !execCalled;
1083
+ });
1084
+
1085
+ if (
1086
+ !DELEGATES_TO_SYMBOL ||
1087
+ !DELEGATES_TO_EXEC ||
1088
+ (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
1089
+ (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
1090
+ ) {
1091
+ var nativeRegExpMethod = /./[SYMBOL];
1092
+ var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {
1093
+ if (regexp.exec === regexpExec) {
1094
+ if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
1095
+ // The native String method already delegates to @@method (this
1096
+ // polyfilled function), leasing to infinite recursion.
1097
+ // We avoid it by directly calling the native @@method method.
1098
+ return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
1099
+ }
1100
+ return { done: true, value: nativeMethod.call(str, regexp, arg2) };
1101
+ }
1102
+ return { done: false };
1103
+ });
1104
+ var stringMethod = methods[0];
1105
+ var regexMethod = methods[1];
1106
+
1107
+ redefine(String.prototype, KEY, stringMethod);
1108
+ redefine(RegExp.prototype, SYMBOL, length == 2
1109
+ // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
1110
+ // 21.2.5.11 RegExp.prototype[@@split](string, limit)
1111
+ ? function (string, arg) { return regexMethod.call(string, this, arg); }
1112
+ // 21.2.5.6 RegExp.prototype[@@match](string)
1113
+ // 21.2.5.9 RegExp.prototype[@@search](string)
1114
+ : function (string) { return regexMethod.call(string, this); }
1115
+ );
1116
+ if (sham) hide(RegExp.prototype[SYMBOL], 'sham', true);
1117
+ }
1118
+ };
1119
+
1120
+ // `String.prototype.{ codePointAt, at }` methods implementation
1121
+ var createMethod$2 = function (CONVERT_TO_STRING) {
1122
+ return function ($this, pos) {
1123
+ var S = String(requireObjectCoercible($this));
1124
+ var position = toInteger(pos);
1125
+ var size = S.length;
1126
+ var first, second;
1127
+ if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
1128
+ first = S.charCodeAt(position);
1129
+ return first < 0xD800 || first > 0xDBFF || position + 1 === size
1130
+ || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF
1131
+ ? CONVERT_TO_STRING ? S.charAt(position) : first
1132
+ : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
1133
+ };
1134
+ };
1135
+
1136
+ var stringMultibyte = {
1137
+ // `String.prototype.codePointAt` method
1138
+ // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat
1139
+ codeAt: createMethod$2(false),
1140
+ // `String.prototype.at` method
1141
+ // https://github.com/mathiasbynens/String.prototype.at
1142
+ charAt: createMethod$2(true)
1143
+ };
1144
+
1145
+ var charAt = stringMultibyte.charAt;
1146
+
1147
+ // `AdvanceStringIndex` abstract operation
1148
+ // https://tc39.github.io/ecma262/#sec-advancestringindex
1149
+ var advanceStringIndex = function (S, index, unicode) {
1150
+ return index + (unicode ? charAt(S, index).length : 1);
1151
+ };
1152
+
1153
+ // `RegExpExec` abstract operation
1154
+ // https://tc39.github.io/ecma262/#sec-regexpexec
1155
+ var regexpExecAbstract = function (R, S) {
1156
+ var exec = R.exec;
1157
+ if (typeof exec === 'function') {
1158
+ var result = exec.call(R, S);
1159
+ if (typeof result !== 'object') {
1160
+ throw TypeError('RegExp exec method returned something other than an Object or null');
1161
+ }
1162
+ return result;
1163
+ }
1164
+
1165
+ if (classofRaw(R) !== 'RegExp') {
1166
+ throw TypeError('RegExp#exec called on incompatible receiver');
1167
+ }
1168
+
1169
+ return regexpExec.call(R, S);
1170
+ };
1171
+
1172
+ // @@match logic
1173
+ fixRegexpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {
1174
+ return [
1175
+ // `String.prototype.match` method
1176
+ // https://tc39.github.io/ecma262/#sec-string.prototype.match
1177
+ function match(regexp) {
1178
+ var O = requireObjectCoercible(this);
1179
+ var matcher = regexp == undefined ? undefined : regexp[MATCH];
1180
+ return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
1181
+ },
1182
+ // `RegExp.prototype[@@match]` method
1183
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match
1184
+ function (regexp) {
1185
+ var res = maybeCallNative(nativeMatch, regexp, this);
1186
+ if (res.done) return res.value;
1187
+
1188
+ var rx = anObject(regexp);
1189
+ var S = String(this);
1190
+
1191
+ if (!rx.global) return regexpExecAbstract(rx, S);
1192
+
1193
+ var fullUnicode = rx.unicode;
1194
+ rx.lastIndex = 0;
1195
+ var A = [];
1196
+ var n = 0;
1197
+ var result;
1198
+ while ((result = regexpExecAbstract(rx, S)) !== null) {
1199
+ var matchStr = String(result[0]);
1200
+ A[n] = matchStr;
1201
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1202
+ n++;
1203
+ }
1204
+ return n === 0 ? null : A;
1205
+ }
1206
+ ];
1207
+ });
1208
+
1209
+ var max$1 = Math.max;
1210
+ var min$2 = Math.min;
1211
+ var floor$1 = Math.floor;
1212
+ var SUBSTITUTION_SYMBOLS = /\$([$&'`]|\d\d?|<[^>]*>)/g;
1213
+ var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&'`]|\d\d?)/g;
1214
+
1215
+ var maybeToString = function (it) {
1216
+ return it === undefined ? it : String(it);
1217
+ };
1218
+
1219
+ // @@replace logic
1220
+ fixRegexpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative) {
1221
+ return [
1222
+ // `String.prototype.replace` method
1223
+ // https://tc39.github.io/ecma262/#sec-string.prototype.replace
1224
+ function replace(searchValue, replaceValue) {
1225
+ var O = requireObjectCoercible(this);
1226
+ var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];
1227
+ return replacer !== undefined
1228
+ ? replacer.call(searchValue, O, replaceValue)
1229
+ : nativeReplace.call(String(O), searchValue, replaceValue);
1230
+ },
1231
+ // `RegExp.prototype[@@replace]` method
1232
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
1233
+ function (regexp, replaceValue) {
1234
+ var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);
1235
+ if (res.done) return res.value;
1236
+
1237
+ var rx = anObject(regexp);
1238
+ var S = String(this);
1239
+
1240
+ var functionalReplace = typeof replaceValue === 'function';
1241
+ if (!functionalReplace) replaceValue = String(replaceValue);
1242
+
1243
+ var global = rx.global;
1244
+ if (global) {
1245
+ var fullUnicode = rx.unicode;
1246
+ rx.lastIndex = 0;
1247
+ }
1248
+ var results = [];
1249
+ while (true) {
1250
+ var result = regexpExecAbstract(rx, S);
1251
+ if (result === null) break;
1252
+
1253
+ results.push(result);
1254
+ if (!global) break;
1255
+
1256
+ var matchStr = String(result[0]);
1257
+ if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);
1258
+ }
1259
+
1260
+ var accumulatedResult = '';
1261
+ var nextSourcePosition = 0;
1262
+ for (var i = 0; i < results.length; i++) {
1263
+ result = results[i];
1264
+
1265
+ var matched = String(result[0]);
1266
+ var position = max$1(min$2(toInteger(result.index), S.length), 0);
1267
+ var captures = [];
1268
+ // NOTE: This is equivalent to
1269
+ // captures = result.slice(1).map(maybeToString)
1270
+ // but for some reason `nativeSlice.call(result, 1, result.length)` (called in
1271
+ // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
1272
+ // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
1273
+ for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
1274
+ var namedCaptures = result.groups;
1275
+ if (functionalReplace) {
1276
+ var replacerArgs = [matched].concat(captures, position, S);
1277
+ if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
1278
+ var replacement = String(replaceValue.apply(undefined, replacerArgs));
1279
+ } else {
1280
+ replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
1281
+ }
1282
+ if (position >= nextSourcePosition) {
1283
+ accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
1284
+ nextSourcePosition = position + matched.length;
1285
+ }
1286
+ }
1287
+ return accumulatedResult + S.slice(nextSourcePosition);
1288
+ }
1289
+ ];
1290
+
1291
+ // https://tc39.github.io/ecma262/#sec-getsubstitution
1292
+ function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
1293
+ var tailPos = position + matched.length;
1294
+ var m = captures.length;
1295
+ var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
1296
+ if (namedCaptures !== undefined) {
1297
+ namedCaptures = toObject(namedCaptures);
1298
+ symbols = SUBSTITUTION_SYMBOLS;
1299
+ }
1300
+ return nativeReplace.call(replacement, symbols, function (match, ch) {
1301
+ var capture;
1302
+ switch (ch.charAt(0)) {
1303
+ case '$': return '$';
1304
+ case '&': return matched;
1305
+ case '`': return str.slice(0, position);
1306
+ case "'": return str.slice(tailPos);
1307
+ case '<':
1308
+ capture = namedCaptures[ch.slice(1, -1)];
1309
+ break;
1310
+ default: // \d\d?
1311
+ var n = +ch;
1312
+ if (n === 0) return match;
1313
+ if (n > m) {
1314
+ var f = floor$1(n / 10);
1315
+ if (f === 0) return match;
1316
+ if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
1317
+ return match;
1318
+ }
1319
+ capture = captures[n - 1];
1320
+ }
1321
+ return capture === undefined ? '' : capture;
1322
+ });
1323
+ }
1324
+ });
1325
+
1326
+ var SPECIES$3 = wellKnownSymbol('species');
1327
+
1328
+ // `SpeciesConstructor` abstract operation
1329
+ // https://tc39.github.io/ecma262/#sec-speciesconstructor
1330
+ var speciesConstructor = function (O, defaultConstructor) {
1331
+ var C = anObject(O).constructor;
1332
+ var S;
1333
+ return C === undefined || (S = anObject(C)[SPECIES$3]) == undefined ? defaultConstructor : aFunction$1(S);
1334
+ };
1335
+
1336
+ var arrayPush = [].push;
1337
+ var min$3 = Math.min;
1338
+ var MAX_UINT32 = 0xFFFFFFFF;
1339
+
1340
+ // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
1341
+ var SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });
1342
+
1343
+ // @@split logic
1344
+ fixRegexpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {
1345
+ var internalSplit;
1346
+ if (
1347
+ 'abbc'.split(/(b)*/)[1] == 'c' ||
1348
+ 'test'.split(/(?:)/, -1).length != 4 ||
1349
+ 'ab'.split(/(?:ab)*/).length != 2 ||
1350
+ '.'.split(/(.?)(.?)/).length != 4 ||
1351
+ '.'.split(/()()/).length > 1 ||
1352
+ ''.split(/.?/).length
1353
+ ) {
1354
+ // based on es5-shim implementation, need to rework it
1355
+ internalSplit = function (separator, limit) {
1356
+ var string = String(requireObjectCoercible(this));
1357
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1358
+ if (lim === 0) return [];
1359
+ if (separator === undefined) return [string];
1360
+ // If `separator` is not a regex, use native split
1361
+ if (!isRegexp(separator)) {
1362
+ return nativeSplit.call(string, separator, lim);
1363
+ }
1364
+ var output = [];
1365
+ var flags = (separator.ignoreCase ? 'i' : '') +
1366
+ (separator.multiline ? 'm' : '') +
1367
+ (separator.unicode ? 'u' : '') +
1368
+ (separator.sticky ? 'y' : '');
1369
+ var lastLastIndex = 0;
1370
+ // Make `global` and avoid `lastIndex` issues by working with a copy
1371
+ var separatorCopy = new RegExp(separator.source, flags + 'g');
1372
+ var match, lastIndex, lastLength;
1373
+ while (match = regexpExec.call(separatorCopy, string)) {
1374
+ lastIndex = separatorCopy.lastIndex;
1375
+ if (lastIndex > lastLastIndex) {
1376
+ output.push(string.slice(lastLastIndex, match.index));
1377
+ if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));
1378
+ lastLength = match[0].length;
1379
+ lastLastIndex = lastIndex;
1380
+ if (output.length >= lim) break;
1381
+ }
1382
+ if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop
1383
+ }
1384
+ if (lastLastIndex === string.length) {
1385
+ if (lastLength || !separatorCopy.test('')) output.push('');
1386
+ } else output.push(string.slice(lastLastIndex));
1387
+ return output.length > lim ? output.slice(0, lim) : output;
1388
+ };
1389
+ // Chakra, V8
1390
+ } else if ('0'.split(undefined, 0).length) {
1391
+ internalSplit = function (separator, limit) {
1392
+ return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);
1393
+ };
1394
+ } else internalSplit = nativeSplit;
1395
+
1396
+ return [
1397
+ // `String.prototype.split` method
1398
+ // https://tc39.github.io/ecma262/#sec-string.prototype.split
1399
+ function split(separator, limit) {
1400
+ var O = requireObjectCoercible(this);
1401
+ var splitter = separator == undefined ? undefined : separator[SPLIT];
1402
+ return splitter !== undefined
1403
+ ? splitter.call(separator, O, limit)
1404
+ : internalSplit.call(String(O), separator, limit);
1405
+ },
1406
+ // `RegExp.prototype[@@split]` method
1407
+ // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
1408
+ //
1409
+ // NOTE: This cannot be properly polyfilled in engines that don't support
1410
+ // the 'y' flag.
1411
+ function (regexp, limit) {
1412
+ var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);
1413
+ if (res.done) return res.value;
1414
+
1415
+ var rx = anObject(regexp);
1416
+ var S = String(this);
1417
+ var C = speciesConstructor(rx, RegExp);
1418
+
1419
+ var unicodeMatching = rx.unicode;
1420
+ var flags = (rx.ignoreCase ? 'i' : '') +
1421
+ (rx.multiline ? 'm' : '') +
1422
+ (rx.unicode ? 'u' : '') +
1423
+ (SUPPORTS_Y ? 'y' : 'g');
1424
+
1425
+ // ^(? + rx + ) is needed, in combination with some S slicing, to
1426
+ // simulate the 'y' flag.
1427
+ var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
1428
+ var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
1429
+ if (lim === 0) return [];
1430
+ if (S.length === 0) return regexpExecAbstract(splitter, S) === null ? [S] : [];
1431
+ var p = 0;
1432
+ var q = 0;
1433
+ var A = [];
1434
+ while (q < S.length) {
1435
+ splitter.lastIndex = SUPPORTS_Y ? q : 0;
1436
+ var z = regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
1437
+ var e;
1438
+ if (
1439
+ z === null ||
1440
+ (e = min$3(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
1441
+ ) {
1442
+ q = advanceStringIndex(S, q, unicodeMatching);
1443
+ } else {
1444
+ A.push(S.slice(p, q));
1445
+ if (A.length === lim) return A;
1446
+ for (var i = 1; i <= z.length - 1; i++) {
1447
+ A.push(z[i]);
1448
+ if (A.length === lim) return A;
1449
+ }
1450
+ q = p = e;
1451
+ }
1452
+ }
1453
+ A.push(S.slice(p));
1454
+ return A;
1455
+ }
1456
+ ];
1457
+ }, !SUPPORTS_Y);
1458
+
1459
+ // a string of all valid unicode whitespaces
1460
+ // eslint-disable-next-line max-len
1461
+ 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';
1462
+
1463
+ var whitespace = '[' + whitespaces + ']';
1464
+ var ltrim = RegExp('^' + whitespace + whitespace + '*');
1465
+ var rtrim = RegExp(whitespace + whitespace + '*$');
1466
+
1467
+ // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation
1468
+ var createMethod$3 = function (TYPE) {
1469
+ return function ($this) {
1470
+ var string = String(requireObjectCoercible($this));
1471
+ if (TYPE & 1) string = string.replace(ltrim, '');
1472
+ if (TYPE & 2) string = string.replace(rtrim, '');
1473
+ return string;
1474
+ };
1475
+ };
1476
+
1477
+ var stringTrim = {
1478
+ // `String.prototype.{ trimLeft, trimStart }` methods
1479
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart
1480
+ start: createMethod$3(1),
1481
+ // `String.prototype.{ trimRight, trimEnd }` methods
1482
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trimend
1483
+ end: createMethod$3(2),
1484
+ // `String.prototype.trim` method
1485
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trim
1486
+ trim: createMethod$3(3)
1487
+ };
1488
+
1489
+ var non = '\u200B\u0085\u180E';
1490
+
1491
+ // check that a method works with the correct list
1492
+ // of whitespaces and has a correct name
1493
+ var forcedStringTrimMethod = function (METHOD_NAME) {
1494
+ return fails(function () {
1495
+ return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;
1496
+ });
1497
+ };
1498
+
1499
+ var $trim = stringTrim.trim;
1500
+
1501
+
1502
+ // `String.prototype.trim` method
1503
+ // https://tc39.github.io/ecma262/#sec-string.prototype.trim
1504
+ _export({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {
1505
+ trim: function trim() {
1506
+ return $trim(this);
1507
+ }
1508
+ });
1509
+
1510
+ // iterable DOM collections
1511
+ // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods
1512
+ var domIterables = {
1513
+ CSSRuleList: 0,
1514
+ CSSStyleDeclaration: 0,
1515
+ CSSValueList: 0,
1516
+ ClientRectList: 0,
1517
+ DOMRectList: 0,
1518
+ DOMStringList: 0,
1519
+ DOMTokenList: 1,
1520
+ DataTransferItemList: 0,
1521
+ FileList: 0,
1522
+ HTMLAllCollection: 0,
1523
+ HTMLCollection: 0,
1524
+ HTMLFormElement: 0,
1525
+ HTMLSelectElement: 0,
1526
+ MediaList: 0,
1527
+ MimeTypeArray: 0,
1528
+ NamedNodeMap: 0,
1529
+ NodeList: 1,
1530
+ PaintRequestList: 0,
1531
+ Plugin: 0,
1532
+ PluginArray: 0,
1533
+ SVGLengthList: 0,
1534
+ SVGNumberList: 0,
1535
+ SVGPathSegList: 0,
1536
+ SVGPointList: 0,
1537
+ SVGStringList: 0,
1538
+ SVGTransformList: 0,
1539
+ SourceBufferList: 0,
1540
+ StyleSheetList: 0,
1541
+ TextTrackCueList: 0,
1542
+ TextTrackList: 0,
1543
+ TouchList: 0
1544
+ };
1545
+
1546
+ var $forEach = arrayIteration.forEach;
1547
+
1548
+
1549
+ // `Array.prototype.forEach` method implementation
1550
+ // https://tc39.github.io/ecma262/#sec-array.prototype.foreach
1551
+ var arrayForEach = sloppyArrayMethod('forEach') ? function forEach(callbackfn /* , thisArg */) {
1552
+ return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
1553
+ } : [].forEach;
1554
+
1555
+ for (var COLLECTION_NAME in domIterables) {
1556
+ var Collection = global_1[COLLECTION_NAME];
1557
+ var CollectionPrototype = Collection && Collection.prototype;
1558
+ // some Chrome versions have non-configurable methods on DOMTokenList
1559
+ if (CollectionPrototype && CollectionPrototype.forEach !== arrayForEach) try {
1560
+ hide(CollectionPrototype, 'forEach', arrayForEach);
1561
+ } catch (error) {
1562
+ CollectionPrototype.forEach = arrayForEach;
1563
+ }
1564
+ }
1565
+
1566
+ function _typeof(obj) {
1567
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
1568
+ _typeof = function (obj) {
1569
+ return typeof obj;
1570
+ };
1571
+ } else {
1572
+ _typeof = function (obj) {
1573
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1574
+ };
1575
+ }
1576
+
1577
+ return _typeof(obj);
1578
+ }
1579
+
1580
+ function _classCallCheck(instance, Constructor) {
1581
+ if (!(instance instanceof Constructor)) {
1582
+ throw new TypeError("Cannot call a class as a function");
1583
+ }
1584
+ }
1585
+
1586
+ function _defineProperties(target, props) {
1587
+ for (var i = 0; i < props.length; i++) {
1588
+ var descriptor = props[i];
1589
+ descriptor.enumerable = descriptor.enumerable || false;
1590
+ descriptor.configurable = true;
1591
+ if ("value" in descriptor) descriptor.writable = true;
1592
+ Object.defineProperty(target, descriptor.key, descriptor);
1593
+ }
1594
+ }
1595
+
1596
+ function _createClass(Constructor, protoProps, staticProps) {
1597
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
1598
+ if (staticProps) _defineProperties(Constructor, staticProps);
1599
+ return Constructor;
1600
+ }
1601
+
1602
+ function _inherits(subClass, superClass) {
1603
+ if (typeof superClass !== "function" && superClass !== null) {
1604
+ throw new TypeError("Super expression must either be null or a function");
1605
+ }
1606
+
1607
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
1608
+ constructor: {
1609
+ value: subClass,
1610
+ writable: true,
1611
+ configurable: true
1612
+ }
1613
+ });
1614
+ if (superClass) _setPrototypeOf(subClass, superClass);
1615
+ }
1616
+
1617
+ function _getPrototypeOf(o) {
1618
+ _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
1619
+ return o.__proto__ || Object.getPrototypeOf(o);
1620
+ };
1621
+ return _getPrototypeOf(o);
1622
+ }
1623
+
1624
+ function _setPrototypeOf(o, p) {
1625
+ _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
1626
+ o.__proto__ = p;
1627
+ return o;
1628
+ };
1629
+
1630
+ return _setPrototypeOf(o, p);
1631
+ }
1632
+
1633
+ function _assertThisInitialized(self) {
1634
+ if (self === void 0) {
1635
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
1636
+ }
1637
+
1638
+ return self;
1639
+ }
1640
+
1641
+ function _possibleConstructorReturn(self, call) {
1642
+ if (call && (typeof call === "object" || typeof call === "function")) {
1643
+ return call;
1644
+ }
1645
+
1646
+ return _assertThisInitialized(self);
1647
+ }
1648
+
1649
+ function _superPropBase(object, property) {
1650
+ while (!Object.prototype.hasOwnProperty.call(object, property)) {
1651
+ object = _getPrototypeOf(object);
1652
+ if (object === null) break;
1653
+ }
1654
+
1655
+ return object;
1656
+ }
1657
+
1658
+ function _get(target, property, receiver) {
1659
+ if (typeof Reflect !== "undefined" && Reflect.get) {
1660
+ _get = Reflect.get;
1661
+ } else {
1662
+ _get = function _get(target, property, receiver) {
1663
+ var base = _superPropBase(target, property);
1664
+
1665
+ if (!base) return;
1666
+ var desc = Object.getOwnPropertyDescriptor(base, property);
1667
+
1668
+ if (desc.get) {
1669
+ return desc.get.call(receiver);
1670
+ }
1671
+
1672
+ return desc.value;
1673
+ };
1674
+ }
1675
+
1676
+ return _get(target, property, receiver || target);
1677
+ }
1678
+
1679
+ /**
1680
+ * @author: Dennis Hernández
1681
+ * @webSite: http://djhvscf.github.io/Blog
1682
+ * @version: v2.2.0
1683
+ */
1684
+
1685
+ var Utils = $.fn.bootstrapTable.utils;
1686
+ var UtilsFilterControl = {
1687
+ getOptionsFromSelectControl: function getOptionsFromSelectControl(selectControl) {
1688
+ return selectControl.get(selectControl.length - 1).options;
1689
+ },
1690
+ hideUnusedSelectOptions: function hideUnusedSelectOptions(selectControl, uniqueValues) {
1691
+ var options = UtilsFilterControl.getOptionsFromSelectControl(selectControl);
1692
+
1693
+ for (var i = 0; i < options.length; i++) {
1694
+ if (options[i].value !== '') {
1695
+ if (!uniqueValues.hasOwnProperty(options[i].value)) {
1696
+ selectControl.find(Utils.sprintf('option[value=\'%s\']', options[i].value)).hide();
1697
+ } else {
1698
+ selectControl.find(Utils.sprintf('option[value=\'%s\']', options[i].value)).show();
1699
+ }
1700
+ }
1701
+ }
1702
+ },
1703
+ addOptionToSelectControl: function addOptionToSelectControl(selectControl, _value, text, selected) {
1704
+ var value = $.trim(_value);
1705
+ var $selectControl = $(selectControl.get(selectControl.length - 1));
1706
+
1707
+ if (!UtilsFilterControl.existOptionInSelectControl(selectControl, value)) {
1708
+ var option = $($('<option></option>').attr('value', value).text($('<div />').html(text).text()));
1709
+
1710
+ if (value === selected) {
1711
+ option.attr('selected', true);
1712
+ }
1713
+
1714
+ $selectControl.append(option);
1715
+ }
1716
+ },
1717
+ sortSelectControl: function sortSelectControl(selectControl, orderBy) {
1718
+ var $selectControl = $(selectControl.get(selectControl.length - 1));
1719
+ var $opts = $selectControl.find('option:gt(0)');
1720
+ $opts.sort(function (a, b) {
1721
+ return Utils.sort(a.textContent, b.textContent, orderBy === 'desc' ? -1 : 1);
1722
+ });
1723
+ $selectControl.find('option:gt(0)').remove();
1724
+ $selectControl.append($opts);
1725
+ },
1726
+ existOptionInSelectControl: function existOptionInSelectControl(selectControl, value) {
1727
+ var options = UtilsFilterControl.getOptionsFromSelectControl(selectControl);
1728
+
1729
+ for (var i = 0; i < options.length; i++) {
1730
+ if (options[i].value === value.toString()) {
1731
+ // The value is not valid to add
1732
+ return true;
1733
+ }
1734
+ } // If we get here, the value is valid to add
1735
+
1736
+
1737
+ return false;
1738
+ },
1739
+ fixHeaderCSS: function fixHeaderCSS(_ref) {
1740
+ var $tableHeader = _ref.$tableHeader;
1741
+ $tableHeader.css('height', '77px');
1742
+ },
1743
+ getCurrentHeader: function getCurrentHeader(_ref2) {
1744
+ var $header = _ref2.$header,
1745
+ options = _ref2.options,
1746
+ $tableHeader = _ref2.$tableHeader;
1747
+ var header = $header;
1748
+
1749
+ if (options.height) {
1750
+ header = $tableHeader;
1751
+ }
1752
+
1753
+ return header;
1754
+ },
1755
+ getCurrentSearchControls: function getCurrentSearchControls(_ref3) {
1756
+ var options = _ref3.options;
1757
+ var searchControls = 'select, input';
1758
+
1759
+ if (options.height) {
1760
+ searchControls = 'table select, table input';
1761
+ }
1762
+
1763
+ return searchControls;
1764
+ },
1765
+ getCursorPosition: function getCursorPosition(el) {
1766
+ if (Utils.isIEBrowser()) {
1767
+ if ($(el).is('input[type=text]')) {
1768
+ var pos = 0;
1769
+
1770
+ if ('selectionStart' in el) {
1771
+ pos = el.selectionStart;
1772
+ } else if ('selection' in document) {
1773
+ el.focus();
1774
+ var Sel = document.selection.createRange();
1775
+ var SelLength = document.selection.createRange().text.length;
1776
+ Sel.moveStart('character', -el.value.length);
1777
+ pos = Sel.text.length - SelLength;
1778
+ }
1779
+
1780
+ return pos;
1781
+ }
1782
+
1783
+ return -1;
1784
+ }
1785
+
1786
+ return -1;
1787
+ },
1788
+ setCursorPosition: function setCursorPosition(el) {
1789
+ $(el).val(el.value);
1790
+ },
1791
+ copyValues: function copyValues(that) {
1792
+ var header = UtilsFilterControl.getCurrentHeader(that);
1793
+ var searchControls = UtilsFilterControl.getCurrentSearchControls(that);
1794
+ that.options.valuesFilterControl = [];
1795
+ header.find(searchControls).each(function () {
1796
+ that.options.valuesFilterControl.push({
1797
+ field: $(this).closest('[data-field]').data('field'),
1798
+ value: $(this).val(),
1799
+ position: UtilsFilterControl.getCursorPosition($(this).get(0)),
1800
+ hasFocus: $(this).is(':focus')
1801
+ });
1802
+ });
1803
+ },
1804
+ setValues: function setValues(that) {
1805
+ var field = null;
1806
+ var result = [];
1807
+ var header = UtilsFilterControl.getCurrentHeader(that);
1808
+ var searchControls = UtilsFilterControl.getCurrentSearchControls(that);
1809
+
1810
+ if (that.options.valuesFilterControl.length > 0) {
1811
+ // Callback to apply after settings fields values
1812
+ var fieldToFocusCallback = null;
1813
+ header.find(searchControls).each(function (index, ele) {
1814
+ field = $(this).closest('[data-field]').data('field');
1815
+ result = that.options.valuesFilterControl.filter(function (valueObj) {
1816
+ return valueObj.field === field;
1817
+ });
1818
+
1819
+ if (result.length > 0) {
1820
+ $(this).val(result[0].value);
1821
+
1822
+ if (result[0].hasFocus) {
1823
+ // set callback if the field had the focus.
1824
+ fieldToFocusCallback = function (fieldToFocus, carretPosition) {
1825
+ // Closure here to capture the field and cursor position
1826
+ var closedCallback = function closedCallback() {
1827
+ fieldToFocus.focus();
1828
+ UtilsFilterControl.setCursorPosition(fieldToFocus, carretPosition);
1829
+ };
1830
+
1831
+ return closedCallback;
1832
+ }($(this).get(0), result[0].position);
1833
+ }
1834
+ }
1835
+ }); // Callback call.
1836
+
1837
+ if (fieldToFocusCallback !== null) {
1838
+ fieldToFocusCallback();
1839
+ }
1840
+ }
1841
+ },
1842
+ collectBootstrapCookies: function collectBootstrapCookies() {
1843
+ var cookies = [];
1844
+ var foundCookies = document.cookie.match(/(?:bs.table.)(\w*)/g);
1845
+
1846
+ if (foundCookies) {
1847
+ $.each(foundCookies, function (i, _cookie) {
1848
+ var cookie = _cookie;
1849
+
1850
+ if (/./.test(cookie)) {
1851
+ cookie = cookie.split('.').pop();
1852
+ }
1853
+
1854
+ if ($.inArray(cookie, cookies) === -1) {
1855
+ cookies.push(cookie);
1856
+ }
1857
+ });
1858
+ return cookies;
1859
+ }
1860
+ },
1861
+ escapeID: function escapeID(id) {
1862
+ return String(id).replace(/(:|\.|\[|\]|,)/g, '\\$1');
1863
+ },
1864
+ isColumnSearchableViaSelect: function isColumnSearchableViaSelect(_ref4) {
1865
+ var filterControl = _ref4.filterControl,
1866
+ searchable = _ref4.searchable;
1867
+ return filterControl && filterControl.toLowerCase() === 'select' && searchable;
1868
+ },
1869
+ isFilterDataNotGiven: function isFilterDataNotGiven(_ref5) {
1870
+ var filterData = _ref5.filterData;
1871
+ return filterData === undefined || filterData.toLowerCase() === 'column';
1872
+ },
1873
+ hasSelectControlElement: function hasSelectControlElement(selectControl) {
1874
+ return selectControl && selectControl.length > 0;
1875
+ },
1876
+ initFilterSelectControls: function initFilterSelectControls(that) {
1877
+ var data = that.data;
1878
+ var itemsPerPage = that.pageTo < that.options.data.length ? that.options.data.length : that.pageTo;
1879
+ var z = that.options.pagination ? that.options.sidePagination === 'server' ? that.pageTo : that.options.totalRows : that.pageTo;
1880
+ $.each(that.header.fields, function (j, field) {
1881
+ var column = that.columns[that.fieldsColumnsIndex[field]];
1882
+ var selectControl = $(".bootstrap-table-filter-control-".concat(UtilsFilterControl.escapeID(column.field)));
1883
+
1884
+ if (UtilsFilterControl.isColumnSearchableViaSelect(column) && UtilsFilterControl.isFilterDataNotGiven(column) && UtilsFilterControl.hasSelectControlElement(selectControl)) {
1885
+ if (selectControl.get(selectControl.length - 1).options.length === 0) {
1886
+ // Added the default option
1887
+ UtilsFilterControl.addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder, column.filterDefault);
1888
+ }
1889
+
1890
+ var uniqueValues = {};
1891
+
1892
+ for (var i = 0; i < z; i++) {
1893
+ // Added a new value
1894
+ var fieldValue = data[i][field];
1895
+ var formattedValue = Utils.calculateObjectValue(that.header, that.header.formatters[j], [fieldValue, data[i], i], fieldValue);
1896
+
1897
+ if (column.filterDataCollector) {
1898
+ formattedValue = Utils.calculateObjectValue(that.header, column.filterDataCollector, [fieldValue, data[i], formattedValue], formattedValue);
1899
+ }
1900
+
1901
+ if (_typeof(formattedValue) === 'object' && formattedValue !== null) {
1902
+ formattedValue.forEach(function (value) {
1903
+ UtilsFilterControl.addOptionToSelectControl(selectControl, value, value, column.filterDefault);
1904
+ });
1905
+ continue;
1906
+ }
1907
+
1908
+ UtilsFilterControl.addOptionToSelectControl(selectControl, formattedValue, formattedValue, column.filterDefault);
1909
+ }
1910
+
1911
+ UtilsFilterControl.sortSelectControl(selectControl, column.filterOrderBy);
1912
+
1913
+ if (that.options.hideUnusedSelectOptions) {
1914
+ UtilsFilterControl.hideUnusedSelectOptions(selectControl, uniqueValues);
1915
+ }
1916
+ }
1917
+ });
1918
+ that.trigger('created-controls');
1919
+ },
1920
+ getFilterDataMethod: function getFilterDataMethod(objFilterDataMethod, searchTerm) {
1921
+ var keys = Object.keys(objFilterDataMethod);
1922
+
1923
+ for (var i = 0; i < keys.length; i++) {
1924
+ if (keys[i] === searchTerm) {
1925
+ return objFilterDataMethod[searchTerm];
1926
+ }
1927
+ }
1928
+
1929
+ return null;
1930
+ },
1931
+ createControls: function createControls(that, header) {
1932
+ var addedFilterControl = false;
1933
+ var isVisible;
1934
+ var html;
1935
+ $.each(that.columns, function (i, column) {
1936
+ isVisible = 'hidden';
1937
+ html = [];
1938
+
1939
+ if (!column.visible) {
1940
+ return;
1941
+ }
1942
+
1943
+ if (!column.filterControl) {
1944
+ html.push('<div class="no-filter-control"></div>');
1945
+ } else {
1946
+ html.push('<div class="filter-control">');
1947
+ var nameControl = column.filterControl.toLowerCase();
1948
+
1949
+ if (column.searchable && that.options.filterTemplate[nameControl]) {
1950
+ addedFilterControl = true;
1951
+ isVisible = 'visible';
1952
+ html.push(that.options.filterTemplate[nameControl](that, column.field, isVisible, column.filterControlPlaceholder ? column.filterControlPlaceholder : '', column.filterDefault));
1953
+
1954
+ if ('' !== column.filterDefault && 'undefined' !== typeof column.filterDefault) {
1955
+ if ($.isEmptyObject(that.filterColumnsPartial)) {
1956
+ that.filterColumnsPartial = {};
1957
+ }
1958
+
1959
+ that.filterColumnsPartial[column.field] = column.filterDefault;
1960
+ }
1961
+ }
1962
+ }
1963
+
1964
+ $.each(header.children().children(), function (i, tr) {
1965
+ var $tr = $(tr);
1966
+
1967
+ if ($tr.data('field') === column.field) {
1968
+ $tr.find('.fht-cell').append(html.join(''));
1969
+ return false;
1970
+ }
1971
+ });
1972
+
1973
+ if (column.filterData !== undefined && column.filterData.toLowerCase() !== 'column') {
1974
+ var filterDataType = UtilsFilterControl.getFilterDataMethod(
1975
+ /* eslint-disable no-use-before-define */
1976
+ filterDataMethods, column.filterData.substring(0, column.filterData.indexOf(':')));
1977
+ var filterDataSource;
1978
+ var selectControl;
1979
+
1980
+ if (filterDataType !== null) {
1981
+ filterDataSource = column.filterData.substring(column.filterData.indexOf(':') + 1, column.filterData.length);
1982
+ selectControl = $(".bootstrap-table-filter-control-".concat(UtilsFilterControl.escapeID(column.field)));
1983
+ UtilsFilterControl.addOptionToSelectControl(selectControl, '', column.filterControlPlaceholder, column.filterDefault);
1984
+ filterDataType(filterDataSource, selectControl, column.filterDefault);
1985
+ } else {
1986
+ throw new SyntaxError('Error. You should use any of these allowed filter data methods: var, json, url.' + ' Use like this: var: {key: "value"}');
1987
+ }
1988
+
1989
+ var variableValues;
1990
+ var key; // eslint-disable-next-line default-case
1991
+
1992
+ switch (filterDataType) {
1993
+ case 'url':
1994
+ $.ajax({
1995
+ url: filterDataSource,
1996
+ dataType: 'json',
1997
+ success: function success(data) {
1998
+ // eslint-disable-next-line guard-for-in
1999
+ for (var _key in data) {
2000
+ UtilsFilterControl.addOptionToSelectControl(selectControl, _key, data[_key], column.filterDefault);
2001
+ }
2002
+
2003
+ UtilsFilterControl.sortSelectControl(selectControl, column.filterOrderBy);
2004
+ }
2005
+ });
2006
+ break;
2007
+
2008
+ case 'var':
2009
+ variableValues = window[filterDataSource]; // eslint-disable-next-line guard-for-in
2010
+
2011
+ for (key in variableValues) {
2012
+ UtilsFilterControl.addOptionToSelectControl(selectControl, key, variableValues[key], column.filterDefault);
2013
+ }
2014
+
2015
+ UtilsFilterControl.sortSelectControl(selectControl, column.filterOrderBy);
2016
+ break;
2017
+
2018
+ case 'jso':
2019
+ variableValues = JSON.parse(filterDataSource); // eslint-disable-next-line guard-for-in
2020
+
2021
+ for (key in variableValues) {
2022
+ UtilsFilterControl.addOptionToSelectControl(selectControl, key, variableValues[key], column.filterDefault);
2023
+ }
2024
+
2025
+ UtilsFilterControl.sortSelectControl(selectControl, column.filterOrderBy);
2026
+ break;
2027
+ }
2028
+ }
2029
+ });
2030
+
2031
+ if (addedFilterControl) {
2032
+ header.off('keyup', 'input').on('keyup', 'input', function (event, obj) {
2033
+ // Simulate enter key action from clear button
2034
+ event.keyCode = obj ? obj.keyCode : event.keyCode;
2035
+
2036
+ if (that.options.searchOnEnterKey && event.keyCode !== 13) {
2037
+ return;
2038
+ }
2039
+
2040
+ if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {
2041
+ return;
2042
+ }
2043
+
2044
+ var $currentTarget = $(event.currentTarget);
2045
+
2046
+ if ($currentTarget.is(':checkbox') || $currentTarget.is(':radio')) {
2047
+ return;
2048
+ }
2049
+
2050
+ clearTimeout(event.currentTarget.timeoutId || 0);
2051
+ event.currentTarget.timeoutId = setTimeout(function () {
2052
+ that.onColumnSearch(event);
2053
+ }, that.options.searchTimeOut);
2054
+ });
2055
+ header.off('change', 'select').on('change', 'select', function (event) {
2056
+ if (that.options.searchOnEnterKey && event.keyCode !== 13) {
2057
+ return;
2058
+ }
2059
+
2060
+ if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {
2061
+ return;
2062
+ }
2063
+
2064
+ clearTimeout(event.currentTarget.timeoutId || 0);
2065
+ event.currentTarget.timeoutId = setTimeout(function () {
2066
+ that.onColumnSearch(event);
2067
+ }, that.options.searchTimeOut);
2068
+ });
2069
+ header.off('mouseup', 'input').on('mouseup', 'input', function (event) {
2070
+ var $input = $(this);
2071
+ var oldValue = $input.val();
2072
+
2073
+ if (oldValue === '') {
2074
+ return;
2075
+ }
2076
+
2077
+ setTimeout(function () {
2078
+ var newValue = $input.val();
2079
+
2080
+ if (newValue === '') {
2081
+ clearTimeout(event.currentTarget.timeoutId || 0);
2082
+ event.currentTarget.timeoutId = setTimeout(function () {
2083
+ that.onColumnSearch(event);
2084
+ }, that.options.searchTimeOut);
2085
+ }
2086
+ }, 1);
2087
+ });
2088
+
2089
+ if (header.find('.date-filter-control').length > 0) {
2090
+ $.each(that.columns, function (i, _ref6) {
2091
+ var filterControl = _ref6.filterControl,
2092
+ field = _ref6.field,
2093
+ filterDatepickerOptions = _ref6.filterDatepickerOptions;
2094
+
2095
+ if (filterControl !== undefined && filterControl.toLowerCase() === 'datepicker') {
2096
+ header.find(".date-filter-control.bootstrap-table-filter-control-".concat(field)).datepicker(filterDatepickerOptions).on('changeDate', function (event) {
2097
+ clearTimeout(event.currentTarget.timeoutId || 0);
2098
+ event.currentTarget.timeoutId = setTimeout(function () {
2099
+ that.onColumnSearch(event);
2100
+ }, that.options.searchTimeOut);
2101
+ });
2102
+ }
2103
+ });
2104
+ }
2105
+
2106
+ if (that.options.sidePagination !== 'server') {
2107
+ header.find('[class*=\'bootstrap-table-filter-control\']').each(function (k, input) {
2108
+ $(input).trigger('change');
2109
+ });
2110
+ }
2111
+ } else {
2112
+ header.find('.filterControl').hide();
2113
+ }
2114
+ },
2115
+ getDirectionOfSelectOptions: function getDirectionOfSelectOptions(_alignment) {
2116
+ var alignment = _alignment === undefined ? 'left' : _alignment.toLowerCase();
2117
+
2118
+ switch (alignment) {
2119
+ case 'left':
2120
+ return 'ltr';
2121
+
2122
+ case 'right':
2123
+ return 'rtl';
2124
+
2125
+ case 'auto':
2126
+ return 'auto';
2127
+
2128
+ default:
2129
+ return 'ltr';
2130
+ }
2131
+ }
2132
+ };
2133
+ var filterDataMethods = {
2134
+ var: function _var(filterDataSource, selectControl, filterOrderBy, selected) {
2135
+ var variableValues = window[filterDataSource]; // eslint-disable-next-line guard-for-in
2136
+
2137
+ for (var key in variableValues) {
2138
+ UtilsFilterControl.addOptionToSelectControl(selectControl, key, variableValues[key], selected);
2139
+ }
2140
+
2141
+ UtilsFilterControl.sortSelectControl(selectControl, filterOrderBy);
2142
+ },
2143
+ url: function url(filterDataSource, selectControl, filterOrderBy, selected) {
2144
+ $.ajax({
2145
+ url: filterDataSource,
2146
+ dataType: 'json',
2147
+ success: function success(data) {
2148
+ // eslint-disable-next-line guard-for-in
2149
+ for (var key in data) {
2150
+ UtilsFilterControl.addOptionToSelectControl(selectControl, key, data[key], selected);
2151
+ }
2152
+
2153
+ UtilsFilterControl.sortSelectControl(selectControl, filterOrderBy);
2154
+ }
2155
+ });
2156
+ },
2157
+ json: function json(filterDataSource, selectControl, filterOrderBy, selected) {
2158
+ var variableValues = JSON.parse(filterDataSource); // eslint-disable-next-line guard-for-in
2159
+
2160
+ for (var key in variableValues) {
2161
+ UtilsFilterControl.addOptionToSelectControl(selectControl, key, variableValues[key], selected);
2162
+ }
2163
+
2164
+ UtilsFilterControl.sortSelectControl(selectControl, filterOrderBy);
2165
+ }
2166
+ };
2167
+ $.extend($.fn.bootstrapTable.defaults, {
2168
+ filterControl: false,
2169
+ onColumnSearch: function onColumnSearch(field, text) {
2170
+ return false;
2171
+ },
2172
+ onCreatedControls: function onCreatedControls() {
2173
+ return true;
2174
+ },
2175
+ alignmentSelectControlOptions: undefined,
2176
+ filterTemplate: {
2177
+ input: function input(that, field, isVisible, placeholder, value) {
2178
+ return Utils.sprintf('<input type="text" class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" placeholder="%s" value="%s">', field, isVisible, 'undefined' === typeof placeholder ? '' : placeholder, 'undefined' === typeof value ? '' : value);
2179
+ },
2180
+ select: function select(_ref7, field, isVisible) {
2181
+ var options = _ref7.options;
2182
+ return Utils.sprintf('<select class="form-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" dir="%s"></select>', field, isVisible, UtilsFilterControl.getDirectionOfSelectOptions(options.alignmentSelectControlOptions));
2183
+ },
2184
+ datepicker: function datepicker(that, field, isVisible, value) {
2185
+ return Utils.sprintf('<input type="text" class="form-control date-filter-control bootstrap-table-filter-control-%s" style="width: 100%; visibility: %s" value="%s">', field, isVisible, 'undefined' === typeof value ? '' : value);
2186
+ }
2187
+ },
2188
+ disableControlWhenSearch: false,
2189
+ searchOnEnterKey: false,
2190
+ // internal variables
2191
+ valuesFilterControl: []
2192
+ });
2193
+ $.extend($.fn.bootstrapTable.columnDefaults, {
2194
+ filterControl: undefined,
2195
+ filterDataCollector: undefined,
2196
+ filterData: undefined,
2197
+ filterDatepickerOptions: undefined,
2198
+ filterStrictSearch: false,
2199
+ filterStartsWithSearch: false,
2200
+ filterControlPlaceholder: '',
2201
+ filterDefault: '',
2202
+ filterOrderBy: 'asc' // asc || desc
2203
+
2204
+ });
2205
+ $.extend($.fn.bootstrapTable.Constructor.EVENTS, {
2206
+ 'column-search.bs.table': 'onColumnSearch',
2207
+ 'created-controls.bs.table': 'onCreatedControls'
2208
+ });
2209
+ $.extend($.fn.bootstrapTable.defaults.icons, {
2210
+ clear: {
2211
+ bootstrap3: 'glyphicon-trash icon-clear'
2212
+ }[$.fn.bootstrapTable.theme] || 'fa-trash'
2213
+ });
2214
+ $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
2215
+ $.extend($.fn.bootstrapTable.defaults, {
2216
+ formatClearSearch: function formatClearSearch() {
2217
+ return 'Clear filters';
2218
+ }
2219
+ });
2220
+ $.fn.bootstrapTable.methods.push('triggerSearch');
2221
+ $.fn.bootstrapTable.methods.push('clearFilterControl');
2222
+
2223
+ $.BootstrapTable =
2224
+ /*#__PURE__*/
2225
+ function (_$$BootstrapTable) {
2226
+ _inherits(_class, _$$BootstrapTable);
2227
+
2228
+ function _class() {
2229
+ _classCallCheck(this, _class);
2230
+
2231
+ return _possibleConstructorReturn(this, _getPrototypeOf(_class).apply(this, arguments));
2232
+ }
2233
+
2234
+ _createClass(_class, [{
2235
+ key: "init",
2236
+ value: function init() {
2237
+ var _this = this;
2238
+
2239
+ // Make sure that the filterControl option is set
2240
+ if (this.options.filterControl) {
2241
+ var that = this; // Make sure that the internal variables are set correctly
2242
+
2243
+ this.options.valuesFilterControl = [];
2244
+ this.$el.on('reset-view.bs.table', function () {
2245
+ // Create controls on $tableHeader if the height is set
2246
+ if (!that.options.height) {
2247
+ return;
2248
+ } // Avoid recreate the controls
2249
+
2250
+
2251
+ if (that.$tableHeader.find('select').length > 0 || that.$tableHeader.find('input').length > 0) {
2252
+ return;
2253
+ }
2254
+
2255
+ UtilsFilterControl.createControls(that, that.$tableHeader);
2256
+ }).on('post-header.bs.table', function () {
2257
+ UtilsFilterControl.setValues(that);
2258
+ }).on('post-body.bs.table', function () {
2259
+ if (that.options.height) {
2260
+ UtilsFilterControl.fixHeaderCSS(that);
2261
+ }
2262
+
2263
+ _this.$tableLoading.css('top', _this.$header.outerHeight() + 1);
2264
+ }).on('column-switch.bs.table', function () {
2265
+ UtilsFilterControl.setValues(that);
2266
+ }).on('load-success.bs.table', function () {
2267
+ that.EnableControls(true);
2268
+ }).on('load-error.bs.table', function () {
2269
+ that.EnableControls(true);
2270
+ });
2271
+ }
2272
+
2273
+ _get(_getPrototypeOf(_class.prototype), "init", this).call(this);
2274
+ }
2275
+ }, {
2276
+ key: "initHeader",
2277
+ value: function initHeader() {
2278
+ _get(_getPrototypeOf(_class.prototype), "initHeader", this).call(this);
2279
+
2280
+ if (!this.options.filterControl) {
2281
+ return;
2282
+ }
2283
+
2284
+ UtilsFilterControl.createControls(this, this.$header);
2285
+ }
2286
+ }, {
2287
+ key: "initBody",
2288
+ value: function initBody() {
2289
+ _get(_getPrototypeOf(_class.prototype), "initBody", this).call(this);
2290
+
2291
+ UtilsFilterControl.initFilterSelectControls(this);
2292
+ }
2293
+ }, {
2294
+ key: "initSearch",
2295
+ value: function initSearch() {
2296
+ var that = this;
2297
+ var fp = $.isEmptyObject(that.filterColumnsPartial) ? null : that.filterColumnsPartial;
2298
+
2299
+ if (fp === null || Object.keys(fp).length <= 1) {
2300
+ _get(_getPrototypeOf(_class.prototype), "initSearch", this).call(this);
2301
+ }
2302
+
2303
+ if (this.options.sidePagination === 'server') {
2304
+ return;
2305
+ }
2306
+
2307
+ if (fp === null) {
2308
+ return;
2309
+ } // Check partial column filter
2310
+
2311
+
2312
+ that.data = fp ? that.options.data.filter(function (item, i) {
2313
+ var itemIsExpected = [];
2314
+ Object.keys(item).forEach(function (x, index) {
2315
+ var key = that.header.fields[index];
2316
+ var thisColumn = that.columns[that.fieldsColumnsIndex[key]];
2317
+ var fval = (fp[key] || '').toLowerCase();
2318
+ var value = Utils.getItemField(item, key, false);
2319
+
2320
+ if (fval === '') {
2321
+ itemIsExpected.push(true);
2322
+ } else {
2323
+ // Fix #142: search use formated data
2324
+ if (thisColumn && thisColumn.searchFormatter) {
2325
+ value = $.fn.bootstrapTable.utils.calculateObjectValue(that.header, that.header.formatters[$.inArray(key, that.header.fields)], [value, item, i], value);
2326
+ }
2327
+
2328
+ if ($.inArray(key, that.header.fields) !== -1) {
2329
+ if (value === undefined || value === null) {
2330
+ itemIsExpected.push(false);
2331
+ } else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
2332
+ if (thisColumn.filterStrictSearch) {
2333
+ itemIsExpected.push(value.toString().toLowerCase() === fval.toString().toLowerCase());
2334
+ } else if (thisColumn.filterStartsWithSearch) {
2335
+ itemIsExpected.push("".concat(value).toLowerCase().indexOf(fval) === 0);
2336
+ } else {
2337
+ itemIsExpected.push("".concat(value).toLowerCase().includes(fval));
2338
+ }
2339
+ }
2340
+ }
2341
+ }
2342
+ });
2343
+ return !itemIsExpected.includes(false);
2344
+ }) : that.data;
2345
+ }
2346
+ }, {
2347
+ key: "initColumnSearch",
2348
+ value: function initColumnSearch(filterColumnsDefaults) {
2349
+ UtilsFilterControl.copyValues(this);
2350
+
2351
+ if (filterColumnsDefaults) {
2352
+ this.filterColumnsPartial = filterColumnsDefaults;
2353
+ this.updatePagination(); // eslint-disable-next-line guard-for-in
2354
+
2355
+ for (var filter in filterColumnsDefaults) {
2356
+ this.trigger('column-search', filter, filterColumnsDefaults[filter]);
2357
+ }
2358
+ }
2359
+ }
2360
+ }, {
2361
+ key: "onColumnSearch",
2362
+ value: function onColumnSearch(event) {
2363
+ if ($.inArray(event.keyCode, [37, 38, 39, 40]) > -1) {
2364
+ return;
2365
+ }
2366
+
2367
+ UtilsFilterControl.copyValues(this);
2368
+ var text = $.trim($(event.currentTarget).val());
2369
+ var $field = $(event.currentTarget).closest('[data-field]').data('field');
2370
+
2371
+ if ($.isEmptyObject(this.filterColumnsPartial)) {
2372
+ this.filterColumnsPartial = {};
2373
+ }
2374
+
2375
+ if (text) {
2376
+ this.filterColumnsPartial[$field] = text;
2377
+ } else {
2378
+ delete this.filterColumnsPartial[$field];
2379
+ }
2380
+
2381
+ this.options.pageNumber = 1;
2382
+ this.EnableControls(false);
2383
+ this.onSearch(event, false);
2384
+ this.trigger('column-search', $field, text);
2385
+ }
2386
+ }, {
2387
+ key: "initToolbar",
2388
+ value: function initToolbar() {
2389
+ this.showSearchClearButton = this.options.filterControl && this.options.showSearchClearButton;
2390
+
2391
+ _get(_getPrototypeOf(_class.prototype), "initToolbar", this).call(this);
2392
+ }
2393
+ }, {
2394
+ key: "resetSearch",
2395
+ value: function resetSearch() {
2396
+ if (this.options.filterControl && this.options.showSearchClearButton) {
2397
+ this.clearFilterControl();
2398
+ }
2399
+
2400
+ _get(_getPrototypeOf(_class.prototype), "resetSearch", this).call(this);
2401
+ }
2402
+ }, {
2403
+ key: "clearFilterControl",
2404
+ value: function clearFilterControl() {
2405
+ if (this.options.filterControl) {
2406
+ var that = this;
2407
+ var cookies = UtilsFilterControl.collectBootstrapCookies();
2408
+ var header = UtilsFilterControl.getCurrentHeader(that);
2409
+ var table = header.closest('table');
2410
+ var controls = header.find(UtilsFilterControl.getCurrentSearchControls(that));
2411
+ var search = that.$toolbar.find('.search input');
2412
+ var hasValues = false;
2413
+ var timeoutId = 0;
2414
+ $.each(that.options.valuesFilterControl, function (i, item) {
2415
+ hasValues = hasValues ? true : item.value !== '';
2416
+ item.value = '';
2417
+ });
2418
+ $.each(that.options.filterControls, function (i, item) {
2419
+ item.text = '';
2420
+ });
2421
+ UtilsFilterControl.setValues(that); // clear cookies once the filters are clean
2422
+
2423
+ clearTimeout(timeoutId);
2424
+ timeoutId = setTimeout(function () {
2425
+ if (cookies && cookies.length > 0) {
2426
+ $.each(cookies, function (i, item) {
2427
+ if (that.deleteCookie !== undefined) {
2428
+ that.deleteCookie(item);
2429
+ }
2430
+ });
2431
+ }
2432
+ }, that.options.searchTimeOut); // If there is not any value in the controls exit this method
2433
+
2434
+ if (!hasValues) {
2435
+ return;
2436
+ } // Clear each type of filter if it exists.
2437
+ // Requires the body to reload each time a type of filter is found because we never know
2438
+ // which ones are going to be present.
2439
+
2440
+
2441
+ if (controls.length > 0) {
2442
+ this.filterColumnsPartial = {};
2443
+ $(controls[0]).trigger(controls[0].tagName === 'INPUT' ? 'keyup' : 'change', {
2444
+ keyCode: 13
2445
+ });
2446
+ } else {
2447
+ return;
2448
+ }
2449
+
2450
+ if (search.length > 0) {
2451
+ that.resetSearch();
2452
+ } // use the default sort order if it exists. do nothing if it does not
2453
+
2454
+
2455
+ if (that.options.sortName !== table.data('sortName') || that.options.sortOrder !== table.data('sortOrder')) {
2456
+ var sorter = header.find(Utils.sprintf('[data-field="%s"]', $(controls[0]).closest('table').data('sortName')));
2457
+
2458
+ if (sorter.length > 0) {
2459
+ that.onSort({
2460
+ type: 'keypress',
2461
+ currentTarget: sorter
2462
+ });
2463
+ $(sorter).find('.sortable').trigger('click');
2464
+ }
2465
+ }
2466
+ }
2467
+ }
2468
+ }, {
2469
+ key: "triggerSearch",
2470
+ value: function triggerSearch() {
2471
+ var header = UtilsFilterControl.getCurrentHeader(this);
2472
+ var searchControls = UtilsFilterControl.getCurrentSearchControls(this);
2473
+ header.find(searchControls).each(function () {
2474
+ var el = $(this);
2475
+
2476
+ if (el.is('select')) {
2477
+ el.change();
2478
+ } else {
2479
+ el.keyup();
2480
+ }
2481
+ });
2482
+ }
2483
+ }, {
2484
+ key: "EnableControls",
2485
+ value: function EnableControls(enable) {
2486
+ if (this.options.disableControlWhenSearch && this.options.sidePagination === 'server') {
2487
+ var header = UtilsFilterControl.getCurrentHeader(this);
2488
+ var searchControls = UtilsFilterControl.getCurrentSearchControls(this);
2489
+
2490
+ if (!enable) {
2491
+ header.find(searchControls).prop('disabled', 'disabled');
2492
+ } else {
2493
+ header.find(searchControls).removeProp('disabled');
2494
+ }
2495
+ }
2496
+ }
2497
+ }]);
2498
+
2499
+ return _class;
2500
+ }($.BootstrapTable);
2501
+
2502
+ }));