@valkyriestudios/utils 4.1.0 → 5.1.0

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 (266) hide show
  1. package/.babelrc +1 -0
  2. package/.eslintrc.json +152 -0
  3. package/.nyc_output/3c86c95b-9a2f-42b2-b3c3-9da90660bfee.json +1 -0
  4. package/.nyc_output/4617553b-e0ed-454f-a69f-6f53d23c638a.json +1 -0
  5. package/.nyc_output/processinfo/3c86c95b-9a2f-42b2-b3c3-9da90660bfee.json +1 -0
  6. package/.nyc_output/processinfo/4617553b-e0ed-454f-a69f-6f53d23c638a.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -0
  8. package/.nycrc +4 -0
  9. package/.travis.yml +2 -3
  10. package/CHANGELOG.md +83 -0
  11. package/README.md +174 -2
  12. package/array/dedupe.js +16 -13
  13. package/array/is.js +5 -4
  14. package/array/isNotEmpty.js +15 -0
  15. package/array/mapFn.js +58 -0
  16. package/array/mapKey.js +51 -0
  17. package/array/mapPrimitive.js +63 -0
  18. package/boolean/is.js +5 -4
  19. package/caching/memoize.js +14 -19
  20. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/base.css +224 -0
  21. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/block-navigation.js +87 -0
  22. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/favicon.png +0 -0
  23. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/index.html +296 -0
  24. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/prettify.css +1 -0
  25. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/prettify.js +2 -0
  26. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  27. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/sorter.js +196 -0
  28. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +118 -0
  29. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/index.html +146 -0
  30. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/is.js.html +100 -0
  31. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +109 -0
  32. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/boolean/index.html +116 -0
  33. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/boolean/is.js.html +100 -0
  34. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/caching/index.html +116 -0
  35. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +130 -0
  36. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/date/index.html +116 -0
  37. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/date/is.js.html +100 -0
  38. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/define.js.html +106 -0
  39. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +151 -0
  40. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/get.js.html +187 -0
  41. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/index.html +176 -0
  42. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/seal.js.html +151 -0
  43. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/deep/set.js.html +220 -0
  44. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/equal.js.html +274 -0
  45. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/formdata/index.html +116 -0
  46. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/formdata/is.js.html +100 -0
  47. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/index.html +176 -0
  48. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/is.js.html +103 -0
  49. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noop.js.html +100 -0
  50. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +103 -0
  51. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +103 -0
  52. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/function/sleep.js.html +124 -0
  53. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +232 -0
  54. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/guid.js.html +175 -0
  55. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/hash/index.html +131 -0
  56. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/index.html +131 -0
  57. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/is.js.html +202 -0
  58. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/index.html +221 -0
  59. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/is.js.html +112 -0
  60. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isAbove.js.html +115 -0
  61. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isBelow.js.html +115 -0
  62. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +121 -0
  63. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +100 -0
  64. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +136 -0
  65. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/round.js.html +139 -0
  66. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +151 -0
  67. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/define.js.html +118 -0
  68. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +106 -0
  69. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +106 -0
  70. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/forValues.js.html +133 -0
  71. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/index.html +236 -0
  72. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/is.js.html +100 -0
  73. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +109 -0
  74. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/merge.js.html +157 -0
  75. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/pick.js.html +151 -0
  76. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/object/zip.js.html +139 -0
  77. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/regexp/index.html +116 -0
  78. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/regexp/is.js.html +100 -0
  79. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/index.html +146 -0
  80. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/is.js.html +100 -0
  81. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +133 -0
  82. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +109 -0
  83. package/coverage/Chrome Headless 100.0.4896.127 (Linux x86_64)/lcov.info +974 -0
  84. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/base.css +224 -0
  85. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/block-navigation.js +79 -0
  86. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/favicon.png +0 -0
  87. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/index.html +291 -0
  88. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/prettify.css +1 -0
  89. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/prettify.js +2 -0
  90. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/sort-arrow-sprite.png +0 -0
  91. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/sorter.js +170 -0
  92. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/dedupe.js.html +113 -0
  93. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/index.html +141 -0
  94. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/is.js.html +95 -0
  95. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/array/isNotEmpty.js.html +104 -0
  96. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/index.html +111 -0
  97. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/boolean/is.js.html +95 -0
  98. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/index.html +111 -0
  99. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/caching/memoize.js.html +125 -0
  100. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/index.html +111 -0
  101. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/date/is.js.html +95 -0
  102. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/define.js.html +101 -0
  103. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/freeze.js.html +146 -0
  104. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/get.js.html +182 -0
  105. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/index.html +171 -0
  106. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/seal.js.html +146 -0
  107. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/deep/set.js.html +215 -0
  108. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/equal.js.html +269 -0
  109. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/index.html +111 -0
  110. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/formdata/is.js.html +95 -0
  111. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/index.html +171 -0
  112. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/is.js.html +98 -0
  113. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noop.js.html +95 -0
  114. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopresolve.js.html +98 -0
  115. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/noopreturn.js.html +98 -0
  116. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/function/sleep.js.html +119 -0
  117. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/fnv1A.js.html +227 -0
  118. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/guid.js.html +170 -0
  119. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/hash/index.html +126 -0
  120. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/index.html +126 -0
  121. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/is.js.html +185 -0
  122. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/index.html +186 -0
  123. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/is.js.html +107 -0
  124. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isBetween.js.html +116 -0
  125. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/isNumericalNaN.js.html +95 -0
  126. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/randomBetween.js.html +131 -0
  127. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/round.js.html +134 -0
  128. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/number/toPercentage.js.html +146 -0
  129. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/define.js.html +113 -0
  130. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineFrozen.js.html +101 -0
  131. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/defineSealed.js.html +101 -0
  132. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/forValues.js.html +128 -0
  133. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/index.html +231 -0
  134. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/is.js.html +95 -0
  135. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/isNotEmpty.js.html +104 -0
  136. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/merge.js.html +152 -0
  137. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/pick.js.html +146 -0
  138. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/object/zip.js.html +134 -0
  139. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/index.html +111 -0
  140. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/regexp/is.js.html +95 -0
  141. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/index.html +141 -0
  142. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/is.js.html +95 -0
  143. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isBetween.js.html +128 -0
  144. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov-report/src/string/isNotEmpty.js.html +104 -0
  145. package/coverage/Chrome Headless 93.0.4577.82 (Linux x86_64)/lcov.info +940 -0
  146. package/coverage/lcov-report/base.css +5 -4
  147. package/coverage/lcov-report/block-navigation.js +71 -48
  148. package/coverage/lcov-report/favicon.png +0 -0
  149. package/coverage/lcov-report/index.html +247 -50
  150. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  151. package/coverage/lcov-report/sorter.js +51 -14
  152. package/coverage/lcov-report/src/array/dedupe.js.html +154 -0
  153. package/coverage/lcov-report/src/array/index.html +191 -0
  154. package/coverage/lcov-report/src/array/is.js.html +100 -0
  155. package/coverage/lcov-report/src/array/isNotEmpty.js.html +109 -0
  156. package/coverage/lcov-report/src/array/map.js.html +136 -0
  157. package/coverage/lcov-report/src/array/mapFn.js.html +184 -0
  158. package/coverage/lcov-report/src/array/mapKey.js.html +160 -0
  159. package/coverage/lcov-report/src/array/mapPrimitive.js.html +193 -0
  160. package/coverage/lcov-report/src/boolean/index.html +116 -0
  161. package/coverage/lcov-report/src/boolean/is.js.html +100 -0
  162. package/coverage/lcov-report/src/caching/index.html +116 -0
  163. package/coverage/lcov-report/src/caching/memoize.js.html +139 -0
  164. package/coverage/lcov-report/src/date/index.html +116 -0
  165. package/coverage/lcov-report/src/date/is.js.html +100 -0
  166. package/coverage/lcov-report/src/deep/define.js.html +106 -0
  167. package/coverage/lcov-report/src/deep/freeze.js.html +151 -0
  168. package/coverage/lcov-report/src/deep/get.js.html +190 -0
  169. package/coverage/lcov-report/src/deep/index.html +176 -0
  170. package/coverage/lcov-report/src/deep/seal.js.html +151 -0
  171. package/coverage/lcov-report/src/deep/set.js.html +229 -0
  172. package/coverage/lcov-report/src/equal.js.html +280 -0
  173. package/coverage/lcov-report/src/function/index.html +176 -0
  174. package/coverage/lcov-report/src/function/is.js.html +103 -0
  175. package/coverage/lcov-report/src/function/noop.js.html +100 -0
  176. package/coverage/lcov-report/src/function/noopresolve.js.html +103 -0
  177. package/coverage/lcov-report/src/function/noopreturn.js.html +103 -0
  178. package/coverage/lcov-report/src/function/sleep.js.html +121 -0
  179. package/coverage/lcov-report/src/hash/fnv1A.js.html +238 -0
  180. package/coverage/lcov-report/src/hash/guid.js.html +184 -0
  181. package/coverage/lcov-report/src/hash/index.html +131 -0
  182. package/coverage/lcov-report/src/index.html +131 -0
  183. package/coverage/lcov-report/src/is.js.html +196 -0
  184. package/coverage/lcov-report/src/number/index.html +221 -0
  185. package/coverage/lcov-report/src/number/is.js.html +109 -0
  186. package/coverage/lcov-report/src/number/isAbove.js.html +115 -0
  187. package/coverage/lcov-report/src/number/isBelow.js.html +115 -0
  188. package/coverage/lcov-report/src/number/isBetween.js.html +121 -0
  189. package/coverage/lcov-report/src/number/isNumericalNaN.js.html +106 -0
  190. package/coverage/lcov-report/src/number/randomBetween.js.html +121 -0
  191. package/coverage/lcov-report/src/number/round.js.html +130 -0
  192. package/coverage/lcov-report/src/number/toPercentage.js.html +130 -0
  193. package/coverage/lcov-report/src/object/define.js.html +118 -0
  194. package/coverage/lcov-report/src/object/defineFrozen.js.html +106 -0
  195. package/coverage/lcov-report/src/object/defineSealed.js.html +106 -0
  196. package/coverage/lcov-report/src/object/forValues.js.html +133 -0
  197. package/coverage/lcov-report/src/object/index.html +236 -0
  198. package/coverage/lcov-report/src/object/is.js.html +100 -0
  199. package/coverage/lcov-report/src/object/isNotEmpty.js.html +109 -0
  200. package/coverage/lcov-report/src/object/merge.js.html +157 -0
  201. package/coverage/lcov-report/src/object/pick.js.html +151 -0
  202. package/coverage/lcov-report/src/object/zip.js.html +145 -0
  203. package/coverage/lcov-report/src/regexp/index.html +116 -0
  204. package/coverage/lcov-report/src/regexp/is.js.html +100 -0
  205. package/coverage/lcov-report/src/string/index.html +161 -0
  206. package/coverage/lcov-report/src/string/is.js.html +100 -0
  207. package/coverage/lcov-report/src/string/isBetween.js.html +133 -0
  208. package/coverage/lcov-report/src/string/isNotEmpty.js.html +109 -0
  209. package/coverage/lcov-report/src/string/shorten.js.html +139 -0
  210. package/coverage/lcov.info +1287 -0
  211. package/date/is.js +5 -4
  212. package/deep/define.js +8 -10
  213. package/deep/freeze.js +19 -25
  214. package/deep/get.js +29 -32
  215. package/deep/seal.js +19 -25
  216. package/deep/set.js +41 -42
  217. package/equal.js +44 -59
  218. package/function/is.js +5 -6
  219. package/function/noop.js +2 -3
  220. package/function/noopresolve.js +7 -8
  221. package/function/noopreturn.js +5 -6
  222. package/function/sleep.js +11 -17
  223. package/hash/fnv1A.js +38 -54
  224. package/hash/guid.js +22 -30
  225. package/is.js +133 -0
  226. package/number/is.js +8 -8
  227. package/number/isAbove.js +15 -0
  228. package/number/isBelow.js +15 -0
  229. package/number/isBetween.js +16 -0
  230. package/number/isNumericalNaN.js +5 -4
  231. package/number/randomBetween.js +11 -23
  232. package/number/round.js +12 -22
  233. package/number/toPercentage.js +14 -31
  234. package/object/define.js +12 -13
  235. package/object/defineFrozen.js +9 -11
  236. package/object/defineSealed.js +9 -11
  237. package/object/forValues.js +17 -22
  238. package/object/is.js +5 -4
  239. package/object/isNotEmpty.js +15 -0
  240. package/object/merge.js +21 -22
  241. package/object/pick.js +22 -29
  242. package/object/zip.js +19 -20
  243. package/package.json +15 -17
  244. package/regexp/is.js +5 -4
  245. package/string/is.js +5 -4
  246. package/string/isBetween.js +21 -0
  247. package/string/isNotEmpty.js +16 -0
  248. package/string/shorten.js +21 -0
  249. package/test/constants.js +79 -0
  250. package/test/src/array.test.js +666 -51
  251. package/test/src/boolean.test.js +39 -43
  252. package/test/src/caching.test.js +10 -1
  253. package/test/src/date.test.js +39 -43
  254. package/test/src/deep.test.js +155 -66
  255. package/test/src/equal.test.js +66 -57
  256. package/test/src/function.test.js +69 -74
  257. package/test/src/hash.test.js +39 -30
  258. package/test/src/is.test.js +187 -0
  259. package/test/src/number.test.js +467 -73
  260. package/test/src/object.test.js +211 -149
  261. package/test/src/regexp.test.js +39 -43
  262. package/test/src/string.test.js +376 -40
  263. package/formdata/is.js +0 -9
  264. package/karma.conf.js +0 -64
  265. package/test/src/formdata.test.js +0 -74
  266. package/test/test_index.js +0 -2
@@ -172,16 +172,17 @@ table.coverage td span.cline-any {
172
172
  /* dark green */
173
173
  .status-line.high, .high .cover-fill { background:rgb(77,146,33) }
174
174
  .high .chart { border:1px solid rgb(77,146,33) }
175
-
176
- .medium .chart { border:1px solid #666; }
177
- .medium .cover-fill { background: #666; }
175
+ /* dark yellow (gold) */
176
+ .status-line.medium, .medium .cover-fill { background: #f9cd0b; }
177
+ .medium .chart { border:1px solid #f9cd0b; }
178
+ /* light yellow */
179
+ .medium { background: #fff4c2; }
178
180
 
179
181
  .cstat-skip { background: #ddd; color: #111; }
180
182
  .fstat-skip { background: #ddd; color: #111 !important; }
181
183
  .cbranch-skip { background: #ddd !important; color: #111; }
182
184
 
183
185
  span.cline-neutral { background: #eaeaea; }
184
- .medium { background: #eaeaea; }
185
186
 
186
187
  .coverage-summary td.empty {
187
188
  opacity: .5;
@@ -1,64 +1,87 @@
1
1
  /* eslint-disable */
2
- var jumpToCode = (function init () {
3
- // Classes of code we would like to highlight
4
- var missingCoverageClasses = [ '.cbranch-no', '.cstat-no', '.fstat-no' ];
2
+ var jumpToCode = (function init() {
3
+ // Classes of code we would like to highlight in the file view
4
+ var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
5
5
 
6
- // We don't want to select elements that are direct descendants of another match
7
- var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
6
+ // Elements to highlight in the file listing view
7
+ var fileListingElements = ['td.pct.low'];
8
8
 
9
- // Selecter that finds elements on the page to which we can jump
10
- var selector = notSelector + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
9
+ // We don't want to select elements that are direct descendants of another match
10
+ var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
11
11
 
12
- // The NodeList of matching elements
13
- var missingCoverageElements = document.querySelectorAll(selector);
12
+ // Selecter that finds elements on the page to which we can jump
13
+ var selector =
14
+ fileListingElements.join(', ') +
15
+ ', ' +
16
+ notSelector +
17
+ missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
14
18
 
15
- var currentIndex;
19
+ // The NodeList of matching elements
20
+ var missingCoverageElements = document.querySelectorAll(selector);
16
21
 
17
- function toggleClass(index) {
18
- missingCoverageElements.item(currentIndex).classList.remove('highlighted');
19
- missingCoverageElements.item(index).classList.add('highlighted');
20
- }
22
+ var currentIndex;
21
23
 
22
- function makeCurrent(index) {
23
- toggleClass(index);
24
- currentIndex = index;
25
- missingCoverageElements.item(index)
26
- .scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
27
- }
28
-
29
- function goToPrevious() {
30
- var nextIndex = 0;
31
- if (typeof currentIndex !== 'number' || currentIndex === 0) {
32
- nextIndex = missingCoverageElements.length - 1;
33
- } else if (missingCoverageElements.length > 1) {
34
- nextIndex = currentIndex - 1;
24
+ function toggleClass(index) {
25
+ missingCoverageElements
26
+ .item(currentIndex)
27
+ .classList.remove('highlighted');
28
+ missingCoverageElements.item(index).classList.add('highlighted');
35
29
  }
36
30
 
37
- makeCurrent(nextIndex);
38
- }
31
+ function makeCurrent(index) {
32
+ toggleClass(index);
33
+ currentIndex = index;
34
+ missingCoverageElements.item(index).scrollIntoView({
35
+ behavior: 'smooth',
36
+ block: 'center',
37
+ inline: 'center'
38
+ });
39
+ }
39
40
 
40
- function goToNext() {
41
- var nextIndex = 0;
41
+ function goToPrevious() {
42
+ var nextIndex = 0;
43
+ if (typeof currentIndex !== 'number' || currentIndex === 0) {
44
+ nextIndex = missingCoverageElements.length - 1;
45
+ } else if (missingCoverageElements.length > 1) {
46
+ nextIndex = currentIndex - 1;
47
+ }
42
48
 
43
- if (typeof currentIndex === 'number' && currentIndex < (missingCoverageElements.length - 1)) {
44
- nextIndex = currentIndex + 1;
49
+ makeCurrent(nextIndex);
45
50
  }
46
51
 
47
- makeCurrent(nextIndex);
48
- }
52
+ function goToNext() {
53
+ var nextIndex = 0;
54
+
55
+ if (
56
+ typeof currentIndex === 'number' &&
57
+ currentIndex < missingCoverageElements.length - 1
58
+ ) {
59
+ nextIndex = currentIndex + 1;
60
+ }
49
61
 
50
- return function jump(event) {
51
- switch (event.which) {
52
- case 78: // n
53
- case 74: // j
54
- goToNext();
55
- break;
56
- case 66: // b
57
- case 75: // k
58
- case 80: // p
59
- goToPrevious();
60
- break;
62
+ makeCurrent(nextIndex);
61
63
  }
62
- };
63
- }());
64
+
65
+ return function jump(event) {
66
+ if (
67
+ document.getElementById('fileSearch') === document.activeElement &&
68
+ document.activeElement != null
69
+ ) {
70
+ // if we're currently focused on the search input, we don't want to navigate
71
+ return;
72
+ }
73
+
74
+ switch (event.which) {
75
+ case 78: // n
76
+ case 74: // j
77
+ goToNext();
78
+ break;
79
+ case 66: // b
80
+ case 75: // k
81
+ case 80: // p
82
+ goToPrevious();
83
+ break;
84
+ }
85
+ };
86
+ })();
64
87
  window.addEventListener('keydown', jumpToCode);
Binary file
@@ -1,51 +1,68 @@
1
+
1
2
  <!doctype html>
2
3
  <html lang="en">
4
+
3
5
  <head>
4
6
  <title>Code coverage report for All files</title>
5
7
  <meta charset="utf-8" />
6
8
  <link rel="stylesheet" href="prettify.css" />
7
9
  <link rel="stylesheet" href="base.css" />
8
- <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
9
12
  <style type='text/css'>
10
13
  .coverage-summary .sorter {
11
14
  background-image: url(sort-arrow-sprite.png);
12
15
  }
13
16
  </style>
14
17
  </head>
18
+
15
19
  <body>
16
20
  <div class='wrapper'>
17
- <div class='pad1'>
18
- <h1>
19
- All files
20
- </h1>
21
- <div class='clearfix'>
22
- <div class='fl pad1y space-right2'>
23
- <span class="strong">Unknown% </span>
24
- <span class="quiet">Statements</span>
25
- <span class='fraction'>0/0</span>
26
- </div>
27
- <div class='fl pad1y space-right2'>
28
- <span class="strong">Unknown% </span>
29
- <span class="quiet">Branches</span>
30
- <span class='fraction'>0/0</span>
31
- </div>
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">Unknown% </span>
34
- <span class="quiet">Functions</span>
35
- <span class='fraction'>0/0</span>
36
- </div>
37
- <div class='fl pad1y space-right2'>
38
- <span class="strong">Unknown% </span>
39
- <span class="quiet">Lines</span>
40
- <span class='fraction'>0/0</span>
41
- </div>
21
+ <div class='pad1'>
22
+ <h1>All files</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">98.05% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>403/411</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">93.54% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>391/418</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">96.92% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>63/65</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">99.1% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>331/334</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input oninput="onInput()" type="search" id="fileSearch">
61
+ </div>
62
+ </template>
42
63
  </div>
43
- <p class="quiet">
44
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
45
- </p>
46
- </div>
47
- <div class='status-line medium'></div>
48
- <div class="pad1">
64
+ <div class='status-line high'></div>
65
+ <div class="pad1">
49
66
  <table class="coverage-summary">
50
67
  <thead>
51
68
  <tr>
@@ -61,24 +78,204 @@
61
78
  <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
62
79
  </tr>
63
80
  </thead>
64
- <tbody></tbody>
81
+ <tbody><tr>
82
+ <td class="file high" data-value="src"><a href="src/index.html">src</a></td>
83
+ <td data-value="96.07" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
85
+ </td>
86
+ <td data-value="96.07" class="pct high">96.07%</td>
87
+ <td data-value="51" class="abs high">49/51</td>
88
+ <td data-value="92.3" class="pct high">92.3%</td>
89
+ <td data-value="26" class="abs high">24/26</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="3" class="abs high">3/3</td>
92
+ <td data-value="100" class="pct high">100%</td>
93
+ <td data-value="45" class="abs high">45/45</td>
94
+ </tr>
95
+
96
+ <tr>
97
+ <td class="file high" data-value="src/array"><a href="src/array/index.html">src/array</a></td>
98
+ <td data-value="98.71" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 98%"></div><div class="cover-empty" style="width: 2%"></div></div>
100
+ </td>
101
+ <td data-value="98.71" class="pct high">98.71%</td>
102
+ <td data-value="78" class="abs high">77/78</td>
103
+ <td data-value="93.05" class="pct high">93.05%</td>
104
+ <td data-value="72" class="abs high">67/72</td>
105
+ <td data-value="100" class="pct high">100%</td>
106
+ <td data-value="7" class="abs high">7/7</td>
107
+ <td data-value="100" class="pct high">100%</td>
108
+ <td data-value="63" class="abs high">63/63</td>
109
+ </tr>
110
+
111
+ <tr>
112
+ <td class="file high" data-value="src/boolean"><a href="src/boolean/index.html">src/boolean</a></td>
113
+ <td data-value="100" class="pic high">
114
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115
+ </td>
116
+ <td data-value="100" class="pct high">100%</td>
117
+ <td data-value="1" class="abs high">1/1</td>
118
+ <td data-value="100" class="pct high">100%</td>
119
+ <td data-value="4" class="abs high">4/4</td>
120
+ <td data-value="100" class="pct high">100%</td>
121
+ <td data-value="1" class="abs high">1/1</td>
122
+ <td data-value="100" class="pct high">100%</td>
123
+ <td data-value="1" class="abs high">1/1</td>
124
+ </tr>
125
+
126
+ <tr>
127
+ <td class="file high" data-value="src/caching"><a href="src/caching/index.html">src/caching</a></td>
128
+ <td data-value="100" class="pic high">
129
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
+ </td>
131
+ <td data-value="100" class="pct high">100%</td>
132
+ <td data-value="9" class="abs high">9/9</td>
133
+ <td data-value="100" class="pct high">100%</td>
134
+ <td data-value="2" class="abs high">2/2</td>
135
+ <td data-value="100" class="pct high">100%</td>
136
+ <td data-value="2" class="abs high">2/2</td>
137
+ <td data-value="100" class="pct high">100%</td>
138
+ <td data-value="6" class="abs high">6/6</td>
139
+ </tr>
140
+
141
+ <tr>
142
+ <td class="file high" data-value="src/date"><a href="src/date/index.html">src/date</a></td>
143
+ <td data-value="100" class="pic high">
144
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
145
+ </td>
146
+ <td data-value="100" class="pct high">100%</td>
147
+ <td data-value="1" class="abs high">1/1</td>
148
+ <td data-value="100" class="pct high">100%</td>
149
+ <td data-value="0" class="abs high">0/0</td>
150
+ <td data-value="100" class="pct high">100%</td>
151
+ <td data-value="1" class="abs high">1/1</td>
152
+ <td data-value="100" class="pct high">100%</td>
153
+ <td data-value="1" class="abs high">1/1</td>
154
+ </tr>
155
+
156
+ <tr>
157
+ <td class="file high" data-value="src/deep"><a href="src/deep/index.html">src/deep</a></td>
158
+ <td data-value="100" class="pic high">
159
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
160
+ </td>
161
+ <td data-value="100" class="pct high">100%</td>
162
+ <td data-value="72" class="abs high">72/72</td>
163
+ <td data-value="90.52" class="pct high">90.52%</td>
164
+ <td data-value="95" class="abs high">86/95</td>
165
+ <td data-value="100" class="pct high">100%</td>
166
+ <td data-value="11" class="abs high">11/11</td>
167
+ <td data-value="100" class="pct high">100%</td>
168
+ <td data-value="59" class="abs high">59/59</td>
169
+ </tr>
170
+
171
+ <tr>
172
+ <td class="file high" data-value="src/function"><a href="src/function/index.html">src/function</a></td>
173
+ <td data-value="100" class="pic high">
174
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
175
+ </td>
176
+ <td data-value="100" class="pct high">100%</td>
177
+ <td data-value="8" class="abs high">8/8</td>
178
+ <td data-value="100" class="pct high">100%</td>
179
+ <td data-value="8" class="abs high">8/8</td>
180
+ <td data-value="100" class="pct high">100%</td>
181
+ <td data-value="8" class="abs high">8/8</td>
182
+ <td data-value="100" class="pct high">100%</td>
183
+ <td data-value="6" class="abs high">6/6</td>
184
+ </tr>
185
+
186
+ <tr>
187
+ <td class="file high" data-value="src/hash"><a href="src/hash/index.html">src/hash</a></td>
188
+ <td data-value="89.58" class="pic high">
189
+ <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
190
+ </td>
191
+ <td data-value="89.58" class="pct high">89.58%</td>
192
+ <td data-value="48" class="abs high">43/48</td>
193
+ <td data-value="78.12" class="pct medium">78.12%</td>
194
+ <td data-value="32" class="abs medium">25/32</td>
195
+ <td data-value="66.66" class="pct medium">66.66%</td>
196
+ <td data-value="6" class="abs medium">4/6</td>
197
+ <td data-value="92.85" class="pct high">92.85%</td>
198
+ <td data-value="42" class="abs high">39/42</td>
199
+ </tr>
200
+
201
+ <tr>
202
+ <td class="file high" data-value="src/number"><a href="src/number/index.html">src/number</a></td>
203
+ <td data-value="100" class="pic high">
204
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
205
+ </td>
206
+ <td data-value="100" class="pct high">100%</td>
207
+ <td data-value="48" class="abs high">48/48</td>
208
+ <td data-value="100" class="pct high">100%</td>
209
+ <td data-value="56" class="abs high">56/56</td>
210
+ <td data-value="100" class="pct high">100%</td>
211
+ <td data-value="8" class="abs high">8/8</td>
212
+ <td data-value="100" class="pct high">100%</td>
213
+ <td data-value="33" class="abs high">33/33</td>
214
+ </tr>
215
+
216
+ <tr>
217
+ <td class="file high" data-value="src/object"><a href="src/object/index.html">src/object</a></td>
218
+ <td data-value="100" class="pic high">
219
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
220
+ </td>
221
+ <td data-value="100" class="pct high">100%</td>
222
+ <td data-value="68" class="abs high">68/68</td>
223
+ <td data-value="95.34" class="pct high">95.34%</td>
224
+ <td data-value="86" class="abs high">82/86</td>
225
+ <td data-value="100" class="pct high">100%</td>
226
+ <td data-value="13" class="abs high">13/13</td>
227
+ <td data-value="100" class="pct high">100%</td>
228
+ <td data-value="57" class="abs high">57/57</td>
229
+ </tr>
230
+
231
+ <tr>
232
+ <td class="file high" data-value="src/regexp"><a href="src/regexp/index.html">src/regexp</a></td>
233
+ <td data-value="100" class="pic high">
234
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
235
+ </td>
236
+ <td data-value="100" class="pct high">100%</td>
237
+ <td data-value="1" class="abs high">1/1</td>
238
+ <td data-value="100" class="pct high">100%</td>
239
+ <td data-value="0" class="abs high">0/0</td>
240
+ <td data-value="100" class="pct high">100%</td>
241
+ <td data-value="1" class="abs high">1/1</td>
242
+ <td data-value="100" class="pct high">100%</td>
243
+ <td data-value="1" class="abs high">1/1</td>
244
+ </tr>
245
+
246
+ <tr>
247
+ <td class="file high" data-value="src/string"><a href="src/string/index.html">src/string</a></td>
248
+ <td data-value="100" class="pic high">
249
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
250
+ </td>
251
+ <td data-value="100" class="pct high">100%</td>
252
+ <td data-value="26" class="abs high">26/26</td>
253
+ <td data-value="100" class="pct high">100%</td>
254
+ <td data-value="37" class="abs high">37/37</td>
255
+ <td data-value="100" class="pct high">100%</td>
256
+ <td data-value="4" class="abs high">4/4</td>
257
+ <td data-value="100" class="pct high">100%</td>
258
+ <td data-value="20" class="abs high">20/20</td>
259
+ </tr>
260
+
261
+ </tbody>
65
262
  </table>
66
- </div><div class='push'></div><!-- for sticky footer -->
67
- </div><!-- /wrapper -->
68
- <div class='footer quiet pad2 space-top1 center small'>
69
- Code coverage
70
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Nov 19 2018 21:54:43 GMT+0100 (Central European Standard Time)
71
- </div>
72
263
  </div>
73
- <script src="prettify.js"></script>
74
- <script>
75
- window.onload = function () {
76
- if (typeof prettyPrint === 'function') {
77
- prettyPrint();
78
- }
79
- };
80
- </script>
81
- <script src="sorter.js"></script>
82
- <script src="block-navigation.js"></script>
83
- </body>
264
+ <div class='push'></div><!-- for sticky footer -->
265
+ </div><!-- /wrapper -->
266
+ <div class='footer quiet pad2 space-top1 center small'>
267
+ Code coverage generated by
268
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
269
+ at Sun Jul 17 2022 15:15:58 GMT+0200 (Central European Summer Time)
270
+ </div>
271
+ <script src="prettify.js"></script>
272
+ <script>
273
+ window.onload = function () {
274
+ prettyPrint();
275
+ };
276
+ </script>
277
+ <script src="sorter.js"></script>
278
+ <script src="block-navigation.js"></script>
279
+ </body>
84
280
  </html>
281
+
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable */
2
- var addSorting = (function () {
3
- "use strict";
2
+ var addSorting = (function() {
3
+ 'use strict';
4
4
  var cols,
5
5
  currentSort = {
6
6
  index: 0,
@@ -8,13 +8,46 @@ var addSorting = (function () {
8
8
  };
9
9
 
10
10
  // returns the summary table element
11
- function getTable() { return document.querySelector('.coverage-summary'); }
11
+ function getTable() {
12
+ return document.querySelector('.coverage-summary');
13
+ }
12
14
  // returns the thead element of the summary table
13
- function getTableHeader() { return getTable().querySelector('thead tr'); }
15
+ function getTableHeader() {
16
+ return getTable().querySelector('thead tr');
17
+ }
14
18
  // returns the tbody element of the summary table
15
- function getTableBody() { return getTable().querySelector('tbody'); }
19
+ function getTableBody() {
20
+ return getTable().querySelector('tbody');
21
+ }
16
22
  // returns the th element for nth column
17
- function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
23
+ function getNthColumn(n) {
24
+ return getTableHeader().querySelectorAll('th')[n];
25
+ }
26
+
27
+ function onFilterInput() {
28
+ const searchValue = document.getElementById('fileSearch').value;
29
+ const rows = document.getElementsByTagName('tbody')[0].children;
30
+ for (let i = 0; i < rows.length; i++) {
31
+ const row = rows[i];
32
+ if (
33
+ row.textContent
34
+ .toLowerCase()
35
+ .includes(searchValue.toLowerCase())
36
+ ) {
37
+ row.style.display = '';
38
+ } else {
39
+ row.style.display = 'none';
40
+ }
41
+ }
42
+ }
43
+
44
+ // loads the search box
45
+ function addSearchBox() {
46
+ var template = document.getElementById('filterTemplate');
47
+ var templateClone = template.content.cloneNode(true);
48
+ templateClone.getElementById('fileSearch').oninput = onFilterInput;
49
+ template.parentElement.appendChild(templateClone);
50
+ }
18
51
 
19
52
  // loads all columns
20
53
  function loadColumns() {
@@ -34,7 +67,8 @@ var addSorting = (function () {
34
67
  cols.push(col);
35
68
  if (col.sortable) {
36
69
  col.defaultDescSort = col.type === 'number';
37
- colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
70
+ colNode.innerHTML =
71
+ colNode.innerHTML + '<span class="sorter"></span>';
38
72
  }
39
73
  }
40
74
  return cols;
@@ -71,7 +105,7 @@ var addSorting = (function () {
71
105
  // sorts the table using the data for the ith column
72
106
  function sortByIndex(index, desc) {
73
107
  var key = cols[index].key,
74
- sorter = function (a, b) {
108
+ sorter = function(a, b) {
75
109
  a = a.data[key];
76
110
  b = b.data[key];
77
111
  return a < b ? -1 : a > b ? 1 : 0;
@@ -83,7 +117,7 @@ var addSorting = (function () {
83
117
  i;
84
118
 
85
119
  if (desc) {
86
- finalSorter = function (a, b) {
120
+ finalSorter = function(a, b) {
87
121
  return -1 * sorter(a, b);
88
122
  };
89
123
  }
@@ -109,7 +143,9 @@ var addSorting = (function () {
109
143
  }
110
144
  // adds sort indicators for current column being sorted
111
145
  function addSortIndicators() {
112
- getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
146
+ getNthColumn(currentSort.index).className += currentSort.desc
147
+ ? ' sorted-desc'
148
+ : ' sorted';
113
149
  }
114
150
  // adds event listeners for all sorter widgets
115
151
  function enableUI() {
@@ -118,7 +154,7 @@ var addSorting = (function () {
118
154
  ithSorter = function ithSorter(i) {
119
155
  var col = cols[i];
120
156
 
121
- return function () {
157
+ return function() {
122
158
  var desc = col.defaultDescSort;
123
159
 
124
160
  if (currentSort.index === i) {
@@ -131,7 +167,7 @@ var addSorting = (function () {
131
167
  addSortIndicators();
132
168
  };
133
169
  };
134
- for (i =0 ; i < cols.length; i += 1) {
170
+ for (i = 0; i < cols.length; i += 1) {
135
171
  if (cols[i].sortable) {
136
172
  // add the click event handler on the th so users
137
173
  // dont have to click on those tiny arrows
@@ -145,12 +181,13 @@ var addSorting = (function () {
145
181
  }
146
182
  }
147
183
  // adds sorting functionality to the UI
148
- return function () {
184
+ return function() {
149
185
  if (!getTable()) {
150
186
  return;
151
187
  }
152
188
  cols = loadColumns();
153
- loadData(cols);
189
+ loadData();
190
+ addSearchBox();
154
191
  addSortIndicators();
155
192
  enableUI();
156
193
  };