@bbn/bbn 1.0.59 → 1.0.61

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 (463) hide show
  1. package/dist/_.js +1 -1
  2. package/dist/bundle.d.ts +3804 -242
  3. package/dist/bundle.js +4062 -501
  4. package/dist/db.js +3 -3
  5. package/dist/fn/ajax/_addLoader.d.ts +16 -0
  6. package/dist/fn/ajax/_addLoader.js +51 -0
  7. package/dist/fn/ajax/_deleteLoader.d.ts +16 -0
  8. package/dist/fn/ajax/_deleteLoader.js +39 -0
  9. package/dist/fn/ajax/abort.d.ts +24 -0
  10. package/dist/fn/ajax/abort.js +36 -0
  11. package/dist/fn/ajax/abortURL.d.ts +22 -0
  12. package/dist/fn/ajax/abortURL.js +33 -0
  13. package/dist/fn/ajax/ajax.d.ts +58 -0
  14. package/dist/fn/ajax/ajax.js +170 -0
  15. package/dist/fn/ajax/callback.d.ts +37 -0
  16. package/dist/fn/ajax/callback.js +117 -0
  17. package/dist/fn/ajax/download.d.ts +30 -0
  18. package/dist/fn/ajax/download.js +64 -0
  19. package/dist/fn/ajax/downloadContent.d.ts +28 -0
  20. package/dist/fn/ajax/downloadContent.js +74 -0
  21. package/dist/fn/ajax/getLoader.d.ts +37 -0
  22. package/dist/fn/ajax/getLoader.js +44 -0
  23. package/dist/fn/ajax/getRequestId.d.ts +50 -0
  24. package/dist/fn/ajax/getRequestId.js +62 -0
  25. package/dist/fn/ajax/link.d.ts +26 -0
  26. package/dist/fn/ajax/link.js +129 -0
  27. package/dist/fn/ajax/post.d.ts +35 -0
  28. package/dist/fn/ajax/post.js +45 -0
  29. package/dist/fn/ajax/postOut.d.ts +21 -0
  30. package/dist/fn/ajax/postOut.js +49 -0
  31. package/dist/fn/ajax/setNavigationVars.d.ts +25 -0
  32. package/dist/fn/ajax/setNavigationVars.js +80 -0
  33. package/dist/fn/ajax/treatAjaxArguments.d.ts +53 -0
  34. package/dist/fn/ajax/treatAjaxArguments.js +127 -0
  35. package/dist/fn/ajax/upload.d.ts +18 -0
  36. package/dist/fn/ajax/upload.js +52 -0
  37. package/dist/fn/browser/copy.d.ts +15 -0
  38. package/dist/fn/browser/copy.js +50 -0
  39. package/dist/fn/browser/eraseCookie.d.ts +15 -0
  40. package/dist/fn/browser/eraseCookie.js +17 -0
  41. package/dist/fn/browser/error.d.ts +14 -0
  42. package/dist/fn/browser/error.js +29 -0
  43. package/dist/fn/browser/getBrowserName.d.ts +9 -0
  44. package/dist/fn/browser/getBrowserName.js +28 -0
  45. package/dist/fn/browser/getBrowserVersion.d.ts +9 -0
  46. package/dist/fn/browser/getBrowserVersion.js +29 -0
  47. package/dist/fn/browser/getCookie.d.ts +16 -0
  48. package/dist/fn/browser/getCookie.js +32 -0
  49. package/dist/fn/browser/getDeviceType.d.ts +14 -0
  50. package/dist/fn/browser/getDeviceType.js +23 -0
  51. package/dist/fn/browser/getEventData.d.ts +16 -0
  52. package/dist/fn/browser/getEventData.js +116 -0
  53. package/dist/fn/browser/happy.d.ts +14 -0
  54. package/dist/fn/browser/happy.js +22 -0
  55. package/dist/fn/browser/history.d.ts +2 -0
  56. package/dist/fn/browser/history.js +4 -0
  57. package/dist/fn/browser/info.d.ts +10 -0
  58. package/dist/fn/browser/info.js +19 -0
  59. package/dist/fn/browser/isActiveInterface.d.ts +14 -0
  60. package/dist/fn/browser/isActiveInterface.js +20 -0
  61. package/dist/fn/browser/isDesktopDevice.d.ts +14 -0
  62. package/dist/fn/browser/isDesktopDevice.js +17 -0
  63. package/dist/fn/browser/isFocused.d.ts +21 -0
  64. package/dist/fn/browser/isFocused.js +23 -0
  65. package/dist/fn/browser/isMobile.d.ts +14 -0
  66. package/dist/fn/browser/isMobile.js +18 -0
  67. package/dist/fn/browser/isMobileDevice.d.ts +2 -0
  68. package/dist/fn/browser/isMobileDevice.js +5 -0
  69. package/dist/fn/browser/isTabletDevice.d.ts +14 -0
  70. package/dist/fn/browser/isTabletDevice.js +17 -0
  71. package/dist/fn/browser/log.d.ts +15 -0
  72. package/dist/fn/browser/log.js +46 -0
  73. package/dist/fn/browser/replaceSelection.d.ts +2 -0
  74. package/dist/fn/browser/replaceSelection.js +42 -0
  75. package/dist/fn/browser/selectElementText.d.ts +21 -0
  76. package/dist/fn/browser/selectElementText.js +42 -0
  77. package/dist/fn/browser/setCookie.d.ts +16 -0
  78. package/dist/fn/browser/setCookie.js +25 -0
  79. package/dist/fn/browser/toggleFullScreen.d.ts +2 -0
  80. package/dist/fn/browser/toggleFullScreen.js +39 -0
  81. package/dist/fn/browser/warning.d.ts +14 -0
  82. package/dist/fn/browser/warning.js +24 -0
  83. package/dist/fn/convert/arrayBuffer2String.d.ts +2 -0
  84. package/dist/fn/convert/arrayBuffer2String.js +4 -0
  85. package/dist/fn/convert/canvasToImage.d.ts +16 -0
  86. package/dist/fn/convert/canvasToImage.js +20 -0
  87. package/dist/fn/convert/colorToHex.d.ts +20 -0
  88. package/dist/fn/convert/colorToHex.js +24 -0
  89. package/dist/fn/convert/fromXml.d.ts +12 -0
  90. package/dist/fn/convert/fromXml.js +54 -0
  91. package/dist/fn/convert/hex2rgb.d.ts +24 -0
  92. package/dist/fn/convert/hex2rgb.js +29 -0
  93. package/dist/fn/convert/imageToCanvas.d.ts +15 -0
  94. package/dist/fn/convert/imageToCanvas.js +21 -0
  95. package/dist/fn/convert/imgToBase64.d.ts +2 -0
  96. package/dist/fn/convert/imgToBase64.js +7 -0
  97. package/dist/fn/convert/rgb2hex.d.ts +20 -0
  98. package/dist/fn/convert/rgb2hex.js +28 -0
  99. package/dist/fn/convert/string2ArrayBuffer.d.ts +2 -0
  100. package/dist/fn/convert/string2ArrayBuffer.js +9 -0
  101. package/dist/fn/convert/toCSV.d.ts +26 -0
  102. package/dist/fn/convert/toCSV.js +64 -0
  103. package/dist/fn/datetime/calendar.d.ts +2 -0
  104. package/dist/fn/datetime/calendar.js +23 -0
  105. package/dist/fn/datetime/chrono.d.ts +25 -0
  106. package/dist/fn/datetime/chrono.js +45 -0
  107. package/dist/fn/datetime/date.d.ts +18 -0
  108. package/dist/fn/datetime/date.js +44 -0
  109. package/dist/fn/datetime/dateSQL.d.ts +20 -0
  110. package/dist/fn/datetime/dateSQL.js +26 -0
  111. package/dist/fn/datetime/daysInMonth.d.ts +17 -0
  112. package/dist/fn/datetime/daysInMonth.js +24 -0
  113. package/dist/fn/datetime/fdate.d.ts +11 -0
  114. package/dist/fn/datetime/fdate.js +28 -0
  115. package/dist/fn/datetime/fdatetime.d.ts +9 -0
  116. package/dist/fn/datetime/fdatetime.js +30 -0
  117. package/dist/fn/datetime/formatDate.d.ts +2 -0
  118. package/dist/fn/datetime/formatDate.js +4 -0
  119. package/dist/fn/datetime/ftime.d.ts +9 -0
  120. package/dist/fn/datetime/ftime.js +21 -0
  121. package/dist/fn/datetime/getDay.d.ts +11 -0
  122. package/dist/fn/datetime/getDay.js +26 -0
  123. package/dist/fn/datetime/timestamp.d.ts +15 -0
  124. package/dist/fn/datetime/timestamp.js +18 -0
  125. package/dist/fn/default/defaultAjaxAbortFunction.d.ts +2 -0
  126. package/dist/fn/default/defaultAjaxAbortFunction.js +5 -0
  127. package/dist/fn/default/defaultAjaxErrorFunction.d.ts +2 -0
  128. package/dist/fn/default/defaultAjaxErrorFunction.js +4 -0
  129. package/dist/fn/default/defaultAlertFunction.d.ts +2 -0
  130. package/dist/fn/default/defaultAlertFunction.js +5 -0
  131. package/dist/fn/default/defaultConfirmFunction.d.ts +2 -0
  132. package/dist/fn/default/defaultConfirmFunction.js +14 -0
  133. package/dist/fn/default/defaultEndLoadingFunction.d.ts +2 -0
  134. package/dist/fn/default/defaultEndLoadingFunction.js +4 -0
  135. package/dist/fn/default/defaultErrorFunction.d.ts +2 -0
  136. package/dist/fn/default/defaultErrorFunction.js +5 -0
  137. package/dist/fn/default/defaultHistoryFunction.d.ts +2 -0
  138. package/dist/fn/default/defaultHistoryFunction.js +4 -0
  139. package/dist/fn/default/defaultLinkFunction.d.ts +2 -0
  140. package/dist/fn/default/defaultLinkFunction.js +4 -0
  141. package/dist/fn/default/defaultPostLinkFunction.d.ts +2 -0
  142. package/dist/fn/default/defaultPostLinkFunction.js +4 -0
  143. package/dist/fn/default/defaultPreLinkFunction.d.ts +2 -0
  144. package/dist/fn/default/defaultPreLinkFunction.js +4 -0
  145. package/dist/fn/default/defaultResizeFunction.d.ts +2 -0
  146. package/dist/fn/default/defaultResizeFunction.js +4 -0
  147. package/dist/fn/default/defaultStartLoadingFunction.d.ts +2 -0
  148. package/dist/fn/default/defaultStartLoadingFunction.js +4 -0
  149. package/dist/fn/form/addInputs.d.ts +43 -0
  150. package/dist/fn/form/addInputs.js +81 -0
  151. package/dist/fn/form/fieldValue.d.ts +12 -0
  152. package/dist/fn/form/fieldValue.js +34 -0
  153. package/dist/fn/form/formdata.d.ts +45 -0
  154. package/dist/fn/form/formdata.js +95 -0
  155. package/dist/fn/form/objectToFormData.d.ts +12 -0
  156. package/dist/fn/form/objectToFormData.js +45 -0
  157. package/dist/fn/form/submit.d.ts +20 -0
  158. package/dist/fn/form/submit.js +51 -0
  159. package/dist/fn/html/adjustHeight.d.ts +2 -0
  160. package/dist/fn/html/adjustHeight.js +10 -0
  161. package/dist/fn/html/adjustSize.d.ts +2 -0
  162. package/dist/fn/html/adjustSize.js +21 -0
  163. package/dist/fn/html/adjustWidth.d.ts +2 -0
  164. package/dist/fn/html/adjustWidth.js +10 -0
  165. package/dist/fn/html/getAllTags.d.ts +6 -0
  166. package/dist/fn/html/getAllTags.js +9 -0
  167. package/dist/fn/html/getAncestors.d.ts +2 -0
  168. package/dist/fn/html/getAncestors.js +25 -0
  169. package/dist/fn/html/getAttributes.d.ts +6 -0
  170. package/dist/fn/html/getAttributes.js +16 -0
  171. package/dist/fn/html/getHTMLOfSelection.d.ts +2 -0
  172. package/dist/fn/html/getHTMLOfSelection.js +18 -0
  173. package/dist/fn/html/getHtml.d.ts +2 -0
  174. package/dist/fn/html/getHtml.js +9 -0
  175. package/dist/fn/html/getPath.d.ts +10 -0
  176. package/dist/fn/html/getPath.js +50 -0
  177. package/dist/fn/html/getText.d.ts +2 -0
  178. package/dist/fn/html/getText.js +4 -0
  179. package/dist/fn/html/html2text.d.ts +17 -0
  180. package/dist/fn/html/html2text.js +22 -0
  181. package/dist/fn/html/isInside.d.ts +2 -0
  182. package/dist/fn/html/isInside.js +23 -0
  183. package/dist/fn/html/makeReactive.d.ts +2 -0
  184. package/dist/fn/html/makeReactive.js +185 -0
  185. package/dist/fn/html/selector.d.ts +10 -0
  186. package/dist/fn/html/selector.js +12 -0
  187. package/dist/fn/init.d.ts +13 -0
  188. package/dist/fn/init.js +25 -12
  189. package/dist/fn/loop/each.d.ts +33 -0
  190. package/dist/fn/loop/each.js +54 -0
  191. package/dist/fn/loop/fori.d.ts +36 -0
  192. package/dist/fn/loop/fori.js +53 -0
  193. package/dist/fn/loop/forir.d.ts +36 -0
  194. package/dist/fn/loop/forir.js +53 -0
  195. package/dist/fn/loop/iterate.d.ts +22 -0
  196. package/dist/fn/loop/iterate.js +36 -0
  197. package/dist/fn/loop/riterate.d.ts +21 -0
  198. package/dist/fn/loop/riterate.js +24 -0
  199. package/dist/fn/misc/analyzeFunction.d.ts +11 -0
  200. package/dist/fn/misc/analyzeFunction.js +141 -0
  201. package/dist/fn/misc/getTimeoff.d.ts +14 -0
  202. package/dist/fn/misc/getTimeoff.js +19 -0
  203. package/dist/fn/misc/money.d.ts +23 -0
  204. package/dist/fn/misc/money.js +122 -0
  205. package/dist/fn/misc/percent.d.ts +23 -0
  206. package/dist/fn/misc/percent.js +25 -0
  207. package/dist/fn/misc/randomInt.d.ts +22 -0
  208. package/dist/fn/misc/randomInt.js +24 -0
  209. package/dist/fn/misc/roundDecimal.d.ts +11 -0
  210. package/dist/fn/misc/roundDecimal.js +13 -0
  211. package/dist/fn/misc/translate.d.ts +2 -0
  212. package/dist/fn/misc/translate.js +8 -0
  213. package/dist/fn/object/_compareValues.d.ts +40 -0
  214. package/dist/fn/object/_compareValues.js +78 -0
  215. package/dist/fn/object/arrayFromProp.d.ts +33 -0
  216. package/dist/fn/object/arrayFromProp.js +41 -0
  217. package/dist/fn/object/autoExtend.d.ts +33 -0
  218. package/dist/fn/object/autoExtend.js +44 -0
  219. package/dist/fn/object/checkProps.d.ts +2 -0
  220. package/dist/fn/object/checkProps.js +5 -0
  221. package/dist/fn/object/checkPropsDetails.d.ts +2 -0
  222. package/dist/fn/object/checkPropsDetails.js +53 -0
  223. package/dist/fn/object/checkPropsOrDie.d.ts +2 -0
  224. package/dist/fn/object/checkPropsOrDie.js +9 -0
  225. package/dist/fn/object/circularReplacer.d.ts +7 -0
  226. package/dist/fn/object/circularReplacer.js +39 -0
  227. package/dist/fn/object/clone.d.ts +19 -0
  228. package/dist/fn/object/clone.js +33 -0
  229. package/dist/fn/object/compare.d.ts +53 -0
  230. package/dist/fn/object/compare.js +150 -0
  231. package/dist/fn/object/compareConditions.d.ts +46 -0
  232. package/dist/fn/object/compareConditions.js +86 -0
  233. package/dist/fn/object/count.d.ts +56 -0
  234. package/dist/fn/object/count.js +59 -0
  235. package/dist/fn/object/createObject.d.ts +2 -0
  236. package/dist/fn/object/createObject.js +9 -0
  237. package/dist/fn/object/deepPath.d.ts +57 -0
  238. package/dist/fn/object/deepPath.js +78 -0
  239. package/dist/fn/object/deleteProp.d.ts +8 -0
  240. package/dist/fn/object/deleteProp.js +13 -0
  241. package/dist/fn/object/diffObj.d.ts +79 -0
  242. package/dist/fn/object/diffObj.js +168 -0
  243. package/dist/fn/object/extend.d.ts +87 -0
  244. package/dist/fn/object/extend.js +158 -0
  245. package/dist/fn/object/extendOut.d.ts +18 -0
  246. package/dist/fn/object/extendOut.js +40 -0
  247. package/dist/fn/object/filter.d.ts +50 -0
  248. package/dist/fn/object/filter.js +94 -0
  249. package/dist/fn/object/filterToConditions.d.ts +48 -0
  250. package/dist/fn/object/filterToConditions.js +68 -0
  251. package/dist/fn/object/findAll.d.ts +57 -0
  252. package/dist/fn/object/findAll.js +73 -0
  253. package/dist/fn/object/getField.d.ts +30 -0
  254. package/dist/fn/object/getField.js +37 -0
  255. package/dist/fn/object/getFieldValues.d.ts +30 -0
  256. package/dist/fn/object/getFieldValues.js +41 -0
  257. package/dist/fn/object/getProp.d.ts +8 -0
  258. package/dist/fn/object/getProp.js +13 -0
  259. package/dist/fn/object/getProperty.d.ts +30 -0
  260. package/dist/fn/object/getProperty.js +39 -0
  261. package/dist/fn/object/getRow.d.ts +42 -0
  262. package/dist/fn/object/getRow.js +49 -0
  263. package/dist/fn/object/map.d.ts +74 -0
  264. package/dist/fn/object/map.js +83 -0
  265. package/dist/fn/object/move.d.ts +34 -0
  266. package/dist/fn/object/move.js +43 -0
  267. package/dist/fn/object/multiorder.d.ts +40 -0
  268. package/dist/fn/object/multiorder.js +60 -0
  269. package/dist/fn/object/numProperties.d.ts +31 -0
  270. package/dist/fn/object/numProperties.js +36 -0
  271. package/dist/fn/object/order.d.ts +28 -0
  272. package/dist/fn/object/order.js +36 -0
  273. package/dist/fn/object/pickValue.d.ts +2 -0
  274. package/dist/fn/object/pickValue.js +6 -0
  275. package/dist/fn/object/removeEmpty.d.ts +18 -0
  276. package/dist/fn/object/removeEmpty.js +47 -0
  277. package/dist/fn/object/removePrivateProp.d.ts +24 -0
  278. package/dist/fn/object/removePrivateProp.js +41 -0
  279. package/dist/fn/object/search.d.ts +101 -0
  280. package/dist/fn/object/search.js +177 -0
  281. package/dist/fn/object/setProp.d.ts +11 -0
  282. package/dist/fn/object/setProp.js +17 -0
  283. package/dist/fn/object/setProperty.d.ts +30 -0
  284. package/dist/fn/object/setProperty.js +50 -0
  285. package/dist/fn/object/shortenObj.d.ts +25 -0
  286. package/dist/fn/object/shortenObj.js +40 -0
  287. package/dist/fn/object/shuffle.d.ts +2 -0
  288. package/dist/fn/object/shuffle.js +13 -0
  289. package/dist/fn/object/stat.d.ts +2 -0
  290. package/dist/fn/object/stat.js +49 -0
  291. package/dist/fn/object/sum.d.ts +46 -0
  292. package/dist/fn/object/sum.js +57 -0
  293. package/dist/fn/object/unique.d.ts +18 -0
  294. package/dist/fn/object/unique.js +22 -0
  295. package/dist/fn/string/baseName.d.ts +24 -0
  296. package/dist/fn/string/baseName.js +39 -0
  297. package/dist/fn/string/br2nl.d.ts +19 -0
  298. package/dist/fn/string/br2nl.js +22 -0
  299. package/dist/fn/string/camelToCss.d.ts +18 -0
  300. package/dist/fn/string/camelToCss.js +26 -0
  301. package/dist/fn/string/camelize.d.ts +20 -0
  302. package/dist/fn/string/camelize.js +27 -0
  303. package/dist/fn/string/correctCase.d.ts +18 -0
  304. package/dist/fn/string/correctCase.js +20 -0
  305. package/dist/fn/string/crc32.d.ts +2 -0
  306. package/dist/fn/string/crc32.js +20 -0
  307. package/dist/fn/string/dirName.d.ts +17 -0
  308. package/dist/fn/string/dirName.js +33 -0
  309. package/dist/fn/string/escapeDquotes.d.ts +2 -0
  310. package/dist/fn/string/escapeDquotes.js +8 -0
  311. package/dist/fn/string/escapeRegExp.d.ts +19 -0
  312. package/dist/fn/string/escapeRegExp.js +21 -0
  313. package/dist/fn/string/escapeSquotes.d.ts +2 -0
  314. package/dist/fn/string/escapeSquotes.js +8 -0
  315. package/dist/fn/string/escapeTicks.d.ts +2 -0
  316. package/dist/fn/string/escapeTicks.js +8 -0
  317. package/dist/fn/string/escapeUrl.d.ts +9 -0
  318. package/dist/fn/string/escapeUrl.js +47 -0
  319. package/dist/fn/string/fileExt.d.ts +38 -0
  320. package/dist/fn/string/fileExt.js +47 -0
  321. package/dist/fn/string/format.d.ts +2 -0
  322. package/dist/fn/string/format.js +14 -0
  323. package/dist/fn/string/formatBytes.d.ts +14 -0
  324. package/dist/fn/string/formatBytes.js +20 -0
  325. package/dist/fn/string/formatSize.d.ts +2 -0
  326. package/dist/fn/string/formatSize.js +12 -0
  327. package/dist/fn/string/hash.d.ts +7 -0
  328. package/dist/fn/string/hash.js +42 -0
  329. package/dist/fn/string/md5.d.ts +22 -0
  330. package/dist/fn/string/md5.js +142 -0
  331. package/dist/fn/string/nl2br.d.ts +17 -0
  332. package/dist/fn/string/nl2br.js +20 -0
  333. package/dist/fn/string/printf.d.ts +10 -0
  334. package/dist/fn/string/printf.js +15 -0
  335. package/dist/fn/string/quotes2html.d.ts +30 -0
  336. package/dist/fn/string/quotes2html.js +39 -0
  337. package/dist/fn/string/randomString.d.ts +28 -0
  338. package/dist/fn/string/randomString.js +72 -0
  339. package/dist/fn/string/removeAccents.d.ts +17 -0
  340. package/dist/fn/string/removeAccents.js +30 -0
  341. package/dist/fn/string/removeExtraSpaces.d.ts +7 -0
  342. package/dist/fn/string/removeExtraSpaces.js +9 -0
  343. package/dist/fn/string/removeHtmlComments.d.ts +2 -0
  344. package/dist/fn/string/removeHtmlComments.js +8 -0
  345. package/dist/fn/string/removeTrailingChars.d.ts +11 -0
  346. package/dist/fn/string/removeTrailingChars.js +25 -0
  347. package/dist/fn/string/repeat.d.ts +16 -0
  348. package/dist/fn/string/repeat.js +18 -0
  349. package/dist/fn/string/replaceAll.d.ts +23 -0
  350. package/dist/fn/string/replaceAll.js +29 -0
  351. package/dist/fn/string/sanitize.d.ts +17 -0
  352. package/dist/fn/string/sanitize.js +34 -0
  353. package/dist/fn/string/shorten.d.ts +27 -0
  354. package/dist/fn/string/shorten.js +42 -0
  355. package/dist/fn/string/simpleHash.d.ts +2 -0
  356. package/dist/fn/string/simpleHash.js +8 -0
  357. package/dist/fn/string/simpleHash1.d.ts +2 -0
  358. package/dist/fn/string/simpleHash1.js +10 -0
  359. package/dist/fn/string/simpleHash2.d.ts +2 -0
  360. package/dist/fn/string/simpleHash2.js +10 -0
  361. package/dist/fn/string/substr.d.ts +23 -0
  362. package/dist/fn/string/substr.js +38 -0
  363. package/dist/fn/string/trim.d.ts +2 -0
  364. package/dist/fn/string/trim.js +20 -0
  365. package/dist/fn/string/uniqString.d.ts +18 -0
  366. package/dist/fn/string/uniqString.js +49 -0
  367. package/dist/fn/style/addColors.d.ts +17 -0
  368. package/dist/fn/style/addColors.js +76 -0
  369. package/dist/fn/style/addStyle.d.ts +12 -0
  370. package/dist/fn/style/addStyle.js +20 -0
  371. package/dist/fn/style/animateCss.d.ts +13 -0
  372. package/dist/fn/style/animateCss.js +31 -0
  373. package/dist/fn/style/center.d.ts +16 -0
  374. package/dist/fn/style/center.js +40 -0
  375. package/dist/fn/style/cssExists.d.ts +12 -0
  376. package/dist/fn/style/cssExists.js +40 -0
  377. package/dist/fn/style/getCssVar.d.ts +7 -0
  378. package/dist/fn/style/getCssVar.js +12 -0
  379. package/dist/fn/style/getScrollBarSize.d.ts +2 -0
  380. package/dist/fn/style/getScrollBarSize.js +25 -0
  381. package/dist/fn/style/lightenDarkenHex.d.ts +20 -0
  382. package/dist/fn/style/lightenDarkenHex.js +45 -0
  383. package/dist/fn/style/outerHeight.d.ts +11 -0
  384. package/dist/fn/style/outerHeight.js +19 -0
  385. package/dist/fn/style/outerWidth.d.ts +10 -0
  386. package/dist/fn/style/outerWidth.js +16 -0
  387. package/dist/fn/style/resize.d.ts +2 -0
  388. package/dist/fn/style/resize.js +39 -0
  389. package/dist/fn/style/setCssVar.d.ts +8 -0
  390. package/dist/fn/style/setCssVar.js +14 -0
  391. package/dist/fn/type/checkType.d.ts +2 -0
  392. package/dist/fn/type/checkType.js +59 -0
  393. package/dist/fn/type/isArray.d.ts +14 -0
  394. package/dist/fn/type/isArray.js +23 -0
  395. package/dist/fn/type/isBlob.d.ts +9 -0
  396. package/dist/fn/type/isBlob.js +18 -0
  397. package/dist/fn/type/isBoolean.d.ts +16 -0
  398. package/dist/fn/type/isBoolean.js +25 -0
  399. package/dist/fn/type/isCanvas.d.ts +16 -0
  400. package/dist/fn/type/isCanvas.js +25 -0
  401. package/dist/fn/type/isColor.d.ts +31 -0
  402. package/dist/fn/type/isColor.js +45 -0
  403. package/dist/fn/type/isComment.d.ts +14 -0
  404. package/dist/fn/type/isComment.js +23 -0
  405. package/dist/fn/type/isCp.d.ts +2 -0
  406. package/dist/fn/type/isCp.js +17 -0
  407. package/dist/fn/type/isDate.d.ts +20 -0
  408. package/dist/fn/type/isDate.js +29 -0
  409. package/dist/fn/type/isDimension.d.ts +11 -0
  410. package/dist/fn/type/isDimension.js +24 -0
  411. package/dist/fn/type/isDom.d.ts +14 -0
  412. package/dist/fn/type/isDom.js +23 -0
  413. package/dist/fn/type/isEmail.d.ts +23 -0
  414. package/dist/fn/type/isEmail.js +37 -0
  415. package/dist/fn/type/isEmpty.d.ts +41 -0
  416. package/dist/fn/type/isEmpty.js +57 -0
  417. package/dist/fn/type/isEvent.d.ts +9 -0
  418. package/dist/fn/type/isEvent.js +18 -0
  419. package/dist/fn/type/isFunction.d.ts +16 -0
  420. package/dist/fn/type/isFunction.js +25 -0
  421. package/dist/fn/type/isHostname.d.ts +2 -0
  422. package/dist/fn/type/isHostname.js +16 -0
  423. package/dist/fn/type/isIP.d.ts +2 -0
  424. package/dist/fn/type/isIP.js +12 -0
  425. package/dist/fn/type/isInt.d.ts +18 -0
  426. package/dist/fn/type/isInt.js +27 -0
  427. package/dist/fn/type/isIterable.d.ts +27 -0
  428. package/dist/fn/type/isIterable.js +39 -0
  429. package/dist/fn/type/isNull.d.ts +14 -0
  430. package/dist/fn/type/isNull.js +23 -0
  431. package/dist/fn/type/isNumber.d.ts +19 -0
  432. package/dist/fn/type/isNumber.js +30 -0
  433. package/dist/fn/type/isObject.d.ts +19 -0
  434. package/dist/fn/type/isObject.js +28 -0
  435. package/dist/fn/type/isPercent.d.ts +14 -0
  436. package/dist/fn/type/isPercent.js +23 -0
  437. package/dist/fn/type/isPrimitive.d.ts +18 -0
  438. package/dist/fn/type/isPrimitive.js +27 -0
  439. package/dist/fn/type/isPromise.d.ts +18 -0
  440. package/dist/fn/type/isPromise.js +27 -0
  441. package/dist/fn/type/isPropSize.d.ts +2 -0
  442. package/dist/fn/type/isPropSize.js +12 -0
  443. package/dist/fn/type/isSQLDate.d.ts +10 -0
  444. package/dist/fn/type/isSQLDate.js +20 -0
  445. package/dist/fn/type/isSame.d.ts +41 -0
  446. package/dist/fn/type/isSame.js +72 -0
  447. package/dist/fn/type/isString.d.ts +14 -0
  448. package/dist/fn/type/isString.js +23 -0
  449. package/dist/fn/type/isSymbol.d.ts +15 -0
  450. package/dist/fn/type/isSymbol.js +24 -0
  451. package/dist/fn/type/isURL.d.ts +2 -0
  452. package/dist/fn/type/isURL.js +11 -0
  453. package/dist/fn/type/isValidDimension.d.ts +11 -0
  454. package/dist/fn/type/isValidDimension.js +24 -0
  455. package/dist/fn/type/isValidName.d.ts +27 -0
  456. package/dist/fn/type/isValidName.js +38 -0
  457. package/dist/fn/type/isValue.d.ts +26 -0
  458. package/dist/fn/type/isValue.js +36 -0
  459. package/dist/fn/type/isVue.d.ts +16 -0
  460. package/dist/fn/type/isVue.js +42 -0
  461. package/dist/fn.d.ts +4 -5
  462. package/dist/fn.js +226 -228
  463. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ import { extend } from "./extend";
2
+ /**
3
+ * Extends the bbn object by passing the namespace and the object it will merge with.
4
+ *
5
+ * This function is a self-centric shortcut for adding functions or proerties
6
+ * to the bbn object itself.
7
+ *
8
+ * @method autoExtend
9
+ * @global
10
+ * @example
11
+ * ```javascript
12
+ * bbn.fn.autoExtend("fn", {myOwnFunction: () => "Result of my own function"});
13
+ * bbn.fn.myOwnFunction();
14
+ * // Result of my own function
15
+ * ```
16
+ * @example
17
+ * ```javascript
18
+ * bbn.fn.autoExtend("env", {serverLanguage: "php"});
19
+ * bbn.env.sercerLanguage
20
+ * // php
21
+ * ```
22
+ * @example
23
+ * ```javascript
24
+ * bbn.fn.autoExtend("myProject", {name: "My Project"});
25
+ * bbn.myProject.name
26
+ * // Project
27
+ * ```
28
+ * @memberof bbn.fn
29
+ * @param {String} namespace The bbn property, existing or not, in which the object will be merged
30
+ * @param {Object} obj The object to merge
31
+ * @returns {undefined} No return value
32
+ */
33
+ const autoExtend = function (namespace, obj) {
34
+ if (!bbn[namespace]) {
35
+ bbn[namespace] = {};
36
+ //$.extend(true, bbn[namespace], obj);
37
+ extend(bbn[namespace], obj);
38
+ }
39
+ else {
40
+ // $.extend(true, bbn[namespace], obj);
41
+ extend(bbn[namespace], obj);
42
+ }
43
+ };
44
+ export { autoExtend };
@@ -0,0 +1,2 @@
1
+ declare const checkProps: (obj: object, props: string | string[], checkEmpty?: boolean) => boolean;
2
+ export { checkProps };
@@ -0,0 +1,5 @@
1
+ import { checkPropsDetails } from './checkPropsDetails';
2
+ const checkProps = function (obj, props, checkEmpty = false) {
3
+ return checkPropsDetails(obj, props, checkEmpty).result;
4
+ };
5
+ export { checkProps };
@@ -0,0 +1,2 @@
1
+ declare const checkPropsDetails: (obj: object, props: string | string[], checkEmpty?: boolean) => BbnResError;
2
+ export { checkPropsDetails };
@@ -0,0 +1,53 @@
1
+ import { isArray } from "../type/isArray";
2
+ import { isObject } from "../type/isObject";
3
+ import { each } from "../loop/each";
4
+ import { substr } from "../string/substr";
5
+ const checkPropsDetails = function (obj, props, checkEmpty = false) {
6
+ let res = {
7
+ error: false,
8
+ result: true,
9
+ };
10
+ if (typeof props === "string") {
11
+ props = [props];
12
+ }
13
+ if (!isArray(props)) {
14
+ res.error = bbn._("checkProps must receive a string or an array as props argument");
15
+ }
16
+ if (!isObject(obj)) {
17
+ res.error = bbn._("checkProps must receive an object as obj argument");
18
+ }
19
+ if (!res.error) {
20
+ let check;
21
+ each(props, (varName) => {
22
+ varName = varName.trim().split(":");
23
+ let type = varName[1] || false;
24
+ varName = varName[0];
25
+ if (obj[varName] === undefined) {
26
+ res.error = varName + " " + bbn._("is not defined");
27
+ }
28
+ else if (type) {
29
+ check =
30
+ "is" +
31
+ substr(type, 0, 1).toUpperCase() +
32
+ substr(type, 1).toLowerCase();
33
+ if (bbn.fn[check] === undefined) {
34
+ res.error = type + " " + bbn._("is not a valid type");
35
+ }
36
+ else if (!bbn.fn[check](obj[varName])) {
37
+ res.error = varName + " " + bbn._("is not a") + " " + type;
38
+ }
39
+ }
40
+ else if (checkEmpty && !obj[varName]) {
41
+ res.error = varName + " " + bbn._("is empty");
42
+ }
43
+ if (res.error) {
44
+ return false;
45
+ }
46
+ });
47
+ }
48
+ if (res.error) {
49
+ res.result = false;
50
+ }
51
+ return res;
52
+ };
53
+ export { checkPropsDetails };
@@ -0,0 +1,2 @@
1
+ declare const checkPropsOrDie: (obj: object, props: string | string[], checkEmpty?: boolean) => boolean;
2
+ export { checkPropsOrDie };
@@ -0,0 +1,9 @@
1
+ import { checkPropsDetails } from "./checkPropsDetails";
2
+ const checkPropsOrDie = function (obj, props, checkEmpty = false) {
3
+ let res = checkPropsDetails(obj, props, checkEmpty);
4
+ if (res.error) {
5
+ throw new Error(res.error);
6
+ }
7
+ return true;
8
+ };
9
+ export { checkPropsOrDie };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns a function to give to JSON.stringify in order to avoid circular values.
3
+ *
4
+ * @returns Function
5
+ */
6
+ declare const circularReplacer: () => (key: any, value: any) => any;
7
+ export { circularReplacer };
@@ -0,0 +1,39 @@
1
+ import { isDom } from "../type/isDom";
2
+ import { isCp } from "../type/isCp";
3
+ import { log } from "../browser/log";
4
+ /**
5
+ * Returns a function to give to JSON.stringify in order to avoid circular values.
6
+ *
7
+ * @returns Function
8
+ */
9
+ const circularReplacer = function () {
10
+ const visited = new WeakSet();
11
+ return (key, value) => {
12
+ if (typeof value === "object" && value !== null) {
13
+ if (visited.has(value)) {
14
+ return;
15
+ }
16
+ visited.add(value);
17
+ if (![undefined, Object, Array, null].includes(value.constructor)) {
18
+ if (isDom(value)) {
19
+ if (value.bbnId) {
20
+ value =
21
+ "__BBN_DOM__" + value.tagName + "/" + value.bbnId + value.bbnHash;
22
+ }
23
+ else {
24
+ value = "__BBN_DOM__" + value.tagName + "/" + value.className;
25
+ }
26
+ }
27
+ else if (isCp(value)) {
28
+ log("IS CP");
29
+ value = "__BBN_CP__" + value.$options.name + "/" + value.$cid;
30
+ }
31
+ else {
32
+ value = value.constructor.toString();
33
+ }
34
+ }
35
+ }
36
+ return value;
37
+ };
38
+ };
39
+ export { circularReplacer };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Creates and returns a perfect clone - but different - from the given object.
3
+ *
4
+ * @method clone
5
+ * @global
6
+ * @example
7
+ * ```javascript
8
+ * let obj = {name: "Thomas"};
9
+ * let objCopy = bbn.fn.clone(obj);
10
+ * obj.name = "Julie";
11
+ * // obj: {name: "Julie"}
12
+ * // objCopy: {name: "Thomas"}
13
+ * ```
14
+ * @memberof bbn.fn
15
+ * @param {Object} obj The source object
16
+ * @returns {Object} A new object
17
+ */
18
+ declare const clone: (obj: any) => any;
19
+ export { clone };
@@ -0,0 +1,33 @@
1
+ import { isArray } from "../type/isArray";
2
+ import { isObject } from "../type/isObject";
3
+ import { extend } from "./extend";
4
+ /**
5
+ * Creates and returns a perfect clone - but different - from the given object.
6
+ *
7
+ * @method clone
8
+ * @global
9
+ * @example
10
+ * ```javascript
11
+ * let obj = {name: "Thomas"};
12
+ * let objCopy = bbn.fn.clone(obj);
13
+ * obj.name = "Julie";
14
+ * // obj: {name: "Julie"}
15
+ * // objCopy: {name: "Thomas"}
16
+ * ```
17
+ * @memberof bbn.fn
18
+ * @param {Object} obj The source object
19
+ * @returns {Object} A new object
20
+ */
21
+ const clone = function (obj) {
22
+ if (isArray(obj)) {
23
+ return obj.slice().map((a) => {
24
+ return typeof a === "object" ? clone(a) : a;
25
+ });
26
+ }
27
+ if (isObject(obj)) {
28
+ const o = Object.create(Object.getPrototypeOf(obj));
29
+ return extend(true, o, obj);
30
+ }
31
+ return obj;
32
+ };
33
+ export { clone };
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Performs a comparison between two values based on the given operator and returns a boolean.
3
+ *
4
+ * It is internally used by all the filtering functions; the available operators are:
5
+ * - _===_, _=_, _equal_, _eq_, _is_, which stand for __===__
6
+ * - _!==_, _notequal_, _neq_, _isnot_, which stand for __!==__
7
+ * - _!=_, _different_, which stand for __!=__
8
+ * - _contains_, _contain_, _icontains_, _icontain_
9
+ * - _starts_, _start_
10
+ * - _startswith_, _startsi_, _starti_, _istarts_, _istart_
11
+ * - _endswith_, _endsi_, _endi_, _iends_, _iend_
12
+ * - _like_
13
+ * - _gt_, _>_, which stand for __>__
14
+ * - _lt_, _<_, which stand for __<__
15
+ * - _gte_, _>=_, which stand for __>=__
16
+ * - _lte_, _<=_, which stand for __<=__
17
+ * - _isnull_, which stands for __=== null__
18
+ * - _isnotnull_, which stands for __!== null__
19
+ * - _isempty_, which stands for __=== ''__
20
+ * - _isnotempty_, which stands for __!== ''__
21
+ *
22
+ * The defaut operator (if none is given) is __==__ .
23
+ *
24
+ * @method compare
25
+ * @global
26
+ * @example
27
+ * ```javascript
28
+ * bbn.fn.compare('foo', 'bar', 'eq');
29
+ * // false
30
+ * ```
31
+ * @example
32
+ * ```javascript
33
+ * bbn.fn.compare('foo', 'bar', 'neq');
34
+ * // true
35
+ * ```
36
+ * @example
37
+ * ```javascript
38
+ * bbn.fn.compare(3, 1, '>');
39
+ * // true
40
+ * ```
41
+ * @example
42
+ * ```javascript
43
+ * bbn.fn.compare("JavaScript", "script", 'contain');
44
+ * // true
45
+ * ```
46
+ * @memberof bbn.fn
47
+ * @param {String|Number} v1
48
+ * @param {String|Number} v2
49
+ * @param {String} operator
50
+ * @returns {Boolean} True if the values' comparison complies with the operator, false otherwise
51
+ */
52
+ declare const compare: (v1: any, v2: any, operator: any) => boolean;
53
+ export { compare };
@@ -0,0 +1,150 @@
1
+ import { isEmpty } from '../type/isEmpty';
2
+ import { removeAccents } from '../string/removeAccents';
3
+ import { isNull } from '../type/isNull';
4
+ import { isObject } from '../type/isObject';
5
+ import { isSame } from '../type/isSame';
6
+ /**
7
+ * Performs a comparison between two values based on the given operator and returns a boolean.
8
+ *
9
+ * It is internally used by all the filtering functions; the available operators are:
10
+ * - _===_, _=_, _equal_, _eq_, _is_, which stand for __===__
11
+ * - _!==_, _notequal_, _neq_, _isnot_, which stand for __!==__
12
+ * - _!=_, _different_, which stand for __!=__
13
+ * - _contains_, _contain_, _icontains_, _icontain_
14
+ * - _starts_, _start_
15
+ * - _startswith_, _startsi_, _starti_, _istarts_, _istart_
16
+ * - _endswith_, _endsi_, _endi_, _iends_, _iend_
17
+ * - _like_
18
+ * - _gt_, _>_, which stand for __>__
19
+ * - _lt_, _<_, which stand for __<__
20
+ * - _gte_, _>=_, which stand for __>=__
21
+ * - _lte_, _<=_, which stand for __<=__
22
+ * - _isnull_, which stands for __=== null__
23
+ * - _isnotnull_, which stands for __!== null__
24
+ * - _isempty_, which stands for __=== ''__
25
+ * - _isnotempty_, which stands for __!== ''__
26
+ *
27
+ * The defaut operator (if none is given) is __==__ .
28
+ *
29
+ * @method compare
30
+ * @global
31
+ * @example
32
+ * ```javascript
33
+ * bbn.fn.compare('foo', 'bar', 'eq');
34
+ * // false
35
+ * ```
36
+ * @example
37
+ * ```javascript
38
+ * bbn.fn.compare('foo', 'bar', 'neq');
39
+ * // true
40
+ * ```
41
+ * @example
42
+ * ```javascript
43
+ * bbn.fn.compare(3, 1, '>');
44
+ * // true
45
+ * ```
46
+ * @example
47
+ * ```javascript
48
+ * bbn.fn.compare("JavaScript", "script", 'contain');
49
+ * // true
50
+ * ```
51
+ * @memberof bbn.fn
52
+ * @param {String|Number} v1
53
+ * @param {String|Number} v2
54
+ * @param {String} operator
55
+ * @returns {Boolean} True if the values' comparison complies with the operator, false otherwise
56
+ */
57
+ const compare = function (v1, v2, operator) {
58
+ switch (operator) {
59
+ case '===':
60
+ case '=':
61
+ case 'equal':
62
+ case 'eq':
63
+ case 'is':
64
+ return v1 === v2;
65
+ case '!==':
66
+ case 'notequal':
67
+ case 'neq':
68
+ case 'isnot':
69
+ return v1 !== v2;
70
+ case '!=':
71
+ case 'different':
72
+ return v1 != v2;
73
+ case 'contains':
74
+ case 'contain':
75
+ case 'icontains':
76
+ case 'icontain':
77
+ if (isEmpty(v1) || isEmpty(v2)) {
78
+ return false;
79
+ }
80
+ return removeAccents(v1).toLowerCase().indexOf(removeAccents(v2).toLowerCase()) !== -1;
81
+ case 'doesnotcontain':
82
+ case 'donotcontain':
83
+ if (isNull(v1) || isNull(v2)) {
84
+ return true;
85
+ }
86
+ return removeAccents(v1.toLowerCase()).indexOf(removeAccents(v2.toLowerCase())) === -1;
87
+ case 'starts':
88
+ case 'start':
89
+ if (isNull(v1) || isNull(v2)) {
90
+ return false;
91
+ }
92
+ if (typeof v1 !== 'string') {
93
+ v1 = v1.toString() || '';
94
+ }
95
+ if (typeof v2 !== 'string') {
96
+ v2 = v2.toString() || '';
97
+ }
98
+ return v1.indexOf(v2) === 0;
99
+ case 'startswith':
100
+ case 'startsi':
101
+ case 'starti':
102
+ case 'istarts':
103
+ case 'istart':
104
+ if (isNull(v1) || isNull(v2)) {
105
+ return false;
106
+ }
107
+ return removeAccents(v1).toLowerCase().indexOf(removeAccents(v2).toLowerCase()) === 0;
108
+ case 'endswith':
109
+ case 'endsi':
110
+ case 'endi':
111
+ case 'iends':
112
+ case 'iend':
113
+ if (isNull(v1) || isNull(v2)) {
114
+ return false;
115
+ }
116
+ return v1.lastIndexOf(v2) === v1.length - v2.length;
117
+ case 'like':
118
+ if (isNull(v1) || isNull(v2)) {
119
+ return false;
120
+ }
121
+ return removeAccents(v1).toLowerCase() === removeAccents(v2).toLowerCase();
122
+ case 'gt':
123
+ case '>':
124
+ return v1 > v2;
125
+ case 'gte':
126
+ case '>=':
127
+ return v1 >= v2;
128
+ case 'lt':
129
+ case '<':
130
+ return v1 < v2;
131
+ case 'lte':
132
+ case '<=':
133
+ return v1 <= v2;
134
+ case 'isnull':
135
+ return v1 === null;
136
+ case 'isnotnull':
137
+ return v1 !== null;
138
+ case 'isempty':
139
+ return v1 === '';
140
+ case 'isnotempty':
141
+ return v1 !== '';
142
+ case '==':
143
+ if (isObject(v1, v2)) {
144
+ return isSame(v1, v2);
145
+ }
146
+ default:
147
+ return v1 == v2;
148
+ }
149
+ };
150
+ export { compare };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Checks whether the given data object complies or not with the given filter.
3
+ *
4
+ * The filter format must be full (i.e. with the properties logic and conditions) such as
5
+ * seen in the function bbn.fn.search and can be generated by the function bbn.fn.filterToConditions.
6
+ *
7
+ * @method compareConditions
8
+ * @global
9
+ * @example
10
+ * ```javascript
11
+ * let item = {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589};
12
+ * bbn.fn.compareConditions(item, {
13
+ * logic: "AND",
14
+ * conditions: [
15
+ * {
16
+ * field: "director",
17
+ * value: "Steven Spielberg"
18
+ * }
19
+ * ]
20
+ * });
21
+ * // true
22
+ * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Soderberg"}));
23
+ * // false
24
+ * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Spielberg"}));
25
+ * // true
26
+ * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({year: 1980}, ">"));
27
+ * // true
28
+ * bbn.fn.compareConditions(item, {
29
+ * logic: "AND",
30
+ * conditions: [
31
+ * {
32
+ * field: "year",
33
+ * operator: "<",
34
+ * value: 1980
35
+ * }
36
+ * ]
37
+ * });
38
+ * // false
39
+ * ```
40
+ * @memberof bbn.fn
41
+ * @param {Object} data
42
+ * @param {Object} filter
43
+ * @returns {Boolean}
44
+ */
45
+ declare const compareConditions: (data: any, filter: any) => boolean;
46
+ export { compareConditions };
@@ -0,0 +1,86 @@
1
+ import { isArray } from "../type/isArray";
2
+ import { each } from "../loop/each";
3
+ import { compare } from "./compare";
4
+ import { getProperty } from "./getProperty";
5
+ /**
6
+ * Checks whether the given data object complies or not with the given filter.
7
+ *
8
+ * The filter format must be full (i.e. with the properties logic and conditions) such as
9
+ * seen in the function bbn.fn.search and can be generated by the function bbn.fn.filterToConditions.
10
+ *
11
+ * @method compareConditions
12
+ * @global
13
+ * @example
14
+ * ```javascript
15
+ * let item = {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589};
16
+ * bbn.fn.compareConditions(item, {
17
+ * logic: "AND",
18
+ * conditions: [
19
+ * {
20
+ * field: "director",
21
+ * value: "Steven Spielberg"
22
+ * }
23
+ * ]
24
+ * });
25
+ * // true
26
+ * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Soderberg"}));
27
+ * // false
28
+ * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: "Steven Spielberg"}));
29
+ * // true
30
+ * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({year: 1980}, ">"));
31
+ * // true
32
+ * bbn.fn.compareConditions(item, {
33
+ * logic: "AND",
34
+ * conditions: [
35
+ * {
36
+ * field: "year",
37
+ * operator: "<",
38
+ * value: 1980
39
+ * }
40
+ * ]
41
+ * });
42
+ * // false
43
+ * ```
44
+ * @memberof bbn.fn
45
+ * @param {Object} data
46
+ * @param {Object} filter
47
+ * @returns {Boolean}
48
+ */
49
+ const compareConditions = function (data, filter) {
50
+ if (!filter.conditions || !filter.logic || !isArray(filter.conditions)) {
51
+ throw new Error("Error in compareConditions: the filter should an abject with conditions and logic properties and conditions should be an array of objects");
52
+ }
53
+ let ok = filter.logic === "AND" ? true : false;
54
+ each(filter.conditions, (a) => {
55
+ let comparator;
56
+ if (a.conditions && isArray(a.conditions)) {
57
+ comparator = compareConditions(data, a);
58
+ }
59
+ else {
60
+ comparator = compare(getProperty(data, a.field), a.value, a.operator);
61
+ if (comparator) {
62
+ let bits = a.field.split(".");
63
+ let prop = bits.pop();
64
+ if (bits.length) {
65
+ each(bits, (b) => (data = data[b]));
66
+ }
67
+ // Case where both are undefined: value and prop which doesn't exist; they are not the same!
68
+ if (getProperty(data, prop) === undefined && a.value !== undefined) {
69
+ comparator = false;
70
+ }
71
+ }
72
+ }
73
+ if (comparator) {
74
+ if (filter.logic === "OR") {
75
+ ok = true;
76
+ return false;
77
+ }
78
+ }
79
+ else if (filter.logic === "AND") {
80
+ ok = false;
81
+ return false;
82
+ }
83
+ });
84
+ return ok;
85
+ };
86
+ export { compareConditions };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Counts the number of objects matching the given filter in the given array.
3
+ *
4
+ * The arguments follow the same scheme as bbn.fn.search.
5
+ *
6
+ * @method count
7
+ * @global
8
+ * @example
9
+ * ```javascript
10
+ * let ar = [
11
+ * {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589},
12
+ * {name: "Goonies", director: "Richard Donner", year: 1985, id: 689},
13
+ * {name: "Star wars", director: "George Lucas", year: 1977, id: 256},
14
+ * {name: "Jaws", director: "Steven Spielberg", year: 1975, id: 423}
15
+ * ];
16
+ * bbn.fn.count(ar, "id", 256);
17
+ * // 1
18
+ * bbn.fn.count(ar, {director: "Steven Spielberg"});
19
+ * // 2
20
+ * bbn.fn.search(ar, "year", 1975, ">");
21
+ * // 3
22
+ * // Complex filters: all the movies from Spielberg between 1974 and 1980
23
+ * bbn.fn.search(ar, {
24
+ * logic: "AND",
25
+ * conditions: [
26
+ * {
27
+ * field: "director",
28
+ * operator: "eq",
29
+ * value: "Steven Spielberg"
30
+ * }, {
31
+ * logic: "AND",
32
+ * conditions: [
33
+ * {
34
+ * field: "year",
35
+ * operator: ">=",
36
+ * value: 1974
37
+ * }, {
38
+ * field: "year",
39
+ * operator: "<=",
40
+ * value: 1980
41
+ * }
42
+ * ]
43
+ * }
44
+ * ]
45
+ * });
46
+ * // 1
47
+ * ```
48
+ * @memberof bbn.fn
49
+ * @param {Array} arr The subject array
50
+ * @param {(String|Object|Function)} prop A property's name or a filter object or function
51
+ * @param {*} val The value with which comparing the given property
52
+ * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
53
+ * @returns {Number} The number of items
54
+ */
55
+ declare const count: (arr: any[], prop: object | string, val?: any, operator?: string) => number;
56
+ export { count };
@@ -0,0 +1,59 @@
1
+ import { filter } from './filter';
2
+ /**
3
+ * Counts the number of objects matching the given filter in the given array.
4
+ *
5
+ * The arguments follow the same scheme as bbn.fn.search.
6
+ *
7
+ * @method count
8
+ * @global
9
+ * @example
10
+ * ```javascript
11
+ * let ar = [
12
+ * {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589},
13
+ * {name: "Goonies", director: "Richard Donner", year: 1985, id: 689},
14
+ * {name: "Star wars", director: "George Lucas", year: 1977, id: 256},
15
+ * {name: "Jaws", director: "Steven Spielberg", year: 1975, id: 423}
16
+ * ];
17
+ * bbn.fn.count(ar, "id", 256);
18
+ * // 1
19
+ * bbn.fn.count(ar, {director: "Steven Spielberg"});
20
+ * // 2
21
+ * bbn.fn.search(ar, "year", 1975, ">");
22
+ * // 3
23
+ * // Complex filters: all the movies from Spielberg between 1974 and 1980
24
+ * bbn.fn.search(ar, {
25
+ * logic: "AND",
26
+ * conditions: [
27
+ * {
28
+ * field: "director",
29
+ * operator: "eq",
30
+ * value: "Steven Spielberg"
31
+ * }, {
32
+ * logic: "AND",
33
+ * conditions: [
34
+ * {
35
+ * field: "year",
36
+ * operator: ">=",
37
+ * value: 1974
38
+ * }, {
39
+ * field: "year",
40
+ * operator: "<=",
41
+ * value: 1980
42
+ * }
43
+ * ]
44
+ * }
45
+ * ]
46
+ * });
47
+ * // 1
48
+ * ```
49
+ * @memberof bbn.fn
50
+ * @param {Array} arr The subject array
51
+ * @param {(String|Object|Function)} prop A property's name or a filter object or function
52
+ * @param {*} val The value with which comparing the given property
53
+ * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
54
+ * @returns {Number} The number of items
55
+ */
56
+ const count = function (arr, prop, val = null, operator = '=') {
57
+ return filter(arr, prop, val, operator).length || 0;
58
+ };
59
+ export { count };
@@ -0,0 +1,2 @@
1
+ declare const createObject: (...args: any[]) => any;
2
+ export { createObject };