@bbn/bbn 1.0.59 → 1.0.60

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 +4061 -502
  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 +37 -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,9 @@
1
+ import { extend } from './extend';
2
+ const createObject = function (...args) {
3
+ const obj = Object.create(null);
4
+ if (args.length) {
5
+ extend(obj, ...args);
6
+ }
7
+ return obj;
8
+ };
9
+ export { createObject };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Retrieves all elements of a hierarchical array corresponding to the filter.
3
+ *
4
+ * The arguments follow the same scheme as bbn.fn.search.
5
+ *
6
+ * @method findAll
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
+ * @todo Do the doc!
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
+ declare const deepPath: (arr: any[], filter: object, deepProperty: string, res?: any[]) => false | any[];
57
+ export { deepPath };
@@ -0,0 +1,78 @@
1
+ import { search } from './search';
2
+ import { each } from '../loop/each';
3
+ import { isArray } from '../type/isArray';
4
+ /**
5
+ * Retrieves all elements of a hierarchical array corresponding to the filter.
6
+ *
7
+ * The arguments follow the same scheme as bbn.fn.search.
8
+ *
9
+ * @method findAll
10
+ * @global
11
+ * @example
12
+ * ```javascript
13
+ * let ar = [
14
+ * {name: "Raiders of the lost ark", director: "Steven Spielberg", year: 1981, id: 589},
15
+ * {name: "Goonies", director: "Richard Donner", year: 1985, id: 689},
16
+ * {name: "Star wars", director: "George Lucas", year: 1977, id: 256},
17
+ * {name: "Jaws", director: "Steven Spielberg", year: 1975, id: 423}
18
+ * ];
19
+ * bbn.fn.count(ar, "id", 256);
20
+ * // 1
21
+ * bbn.fn.count(ar, {director: "Steven Spielberg"});
22
+ * // 2
23
+ * bbn.fn.search(ar, "year", 1975, ">");
24
+ * // 3
25
+ * // Complex filters: all the movies from Spielberg between 1974 and 1980
26
+ * bbn.fn.search(ar, {
27
+ * logic: "AND",
28
+ * conditions: [
29
+ * {
30
+ * field: "director",
31
+ * operator: "eq",
32
+ * value: "Steven Spielberg"
33
+ * }, {
34
+ * logic: "AND",
35
+ * conditions: [
36
+ * {
37
+ * field: "year",
38
+ * operator: ">=",
39
+ * value: 1974
40
+ * }, {
41
+ * field: "year",
42
+ * operator: "<=",
43
+ * value: 1980
44
+ * }
45
+ * ]
46
+ * }
47
+ * ]
48
+ * });
49
+ * // 1
50
+ * ```
51
+ * @memberof bbn.fn
52
+ * @todo Do the doc!
53
+ * @param {Array} arr The subject array
54
+ * @param {(String|Object|Function)} prop A property's name or a filter object or function
55
+ * @param {*} val The value with which comparing the given property
56
+ * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare
57
+ * @returns {Number} The number of items
58
+ */
59
+ const deepPath = function (arr, filter, deepProperty, res = []) {
60
+ let idx;
61
+ let start = 0;
62
+ if ((idx = search(arr, filter, start)) > -1) {
63
+ res.push(idx);
64
+ return res;
65
+ }
66
+ each(arr, (it, i) => {
67
+ if (isArray(it[deepProperty])) {
68
+ let r = res.slice();
69
+ r.push(i);
70
+ let tmp = deepPath(it[deepProperty], filter, deepProperty, r);
71
+ if (tmp !== false) {
72
+ return tmp;
73
+ }
74
+ }
75
+ });
76
+ return false;
77
+ };
78
+ export { deepPath };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Gets the given property from the given object
3
+ * @param {Object} obj
4
+ * @param {String} prop
5
+ * @returns
6
+ */
7
+ declare const deleteProp: (obj: object, prop: string) => void;
8
+ export { deleteProp };
@@ -0,0 +1,13 @@
1
+ import { checkType } from "../type/checkType";
2
+ /**
3
+ * Gets the given property from the given object
4
+ * @param {Object} obj
5
+ * @param {String} prop
6
+ * @returns
7
+ */
8
+ const deleteProp = function (obj, prop) {
9
+ checkType(obj, "object", bbn._("The obj must be an object in setProp"));
10
+ checkType(prop, "string", bbn._("The prop must be a string in setProp"));
11
+ delete obj[prop];
12
+ };
13
+ export { deleteProp };
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Returns an object describing the differences for transforming the first given object into the second.
3
+ *
4
+ * The returned data will use the objects properties as keys. If unchanged is set to true, all the
5
+ * properties will be returned, otherwise only the different ones. Each of these keys will have the
6
+ * following properties:
7
+ * - type: can be _modified_, _created_, _deleted_, and if unchanged is set to true _unchanged_
8
+ * - data: the first object's property's value, or the second if type is _created_
9
+ * - newData: the second object's property's value in case of type _updated_
10
+ *
11
+ * @method diffObj
12
+ * @global
13
+ * @example
14
+ * ```javascript
15
+ * bbn.fn.diffObj(
16
+ * {
17
+ * name: "Thomas",
18
+ * age: 45
19
+ * }, {
20
+ * name: "Eva",
21
+ * sex: "Female",
22
+ * retired: false
23
+ * }
24
+ * );
25
+ * // {
26
+ * // name: {
27
+ * // type: "updated",
28
+ * // data: "Thomas",
29
+ * // newData: "Eva"
30
+ * // },
31
+ * // age: {
32
+ * // type: "deleted",
33
+ * // data: 45
34
+ * // },
35
+ * // sex: {
36
+ * // type: "created",
37
+ * // data: "Female"
38
+ * // },
39
+ * // retired: {
40
+ * // type: "created",
41
+ * // data: false
42
+ * // }
43
+ * // }
44
+ * ```
45
+ * @example
46
+ * ```javascript
47
+ * bbn.fn.diffObj(
48
+ * {pupil: "Agnes Varda", grade: {year: "B", month: "A"}},
49
+ * {pupil: "Luc Besson", grade: {year: "C", month: "D"}}
50
+ * );
51
+ * // {
52
+ * // "pupil": {
53
+ * // "type": "updated",
54
+ * // "data": "Agnes Varda",
55
+ * // "newData": "Luc Besson"
56
+ * // },
57
+ * // "grade": {
58
+ * // "year": {
59
+ * // "type": "updated",
60
+ * // "data": "B",
61
+ * // "newData": "C"
62
+ * // },
63
+ * // "month": {
64
+ * // "type": "updated",
65
+ * // "data": "A",
66
+ * // "newData": "D"
67
+ * // }
68
+ * // }
69
+ * // }
70
+ * ```
71
+ * @memberof bbn.fn
72
+ * @param {Object} obj1
73
+ * @param {Object} obj2
74
+ * @param {String} unchanged
75
+ * @param {Boolean} notRoot
76
+ * @returns {Object}
77
+ */
78
+ declare const diffObj: (obj1: object, obj2: object, unchanged?: boolean, notRoot?: boolean) => any;
79
+ export { diffObj };
@@ -0,0 +1,168 @@
1
+ import { isDate } from '../type/isDate';
2
+ import { createObject } from './createObject';
3
+ import { isFunction } from '../type/isFunction';
4
+ import { isValue } from '../type/isValue';
5
+ import { isDom } from '../type/isDom';
6
+ import { numProperties } from './numProperties';
7
+ let diffObjProcessed = [];
8
+ /**
9
+ * Returns an object describing the differences for transforming the first given object into the second.
10
+ *
11
+ * The returned data will use the objects properties as keys. If unchanged is set to true, all the
12
+ * properties will be returned, otherwise only the different ones. Each of these keys will have the
13
+ * following properties:
14
+ * - type: can be _modified_, _created_, _deleted_, and if unchanged is set to true _unchanged_
15
+ * - data: the first object's property's value, or the second if type is _created_
16
+ * - newData: the second object's property's value in case of type _updated_
17
+ *
18
+ * @method diffObj
19
+ * @global
20
+ * @example
21
+ * ```javascript
22
+ * bbn.fn.diffObj(
23
+ * {
24
+ * name: "Thomas",
25
+ * age: 45
26
+ * }, {
27
+ * name: "Eva",
28
+ * sex: "Female",
29
+ * retired: false
30
+ * }
31
+ * );
32
+ * // {
33
+ * // name: {
34
+ * // type: "updated",
35
+ * // data: "Thomas",
36
+ * // newData: "Eva"
37
+ * // },
38
+ * // age: {
39
+ * // type: "deleted",
40
+ * // data: 45
41
+ * // },
42
+ * // sex: {
43
+ * // type: "created",
44
+ * // data: "Female"
45
+ * // },
46
+ * // retired: {
47
+ * // type: "created",
48
+ * // data: false
49
+ * // }
50
+ * // }
51
+ * ```
52
+ * @example
53
+ * ```javascript
54
+ * bbn.fn.diffObj(
55
+ * {pupil: "Agnes Varda", grade: {year: "B", month: "A"}},
56
+ * {pupil: "Luc Besson", grade: {year: "C", month: "D"}}
57
+ * );
58
+ * // {
59
+ * // "pupil": {
60
+ * // "type": "updated",
61
+ * // "data": "Agnes Varda",
62
+ * // "newData": "Luc Besson"
63
+ * // },
64
+ * // "grade": {
65
+ * // "year": {
66
+ * // "type": "updated",
67
+ * // "data": "B",
68
+ * // "newData": "C"
69
+ * // },
70
+ * // "month": {
71
+ * // "type": "updated",
72
+ * // "data": "A",
73
+ * // "newData": "D"
74
+ * // }
75
+ * // }
76
+ * // }
77
+ * ```
78
+ * @memberof bbn.fn
79
+ * @param {Object} obj1
80
+ * @param {Object} obj2
81
+ * @param {String} unchanged
82
+ * @param {Boolean} notRoot
83
+ * @returns {Object}
84
+ */
85
+ const diffObj = function (obj1, obj2, unchanged = false, notRoot = false) {
86
+ if (!notRoot) {
87
+ diffObjProcessed = [];
88
+ }
89
+ let VALUE_CREATED = 'created', VALUE_UPDATED = 'updated', VALUE_DELETED = 'deleted', VALUE_UNCHANGED = 'unchanged', _compareValues = function (value1, value2) {
90
+ if (value1 === value2) {
91
+ return VALUE_UNCHANGED;
92
+ }
93
+ if (isDate(value1) && isDate(value2) && value1.getTime() === value2.getTime()) {
94
+ return VALUE_UNCHANGED;
95
+ }
96
+ if ('undefined' == typeof value1) {
97
+ return VALUE_CREATED;
98
+ }
99
+ if ('undefined' == typeof value2) {
100
+ return VALUE_DELETED;
101
+ }
102
+ return VALUE_UPDATED;
103
+ };
104
+ if (notRoot === undefined) {
105
+ notRoot = false;
106
+ }
107
+ let diff = createObject();
108
+ if (!isFunction(obj1) && !isFunction(obj2)) {
109
+ if (isValue(obj1) || isValue(obj2)) {
110
+ let res = _compareValues(obj1, obj2);
111
+ if (unchanged || res !== VALUE_UNCHANGED) {
112
+ let ret = createObject();
113
+ Object.defineProperty(ret, 'type', {
114
+ value: res,
115
+ enumerable: false,
116
+ });
117
+ Object.defineProperty(ret, 'data', {
118
+ value: obj1 === undefined ? obj2 : obj1,
119
+ enumerable: false,
120
+ });
121
+ Object.defineProperty(ret, '_bbnDiffObjProof', {
122
+ value: true,
123
+ enumerable: false,
124
+ });
125
+ if (obj1 !== undefined) {
126
+ Object.defineProperty(ret, 'newData', {
127
+ value: obj2,
128
+ enumerable: false,
129
+ });
130
+ }
131
+ return ret;
132
+ }
133
+ return false;
134
+ }
135
+ if (isDom(obj1) || isDom(obj2)) {
136
+ return false;
137
+ }
138
+ if (diffObjProcessed.includes(obj1) || diffObjProcessed.includes(obj2)) {
139
+ //error(bbn._("Can't compare objects because they contain circular references"));
140
+ return false;
141
+ }
142
+ diffObjProcessed.push(obj1, obj2);
143
+ for (let key in obj1) {
144
+ if (isFunction(obj1[key])) {
145
+ continue;
146
+ }
147
+ let value2 = undefined;
148
+ if ('undefined' != typeof obj2[key]) {
149
+ value2 = obj2[key];
150
+ }
151
+ let res = diffObj(obj1[key], value2, unchanged, true);
152
+ if (res) {
153
+ diff[key] = res;
154
+ }
155
+ }
156
+ for (let key in obj2) {
157
+ if (isFunction(obj2[key]) || 'undefined' != typeof obj1[key]) {
158
+ continue;
159
+ }
160
+ let res = diffObj(undefined, obj2[key], unchanged, true);
161
+ if (res) {
162
+ diff[key] = res;
163
+ }
164
+ }
165
+ }
166
+ return !notRoot || unchanged || numProperties(diff) ? diff : false;
167
+ };
168
+ export { diffObj };
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Merges the contents of two or more objects together into the first object.
3
+ *
4
+ * A boolean true argument can be done to operate a deep extend. In this case,
5
+ * the content of properties or subproperties arrays and objects will also be merged.
6
+ *
7
+ * @method extend
8
+ * @global
9
+ * @example
10
+ * ```javascript
11
+ * bbn.fn.extend(
12
+ * {prop1: 10, prop2: 20},
13
+ * {prop1: 11, prop3: 21},
14
+ * {prop2: 22, prop4: false},
15
+ * {prop5: false, prop3: 45}
16
+ * );
17
+ * // {prop1: 11, prop2: 22, prop3: 45, prop4: false, prop5: false}
18
+ * ```
19
+ * @example
20
+ * ```javascript
21
+ * bbn.fn.extend(
22
+ * {
23
+ * prop1: [3, 5, 6],
24
+ * prop2: {
25
+ * subprop1: 87,
26
+ * subprop2: 100
27
+ * }
28
+ * }, {
29
+ * prop1: 11,
30
+ * prop3: [8, 12, {aProperty: 1, anotherProperty: true}, 26]
31
+ * }, {
32
+ * prop2: {
33
+ * subprop1: 90,
34
+ * subprop3: 25
35
+ * },
36
+ * prop4: false
37
+ * }, {
38
+ * prop5: false,
39
+ * prop3: [8, 45, {anotherProperty: false, andAnother: true}]
40
+ * }
41
+ * );
42
+ * // {
43
+ * // prop1: 11,
44
+ * // prop2: {subprop1: 90, subprop3: 25},
45
+ * // prop3: [8, 45, {anotherProperty: false, andAnother: true}],
46
+ * // prop4: false,
47
+ * // prop5: false
48
+ * // }
49
+ * ```
50
+ * @example
51
+ * ```javascript
52
+ * // Deep
53
+ * bbn.fn.extend(
54
+ * true,
55
+ * {
56
+ * prop1: [3, 5, 6],
57
+ * prop2: {
58
+ * subprop1: 87,
59
+ * subprop2: 100
60
+ * }
61
+ * }, {
62
+ * prop1: 11,
63
+ * prop3: [8, 12, {aProperty: 1, anotherProperty: true}, 26]
64
+ * }, {
65
+ * prop2: {
66
+ * subprop1: 90,
67
+ * subprop3: 25
68
+ * },
69
+ * prop4: false
70
+ * }, {
71
+ * prop5: false,
72
+ * prop3: [8, 45, {anotherProperty: false, andAnother: true}]
73
+ * }
74
+ * );
75
+ * // {
76
+ * // prop1: 11,
77
+ * // prop2: {subprop1: 90, subprop3: 25},
78
+ * // prop3: [8, 45, {aProperty: 1, anotherProperty: false, andAnother: true}, 26],
79
+ * // prop4: false,
80
+ * // prop5: false
81
+ * // }
82
+ * ```
83
+ * @memberof bbn.fn
84
+ * @returns {Object} The first object argument, merged with the other objects given
85
+ */
86
+ declare const extend: (...originalArgs: (boolean | object)[]) => any;
87
+ export { extend };
@@ -0,0 +1,158 @@
1
+ import { iterate } from "../loop/iterate";
2
+ import { isArray } from "../type/isArray";
3
+ import { each } from "../loop/each";
4
+ import { isObject } from "../type/isObject";
5
+ /**
6
+ * Merges the contents of two or more objects together into the first object.
7
+ *
8
+ * A boolean true argument can be done to operate a deep extend. In this case,
9
+ * the content of properties or subproperties arrays and objects will also be merged.
10
+ *
11
+ * @method extend
12
+ * @global
13
+ * @example
14
+ * ```javascript
15
+ * bbn.fn.extend(
16
+ * {prop1: 10, prop2: 20},
17
+ * {prop1: 11, prop3: 21},
18
+ * {prop2: 22, prop4: false},
19
+ * {prop5: false, prop3: 45}
20
+ * );
21
+ * // {prop1: 11, prop2: 22, prop3: 45, prop4: false, prop5: false}
22
+ * ```
23
+ * @example
24
+ * ```javascript
25
+ * bbn.fn.extend(
26
+ * {
27
+ * prop1: [3, 5, 6],
28
+ * prop2: {
29
+ * subprop1: 87,
30
+ * subprop2: 100
31
+ * }
32
+ * }, {
33
+ * prop1: 11,
34
+ * prop3: [8, 12, {aProperty: 1, anotherProperty: true}, 26]
35
+ * }, {
36
+ * prop2: {
37
+ * subprop1: 90,
38
+ * subprop3: 25
39
+ * },
40
+ * prop4: false
41
+ * }, {
42
+ * prop5: false,
43
+ * prop3: [8, 45, {anotherProperty: false, andAnother: true}]
44
+ * }
45
+ * );
46
+ * // {
47
+ * // prop1: 11,
48
+ * // prop2: {subprop1: 90, subprop3: 25},
49
+ * // prop3: [8, 45, {anotherProperty: false, andAnother: true}],
50
+ * // prop4: false,
51
+ * // prop5: false
52
+ * // }
53
+ * ```
54
+ * @example
55
+ * ```javascript
56
+ * // Deep
57
+ * bbn.fn.extend(
58
+ * true,
59
+ * {
60
+ * prop1: [3, 5, 6],
61
+ * prop2: {
62
+ * subprop1: 87,
63
+ * subprop2: 100
64
+ * }
65
+ * }, {
66
+ * prop1: 11,
67
+ * prop3: [8, 12, {aProperty: 1, anotherProperty: true}, 26]
68
+ * }, {
69
+ * prop2: {
70
+ * subprop1: 90,
71
+ * subprop3: 25
72
+ * },
73
+ * prop4: false
74
+ * }, {
75
+ * prop5: false,
76
+ * prop3: [8, 45, {anotherProperty: false, andAnother: true}]
77
+ * }
78
+ * );
79
+ * // {
80
+ * // prop1: 11,
81
+ * // prop2: {subprop1: 90, subprop3: 25},
82
+ * // prop3: [8, 45, {aProperty: 1, anotherProperty: false, andAnother: true}, 26],
83
+ * // prop4: false,
84
+ * // prop5: false
85
+ * // }
86
+ * ```
87
+ * @memberof bbn.fn
88
+ * @returns {Object} The first object argument, merged with the other objects given
89
+ */
90
+ const extend = function (...originalArgs) {
91
+ let deep = false;
92
+ let args = [];
93
+ for (let i = 0; i < originalArgs.length; i++) {
94
+ if (originalArgs[i] === true) {
95
+ deep = true;
96
+ }
97
+ else if (!originalArgs[i]) {
98
+ continue;
99
+ }
100
+ else if (typeof originalArgs[i] !== "object") {
101
+ throw new Error(bbn._("Error in extend: all arguments should be object, you have given ") + typeof originalArgs[i]);
102
+ }
103
+ else {
104
+ args.push(originalArgs[i]);
105
+ }
106
+ }
107
+ if (!args.length) {
108
+ throw new Error("No argument given");
109
+ }
110
+ let out = args[0];
111
+ for (let i = 1; i < args.length; i++) {
112
+ iterate(args[i], (a, key) => {
113
+ if (deep) {
114
+ if (isArray(a)) {
115
+ out[key] = isArray(out[key]) ? out[key] : [];
116
+ each(a, (b, i) => {
117
+ if (b && typeof b === "object") {
118
+ let tmp = out[key][i];
119
+ if (isArray(b)) {
120
+ if (!isArray(tmp)) {
121
+ tmp = [];
122
+ }
123
+ }
124
+ else if (!isObject(tmp)) {
125
+ tmp = {};
126
+ }
127
+ out[key][i] = extend(true, tmp, b);
128
+ }
129
+ else {
130
+ out[key][i] = b;
131
+ }
132
+ });
133
+ }
134
+ else if (isObject(a)) {
135
+ out[key] = extend(true, out[key] && typeof out[key] === "object"
136
+ ? out[key]
137
+ : Object.create(Object.getPrototypeOf(a)), a);
138
+ }
139
+ else {
140
+ out[key] = a;
141
+ }
142
+ }
143
+ else if (out[key] !== a) {
144
+ out[key] = a;
145
+ }
146
+ });
147
+ if (args[i].__bbnNoData) {
148
+ Object.defineProperty(out, "__bbnNoData", {
149
+ value: true,
150
+ enumerable: false,
151
+ configurable: false,
152
+ writable: false,
153
+ });
154
+ }
155
+ }
156
+ return out;
157
+ };
158
+ export { extend };
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Returns a new object made of the properties from all the given objects.
3
+ *
4
+ * Compared to bbn.fn.extend this still treats the arguments from left to right
5
+ * but without overwriting existing properties, and returning a new object.
6
+ *
7
+ * @method extendOut
8
+ * @global
9
+ * @example
10
+ * ```javascript
11
+ * //{field1: 1, field2: 2, field3: 3, items: {item: 0, item1: 1, item2: 2}, field4: 4}
12
+ * bbn.fn.extendOut({field1: 1, field2: 2, field3: 3, items: {item: 0}}, {field4: 4, items: {item1: 1, item2: 2}});
13
+ * ```
14
+ * @memberof bbn.fn
15
+ * @returns {Object}
16
+ */
17
+ declare const extendOut: (...args: object[]) => any;
18
+ export { extendOut };